Hostovanie FreshRSS na Managed VPS: vaše kanály RSS na vašom serveri

Hostovanie FreshRSS na Managed VPS znamená, že vy a váš tím čítate svoje kanály RSS z vlastného stroja, ktorý naše tímy udržiavajú aktuálny a dohliadajú naň vo dne v noci. FreshRSS je slobodný softvér pod licenciou AGPL-3.0. Tento sprievodca postupuje podľa jeho oficiálnej dokumentácie: inštalácia cez Docker Compose, HTTPS, obnovovanie kanálov, účty a prihlásenie, API pre mobilné aplikácie, databáza, zálohy a aktualizácie.

Simon Vasconcelos Lee Autor: Publikované 11. novembra 2026Čas čítania: 13 minút

Všetci sprievodcovia

To najdôležitejšie

  1. Licencia AGPL-3.0 umožňuje FreshRSS voľne prevádzkovať, vo firme aj inde; ak ho upravíte, kód svojej verzie sprístupníte tým, ktorí ho používajú.
  2. Nainštalujte ho cez Docker Compose: jeden obraz, port publikovaný lokálne a dva zväzky, data a extensions, za reverznou proxy s HTTPS.
  3. Premenná CRON_MIN obnovuje kanály automaticky: projekt odporúča približne dve spustenia za hodinu.
  4. Registrácie sú predvolene zatvorené. Pre mobilné aplikácie zapnite API a každý používateľ si potom nastaví heslo API.
  5. Zálohujte zväzok data a pri PostgreSQL alebo MySQL aj databázu, potom aktualizujte príkazom docker compose pull.

Čo FreshRSS robí

FreshRSS je agregátor kanálov RSS na vlastnú prevádzku napísaný v PHP. README ho opisuje ako ľahký, jednoduchý na používanie, výkonný a prispôsobiteľný, preložený do viac než dvadsiatich jazykov. Je to aplikácia pre viacerých používateľov, s režimom anonymného čítania a vlastnými štítkami.

FreshRSS vyvíja jeho komunita na GitHube a jeho oficiálny web vydáva komunita FreshRSS. Rozšírenia majú samostatný repozitár a dokumentácia sa venuje používateľom, správcom aj vývojárom.

Čo umožňuje licencia AGPL-3.0

FreshRSS vychádza pod licenciou GNU Affero General Public License, verzia 3: jeho manifest composer.json ju deklaruje ako AGPL-3.0 a README odkazuje na text licencie. Tento text potvrdzuje neobmedzené povolenie spúšťať nezmenený program. Obraz zverejnený projektom teda môžete používať pre svoju firmu a svoj tím bez licencie, ktorú by ste museli kupovať.

Článok 13 dopĺňa podmienku vlastnú AGPL: ak program upravíte, vaša verzia musí všetkým, ktorí ju používajú na diaľku, cez sieť, ponúknuť možnosť získať jej zdrojový kód zadarmo. Rozšírenie tretej strany pridané do zväzku extensions sa riadi vlastnou licenciou.

Inštalácia pomocou Docker Compose

Projekt zverejňuje svoje oficiálne obrazy na Docker Hub ako freshrss/freshrss spolu s ukážkovým súborom Compose. Na serveri s nainštalovaným Dockerom vytvorte priečinok s názvom freshrss a umiestnite doň tento súbor compose.yaml, prevzatý z toho súboru a z README pre Docker:

compose.yaml
volumes:
  data:
  extensions:

services:
  freshrss:
    image: freshrss/freshrss:latest
    container_name: freshrss
    hostname: freshrss
    restart: unless-stopped
    logging:
      options:
        max-size: 10m
    volumes:
      - data:/var/www/FreshRSS/data
      - extensions:/var/www/FreshRSS/extensions
    ports:
      - 127.0.0.1:8080:80
    environment:
      TZ: UTC
      CRON_MIN: '3,33'
      TRUSTED_PROXY: 172.16.0.1/12 192.168.0.1/16
    healthcheck:
      test: ["CMD", "cli/health.php"]
      timeout: 10s
      start_period: 60s
      start_interval: 11s
      interval: 75s
      retries: 3
