FreshRSS-i majutamine Managed VPS-is: teie RSS-vood teie enda serveris

FreshRSS-i majutamine Managed VPS-is tähendab, et teie ja teie meeskond loete oma RSS-vooge masinast, mis on teie enda ning mida meie meeskonnad hoiavad ajakohasena ja jälgivad päeval ja öösel. FreshRSS on AGPL-3.0-litsentsiga vabatarkvara. See juhend järgib selle ametlikku dokumentatsiooni: paigaldus Docker Compose’iga, HTTPS, voogude värskendamine, kontod ja sisselogimine, API mobiilirakendustele, andmebaas, varukoopiad ja uuendused.

Simon Vasconcelos Lee Autor: Avaldatud 11. novembril 2026Lugemisaeg: 13 minutit

Kõik juhendid

Lühidalt

  1. AGPL-3.0-litsents lubab FreshRSS-i vabalt käitada, ettevõttes ja mujal; kui te seda muudate, pakute oma versiooni lähtekoodi neile, kes seda kasutavad.
  2. Paigaldage see Docker Compose’iga: üks tõmmis, kohalikult avaldatud port ja kaks köidet, data ja extensions, HTTPS-iga pöördproksi taga.
  3. Muutuja CRON_MIN värskendab vooge iseenesest: projekt soovitab umbes kahte käivitust tunnis.
  4. Registreerimine on vaikimisi suletud. Mobiilirakenduste jaoks lubage API ja seejärel määrab iga kasutaja API-parooli.
  5. Varundage köide data ning PostgreSQL-i või MySQL-i puhul andmebaas ja uuendage käsuga docker compose pull.

Mida FreshRSS teeb

FreshRSS on PHP-s kirjutatud ise majutatav RSS-voogude koondaja. README kirjeldab seda kui kerget, hõlpsasti kasutatavat, võimekat ja kohandatavat, enam kui kahekümnesse keelde tõlgituna. See on mitme kasutajaga rakendus, anonüümse lugemisrežiimi ja kohandatud siltidega.

FreshRSS-i arendab selle kogukond GitHubis ja selle ametlikku veebisaiti avaldab FreshRSS-i kogukond. Laiendused asuvad eraldi hoidlas ning dokumentatsioon katab kasutajad, administraatorid ja arendajad.

Mida AGPL-3.0-litsents lubab

FreshRSS avaldatakse litsentsi GNU Affero General Public License, versioon 3 all: selle manifest composer.json deklareerib selle kui AGPL-3.0 ja selle README viitab litsentsi tekstile. See tekst kinnitab piiramatut luba muutmata programmi käitada. Seega võite projekti avaldatud tõmmist kasutada oma ettevõtte ja meeskonna jaoks, ilma et peaksite litsentsi ostma.

Artikkel 13 lisab AGPL-ile omase tingimuse: kui te programmi muudate, peab teie versioon pakkuma kõigile, kes seda kaugelt, võrgu kaudu kasutavad, võimalust saada selle lähtekood tasuta. Köitesse extensions lisatud kolmanda osapoole laiendus järgib oma litsentsi.

Paigaldus Docker Compose’iga

Projekt avaldab oma ametlikud tõmmised Docker Hubis nime all freshrss/freshrss, koos näidis-Compose’i failiga. Looge serveris, kuhu Docker on paigaldatud, kaust nimega freshrss ja pange sinna see compose.yaml, mis põhineb sellel failil ja Dockeri README-l:

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
Terminal, kaustas freshrss
docker compose up -d

Vaikesilt latest järgib viimast versiooniga väljalaset; edge järgib pidevat väljalaset; silt nagu 1.30.4 fikseerib versiooni ja järelliide -alpine annab sama Alpine’i baasil Debiani asemel. Uuenduste jaotis tuleb selle valiku juurde tagasi.

Paigalduse lõpetamine

Kui pöördproksi on paigas, avage oma HTTPS-aadress: seadistusviisard küsib keelt, kontrollib serverit, pakub andmebaasi valikut ning loob seejärel administraatori konto koos selle parooli ja sisselogimisviisiga. SQLite töötab ilma ettevalmistuseta. Paigaldus toimib ka käsurealt, skriptidega cli/do-install.php ja cli/create-user.php, mis käivitatakse käsuga docker exec --user www-data freshrss.

