FreshRSS talpinimas Managed VPS serveryje reiškia, kad jūs ir jūsų komanda skaitote RSS srautus iš savo mašinos, kurią mūsų komandos prižiūri atnaujintą ir stebi dieną bei naktį. FreshRSS yra laisva programinė įranga su AGPL-3.0 licencija. Šis gidas seka oficialią jos dokumentaciją: diegimą su Docker Compose, HTTPS, srautų atnaujinimą, paskyras ir prisijungimą, API mobiliosioms programėlėms, duomenų bazę, atsargines kopijas ir atnaujinimus.
Autorius: Simon Vasconcelos Lee
Paskelbta 2026 m. lapkričio 11 d.Skaitymo trukmė: 13 min.
data ir extensions, už HTTPS atvirkštinio tarpinio serverio.CRON_MIN pats atnaujina srautus: projektas rekomenduoja maždaug du paleidimus per valandą.data ir, su PostgreSQL ar MySQL, duomenų bazės atsargines kopijas, o atnaujinkite su docker compose pull.FreshRSS yra PHP kalba parašyta RSS srautų kaupimo programa, skirta talpinti savo serveryje. README ją apibūdina kaip lengvą, paprastą naudoti, galingą ir pritaikomą, išverstą į daugiau nei dvidešimt kalbų. Tai daugelio naudotojų programa su anoniminio skaitymo režimu ir pasirinktinėmis žymomis.
FreshRSS kuria jos bendruomenė GitHub platformoje, o oficialią svetainę leidžia FreshRSS bendruomenė. Plėtiniai laikomi atskiroje saugykloje, o dokumentacija skirta naudotojams, administratoriams ir kūrėjams.
FreshRSS platinama pagal GNU Affero General Public License, 3 versiją: jos manifestas composer.json deklaruoja ją kaip AGPL-3.0, o README pateikia nuorodą į licencijos tekstą. Šiame tekste patvirtinamas neribotas leidimas paleisti nepakeistą programą. Todėl projekto paskelbtą atvaizdą galite naudoti savo įmonei ir komandai, nieko nepirkdami dėl licencijos.
13 straipsnis prideda AGPL būdingą sąlygą: jei programą keičiate, jūsų versija visiems ja nuotoliniu būdu, per tinklą, besinaudojantiems turi suteikti galimybę nemokamai gauti jos šaltinio kodą. Trečiosios šalies plėtiniui, įdėtam į tomą extensions, taikoma jo paties licencija.
Projektas savo oficialius atvaizdus skelbia Docker Hub kaip freshrss/freshrss, kartu su Compose failo pavyzdžiu. Serveryje, kuriame įdiegtas Docker, sukurkite katalogą freshrss ir įdėkite į jį šį compose.yaml, paimtą iš to failo ir Docker README:
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: FreshRSS pasiekiama tik per atvirkštinį tarpinį serverį, įdiegtą tame pačiame serveryje. Projekto pavyzdiniame faile 8080 prievadas paskelbiamas vietiniam naudojimui; čia adresas 127.0.0.1 jį palieka tarpiniam serveriui.data laiko konfigūraciją, paskyras ir, su SQLite, kiekvieno naudotojo duomenų bazę. README pabrėžia, kad jame yra visi asmeniniai duomenys. Docker Compose jį pavadina pagal katalogą: freshrss_data.extensions laiko trečiųjų šalių plėtinius, jei jų pridedate.TZ nurodo serverio laiko juostą PHP formatu; numatytoji reikšmė UTC.TRUSTED_PROXY išlaiko pavyzdinio failo reikšmę: privačius adresų diapazonus, iš kurių ateina tarpinio serverio užklausos. Nuo jos priklauso, kuris adresas patenka į žurnalus, lankytojo ar tarpinio serverio.cli/health.php, kad Docker žinotų, ar egzempliorius atsako.Numatytoji žyma latest seka naujausią numeruotą versiją; edge seka nuolat atnaujinamą versiją; žyma, pavyzdžiui, 1.30.4, užfiksuoja versiją, o priesaga -alpine pateikia tą patį Alpine, o ne Debian pagrindu. Prie šio pasirinkimo grįžtama atnaujinimų skyriuje.
Įdiegę atvirkštinį tarpinį serverį, atverkite savo HTTPS adresą: diegimo vedlys paklausia kalbos, patikrina serverį, pasiūlo pasirinkti duomenų bazę, tada sukuria administratoriaus paskyrą su jos slaptažodžiu ir prisijungimo būdu. SQLite veikia nieko neparuošus. Įdiegti galima ir iš komandinės eilutės su cli/do-install.php ir cli/create-user.php, paleidžiamais per docker exec --user www-data freshrss.
Dėl išteklių README nurodo lengvą serverį su Linux ar Windows ir pažymi, kad FreshRSS veikia net Raspberry Pi 1, atsakydama greičiau nei per sekundę, turint 150 srautų ir 22 000 straipsnių. Dydis priklauso nuo naudotojų, srautų ir saugomų straipsnių skaičiaus. Naudojant Managed VPS, papasakokite mums, kaip ketinate naudotis, ir mes rekomenduosime tinkamą dydį.
Gamybinei aplinkai Docker README pataria naudoti atvirkštinį tarpinį serverį pagrindiniame serveryje, kuris užtikrina HTTPS. Pirmiausia pasirinkite domeno vardą ar subdomeną, pavyzdžiui, rss.example.com, nukreiptą į serverį A ir AAAA įrašais. Projektas rekomenduoja Traefik ir jam skelbia visą Compose failą su Let’s Encrypt sertifikatais ir peradresavimu iš HTTP į HTTPS; jis taip pat pateikia pavyzdžių Apache, Nginx ir Caddy.
Caddy pati gauna sertifikatą ir įjungia HTTPS. Šis blokas seka dokumentacijos pavyzdį subdomenui, čia nukreiptą į vietiniu adresu paskelbtą prievadą:
rss.example.com {
reverse_proxy 127.0.0.1:8080
}
Šis blokas perima Docker README Nginx pavyzdį domeno šakniai, sutrumpintą iki 80 prievado, kad HTTPS įdiegtų Certbot. Paskutinės dvi eilutės perduoda antraštę Authorization, kurios reikia Google Reader API:
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;
}
}
Tada Certbot įdiegia sertifikatą ir pasirūpina jo atnaujinimu:
sudo certbot --nginx
FreshRSS savo viešą adresą laiko parametre base_url, faile data/config.php. Juo remiasi API ir WebSub: patikrinkite, ar jame yra jūsų https adresas. Docker README parodo, kur šį failą rasti tome:
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/',
FreshRSS naujus straipsnius gauna savo scenarijumi app/actualize_script.php. Docker atvaizde yra suplanuota užduotis, kuri jį paleidžia kintamajame CRON_MIN nurodytomis minutėmis. Be šio kintamojo arba su tuščia reikšme užduotis lieka išjungta, ir srautai patys nebeatsinaujina.
13,43; tinka ir */20.base_url, o diegimo vedlys jį įjungia, kai serveris tokį turi.Kitas dokumentuotas būdas: suplanuota užduotis pagrindiniame serveryje, kuri iškviečia scenarijų konteinerio viduje. Tokiu atveju pašalinkite CRON_MIN iš compose.yaml, kad liktų vienas būdas:
7,37 * * * * root docker exec --user www-data freshrss php ./app/actualize_script.php > /tmp/FreshRSS.log 2>&1
Nuo 1.30.0 versijos FreshRSS numatytai atmeta vietinio tinklo adresus, tokius kaip 127.0.0.1, kad apsisaugotų nuo serverio pusės užklausų klastojimo. Gretimai paslaugai, kuri kuria srautus, pavyzdžiui, RSS-Bridge, leidžiama per kintamąjį INTERNAL_HOST_ALLOWLIST, forma rss-bridge:80, arba sistemos konfigūracijoje. Reikšmė * panaikina visas patikras, o dokumentacija ją vadina nesaugia.
Diegimo metu FreshRSS pasiūlo prisijungimą per formą, kuriam reikia JavaScript. Tai numatytasis būdas, tinkantis daugumai egzempliorių. Dokumentacija aprašo ir kitus:
| Būdas | Ką jis daro | Kur nustatomas |
|---|---|---|
| Forma | FreshRSS skirtas naudotojo vardas ir slaptažodis | Diegimo vedlys |
| HTTP autentifikavimas | Prieigą kontroliuoja žiniatinklio serveris, o nauji naudotojai sukuriami pirmojo prisijungimo metu | Į konteinerį prijungtas failas p/i/.htaccess su jo .htpasswd |
| Išorinis autentifikavimas | Tarpinis serveris perduoda prisijungusį naudotoją antraštėje Remote-User arba X-WebAuth-User | TRUSTED_PROXY, kuriame išvardyti patikimi tarpiniai serveriai |
| OpenID Connect | Prisijungiama per jūsų tapatybės teikėją, naudojant Apache modulį mod_auth_openidc | OIDC_ENABLED ir kintamieji OIDC_*, Debian atvaizde x86_64 architektūrai |
Dokumentacija įspėja, kad FreshRSS pasitiki bet kuriuo adresu, nurodytu TRUSTED_PROXY: prastai apsaugotas tarpinis serveris leistų užpuolikui nustatyti antraštę ir gauti administratoriaus prieigą. Čia prievadas klausosi tik adresu 127.0.0.1, todėl jis paliekamas paties serverio tarpiniam serveriui. Dokumentacija taip pat nepataria naudoti egzemplioriaus be autentifikavimo, kai tik serverį galima pasiekti iš už jūsų tinklo ribų.
mailer ir smtp faile data/config.php: dokumentacija nurodo, kad siuntimas per PHP funkciją mail oficialiuose Docker atvaizduose dar nepalaikomas.Egzemplioriui, kuriuo naudojasi keli žmonės, dokumentacija pataria paskyras atverti žmonėms, kuriais pasitikite, ir laikyti egzempliorių už tarpinio serverio ar ugniasienės, blokuojančios prieigą prie vidinių adresų diapazonų.
FreshRSS veikia naršyklėje, tiek dideliuose, tiek mažuose ekranuose, ir programėlėse Android, iOS, Linux, Windows ir macOS sistemoms. Šios programėlės naudoja vieną iš dviejų jos API: Google Reader, kurią README vertina kaip geriausią, ir Fever, su ribotesnėmis funkcijomis, mažiau efektyvią ir mažiau saugią.
https://rss.example.com/api/greader.php arba https://rss.example.com/api/fever.php Fever atveju, su naudotojo vardu ir šiuo API slaptažodžiu.Patikrai profilyje šalia API slaptažodžio rodoma nuoroda atveria bandymo puslapį: PASS visoje patikroje patvirtina, kad viskas veikia. Docker atvaizdas Apache jau nustato priimti užkoduotus pasviruosius brūkšnius, kurių reikia kai kurioms programėlėms; su Nginx priekyje palikite antraštės Authorization perdavimą.
README pateikia suderinamų programėlių lentelę su jų platforma, API ir funkcijomis: tarp kitų, Capy Reader ir Readrops Android sistemai, FeedFlow mobiliesiems ir darbalaukiui, RSS Guard ir NewsFlash darbalaukiui, ReadKit ir Reeder Classic iOS ir macOS sistemoms.
FreshRSS turi integruotą SQLite, kurią Docker README apibūdina kaip paprasčiausią galimybę su geru našumu. Reikalavimų puslapis rekomenduoja PostgreSQL 10 ar naujesnę, taip pat priima MariaDB 10.6 ir MySQL 8.0 ar naujesnes. Pasirenkama diegimo vedlyje.
| Duomenų bazė | Įdiegimas | Atsarginė kopija |
|---|---|---|
| SQLite | Nereikia: po vieną failą kiekvienam naudotojui, data/users/<user>/db.sqlite | Tomas data |
| PostgreSQL | Paslauga postgres tame pačiame compose.yaml | pg_dump arba cli/db-backup.php |
| MySQL ar MariaDB | Jūsų duomenų bazės serveris ir jo pagrindinio kompiuterio vardas vedlyje | mysqldump arba cli/db-backup.php |
PostgreSQL atveju pridėkite šią paslaugą prie compose.yaml, paimtą iš projekto failo docker-compose-db.yml, o tomą db įtraukite į tomų sąrašą. Slaptažodis dedamas į failą .env, šalia compose.yaml:
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'
Vedlyje pasirinkite PostgreSQL ir kaip pagrindinį kompiuterį įveskite freshrss-db, su naudotoju, slaptažodžiu ir duomenų baze freshrss.
Prie šio pasirinkimo galite grįžti vėliau. Dokumentacija aprašo perėjimą iš vienos duomenų bazės į kitą, pavyzdžiui, iš MySQL į PostgreSQL, arba į naujesnę pagrindinę PostgreSQL versiją: cli/db-backup.php nukopijuoja kiekvieno naudotojo duomenų bazę į SQLite failą, tada cli/db-restore.php ją įkelia į naują duomenų bazę.
README nurodo, kad FreshRSS teikiama be jokios garantijos: jūsų atsarginės kopijos išsaugo jūsų prenumeratas, straipsnius ir nustatymus. Štai ką dokumentacija prašo kopijuoti:
| Elementas | Ką jis saugo | Atsarginė kopija |
|---|---|---|
data/ | Konfigūraciją, paskyras, žurnalus ir, su SQLite, duomenų bazes | Privaloma; cache/ galima praleisti, FreshRSS jį atkuria |
extensions/ | Trečiųjų šalių plėtinius | Rekomenduojama, jei jų naudojate |
| Išorinė duomenų bazė | Su PostgreSQL, MySQL ar MariaDB, naudotojų duomenis | Privaloma, atskirai |
Dokumentacija mano, kad techninės priežiūros metu saugiau paslaugą sustabdyti. Docker tomai kopijuojami laikinu konteineriu, Docker dokumentacijoje aprašytu būdu:
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
Nuo 1.29.1 versijos FreshRSS pati sugeba eksportuoti kiekvieno naudotojo duomenų bazę į SQLite failą, nesvarbu, kokią duomenų bazę naudojate, ir išlaikyti tik naujausius. Įjunkite šį eksportą faile data/config.php:
'auto_sqlite_export' => [
'enabled' => true,
'retention' => 7,
],
Tada suplanuokite komandą serveryje, čia kiekvieną naktį. Kiekvienas paleidimas įrašo data/users/<user>/sqlite-backups/<date>.sqlite ir ištrina failus, viršijančius paskutinius septynis:
20 2 * * * root docker exec --user www-data freshrss cli/export-sqlite-auto.php --quiet
Su PostgreSQL pridėkite eksportą pačios duomenų bazės įrankiu, kaip Docker README. Parinktis -T atsisako terminalo, kurio suplanuotai užduočiai nereikia:
docker compose exec -T freshrss-db pg_dump -U freshrss freshrss | gzip -9 > freshrss-postgres-$(date +%F).sql.gz
OPML eksportas iš sąsajos išsaugo jūsų srautų sąrašą, be kai kurių FreshRSS būdingų nustatymų, tokių kaip prieigos duomenys ar puslapių nuskaitymo taisyklės. Visai kopijai laikykite SQLite eksportus: padėti serverio diske, jie patenka ir į jo naktines atsargines kopijas.
docker compose stop freshrss.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.docker compose start freshrss, tada patikrinkite, ar jūsų srautai ir straipsniai vietoje.Retkarčiais pakartokite šį pratimą su kopija: taip įsitikinate, kad atsarginė kopija veikia.
Docker README pateikia dvi komandas, vykdomas kataloge su compose.yaml. Tomai lieka vietoje:
docker compose pull
docker compose up -d
FreshRSS versijas skelbia dviem kanalais. Numeruotos versijos, žyma latest, pasirodo kelis kartus per metus, be nustatyto tvarkaraščio, o jų pataisos neperkeliamos į senesnes versijas. Nuolat atnaujinama versija, žyma edge, naujas funkcijas ir pataisas gauna vos jas įtraukus: nuo 1.30.0 versijos projektas ją rekomenduoja dėl greitesnių saugumo pataisų.
data/, plėtinių ir duomenų bazės atsarginę kopiją.1.29.1.Kad sektumėte naujas versijas, projektas skelbia savo versijų Atom srautą: užsiprenumeruokite jį savo FreshRSS egzemplioriuje.
Talpinant savo serveryje, be programos reikia prižiūrėti ir patį serverį. Naudojant Managed VPS, mūsų komandos perima serverį ir proaktyviai stebi jūsų egzempliorių; FreshRSS lieka jūsų programa su savo nustatymais ir duomenimis.
| Tema | Mūsų komandos | Jūs |
|---|---|---|
| Serveris | Sistemos ir saugumo atnaujinimai, įskaitant įsikišimą serveryje | Jūsų veiklai tinkamas momentas |
| Stebėsena | Serveris stebimas 24 val. per parą, 7 dienas per savaitę, įsikišant nelaukiant jūsų skambučio | Jūsų egzemplioriaus žurnalų skaitymas |
| FreshRSS | Proaktyvi stebėsena: klaidos, sulėtėjimai ir disko vieta pastebimi, rekomenduojamas pataisymas | Jos diegimas, atnaujinimai ir nustatymai, kuriuos pritaikote jūs arba jūsų DI asistentas |
| Paskyros ir srautai | Juos laikantis serveris, stebimas ir saugomas atsarginėmis kopijomis | Naudotojai, prenumeratos, plėtiniai ir API slaptažodžiai |
| Atsarginės kopijos | Kiekvieną naktį, šifruotos ir saugomos už mašinos ribų; atkūrimas įskaičiuotas | FreshRSS savi eksportai ir atkūrimo prašymas, kai jo prireikia |
| Perkėlimas | Jūsų dabartinis serveris perkeliamas nemokamai | Perjungimo momentas |
Jei norite, kad mūsų komandos įsikištų į pačią programą, ši paslauga apmokestinama valandomis arba fiksuota kaina, o skaičiavimas pateikiamas prieš įsikišimą.
Su Simafri Managed VPS mūsų komandos palaiko jūsų FreshRSS egzemplioriaus serverį atnaujintą, stebi jį dieną ir naktį ir įsikiša nelaukdamos jūsų skambučio; jos taip pat proaktyviai stebi jūsų egzempliorių ir rekomenduoja naudingus pataisymus, kuriuos pritaikote jūs arba jūsų DI asistentas. Atsarginės kopijos kiekvieną naktį šifruojamos ir saugomos už mašinos ribų, jų atkūrimas įskaičiuotas, o jūsų dabartinio serverio perkėlimas nemokamas.
Taip. FreshRSS platinama pagal AGPL-3.0 licenciją: įmonėje ją galite paleisti nieko nepirkdami dėl licencijos. Jei ją keičiate, jūsų versija turi pateikti šaltinio kodą tiems, kurie ja naudojasi per tinklą. Lieka tik ją vykdančio serverio kaina.
Sukurkite compose.yaml su atvaizdu freshrss/freshrss, tomais data ir extensions bei prievadu, paskelbtu adresu 127.0.0.1, tada paleiskite docker compose up -d. Po to prieš jį pastatykite HTTPS atvirkštinį tarpinį serverį, atverkite savo adresą ir sekite diegimo vedlį.
Su Docker atvaizdu kintamajame CRON_MIN nurodykite paleidimo minutes, pavyzdžiui, 13,43: projektas rekomenduoja maždaug du paleidimus per valandą. Be CRON_MIN integruota užduotis lieka išjungta. Tą patį darbą atlieka ir suplanuota užduotis serveryje, kuri paleidžia app/actualize_script.php konteinerio viduje.
SQLite yra integruota ir nieko nereikia ruošti; Docker README ją apibūdina kaip paprasčiausią, su geru našumu. Reikalavimų puslapis rekomenduoja PostgreSQL 10 ar naujesnę ir priima MariaDB 10.6 bei MySQL 8.0. Komandos db-backup ir db-restore leidžia vėliau pakeisti duomenų bazę.
Skiltyje Authentication įjunkite prieigą prie API, tada savo profilyje nustatykite API slaptažodį. Suderinamoje programėlėje įveskite savo egzemplioriaus adresą api/greader.php, nes pagal README Google Reader API yra geriausia, arba api/fever.php.
Numatytai ne: konfigūracija paskyras riboja administratoriaus paskyra. Kitas sukuriate skiltyje Administration, Manage users, arba sistemos konfigūracijoje padidinate paskyrų skaičių, kad būtų rodoma registracijos forma.
Sustabdę paslaugą, nukopijuokite tomus data ir extensions. Taip pat įjunkite auto_sqlite_export ir suplanuokite cli/export-sqlite-auto.php, kuris kiekvieną naktį eksportuoja kiekvieno naudotojo duomenų bazę į SQLite. Su PostgreSQL pridėkite pg_dump. Reguliariai išbandykite atkūrimą.
Managed VPS apima serverį: sistemą, saugumą, stebėseną ir atsargines kopijas. Mūsų komandos taip pat proaktyviai stebi jūsų egzempliorių ir rekomenduoja naudingus pataisymus, kuriuos pritaikote jūs. Įsikišimas į pačią programą apmokestinamas valandomis arba fiksuota kaina.
Simafri
Pakalbėkime apie jūsų sumanymą
Pasakykite mums keliais žodžiais, ko jums reikia: greitai jums atsakome.
Ačiū! Jūsų užklausa išsiųsta. Netrukus su jumis susisieksime.
Labiau mėgstate el. paštą? Rašykite mums adresu support@simafri.com.