<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>postgres - Hard Wired</title>
	<atom:link href="https://www.hardwired.dev/tag/postgres/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hardwired.dev</link>
	<description></description>
	<lastBuildDate>Sat, 11 Oct 2025 04:47:46 +0000</lastBuildDate>
	<language>cs</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://www.hardwired.dev/wp-content/uploads/2022/10/android-chrome-256x256-1-150x150.png</url>
	<title>postgres - Hard Wired</title>
	<link>https://www.hardwired.dev</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Outline &#8211; selfhostovaná znalostní báze</title>
		<link>https://www.hardwired.dev/2025/09/27/outline-selfhostovana-znalostni-baze/</link>
		
		<dc:creator><![CDATA[John Doe]]></dc:creator>
		<pubDate>Sat, 27 Sep 2025 19:59:00 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Různé]]></category>
		<category><![CDATA[.env]]></category>
		<category><![CDATA[autentizace]]></category>
		<category><![CDATA[databáze]]></category>
		<category><![CDATA[dex]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[docker-compose]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[in-memory databáze]]></category>
		<category><![CDATA[konfigurace]]></category>
		<category><![CDATA[kontejnerizace]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linxu]]></category>
		<category><![CDATA[návod]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Nginx konfigurace]]></category>
		<category><![CDATA[notion]]></category>
		<category><![CDATA[oidc]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[OpenID Connect]]></category>
		<category><![CDATA[outline]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[přihlašování]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[reverse-proxy]]></category>
		<category><![CDATA[reverzní proxy]]></category>
		<category><![CDATA[self-hosting]]></category>
		<category><![CDATA[selfhosted]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[YAML]]></category>
		<category><![CDATA[znalostní báze]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2836</guid>

					<description><![CDATA[<p>Takovej selfhosting Notionu bez fancy tabulek. Outline je open-source nástroj pro tvorbu a správu interní dokumentace a znalostních bází. Použité &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2025/09/27/outline-selfhostovana-znalostni-baze/">Outline – selfhostovaná znalostní báze</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p>Takovej selfhosting Notionu bez fancy tabulek.<br />
<a href="https://www.getoutline.com">Outline</a> je open-source nástroj pro tvorbu a správu interní dokumentace a znalostních bází.</p>
<p><span id="more-2836"></span></p>
<h2>Použité technologie</h2>
<h3>Nginx</h3>
<p>Nginx je výkonný webový server a reverzní proxy, který se používá pro obsluhu statického obsahu, směrování požadavků na backend služby a vyvažování zátěže. Je známý svou rychlostí, nízkou spotřebou paměti a spolehlivostí při vysoké zátěži.</p>
<h3>Outline</h3>
<p><a href="https://www.getoutline.com">Outline</a> je open-source nástroj pro tvorbu a správu interní dokumentace a znalostních bází. Poskytuje jednoduché a přehledné uživatelské rozhraní pro týmovou spolupráci, verzování a rychlé vyhledávání obsahu.</p>
<h3>Dex</h3>
<p><a href="https://dexidp.io">Dex</a> je open-source identitní služba, která funguje jako „OpenID Connect“ provider. Slouží k centralizovanému ověřování uživatelů a umožňuje propojit různé aplikace s externími identity providery (např. Google, GitHub nebo LDAP).</p>
<h3>Postgres</h3>
<p>PostgreSQL (Postgres) je pokročilý open-source relační databázový systém. Nabízí podporu pro komplexní dotazy, transakce, indexy, JSON data a rozšiřitelnost pomocí vlastních funkcí, čímž se hodí pro širokou škálu aplikací od menších po enterprise řešení.</p>
<h3>Redis</h3>
<p>Redis je in-memory databáze a cache systém, který umožňuje velmi rychlý přístup k datům. Často se používá pro ukládání relací, front, výsledků výpočtů nebo jako prostředník pro komunikaci mezi službami díky podpoře publikace a odběru zpráv (pub/sub).</p>
<h3>Docker / Docker Compose</h3>
<p>Docker je platforma pro kontejnerizaci aplikací, která umožňuje spouštět software izolovaně s veškerými závislostmi. Docker Compose pak usnadňuje definování a správu vícekontejnerových aplikací pomocí jednoduchého konfiguračního souboru.</p>
<h2>Diagram</h2>
<p><img decoding="async" src="https://www.hardwired.dev/wp-content/uploads/2025/09/diagram.avif" alt="" /></p>
<h2>Postřehy</h2>
<h3>Outline</h3>
<p>Outline neumožňuje přihlašování pomocí uživatelského jména a hesla, což je poněkud nepříjemné. Musí se nakonfigurovat jedna z podporovaných služeb. Aplikace umí pracovat se Slack identitami, Google identitami a dalšími poskytovateli. Pokud nemůžete použít žádnou z těchto služeb, je tam naštěstí možnost Magic Link via Email. Je to sice nepříjemné, ale funkční řešení. Pokaždé, když se chcete přihlásit, pošle vám aplikace email s přihlašovacím odkazem. V mém setupu jsem se rozhodl použít Dex jako OIDC službu, přes kterou se mohu přihlašovat pomocí emailu a hesla.</p>
<h3>Dex</h3>
<p><a href="https://dexidp.io">Dex</a> je velmi minimalistický, takže nemá webové rozhraní. Navíc jeho dokumentace je hodně nekvalitní. Nejjednodušším způsobem, jak vše rozchodit, je přidat statického klienta a uživatele přímo do konfiguračního souboru. Musíte si ale vytvořit bcrypt hashovaná hesla. Vycházel jsem z tohoto <a href="https://mrkaran.dev/posts/setting-outline/">návodu</a>.</p>
<h3>SMTP</h3>
<p>Aby fungovalo odesílání emailů, je potřeba nakonfigurovat SMTP server. Pokud žádný po ruce nemáte, můžete použít váš Gmail účet. V nastavení Gmailu se musí vytvořit aplikační klíč, který se pak vloží do .env souboru do SMTP sekce.</p>
<h2>Setup</h2>
<h3>.env</h3>
<pre><code class="language-ini">URL=https://outline.&lt;domain.com&gt;
PORT=3050
WEB_CONCURRENCY=1
SECRET_KEY=&lt;secret key&gt;
UTILS_SECRET=&lt;utils secret&gt;
DATABASE_URL=postgres://outline:&lt;db password&gt;@outline-postgres:5432/outline
PGSSLMODE=disable

POSTGRES_USER=outline
POSTGRES_PASSWORD=&lt;db password&gt;
POSTGRES_DB=outline

REDIS_URL=redis://outline-redis:6379

FILE_STORAGE=local

FORCE_HTTPS=true

OIDC_CLIENT_ID=outline
OIDC_CLIENT_SECRET=&lt;oidc client secret&gt;
OIDC_AUTH_URI=https://auth.&lt;domain.com&gt;/dex/auth
OIDC_TOKEN_URI=http://dex:5556/dex/token
OIDC_USERINFO_URI=http://dex:5556/dex/userinfo
OIDC_USERNAME_CLAIM=email
OIDC_DISPLAY_NAME=OIDC Provider
OIDC_SCOPES=openid profile email

SMTP_SERVICE=gmail
SMTP_USERNAME=&lt;you&gt;@gmail.com
SMTP_PASSWORD=&quot;&lt;app code&gt;&quot;
SMTP_FROM_EMAIL=&lt;you&gt;@gmail.com

RATE_LIMITER_ENABLED=true
RATE_LIMITER_REQUESTS=1000
RATE_LIMITER_DURATION_WINDOW=60

ENABLE_UPDATES=true
DEBUG=http
LOG_LEVEL=info</code></pre>
<h3>DEX Config (config.yaml)</h3>
<pre><code class="language-yaml">issuer: https://auth.&lt;domain.com&gt;/dex

storage:
  type: sqlite3
  config:
    file: /var/dex/dex.db

web:
  http: 0.0.0.0:5556

staticClients:
  - id: outline
    redirectURIs:
      - &quot;https://outline.&lt;domain.com&gt;/auth/oidc.callback&quot;
    name: &quot;Knowledge Base&quot;
    secret: &lt;oidc client secret&gt;

oauth2:
  skipApprovalScreen: true

enablePasswordDB: true

staticPasswords:
  # Admin
  - email: &quot;&lt;admin&gt;@gmail.com&quot;
    hash: &quot;&lt;bcrypt password hash&gt;&quot;
    username: &quot;admin&quot;
    userID: &quot;admin-001&quot;

  - email: &quot;&lt;user&gt;@gmail.com&quot;
    hash: &quot;&lt;bcript password hash&gt;&quot;
    username: &quot;user&quot;
    userID: &quot;user-001&quot;

# Pro debug
logger:
  level: &quot;info&quot;
  format: &quot;text&quot;</code></pre>
<h3>Docker Compose</h3>
<pre><code class="language-yaml">services:
  outline:
    image: docker.getoutline.com/outlinewiki/outline:latest
    env_file: ./.env
    ports:
      - &quot;3050:3050&quot;
    expose:
      - &quot;3050&quot;
    volumes:
      - storage-data:/var/lib/outline/data
    depends_on:
      - outline-postgres
      - outline-redis

  outline-redis:
    image: redis
    env_file: ./.env
    expose:
      - &quot;6379&quot;
    volumes:
      - ./redis.conf:/redis.conf
    command: [&quot;redis-server&quot;, &quot;/redis.conf&quot;]
    healthcheck:
      test: [&quot;CMD&quot;, &quot;redis-cli&quot;, &quot;ping&quot;]
      interval: 10s
      timeout: 30s
      retries: 3

  outline-postgres:
    image: postgres
    env_file: ./.env
    expose:
      - &quot;5432&quot;
    volumes:
      - database-data:/var/lib/postgresql/data
    healthcheck:
      test: [&quot;CMD&quot;, &quot;pg_isready&quot;, &quot;-d&quot;, &quot;outline&quot;, &quot;-U&quot;, &quot;user&quot;]
      interval: 30s
      timeout: 20s
      retries: 3

  dex:
    image: dexidp/dex:v2.37.0
    ports:
      - &quot;5556:5556&quot;  # Vystaveno pro nginx proxy
    expose:
      - &quot;5556&quot;
    volumes:
      - ./dex-config:/etc/dex:ro  # Read-only mount konfigurace
      - dex-data:/var/dex         # Persistentni SQLite databáze
    command: [&quot;dex&quot;, &quot;serve&quot;, &quot;/etc/dex/config.yaml&quot;]
    healthcheck:
      test: [&quot;CMD&quot;, &quot;wget&quot;, &quot;--no-verbose&quot;, &quot;--tries=1&quot;, &quot;--spider&quot;, &quot;http://localhost:5556/dex/healthz&quot;]
      interval: 30s
      timeout: 10s
      retries: 3
    restart: unless-stopped

volumes:
  storage-data:
  database-data:
  dex-data:</code></pre>
<h3>Nginx</h3>
<h4>auth.<domain.com></h4>
<pre><code class="language-nginx">server {
    listen 80;
    server_name auth.&lt;domain.com&gt;;

    # P┼Öesm─Ťrov├ín├ş HTTP na HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name auth.&lt;domain.com&gt;;

    # SSL certifik├íty (upravte cestu podle va┼í├ş konfigurace)
    ssl_certificate /etc/nginx/ssl/&lt;domain.com&gt;/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/&lt;domain.com&gt;/privkey.pem;

    # SSL konfigurace
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;

    # Proxy nastaven├ş pro Home Assistant
    location / {
        proxy_pass http://&lt;service ip&gt;:5556;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection &quot;upgrade&quot;;

        # Timeout nastaven├ş
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;

        # Buffering nastaven├ş
        proxy_buffering off;
        proxy_request_buffering off;
    }

    # Logov├ín├ş
    access_log /var/log/nginx/auth.&lt;domain.com&gt;.access.log;
    error_log /var/log/nginx/auth.&lt;domain.com&gt;.error.log;
}</code></pre>
<h4>outline.<domain.com></h4>
<pre><code class="language-nginx">server {
    listen 80;
    server_name outline.&lt;domain.com&gt;;

    # P┼Öesm─Ťrov├ín├ş HTTP na HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name outline.&lt;domain.com&gt;;

    # SSL certifik├íty (upravte cestu podle va┼í├ş konfigurace)
    ssl_certificate /etc/nginx/ssl/&lt;domain.com&gt;/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/&lt;domain.com&gt;/privkey.pem;

    # SSL konfigurace
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;

    # Proxy nastaven├ş pro Home Assistant
    location / {
        proxy_pass http://&lt;service ip&gt;:3050;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection &quot;upgrade&quot;;

        # Timeout nastaven├ş
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;

        # Buffering nastaven├ş
        proxy_buffering off;
        proxy_request_buffering off;
    }

    # Logov├ín├ş
    access_log /var/log/nginx/outline.&lt;domain.com&gt;.access.log;
    error_log /var/log/nginx/outline.&lt;domain.com&gt;.error.log;
}</code></pre>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2025%2F09%2F27%2Foutline-selfhostovana-znalostni-baze%2F&#038;via=hessevalentino" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2025/09/27/outline-selfhostovana-znalostni-baze/">Outline – selfhostovaná znalostní báze</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gitea v Dockeru s daty na Synology</title>
		<link>https://www.hardwired.dev/2024/09/14/gitea-v-dockeru-s-daty-na-synology/</link>
		
		<dc:creator><![CDATA[John Doe]]></dc:creator>
		<pubDate>Fri, 13 Sep 2024 22:39:52 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[docker-compose]]></category>
		<category><![CDATA[gitea]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[synology]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2336</guid>

					<description><![CDATA[<p>Gitea je self-hostovaná varianta Bitbucketu nebo GitHubu. V následujícím krátkém návodu se podíváme jak nainstalovat Giteu pomocí Dockeru a ukládat &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2024/09/14/gitea-v-dockeru-s-daty-na-synology/">Gitea v Dockeru s daty na Synology</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><p><a href="https://about.gitea.com/">Gitea</a> je self-hostovaná varianta <a href="https://bitbucket.org/">Bitbucketu</a> nebo <a href="https://github.com/">GitHubu</a>. V následujícím krátkém návodu se podíváme jak nainstalovat Giteu pomocí <a href="https://www.docker.com/">Dockeru</a> a ukládat data na <a href="https://www.synology.com/en-us">Synology NAS</a>.</p>
<h1>Prerekvizity</h1>
<ul>
<li>Nainstalovaný a nastavený Docker</li>
<li>Nainstalovaný a nastavený Synology NAS</li>
</ul>
<h1>Myšlenka</h1>
<p>Pro spuštění Gitea serveru použijeme <a href="https://docs.docker.com/compose/">docker compose</a>. Gitea bude používat <a href="https://www.postgresql.org/">PostgreSQL</a> databázi. Pro ukládání dat jak pro Giteu, tak i pro Postgres, použijeme <a href="https://docs.docker.com/engine/storage/volumes/">docker volumes</a>. <code>Docker volumes</code> nebudou lokální, ale přes protokol <a href="https://cs.wikipedia.org/wiki/Network_File_System">NFS</a> budou směřovat na Synology NAS.</p>
<p>Pro potřeby tutoriálu bude mít server IP adresu <code>192.168.10.1</code> a Synology NAS <code>192.168.10.2</code>.</p>
<h1>Nastavení Synology</h1>
<p><code>Ovládací panel</code> &gt; <code>Souborové služby</code> &gt; <code>NFS</code> povolte službu <code>NFS</code>.</p>
<p><code>Ovládací panel</code> &gt; <code>Sdílená složka</code> &gt; <code>Vytvoření sdílené složky</code>. Název <code>docker-volumes</code>. Nepřiřazujeme oprávnění pro uživatele nebo skupiny.</p>
<p>Klikneme na složku <code>docker-volumes</code> a zvolíme upravit. Poté <code>Oprávnění NFS</code>. Klikneme na tlačítko <code>Vytvořit</code>. Do pole <code>Název hostitele nebo IP adresa</code> vložíme IP adresu našeho serveru, tedy <code>192.168.10.1</code>. Tím umožníme našemu serveru přístup k této složce. Dále nastavíme:</p>
<ul>
<li>Oprávnění: <code>Čtení/Zápis</code></li>
<li>Squash: <code>Žádné mapování</code></li>
<li>Zabezpečení: <code>sys</code></li>
<li>Povolit asynchronní</li>
<li>Povolit připojení z portů bez oprávnění (porty vyšší než 1024)</li>
<li>Umožňuje uživatelům přístup k připojeným podsložkám</li>
</ul>
<p>A uložíme.</p>
<p>Poté otevřeme <code>File Station</code> a v naší složce <code>docker-volumes</code> vytvoříme následující podsložky:</p>
<ul>
<li><code>gitea-data</code></li>
<li><code>gitea-postgres</code></li>
</ul>
<p>To je na Synology vše.</p>
<h1>docker-compose.yaml</h1>
<p>Konfigurační soubor vytvoří síť <code>gitea</code> kde na sebe uvidí kontejnery <code>gitea</code> a <code>gitea-db</code>. Vytvoří <code>dva volumes</code> a pomocí protokolu NFS je nasměruje na námi sdílenou složku v Synology NAS.</p>
<p>Docker-compose soubor můžeme spustit pomocí <code>docker-compose up -d</code>. Pokud máte na serveru nainstalovaný a spuštěný <a href="https://www.portainer.io/">Portainer</a>, tak jde <code>docker-compose konfigurace</code> spustit jako <a href="https://docs.portainer.io/user/docker/stacks">stack</a>.</p>
<p>Webové rozhraní poté bude přístupné na <code>http://192.168.10.1:3000</code>.</p>
<pre><code class="language-yaml">networks:
  gitea:

volumes:
  gitea-data:
    driver: local
    driver_opts:
      type: nfs
      o: addr=192.168.1.251,rw
      device: ":/volume1/docker-volumes/gitea-data"

  gitea-postgres:
    driver: local
    driver_opts:
      type: nfs
      o: addr=192.168.1.251,rw
      device: ":/volume1/docker-volumes/gitea-postgres"

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=gitea-db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=supersecretpassword
    restart: always
    networks:
      - gitea
    volumes:
      - gitea-data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - gitea-db

  gitea-db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=supersecretpassword
      - POSTGRES_DB=gitea
    networks:
      - gitea
    volumes:
      - gitea-postgres:/var/lib/postgresql/data</code></pre>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2024%2F09%2F14%2Fgitea-v-dockeru-s-daty-na-synology%2F&#038;via=hessevalentino" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2024/09/14/gitea-v-dockeru-s-daty-na-synology/">Gitea v Dockeru s daty na Synology</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