Terminál, v priečinku freshrss
docker compose up -d

Značka latest, predvolená, sleduje poslednú verziu s číslom vydania; edge sleduje priebežné vydanie; značka ako 1.30.4 pripne verziu a prípona -alpine dáva to isté na základe Alpine namiesto Debianu. K tejto voľbe sa vraciame v časti o aktualizáciách.

Dokončenie inštalácie

Keď je reverzná proxy nasadená, otvorte svoju adresu HTTPS: sprievodca inštaláciou sa opýta na jazyk, skontroluje server, ponúkne výber databázy a potom vytvorí účet správcu s jeho heslom a spôsobom prihlásenia. SQLite funguje bez akejkoľvek prípravy. Inštalácia funguje aj z príkazového riadka, pomocou cli/do-install.php a cli/create-user.php, spúšťaných cez docker exec --user www-data freshrss.

K prostriedkom README uvádza ľahký server so systémom Linux alebo Windows a poznamenáva, že FreshRSS beží dokonca aj na Raspberry Pi 1, s časmi odozvy pod jednu sekundu, so 150 kanálmi a 22 000 článkami. Veľkosť závisí od počtu používateľov, kanálov a uchovávaných článkov. Na spravovanom VPS (Managed VPS) nám opíšte svoje použitie a odporučíme vám vhodnú veľkosť.

HTTPS: reverzná proxy

Pre produkčnú prevádzku README pre Docker odporúča reverznú proxy na hostiteľskom serveri, ktorá zabezpečí HTTPS. Najprv si zvoľte doménové meno alebo subdoménu, napríklad rss.example.com, ktorá ukazuje na server záznamami A a AAAA. Projekt odporúča Traefik a zverejňuje preň úplný súbor Compose s certifikátmi Let’s Encrypt a presmerovaním z HTTP na HTTPS; uvádza aj príklady pre Apache, Nginx a Caddy.

S Caddy

Caddy získa certifikát a zapne HTTPS sám. Tento blok preberá príklad z dokumentácie pre subdoménu, nasmerovaný tu na port publikovaný lokálne:

Caddyfile
rss.example.com {
  reverse_proxy 127.0.0.1:8080
}

S Nginx a Certbotom

Tento blok preberá príklad Nginx z README pre Docker pre koreň domény, zredukovaný na port 80, aby HTTPS zapol Certbot. Posledné dva riadky odovzdávajú hlavičku Authorization, ktorú potrebuje API Google Reader:

Blok Nginx
upstream freshrss {
  server 127.0.0.1:8080;
  keepalive 64;
}

server {
  listen 80;
  listen [::]:80;
  server_name rss.example.com;

  location / {
    proxy_pass http://freshrss/;
    proxy_redirect off;
    proxy_buffering off;
    proxy_set_header Host $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_set_header X-Forwarded-Port $server_port;
    proxy_read_timeout 90;

    proxy_set_header Authorization $http_authorization;
    proxy_pass_header Authorization;
  }
}

Certbot potom nainštaluje certifikát a postará sa o jeho obnovu:

Terminál
sudo certbot --nginx

Verejná adresa: base_url

FreshRSS uchováva svoju verejnú adresu v base_url, v súbore data/config.php. Opierajú sa o ňu API aj WebSub: overte, že obsahuje vašu adresu https. README pre Docker ukazuje, kde tento súbor vo zväzku nájdete:

Terminál
docker volume inspect freshrss_data
sudo nano /var/lib/docker/volumes/freshrss_data/_data/config.php
docker compose restart freshrss
data/config.php
'base_url' => 'https://rss.example.com/',

Obnovovanie kanálov: CRON_MIN