Ressursside osas nõuab README kerget serverit Linuxi või Windowsiga ning märgib, et FreshRSS töötab isegi Raspberry Pi 1-l alla sekundiliste vastamisaegadega, 150 voo ja 22 000 artikliga. Suurus sõltub kasutajate, voogude ja säilitatavate artiklite arvust. Managed VPS-is kirjeldage meile oma kasutust ja soovitame sobiva suuruse.

HTTPS: pöördproksi

Tootmiskasutuseks soovitab Dockeri README hostserveris pöördproksit, mis pakub HTTPS-i. Valige kõigepealt domeeninimi või alamdomeen, näiteks rss.example.com, mis viitab serverile A- ja AAAA-kirjetega. Projekt soovitab Traefikut ja avaldab selle jaoks täieliku Compose’i faili Let’s Encrypti sertifikaatide ja HTTP-lt HTTPS-ile suunamisega; samuti annab see näiteid Apache’i, Nginxi ja Caddy jaoks.

Caddy-ga

Caddy hangib sertifikaadi ja lubab HTTPS-i ise. See plokk järgib dokumentatsiooni alamdomeeni näidet, mis on siin suunatud kohalikult avaldatud pordile:

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

Nginxi ja Certbotiga

See plokk järgib Dockeri README Nginxi näidet domeeni juure jaoks, mis on taandatud pordile 80, et Certbot saaks HTTPS-i paigaldada. Kaks viimast rida edastavad päise Authorization, mida Google Readeri API vajab:

Nginxi plokk
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 paigaldab seejärel sertifikaadi ja hoolitseb selle uuendamise eest:

Terminal
sudo certbot --nginx

Avalik aadress: base_url

FreshRSS hoiab oma avalikku aadressi väljal base_url failis data/config.php. API ja WebSub tuginevad sellele: kontrollige, et seal on teie https-aadress. Dockeri README näitab, kust see fail köitest leida:

Terminal
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/',

Voogude värskendamine: CRON_MIN

FreshRSS toob uued artiklid oma skriptiga app/actualize_script.php. Dockeri tõmmisega tuleb kaasa ajastatud ülesanne, mis käivitab selle muutujas CRON_MIN antud minutitel. Ilma selle muutujata või tühja väärtusega jääb ülesanne välja lülitatuks ja vood ei värskene enam iseenesest.

Teine dokumenteeritud meetod: ajastatud ülesanne hostserveris, mis kutsub skripti konteineri sees. Sel juhul eemaldage CRON_MIN failist compose.yaml, et jääks üks meetod:

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

Alates versioonist 1.30.0 keeldub FreshRSS vaikimisi kohaliku võrgu aadressidest nagu 127.0.0.1, et kaitsta serveripoolse päringu võltsimise eest. Kõrvalteenus, mis toodab vooge, näiteks RSS-Bridge, lubatakse muutujaga INTERNAL_HOST_ALLOWLIST kujul rss-bridge:80 või süsteemi konfiguratsioonis. Väärtus * eemaldab kõik kontrollid ja dokumentatsioon peab seda ebaturvaliseks.

Kontod ja sisselogimine

Paigaldamise ajal pakub FreshRSS vormiga sisselogimist, mis nõuab JavaScripti. See on vaikemeetod ja sobib enamikule instantsidele. Dokumentatsioon kirjeldab ka teisi:

MeetodMida see teebKus seda seadistatakse
VormFreshRSS-i oma kasutajanimi ja paroolSeadistusviisard
HTTP-autentimineVeebiserver kontrollib ligipääsu ja uued kasutajad luuakse nende esimesel sisselogimiselKonteinerisse paigaldatud fail p/i/.htaccess koos selle failiga .htpasswd
Väline autentimineProksi edastab sisselogitud kasutaja päises Remote-User või X-WebAuth-UserTRUSTED_PROXY, mis loetleb usaldusväärsed proksid
OpenID ConnectSisselogimine käib teie identiteedipakkuja kaudu, Apache’i mooduliga mod_auth_openidcOIDC_ENABLED ja muutujad OIDC_*, Debiani tõmmises x86_64 jaoks

