A FreshRSS hosztolása Managed VPS-en azt jelenti, hogy Ön és a csapata egy saját gépről olvassa az RSS-hírcsatornáit, amelyet csapataink naprakészen tartanak, és éjjel-nappal felügyelnek. A FreshRSS AGPL-3.0 licenc alatt álló szabad szoftver. Ez az útmutató a hivatalos dokumentációját követi: a telepítést Docker Compose-zal, a HTTPS-t, a hírcsatornák frissítését, a fiókokat és a bejelentkezést, a mobilalkalmazások API-ját, az adatbázist, a mentéseket és a frissítéseket.
Szerző: Simon Vasconcelos Lee
Közzétéve 2026. november 11-énOlvasási idő: 13 perc
data és az extensions, HTTPS-t használó fordított proxy mögött.CRON_MIN változó magától frissíti a hírcsatornákat: a projekt óránként nagyjából két futtatást ajánl.data kötetet, PostgreSQL vagy MySQL esetén pedig az adatbázist is, majd frissítsen a docker compose pull paranccsal.A FreshRSS egy PHP-ban írt, saját üzemeltetésű RSS-hírcsatorna-gyűjtő. A README könnyűnek, egyszerűen kezelhetőnek, nagy tudásúnak és testreszabhatónak írja le, több mint húsz nyelvre lefordítva. Többfelhasználós alkalmazás, névtelen olvasási móddal és egyéni címkékkel.
A FreshRSS-t a közössége fejleszti a GitHubon, a hivatalos weboldalát pedig a FreshRSS közössége adja ki. A bővítmények külön tárolóban élnek, a dokumentáció pedig a felhasználóknak, az adminisztrátoroknak és a fejlesztőknek egyaránt szól.
A FreshRSS a GNU Affero General Public License, 3. verzió alatt jelenik meg: a composer.json manifestje AGPL-3.0 licencként deklarálja, a README pedig a licenc szövegére hivatkozik. A szöveg korlátlan engedélyt ad a módosítatlan program futtatására. A projekt által közzétett image-et tehát használhatja a vállalkozásához és a csapatához, licenc vásárlása nélkül.
A 13. szakasz az AGPL-re jellemző feltételt tesz hozzá: ha módosítja a programot, a változatának mindenkinek, aki távolról, a hálózaton keresztül használja, lehetőséget kell adnia a forráskód ingyenes megszerzésére. Az extensions kötetbe tett külső bővítményekre a saját licencük vonatkozik.
A projekt a hivatalos image-eit a Docker Hubon teszi közzé, freshrss/freshrss néven, egy példa Compose-fájllal együtt. Egy olyan szerveren, ahol a Docker telepítve van, hozzon létre egy freshrss nevű mappát, és helyezze bele ezt a compose.yaml fájlt, amely ebből a fájlból és a Dockerről szóló README-ből származik:
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
docker compose up -d
127.0.0.1 címen közzétett port: a FreshRSS csak az ugyanazon a szerveren beállított fordított proxyn keresztül érhető el. A projekt példafájlja helyi használatra teszi közzé a 8080-as portot; itt a 127.0.0.1 cím a proxynak tartja fenn.data kötet a konfigurációt, a fiókokat és SQLite esetén minden felhasználó adatbázisát tárolja. A README kiemeli, hogy ez tartalmazza az összes személyes adatot. A Docker Compose a mappáról nevezi el: freshrss_data.extensions kötet a külső bővítményeket tárolja, ha hozzáad ilyeneket.TZ a szerver időzónáját kapja, PHP-formátumban; alapértéke UTC.TRUSTED_PROXY a példafájl értékét tartja meg: azokat a privát címtartományokat, amelyekből a proxy kérései érkeznek. Ez dönti el, melyik cím kerül a naplókba, a látogatóé vagy a proxyé.cli/health.php szkriptet, így a Docker tudja, hogy a példány válaszol-e.Az alapértelmezett latest címke a legutóbbi verziószámmal ellátott kiadást követi; az edge a folyamatos kiadást követi; egy olyan címke, mint az 1.30.4, rögzít egy verziót, a -alpine utótag pedig ugyanezt adja Debian helyett Alpine alapon. A frissítésekről szóló szakasz visszatér erre a választásra.
Ha a fordított proxy a helyén van, nyissa meg a HTTPS-címét: a telepítővarázsló megkérdezi a nyelvet, ellenőrzi a szervert, felajánlja az adatbázis kiválasztását, majd létrehozza az adminisztrátori fiókot a jelszavával és a bejelentkezési móddal. Az SQLite semmilyen előkészítést nem igényel. A telepítés parancssorból is működik, a cli/do-install.php és a cli/create-user.php szkripttel, a docker exec --user www-data freshrss paranccsal futtatva.
Az erőforrásokról a README könnyű szervert kér, Linuxszal vagy Windowsszal, és megjegyzi, hogy a FreshRSS még egy Raspberry Pi 1-en is fut, egy másodpercnél rövidebb válaszidővel, 150 hírcsatornával és 22 000 cikkel. A méret a felhasználók és a hírcsatornák számától, valamint a megőrzött cikkek mennyiségétől függ. Egy Managed VPS esetén írja le nekünk a használatát, és mi azt a méretet javasoljuk, amely megfelel.
Éles használatra a Dockerről szóló README fordított proxyt tanácsol a gazdaszerveren, amely a HTTPS-t biztosítja. Először válasszon egy domainnevet vagy aldomaint, például rss.example.com, amely A és AAAA rekordokkal a szerverre mutat. A projekt a Traefiket ajánlja, és teljes Compose-fájlt tesz közzé hozzá, Let's Encrypt-tanúsítványokkal és a HTTP-ről HTTPS-re való átirányítással; Apache-hoz, Nginxhez és Caddyhez is ad példákat.
A Caddy magától megszerzi a tanúsítványt és bekapcsolja a HTTPS-t. Ez a blokk a dokumentáció aldomainre vonatkozó példáját követi, itt a helyben közzétett portra irányítva:
rss.example.com {
reverse_proxy 127.0.0.1:8080
}
Ez a blokk a Dockerről szóló README domaingyökérre vonatkozó Nginx-példáját követi, a 80-as portra szűkítve, hogy a Certbot beállíthassa a HTTPS-t. Az utolsó két sor továbbítja az Authorization fejlécet, amelyre a Google Reader API-nak szüksége van:
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;
}
}
A Certbot ezután telepíti a tanúsítványt, és gondoskodik a megújításáról:
sudo certbot --nginx
A FreshRSS a nyilvános címét a base_url értékben tartja, a data/config.php fájlban. Az API és a WebSub erre támaszkodik: ellenőrizze, hogy a https címét tartalmazza. A Dockerről szóló README megmutatja, hol található ez a fájl a kötetben:
docker volume inspect freshrss_data
sudo nano /var/lib/docker/volumes/freshrss_data/_data/config.php
docker compose restart freshrss
'base_url' => 'https://rss.example.com/',
A FreshRSS az app/actualize_script.php szkripttel tölti le az új cikkeket. A Docker image egy ütemezett feladatot tartalmaz, amely a CRON_MIN változóban megadott perceknél futtatja. E változó nélkül, vagy üres értékkel, a feladat kikapcsolva marad, és a hírcsatornák nem frissülnek maguktól.
13,43; a */20 is működik.base_url értékből olvas ki, és a telepítővarázsló bekapcsolja, ha a szervernek van ilyen címe.Egy másik dokumentált módszer: ütemezett feladat a gazdaszerveren, amely a konténeren belül hívja meg a szkriptet. Ebben az esetben távolítsa el a CRON_MIN változót a compose.yaml fájlból, hogy egyetlen módszer maradjon:
7,37 * * * * root docker exec --user www-data freshrss php ./app/actualize_script.php > /tmp/FreshRSS.log 2>&1
Az 1.30.0-s verzió óta a FreshRSS alapértelmezésként elutasítja a helyi hálózati címeket, például a 127.0.0.1 címet, hogy védjen a szerveroldali kéréshamisítás ellen. Egy szomszédos, hírcsatornákat előállító szolgáltatás, például az RSS-Bridge, az INTERNAL_HOST_ALLOWLIST változóval engedélyezhető, rss-bridge:80 formában, vagy a rendszerkonfigurációban. A * érték minden ellenőrzést megszüntet, és a dokumentáció nem biztonságosnak nevezi.
A telepítés során a FreshRSS az űrlapos bejelentkezést kínálja, amelyhez JavaScript szükséges. Ez az alapértelmezett módszer, és a legtöbb példánynak megfelel. A dokumentáció másokat is leír:
| Módszer | Mit csinál | Hol állítható |
|---|---|---|
| Űrlap | A FreshRSS saját felhasználóneve és jelszava | A telepítővarázsló |
| HTTP-hitelesítés | A webszerver ellenőrzi a hozzáférést, az új felhasználók pedig az első bejelentkezésükkor jönnek létre | Egy a konténerbe csatolt p/i/.htaccess fájl, a hozzá tartozó .htpasswd fájllal |
| Külső hitelesítés | A proxy a Remote-User vagy az X-WebAuth-User fejlécben adja át a bejelentkezett felhasználót | A TRUSTED_PROXY, amely a megbízható proxykat sorolja fel |
| OpenID Connect | A bejelentkezés az identitásszolgáltatóján keresztül történik, a mod_auth_openidc Apache-modullal | Az OIDC_ENABLED és az OIDC_* változók, a Debian alapú image-ben, x86_64 architektúrán |
A dokumentáció figyelmeztet, hogy a FreshRSS megbízik minden címben, amely a TRUSTED_PROXY listában szerepel: egy rosszul védett proxy lehetővé tenné, hogy egy támadó beállítsa a fejlécet, és adminisztrátori hozzáférést szerezzen. Itt a port csak a 127.0.0.1 címen figyel, ami a szerver saját proxyjának tartja fenn. A dokumentáció azt is tanácsolja, hogy ne üzemeltessen hitelesítés nélküli példányt, amint a szerver a hálózatán kívülről is elérhető.
data/config.php fájl mailer és smtp beállításával lehet megadni: a dokumentáció szerint a PHP mail függvényén keresztüli küldés a hivatalos Docker image-ekben még nem támogatott.Több személy által használt példánynál a dokumentáció azt tanácsolja, hogy olyan személyeknek nyisson fiókot, akikben megbízik, és a példányt egy olyan proxy vagy tűzfal mögött tartsa, amely blokkolja a belső címtartományokhoz való hozzáférést.
A FreshRSS a böngészőben, nagy és kis képernyőn egyaránt működik, valamint Androidra, iOS-re, Linuxra, Windowsra és macOS-re készült alkalmazásokban. Ezek az alkalmazások a két API egyikét használják: a Google Readert, amelyet a README a legjobbnak tart, és a Fevert, amely korlátozottabb funkciókat kínál, kevésbé hatékony és kevésbé biztonságos.
https://rss.example.com/api/greader.php címet, vagy Fever esetén a https://rss.example.com/api/fever.php címet, a felhasználónévvel és ezzel az API-jelszóval.Ellenőrzéshez a profilban az API-jelszó mellett megjelenő link egy tesztoldalt nyit meg: a teljes ellenőrzésnél megjelenő PASS igazolja, hogy minden működik. A Docker image Apache-a már elfogadja a kódolt perjeleket, amelyekre egyes alkalmazásoknak szükségük van; ha Nginx áll elöl, tartsa meg az Authorization fejléc továbbítását.
A README táblázatot vezet a kompatibilis alkalmazásokról, a platformjukkal, az API-jukkal és a funkcióikkal: többek között Androidon a Capy Reader és a Readrops, mobilon és asztalon a FeedFlow, asztalon az RSS Guard és a NewsFlash, iOS-en és macOS-en a ReadKit és a Reeder Classic.
A FreshRSS beépített SQLite-tal rendelkezik, amelyet a Dockerről szóló README a legegyszerűbb, jó teljesítményű lehetőségként ír le. A követelményeket leíró oldal a PostgreSQL 10-es vagy újabb verzióját ajánlja, és elfogadja a MariaDB 10.6-os és a MySQL 8.0-s vagy újabb verzióját is. A választás a telepítővarázslóban történik.
| Adatbázis | Beállítás | Mentés |
|---|---|---|
| SQLite | Nincs: felhasználónként egy fájl, data/users/<user>/db.sqlite | A data kötet |
| PostgreSQL | Egy postgres szolgáltatás ugyanabban a compose.yaml fájlban | pg_dump, vagy a cli/db-backup.php |
| MySQL vagy MariaDB | Az Ön adatbázis-szervere, és a gépneve a varázslóban | mysqldump, vagy a cli/db-backup.php |
PostgreSQL esetén adja hozzá ezt a szolgáltatást a compose.yaml fájlhoz, a projekt docker-compose-db.yml fájljából átvéve, a db kötetet pedig a kötetek listájához. A jelszó egy .env fájlba kerül, a compose.yaml mellé:
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}
DB_PASSWORD='a-long-unique-password'
A varázslóban válassza a PostgreSQL-t, és gépként adja meg a freshrss-db nevet, a felhasználóval, a jelszóval és a freshrss adatbázissal.
Ezt a választást később is módosíthatja. A dokumentáció leírja az egyik adatbázisról a másikra való áttérést, például MySQL-ről PostgreSQL-re, vagy a PostgreSQL egy újabb főverziójára: a cli/db-backup.php minden felhasználó adatbázisát egy SQLite-fájlba másolja, majd a cli/db-restore.php betölti az új adatbázisba.
A README kimondja, hogy a FreshRSS semmilyen garanciát nem vállal: a mentései őrzik meg a feliratkozásait, a cikkeit és a beállításait. Íme, mit kér menteni a dokumentáció:
| Elem | Mit őriz | Mentendő |
|---|---|---|
data/ | A konfiguráció, a fiókok, a naplók és SQLite esetén az adatbázisok | Kötelező; a cache/ kihagyható, a FreshRSS újraépíti |
extensions/ | A külső bővítmények | Ajánlott, ha használ ilyeneket |
| A külső adatbázis | PostgreSQL, MySQL vagy MariaDB esetén a felhasználók adatai | Kötelező, külön |
A dokumentáció biztonságosabbnak tartja, ha a karbantartási műveletek idejére leállítja a szolgáltatást. A Docker-kötetek egy ideiglenes konténerrel másolhatók, a Docker dokumentációjában leírt módszerrel:
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
Az 1.29.1-es verzió óta a FreshRSS maga is képes minden felhasználó adatbázisát SQLite-fájlba exportálni, bármilyen adatbázist használ, és csak a legutóbbiakat megtartani. Kapcsolja be ezt az exportot a data/config.php fájlban:
'auto_sqlite_export' => [
'enabled' => true,
'retention' => 7,
],
Ezután ütemezze a parancsot a szerveren, itt minden éjjelre. Minden futtatás egy data/users/<user>/sqlite-backups/<date>.sqlite fájlt ír, és törli az utolsó hét fájlon túliakat:
20 2 * * * root docker exec --user www-data freshrss cli/export-sqlite-auto.php --quiet
PostgreSQL esetén adjon hozzá egy exportot az adatbázis saját eszközével, ahogyan a Dockerről szóló README-ben. A -T kapcsoló elhagyja a terminált, amelyre egy ütemezett feladatnak nincs szüksége:
docker compose exec -T freshrss-db pg_dump -U freshrss freshrss | gzip -9 > freshrss-postgres-$(date +%F).sql.gz
A felületről indítható OPML-export a hírcsatornák listáját menti, a FreshRSS néhány saját beállítása, például a hozzáférési adatok vagy az oldalak kiolvasási szabályai nélkül. Teljes másolathoz őrizze meg az SQLite-exportokat: a szerver lemezére téve a szerver éjszakai mentéseibe is bekerülnek.
docker compose stop freshrss paranccsal.docker run --rm --volumes-from freshrss -v "$PWD":/backup ubuntu tar -xzf /backup/freshrss-YYYY-MM-DD.tgz -C /var/www/FreshRSS.cli/db-restore.php --delete-backup --force-overwrite paranccsal.docker compose start freshrss paranccsal, majd ellenőrizze, hogy a hírcsatornái és a cikkei megvannak-e.Ismételje meg ezt a gyakorlatot időnként, egy másolaton: így győződhet meg róla, hogy egy mentés működik.
A Dockerről szóló README két parancsot ad meg, a compose.yaml mappájából. A kötetek a helyükön maradnak:
docker compose pull
docker compose up -d
A FreshRSS két csatornán jelenik meg. A verziószámmal ellátott kiadások, latest címkével, évente néhányszor jelennek meg, rögzített naptár nélkül, és a javításaikat nem portolják vissza a régebbi verziókra. A folyamatos kiadás, edge címkével, az új funkciókat és javításokat azok elkészültével kapja meg: az 1.30.0-s verzió óta a projekt ezt ajánlja a gyorsabb biztonsági javításokért.
data/, a bővítmények és az adatbázis mentését kéri.1.29.1, teszik lehetővé ezt az utat.Az új kiadások követéséhez a projekt Atom-hírcsatornát tesz közzé a verzióiról: iratkozzon fel rá a saját FreshRSS-példányával.
A saját üzemeltetés az alkalmazás mellett a szerver gondozását is megköveteli. Egy Managed VPS esetén csapataink átveszik a szervert, és proaktívan követik a példányát; a FreshRSS továbbra is az Ön szoftvere marad, a beállításaival és az adataival.
| Téma | Csapataink | Ön |
|---|---|---|
| A szerver | Rendszer- és biztonsági frissítések, a szerveren végzett beavatkozásokkal együtt | A tevékenységének megfelelő időpont |
| A felügyelet | Éjjel-nappal, a hét minden napján követett szerver, beavatkozás a hívására való várakozás nélkül | A példánya naplóinak olvasása |
| FreshRSS | Proaktív követés: a hibák, lassulások és a lemezterület észlelése, javítás ajánlása | A telepítése, a frissítései és a beállításai, amelyeket Ön vagy MI-asszisztense alkalmaz |
| A fiókok és a hírcsatornák | A szerver, amely hordozza őket, felügyelve és mentve | A felhasználók, a feliratkozások, a bővítmények és az API-jelszavak |
| A mentések | Minden éjjel, titkosítva és a gépen kívül őrizve; a visszaállítással együtt | A FreshRSS saját exportjai, és a visszaállítási kérés, amikor szüksége van rá |
| Az átköltöztetés | A jelenlegi szervere átköltöztetve, ingyenesen | Az átállás időpontja |
Ha inkább azt szeretné, hogy csapataink magában az alkalmazásban avatkozzanak be, ez a szolgáltatás óradíjban vagy átalánydíjban számlázódik, a beavatkozás előtt közölt árajánlattal.
Egy Simafri Managed VPS esetében csapataink naprakészen tartják FreshRSS-példánya szerverét, éjjel-nappal felügyelik, és beavatkoznak anélkül, hogy a hívására várnának; proaktívan a példányát is követik, és javasolják a hasznos javításokat, amelyeket Ön vagy MI-asszisztense alkalmaz. A mentések minden éjjel titkosítva, a gépen kívül készülnek, a visszaállításuk a díj része, jelenlegi szervere átköltöztetése pedig ingyenes.
Igen. A FreshRSS AGPL-3.0 licenc alatt áll: licenc vásárlása nélkül futtathatja vállalkozásban. Ha módosítja, a változatának át kell adnia a forráskódját azoknak, akik a hálózaton keresztül használják. Marad a költsége annak a szervernek, amelyen fut.
Hozzon létre egy compose.yaml fájlt a freshrss/freshrss image-gel, a data és az extensions kötettel és a 127.0.0.1 címen közzétett porttal, majd futtassa a docker compose up -d parancsot. Ezután helyezzen elé egy HTTPS-t használó fordított proxyt, nyissa meg a címét, és kövesse a telepítővarázslót.
A Docker image esetén adja meg a CRON_MIN változóban a futtatás perceit, például 13,43: a projekt óránként nagyjából két futtatást ajánl. CRON_MIN nélkül a beépített feladat kikapcsolva marad. Ugyanezt a munkát elvégzi egy ütemezett feladat a szerveren, amely a konténeren belül futtatja az app/actualize_script.php szkriptet.
Az SQLite beépített, és semmilyen előkészítést nem igényel; a Dockerről szóló README a legegyszerűbbnek írja le, jó teljesítménnyel. A követelményeket leíró oldal a PostgreSQL 10-es vagy újabb verzióját ajánlja, és elfogadja a MariaDB 10.6-os és a MySQL 8.0-s verzióját. A db-backup és a db-restore parancs lehetővé teszi, hogy később adatbázist váltson.
Kapcsolja be az API-hozzáférést a Hitelesítés részben, majd állítson be egy API-jelszót a profiljában. Egy kompatibilis alkalmazásban adja meg a példánya api/greader.php címét, mivel a README szerint a Google Reader API a legjobb, vagy az api/fever.php címet.
Alapértelmezésként nem: a konfiguráció az adminisztrátoréra korlátozza a fiókokat. A többit az Adminisztráció, Felhasználók kezelése alatt hozza létre, vagy a rendszerkonfigurációban megemeli a fiókok számát, hogy megjelenjen a regisztrációs űrlap.
Másolja a data és az extensions kötetet leállított szolgáltatás mellett. Kapcsolja be az auto_sqlite_export beállítást is, és ütemezze a cli/export-sqlite-auto.php szkriptet, amely minden éjjel SQLite-ba exportálja minden felhasználó adatbázisát. PostgreSQL esetén adjon hozzá egy pg_dump exportot. Rendszeresen próbálja ki a visszaállítást.
A Managed VPS a szervert fedi le: a rendszert, a biztonságot, a felügyeletet és a mentéseket. Csapataink proaktívan a példányát is követik, és javasolják a hasznos javításokat, amelyeket Ön alkalmaz. Az alkalmazásban végzett beavatkozás óradíjban vagy átalánydíjban számlázódik.
Simafri
Beszéljünk a weboldaláról
Meséljen néhány szóban a projektjéről: hamarosan jelentkezünk.
Köszönjük! Kérését elküldtük. Hamarosan válaszolunk.
Inkább e-mailben? Írjon nekünk ide: support@simafri.com.