FreshRSS sťahuje nové články svojím skriptom app/actualize_script.php. Obraz Docker obsahuje naplánovanú úlohu, ktorá ho spúšťa v minútach uvedených v CRON_MIN. Bez tejto premennej alebo s prázdnou hodnotou zostáva úloha vypnutá a kanály sa už automaticky neobnovujú.

Ďalší zdokumentovaný spôsob: naplánovaná úloha na hostiteľskom serveri, ktorá volá skript vnútri kontajnera. V tom prípade odstráňte CRON_MIN zo súboru compose.yaml, aby zostal jediný spôsob:

/etc/cron.d/FreshRSS
7,37 * * * * root docker exec --user www-data freshrss php ./app/actualize_script.php > /tmp/FreshRSS.log 2>&1

Od verzie 1.30.0 FreshRSS predvolene odmieta adresy lokálnej siete, napríklad 127.0.0.1, ako ochranu proti falšovaniu požiadaviek na strane servera. Susednú službu, ktorá vytvára kanály, napríklad RSS-Bridge, povolíte premennou INTERNAL_HOST_ALLOWLIST v tvare rss-bridge:80 alebo v systémovej konfigurácii. Hodnota * odstraňuje všetky kontroly a dokumentácia ju označuje za nebezpečnú.

Účty a prihlásenie

Pri inštalácii ponúka FreshRSS prihlásenie cez formulár, ktoré vyžaduje JavaScript. Je to predvolený spôsob a hodí sa pre väčšinu inštancií. Dokumentácia opisuje aj ďalšie:

SpôsobČo robíKde sa nastavuje
FormulárPoužívateľské meno a heslo vlastné pre FreshRSSSprievodca inštaláciou
Overenie HTTPPrístup kontroluje webový server a noví používatelia sa vytvoria pri prvom prihláseníSúbor p/i/.htaccess pripojený do kontajnera, s jeho .htpasswd
Externé overenieProxy odovzdá prihláseného používateľa v hlavičke Remote-User alebo X-WebAuth-UserTRUSTED_PROXY, ktorá uvádza dôveryhodné proxy
OpenID ConnectPrihlásenie prechádza cez vášho poskytovateľa identity pomocou modulu Apache mod_auth_openidcOIDC_ENABLED a premenné OIDC_*, v obraze Debian na x86_64

Dokumentácia upozorňuje, že FreshRSS dôveruje každej adrese uvedenej v TRUSTED_PROXY: zle zabezpečená proxy by útočníkovi umožnila nastaviť hlavičku a získať prístup správcu. Tu port počúva len na 127.0.0.1, čo ho vyhradzuje pre proxy samotného servera. Dokumentácia tiež odrádza od akejkoľvek inštancie bez overovania, hneď ako je server dostupný zvonka vašej siete.

Registrácie a používatelia

Pri inštancii, ktorú zdieľa viac ľudí, dokumentácia radí otvárať účty ľuďom, ktorým dôverujete, a nechať inštanciu za proxy alebo firewallom, ktorý blokuje prístup k interným rozsahom adries.

Mobilné aplikácie: API Google Reader a Fever

FreshRSS funguje v prehliadači, na veľkých aj malých obrazovkách, a v aplikáciách pre Android, iOS, Linux, Windows a macOS. Tieto aplikácie používajú jedno z jeho dvoch API: Google Reader, ktoré README hodnotí ako najlepšie, a Fever, s obmedzenejšími funkciami, menej efektívne a menej bezpečné.

  1. Ako správca zapnite v časti Overovanie voľbu, ktorá povoľuje prístup cez API.
  2. Každý používateľ si vo svojom profile nastaví heslo API. Je oddelené od hlavného hesla, dáva prístup k menšiemu rozsahu funkcií a je určené pre menej bezpečné situácie.
  3. V aplikácii zadajte adresu https://rss.example.com/api/greader.php, alebo pre Fever https://rss.example.com/api/fever.php, s používateľským menom a týmto heslom API.