Dokumentatsioon hoiatab, et FreshRSS usaldab iga aadressi, mis on loetletud muutujas TRUSTED_PROXY: halvasti kaitstud proksi laseks ründajal päise seada ja saada administraatori ligipääsu. Siin kuulab port ainult aadressil 127.0.0.1, mis jätab selle serveri enda proksile. Dokumentatsioon soovitab ka vältida autentimiseta instantsi niipea, kui server on teie võrgust väljastpoolt kättesaadav.

Registreerimine ja kasutajad

Mitme inimese jagatud instantsi puhul soovitab dokumentatsioon avada kontod inimestele, keda usaldate, ja hoida instantsi proksi või tulemüüri taga, mis blokeerib ligipääsu sisemistele aadressivahemikele.

Mobiilirakendused: Google Readeri ja Feveri API-d

FreshRSS töötab brauseris, nii suurtel kui väikestel ekraanidel, ning rakendustes Androidile, iOS-ile, Linuxile, Windowsile ja macOS-ile. Need rakendused kasutavad üht selle kahest API-st: Google Reader, mida README hindab parimaks, ja Fever, piiratumate funktsioonidega, vähem tõhus ja vähem turvaline.

  1. Lülitage administraatorina jaotises Autentimine sisse valik, mis lubab API ligipääsu.
  2. Iga kasutaja määrab oma profiilis API-parooli. See on peaparoolist eraldi, annab ligipääsu vähematele asjadele ja on mõeldud vähem turvalisteks olukordadeks.
  3. Sisestage rakenduses aadress https://rss.example.com/api/greader.php või Feveri jaoks https://rss.example.com/api/fever.php, koos kasutajanime ja selle API-parooliga.

Kontrollimiseks avab profiilis API-parooli kõrval kuvatud link testlehe: PASS täieliku kontrolli juures kinnitab, et kõik toimib. Dockeri tõmmis seadistab Apache’i juba kodeeritud kaldkriipse aktsepteerima, mida mõned rakendused vajavad; Nginxiga ees säilitage päise Authorization edastamine.

README peab ühilduvate rakenduste tabelit koos nende platvormi, API ja funktsioonidega: muu hulgas Capy Reader ja Readrops Androidil, FeedFlow mobiilis ja töölaual, RSS Guard ja NewsFlash töölaual, ReadKit ja Reeder Classic iOS-il ja macOS-il.

SQLite, PostgreSQL, MySQL või MariaDB

FreshRSS-il on SQLite sisse ehitatud, mida Dockeri README kirjeldab kui lihtsaimat valikut, hea jõudlusega. Nõuete leht soovitab PostgreSQL 10 või uuemat ning aktsepteerib ka MariaDB 10.6 ja MySQL 8.0 või uuemat. Valik tehakse seadistusviisardis.

AndmebaasSeadistamineVarukoopia
SQLitePole vaja: üks fail kasutaja kohta, data/users/<user>/db.sqliteKöide data
PostgreSQLTeenus postgres samas failis compose.yamlpg_dump või cli/db-backup.php
MySQL või MariaDBTeie andmebaasiserver ja selle hostinimi viisardismysqldump või cli/db-backup.php

PostgreSQL-i jaoks lisage faili compose.yaml see teenus, mis põhineb projekti failil docker-compose-db.yml, ning köidete loendisse köide db. Parool läheb faili .env, faili compose.yaml kõrvale:

compose.yaml, jaotises 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'

Valige viisardis PostgreSQL ja sisestage hostiks freshrss-db, koos kasutaja, parooli ja andmebaasiga freshrss.

Selle valiku juurde saate hiljem tagasi tulla. Dokumentatsioon kirjeldab üleminekut ühelt andmebaasilt teisele, näiteks MySQL-ilt PostgreSQL-ile, või PostgreSQL-i uuemale peaversioonile: cli/db-backup.php kopeerib iga kasutaja andmebaasi SQLite’i faili ja seejärel laadib cli/db-restore.php selle uude andmebaasi.

Varukoopiad

README märgib, et FreshRSS-iga ei kaasne mingit garantiid: teie varukoopiad säilitavad teie tellimused, artiklid ja sätted. Siin on see, mida dokumentatsioon palub varundada:

ElementMida see hoiabVarundada
data/Konfiguratsioon, kontod, logid ja SQLite’i puhul andmebaasidKohustuslik; cache/ võib vahele jätta, FreshRSS ehitab selle uuesti
extensions/Kolmandate osapoolte laiendusedSoovitatav, kui neid kasutate
Väline andmebaasPostgreSQL-i, MySQL-i või MariaDB puhul kasutajate andmedKohustuslik, eraldi

Köited, teenus peatatud

Dokumentatsioon peab hooldustoimingute ajal teenuse peatamist turvalisemaks. Dockeri köited kopeeritakse ajutise konteineriga, Dockeri dokumentatsioonis kirjeldatud meetodil:

Terminal, kaustas 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

Andmebaasid, teenus töötamas

Alates versioonist 1.29.1 oskab FreshRSS iga kasutaja andmebaasi ise SQLite’i faili eksportida, olenemata kasutatavast andmebaasist, ja hoida alles ainult viimased. Lülitage see eksport sisse failis data/config.php:

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

Seejärel ajastage käsk serveris, siin igaks ööks. Iga käivitus kirjutab faili data/users/<user>/sqlite-backups/<date>.sqlite ja kustutab failid, mis on üle viimase seitsme:

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

PostgreSQL-i puhul lisage eksport andmebaasi enda tööriistaga, nagu Dockeri README-s. Valik -T loobub terminalist, mida ajastatud ülesanne ei vaja:

Terminal, kaustas freshrss
docker compose exec -T freshrss-db pg_dump -U freshrss freshrss | gzip -9 > freshrss-postgres-$(date +%F).sql.gz

Liidesest tehtav OPML-eksport varundab teie voogude loendi, ilma mõne FreshRSS-ile omase sätteta, nagu juurdepääsuandmed või lehtede kraapimise reeglid. Täieliku koopia jaoks hoidke SQLite’i eksporte: serveri kettale pandud, jõuavad need ka selle öistesse varukoopiatesse.

Taastamine

  1. Peatage FreshRSS käsuga docker compose stop freshrss.
  2. Laadige arhiiv tagasi köidetesse: docker run --rm --volumes-from freshrss -v "$PWD":/backup ubuntu tar -xzf /backup/freshrss-YYYY-MM-DD.tgz -C /var/www/FreshRSS.
  3. Välise andmebaasi korral taastage see selle ekspordist või SQLite’i failidest käsuga cli/db-restore.php --delete-backup --force-overwrite.
  4. Käivitage uuesti käsuga docker compose start freshrss ja kontrollige, et teie vood ja artiklid on alles.

Korrake seda harjutust aeg-ajalt koopia peal: nii veendute, et varukoopia toimib.

Uuendused

Dockeri README annab kaks käsku, mida käivitatakse kaustast, kus asub compose.yaml. Köited jäävad paigale:

Terminal
docker compose pull
docker compose up -d

FreshRSS avaldab kahes kanalis. Versiooniga väljalasked, silt latest, ilmuvad paar korda aastas, kindla kalendrita, ja nende parandusi vanematesse versioonidesse üle ei kanta. Pidev väljalase, silt edge, saab uued funktsioonid ja parandused kohe, kui need valmivad: alates versioonist 1.30.0 soovitab projekt seda kiiremate turvaparanduste jaoks.

Uute väljalasete jälgimiseks avaldab projekt oma versioonide Atom-voo: tellige see oma FreshRSS-i instantsi.

Kes mida teeb Managed VPS-is

Ise majutamine nõuab lisaks rakendusele ka serveri hoidmist. Managed VPS-is võtavad meie meeskonnad serveri enda hoole alla ja jälgivad teie instantsi proaktiivselt; FreshRSS jääb teie tarkvaraks oma sätete ja andmetega.

TeemaMeie meeskonnadTeie
ServerSüsteemi- ja turvauuendused, sekkumised serverisse kaasa arvatudHetk, mis sobib teie tegevusele
SeireServerit jälgitakse ööpäevaringselt, sekkumisega ilma teie kõnet ootamataTeie instantsi logide lugemine
FreshRSSProaktiivne jälgimine: vead, aeglus ja kettaruum avastatakse, parandus soovitatakseSelle paigaldus, uuendused ja sätted, mille rakendate teie või teie tehisintellekti assistent
Kontod ja voodNeid kandev server, jälgitud ja varundatudKasutajad, tellimused, laiendused ja API-paroolid
VarukoopiadIgal ööl, krüpteeritult ja masinast väljaspool hoituna; taastamine sisaldubFreshRSS-i enda ekspordid ja taastamistaotlus, kui seda vajate
ÜleviimineTeie praeguse serveri üleviimine, tasutaÜmberlülitamise hetk