Na overenie slúži odkaz zobrazený vedľa hesla API v profile, ktorý otvorí testovaciu stránku: PASS pri úplnej kontrole potvrdzuje, že všetko funguje. Obraz Docker už nastavuje Apache tak, aby prijímal kódované lomky, ktoré niektoré aplikácie potrebujú; s Nginx vpredu ponechajte odovzdávanie hlavičky Authorization.

README vedie tabuľku kompatibilných aplikácií s ich platformou, API a funkciami: okrem iných Capy Reader a Readrops na Androide, FeedFlow na mobile aj počítači, RSS Guard a NewsFlash na počítači, ReadKit a Reeder Classic na iOS a macOS.

SQLite, PostgreSQL, MySQL alebo MariaDB

FreshRSS má zabudovanú SQLite, ktorú README pre Docker opisuje ako najjednoduchšiu možnosť s dobrým výkonom. Stránka s požiadavkami odporúča PostgreSQL 10 alebo novší a prijíma aj MariaDB 10.6 a MySQL 8.0 alebo novší. Voľbu urobíte v sprievodcovi inštaláciou.

DatabázaZavedenieZáloha
SQLiteŽiadne: jeden súbor na používateľa, data/users/<user>/db.sqliteZväzok data
PostgreSQLSlužba postgres v tom istom súbore compose.yamlpg_dump alebo cli/db-backup.php
MySQL alebo MariaDBVáš databázový server a jeho názov hostiteľa v sprievodcovimysqldump alebo cli/db-backup.php

Pre PostgreSQL pridajte do compose.yaml túto službu, prevzatú zo súboru projektu docker-compose-db.yml, a zväzok db do zoznamu zväzkov. Heslo patrí do súboru .env, vedľa compose.yaml:

compose.yaml, v services
  freshrss-db:
    image: postgres:18
    container_name: freshrss-db
    hostname: freshrss-db
    restart: unless-stopped
    logging:
      options:
        max-size: 10m
    volumes:
      - db:/var/lib/postgresql
    environment:
      POSTGRES_DB: freshrss
      POSTGRES_USER: freshrss
      POSTGRES_PASSWORD: ${DB_PASSWORD}
.env
DB_PASSWORD='a-long-unique-password'

V sprievodcovi zvoľte PostgreSQL a ako hostiteľa zadajte freshrss-db, s používateľom, heslom a databázou freshrss.

K tejto voľbe sa môžete neskôr vrátiť. Dokumentácia opisuje prechod z jednej databázy na inú, napríklad z MySQL na PostgreSQL, alebo na novšiu hlavnú verziu PostgreSQL: cli/db-backup.php skopíruje databázu každého používateľa do súboru SQLite a cli/db-restore.php ju potom načíta do novej databázy.

Zálohy

README uvádza, že FreshRSS sa dodáva bez akejkoľvek záruky: vaše zálohy uchovávajú vaše odbery, články a nastavenia. Toto dokumentácia žiada zálohovať:

PrvokČo uchovávaZálohovať
data/Konfigurácia, účty, záznamy a pri SQLite databázyPovinne; cache/ možno vynechať, FreshRSS ju znova vytvorí
extensions/Rozšírenia tretích stránOdporúčané, ak nejaké používate
Externá databázaPri PostgreSQL, MySQL alebo MariaDB údaje používateľovPovinne, samostatne

Zväzky pri zastavenej službe

Dokumentácia považuje za bezpečnejšie zastaviť službu počas údržby. Zväzky Docker sa kopírujú pomocou dočasného kontajnera, metódou opísanou v dokumentácii Docker:

Terminál, v priečinku freshrss
docker compose stop freshrss
docker run --rm --volumes-from freshrss -v "$PWD":/backup ubuntu tar -czf /backup/freshrss-$(date +%F).tgz --exclude=data/cache -C /var/www/FreshRSS data extensions
docker compose start freshrss

Databázy pri bežiacej službe