Kui eelistate, et meie meeskonnad sekkuksid rakendusse endasse, arveldatakse see teenus tunni- või kindlahinnaga, hinnapakkumine edastatakse enne sekkumist.

FreshRSS teie eest hoitud serveris

Simafri Managed VPS-iga hoiavad meie meeskonnad teie FreshRSS-i instantsi serveri ajakohasena, jälgivad seda päeval ja öösel ning sekkuvad ilma teie kõnet ootamata; nad jälgivad ka teie instantsi proaktiivselt ja soovitavad teile kasulikud parandused, mille rakendate ise või oma tehisintellekti assistendiga. Varukoopiad krüpteeritakse igal ööl ja hoitakse väljaspool masinat, nende taastamine sisaldub hinnas ning teie praeguse serveri üleviimine on tasuta.

Vaadake Managed VPS

Korduma kippuvad küsimused

Kas FreshRSS on ettevõttele tasuta?

Jah. FreshRSS on AGPL-3.0-litsentsiga: võite seda ettevõttes käitada, ilma et peaksite litsentsi ostma. Kui te seda muudate, peab teie versioon pakkuma oma lähtekoodi neile, kes seda võrgu kaudu kasutavad. Jääb ainult seda käitava serveri hind.

Kuidas paigaldada FreshRSS Docker Compose’iga?

Looge compose.yaml tõmmisega freshrss/freshrss, köidetega data ja extensions ning aadressil 127.0.0.1 avaldatud pordiga ja käivitage docker compose up -d. Pange seejärel selle ette HTTPS-iga pöördproksi, avage oma aadress ja järgige seadistusviisardit.

Kuidas FreshRSS-is vooge automaatselt värskendada?

Dockeri tõmmisega andke muutujale CRON_MIN käivitusminutid, näiteks 13,43: projekt soovitab umbes kahte käivitust tunnis. Ilma CRON_MIN-ita jääb sisseehitatud ülesanne välja lülitatuks. Sama tööd teeb serveris ajastatud ülesanne, mis käivitab konteineri sees app/actualize_script.php.

Millise andmebaasi FreshRSS-i jaoks valida?

SQLite on sisse ehitatud ega vaja ettevalmistust; Dockeri README kirjeldab seda kui lihtsaimat, hea jõudlusega. Nõuete leht soovitab PostgreSQL 10 või uuemat ning aktsepteerib MariaDB 10.6 ja MySQL 8.0. Käsud db-backup ja db-restore võimaldavad hiljem andmebaasi vahetada.

Kuidas lugeda FreshRSS-i mobiilis?

Lülitage jaotises Autentimine sisse API ligipääs ja määrake seejärel oma profiilis API-parool. Sisestage ühilduvas rakenduses oma instantsi aadress api/greader.php, kuna README järgi on Google Readeri API parim, või api/fever.php.

Kas FreshRSS-is on registreerimine avatud?

Vaikimisi mitte: konfiguratsioon piirab kontod administraatori omaga. Teised loote jaotises Administreerimine, Kasutajate haldus, või suurendate süsteemi konfiguratsioonis kontode arvu, et registreerimisvorm kuvada.

Kuidas FreshRSS-i varundada?

Kopeerige köited data ja extensions peatatud teenusega. Lülitage sisse ka auto_sqlite_export ja ajastage cli/export-sqlite-auto.php, mis ekspordib igal ööl iga kasutaja andmebaasi SQLite’i. PostgreSQL-i puhul lisage pg_dump. Testige taastamist regulaarselt.

Kas Managed VPS katab FreshRSS-i?

Managed VPS katab serveri: süsteem, turvalisus, seire ja varukoopiad. Meie meeskonnad jälgivad ka teie instantsi proaktiivselt ja soovitavad teile kasulikud parandused, mille rakendate teie. Sekkumine rakendusse arveldatakse tunni- või kindlahinnaga.

Allikad ja ametlik dokumentatsioon

Võtke meiega ühendust