Od verzie 1.29.1 vie FreshRSS sám exportovať databázu každého používateľa do súboru SQLite, bez ohľadu na použitú databázu, a ponechať len tie najnovšie. Tento export zapnite v data/config.php:

data/config.php
'auto_sqlite_export' => [
    'enabled' => true,
    'retention' => 7,
],

Potom príkaz naplánujte na serveri, tu každú noc. Každé spustenie zapíše data/users/<user>/sqlite-backups/<date>.sqlite a odstráni súbory nad posledných sedem:

/etc/cron.d/freshrss-export
20 2 * * * root docker exec --user www-data freshrss cli/export-sqlite-auto.php --quiet

Pri PostgreSQL pridajte export nástrojom samotnej databázy, ako v README pre Docker. Voľba -T vypína terminál, ktorý naplánovaná úloha nepotrebuje:

Terminál, v priečinku freshrss
docker compose exec -T freshrss-db pg_dump -U freshrss freshrss | gzip -9 > freshrss-postgres-$(date +%F).sql.gz

Export OPML z rozhrania zálohuje váš zoznam kanálov, bez niektorých nastavení špecifických pre FreshRSS, ako sú prístupové údaje alebo pravidlá získavania obsahu stránok. Pre úplnú kópiu uchovávajte exporty SQLite: uložené na disku servera sa dostanú aj do jeho nočných záloh.

Obnova

  1. Zastavte FreshRSS príkazom docker compose stop freshrss.
  2. Načítajte archív späť do zväzkov: docker run --rm --volumes-from freshrss -v "$PWD":/backup ubuntu tar -xzf /backup/freshrss-YYYY-MM-DD.tgz -C /var/www/FreshRSS.
  3. Pri externej databáze ju obnovte z jej exportu alebo zo súborov SQLite príkazom cli/db-restore.php --delete-backup --force-overwrite.
  4. Znova spustite príkazom docker compose start freshrss a overte, že vaše kanály a články sú na mieste.

Toto cvičenie z času na čas zopakujte na kópii: takto overíte, že záloha funguje.

Aktualizácie

README pre Docker uvádza dva príkazy, spúšťané z priečinka so súborom compose.yaml. Zväzky zostávajú na mieste:

Terminál
docker compose pull
docker compose up -d

FreshRSS vydáva v dvoch kanáloch. Verzie s číslom vydania, značka latest, vychádzajú niekoľkokrát do roka, bez pevného kalendára, a ich opravy sa do starších verzií neprenášajú. Priebežné vydanie, značka edge, dostáva nové funkcie a opravy hneď, ako pribudnú: od verzie 1.30.0 ho projekt odporúča kvôli rýchlejším bezpečnostným opravám.

Aby ste mali prehľad o nových vydaniach, projekt zverejňuje kanál Atom svojich verzií: prihláste k nemu odber vo svojej vlastnej inštancii FreshRSS.

Kto čo robí na Managed VPS

Hostovanie na vlastnom serveri vyžaduje popri aplikácii starať sa aj o server. Na Managed VPS preberajú server naše tímy a vašu inštanciu proaktívne sledujú; FreshRSS zostáva vaším softvérom, s vašimi nastaveniami a údajmi.

TémaNaše tímyVy
ServerAktualizácie systému a zabezpečenia, vrátane zásahov na serveriČas, ktorý vyhovuje vašej činnosti
DohľadServer sledovaný 24 hodín denne, 7 dní v týždni, so zásahom bez čakania na vaše zavolanieČítanie záznamov vašej inštancie
FreshRSSProaktívne sledovanie: chyby, spomalenia a miesto na disku, s odporúčanou opravouJeho inštalácia, aktualizácie a nastavenia, ktoré zapracujete vy alebo váš AI asistent
Účty a kanályServer, ktorý ich nesie, sledovaný a zálohovanýPoužívatelia, odbery, rozšírenia a heslá API
ZálohyKaždú noc, šifrované a uchovávané mimo stroja; obnova je v ceneExporty špecifické pre FreshRSS a žiadosť o obnovu, keď ju potrebujete
MigráciaVáš súčasný server prenesený zdarmaČas prepnutia

Ak by ste uprednostnili, aby naše tímy zasiahli priamo v aplikácii, táto služba sa fakturuje hodinovo alebo paušálne, s cenovou ponukou oznámenou pred zásahom.

FreshRSS na serveri, o ktorý sa staráme za vás

S Managed VPS od Simafri udržiavajú naše tímy server vašej inštancie FreshRSS aktuálny, sledujú ho vo dne v noci a zasahujú bez čakania na vaše zavolanie; vašu inštanciu navyše proaktívne sledujú a odporúčajú vám užitočné opravy, ktoré zapracujete vy alebo váš AI asistent. Zálohy sa každú noc šifrujú a uchovávajú mimo stroja, ich obnova je v cene a migrácia vášho súčasného servera je zdarma.

Objaviť Managed VPS

Časté otázky

Je FreshRSS pre firmu zadarmo?

Áno. FreshRSS vychádza pod licenciou AGPL-3.0: môžete ho prevádzkovať vo firme bez licencie, ktorú by ste museli kupovať. Ak ho upravíte, vaša verzia musí ponúknuť zdrojový kód tým, ktorí ju používajú cez sieť. Zostáva náklad na server, na ktorom beží.

Ako nainštalovať FreshRSS cez Docker Compose?

Vytvorte compose.yaml s obrazom freshrss/freshrss, zväzkami data a extensions a portom publikovaným na 127.0.0.1 a spustite docker compose up -d. Potom pred neho umiestnite reverznú proxy s HTTPS, otvorte svoju adresu a postupujte podľa sprievodcu inštaláciou.

Ako automaticky obnovovať kanály vo FreshRSS?

S obrazom Docker zadajte do CRON_MIN minúty spustenia, napríklad 13,43: projekt odporúča približne dve spustenia za hodinu. Bez CRON_MIN zostáva zabudovaná úloha vypnutá. Rovnakú prácu urobí naplánovaná úloha na serveri, ktorá spúšťa app/actualize_script.php vnútri kontajnera.

Akú databázu zvoliť pre FreshRSS?

SQLite je zabudovaná a nevyžaduje žiadnu prípravu; README pre Docker ju opisuje ako najjednoduchšiu, s dobrým výkonom. Stránka s požiadavkami odporúča PostgreSQL 10 alebo novší a prijíma MariaDB 10.6 a MySQL 8.0. Príkazy db-backup a db-restore umožňujú databázu neskôr zmeniť.

Ako čítať FreshRSS na mobile?

V časti Overovanie zapnite prístup cez API a potom si vo svojom profile nastavte heslo API. V kompatibilnej aplikácii zadajte adresu api/greader.php svojej inštancie, pričom API Google Reader je podľa README najlepšie, alebo api/fever.php.

Sú registrácie vo FreshRSS otvorené?

Predvolene nie: konfigurácia obmedzuje účty na účet správcu. Ďalšie vytvoríte v časti Administrácia, Správa používateľov, alebo v systémovej konfigurácii zvýšite počet účtov, aby sa zobrazil registračný formulár.

Ako zálohovať FreshRSS?

Skopírujte zväzky data a extensions pri zastavenej službe. Zapnite tiež auto_sqlite_export a naplánujte cli/export-sqlite-auto.php, ktorý každú noc exportuje databázu každého používateľa do SQLite. Pri PostgreSQL pridajte pg_dump. Obnovu pravidelne testujte.

Pokrýva Managed VPS aj FreshRSS?

Managed VPS pokrýva server: systém, zabezpečenie, dohľad a zálohy. Naše tímy vašu inštanciu aj proaktívne sledujú a odporúčajú vám užitočné opravy, ktoré zapracujete vy. Zásah v samotnej aplikácii sa fakturuje hodinovo alebo paušálne.

Zdroje a oficiálna dokumentácia

Kontaktujte nás