Mitināt FreshRSS Managed VPS serverī: jūsu RSS plūsmas jūsu serverī

Mitināt FreshRSS Managed VPS serverī nozīmē, ka jūs un jūsu komanda lasāt savas RSS plūsmas uz savas mašīnas, ko mūsu komandas uztur atjauninātu un uzrauga dienu un nakti. FreshRSS ir atvērtā koda programmatūra ar AGPL-3.0 licenci. Šis ceļvedis seko tā oficiālajai dokumentācijai: uzstādīšana ar Docker Compose, HTTPS, plūsmu atjaunināšana, konti un pieteikšanās, API mobilajām lietotnēm, datubāze, rezerves kopijas un atjauninājumi.

Simon Vasconcelos Lee Autors: Publicēts 2026. gada 11. novembrīLasīšanas laiks: 13 minūtes

Visi ceļveži

Galvenais

  1. AGPL-3.0 licence ļauj FreshRSS brīvi darbināt gan uzņēmumā, gan citur; ja to mainīsiet, savas versijas pirmkodu piedāvājat tiem, kas to izmanto.
  2. Uzstādiet to ar Docker Compose: viens attēls, lokāli publicēts ports un divi sējumi, data un extensions, aiz HTTPS reversā starpniekservera.
  3. Mainīgais CRON_MIN pats atjaunina plūsmas: projekts iesaka aptuveni divas palaišanas stundā.
  4. Reģistrācijas pēc noklusējuma ir slēgtas. Mobilajām lietotnēm ieslēdziet API, pēc tam katrs lietotājs iestata API paroli.
  5. Veidojiet sējuma data rezerves kopiju un, ja izmantojat PostgreSQL vai MySQL, arī datubāzes kopiju, pēc tam atjauniniet ar docker compose pull.

Ko dara FreshRSS

FreshRSS ir RSS plūsmu apkopotājs, uzrakstīts PHP valodā un paredzēts mitināšanai savā serverī. Tā README to raksturo kā vieglu, ērti lietojamu, jaudīgu un pielāgojamu, tulkotu vairāk nekā divdesmit valodās. Tā ir daudzlietotāju lietojumprogramma ar anonīmas lasīšanas režīmu un pielāgotām birkām.

FreshRSS izstrādā tā kopiena GitHub vietnē, un tā oficiālo vietni publicē FreshRSS kopiena. Paplašinājumi atrodas atsevišķā repozitorijā, un dokumentācija aptver lietotājus, administratorus un izstrādātājus.

Ko atļauj AGPL-3.0 licence

FreshRSS tiek publicēts ar GNU Affero General Public License, 3. versiju: tā manifests composer.json to deklarē kā AGPL-3.0, un README sniedz saiti uz licences tekstu. Šis teksts apliecina neierobežotu atļauju darbināt nemainītu programmu. Tāpēc jūs varat savam uzņēmumam un komandai izmantot projekta publicēto attēlu, nepērkot nekādu licenci.

13. pants pievieno AGPL raksturīgu nosacījumu: ja jūs mainīsiet programmu, jūsu versijai jādod ikvienam, kas to izmanto attālināti, caur tīklu, iespēja bez maksas iegūt tās pirmkodu. Trešās puses paplašinājumam, kas pievienots sējumā extensions, ir sava licence.

Uzstādīšana ar Docker Compose

Projekts publicē savus oficiālos attēlus Docker Hub vietnē ar nosaukumu freshrss/freshrss, kopā ar Compose faila piemēru. Serverī, kur uzstādīts Docker, izveidojiet mapi freshrss un ievietojiet tajā šo compose.yaml, ņemtu no šī faila un Docker README:

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ālis, mapē freshrss
docker compose up -d

Birka latest, kas ir noklusējums, seko jaunākajai numurētajai versijai; edge seko nepārtrauktajai versijai; birka, piemēram, 1.30.4, fiksē versiju, un sufikss -alpine dod to pašu uz Alpine bāzes, nevis Debian. Pie šīs izvēles atgriežas sadaļa par atjauninājumiem.

Uzstādīšanas pabeigšana

Kad reversais starpniekserveris ir ieviests, atveriet savu HTTPS adresi: uzstādīšanas vednis prasa valodu, pārbauda serveri, piedāvā izvēlēties datubāzi un pēc tam izveido administratora kontu ar paroli un pieteikšanās metodi. SQLite darbojas bez jebkādas sagatavošanas. Uzstādīt var arī no komandrindas ar cli/do-install.php un cli/create-user.php, palaižot tos caur docker exec --user www-data freshrss.

Attiecībā uz resursiem README prasa vieglu serveri ar Linux vai Windows un norāda, ka FreshRSS darbojas pat uz Raspberry Pi 1 ar atbildes laiku zem vienas sekundes, ar 150 plūsmām un 22 000 rakstu. Izmērs ir atkarīgs no lietotāju, plūsmu un saglabāto rakstu skaita. Ar Managed VPS aprakstiet mums savu lietojumu, un mēs jums iesakām piemērotu izmēru.

HTTPS: reversais starpniekserveris

Ražošanas videi Docker README iesaka reverso starpniekserveri uz resursdatora servera, kas nodrošina HTTPS. Vispirms izvēlieties domēna vārdu vai apakšdomēnu, piemēram, rss.example.com, kas norāda uz serveri ar A un AAAA ierakstiem. Projekts iesaka Traefik un publicē tam pilnu Compose failu ar Let’s Encrypt sertifikātiem un pāradresāciju no HTTP uz HTTPS; tas dod arī piemērus Apache, Nginx un Caddy serveriem.

Ar Caddy

Caddy pats iegūst sertifikātu un ieslēdz HTTPS. Šis bloks seko dokumentācijas piemēram apakšdomēnam, šeit novirzītam uz lokāli publicēto portu:

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

Ar Nginx un Certbot

Šis bloks seko Docker README Nginx piemēram domēna saknei, saīsinātam līdz portam 80, lai Certbot varētu ieslēgt HTTPS. Pēdējās divas rindas nodod tālāk galveni Authorization, kas vajadzīga Google Reader API:

Nginx bloks
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;
  }
}

Pēc tam Certbot uzstāda sertifikātu un parūpējas par tā atjaunošanu:

Terminālis
sudo certbot --nginx

Publiskā adrese: base_url

FreshRSS glabā savu publisko adresi parametrā base_url, failā data/config.php. Uz to balstās API un WebSub: pārbaudiet, vai tajā ir jūsu https adrese. Docker README parāda, kur šo failu atrast sējumā:

Terminālis
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/',

Plūsmu atjaunināšana: CRON_MIN

FreshRSS ielādē jaunos rakstus ar savu skriptu app/actualize_script.php. Docker attēlā ir ieplānots uzdevums, kas to palaiž minūtēs, kas norādītas mainīgajā CRON_MIN. Bez šī mainīgā vai ar tukšu vērtību uzdevums paliek izslēgts, un plūsmas vairs neatjauninās pašas.

Vēl viena dokumentēta metode: ieplānots uzdevums uz resursdatora servera, kas izsauc skriptu konteinerā. Tādā gadījumā izņemiet CRON_MIN no compose.yaml, lai paliktu viena metode:

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

Kopš versijas 1.30.0 FreshRSS pēc noklusējuma atsaka lokālā tīkla adreses, piemēram, 127.0.0.1, lai pasargātu no servera puses pieprasījumu viltošanas. Blakus esošu pakalpojumu, kas veido plūsmas, piemēram, RSS-Bridge, atļauj ar mainīgo INTERNAL_HOST_ALLOWLIST, formā rss-bridge:80, vai sistēmas konfigurācijā. Vērtība * noņem visas pārbaudes, un dokumentācija to sauc par nedrošu.

Konti un pieteikšanās

Uzstādīšanas laikā FreshRSS piedāvā pieteikšanos ar veidlapu, kam vajadzīgs JavaScript. Tā ir noklusējuma metode, un tā der vairumam instanču. Dokumentācija apraksta arī citas:

MetodeKo tā daraKur to iestata
VeidlapaFreshRSS lietotājvārds un paroleUzstādīšanas vednis
HTTP autentifikācijaPiekļuvi kontrolē tīmekļa serveris, un jauni lietotāji tiek izveidoti pirmajā pieteikšanās reizēFails p/i/.htaccess, montēts konteinerā, ar savu .htpasswd
Ārējā autentifikācijaStarpniekserveris nodod pieteikušos lietotāju galvenē Remote-User vai X-WebAuth-UserTRUSTED_PROXY, kas uzskaita uzticamos starpniekserverus
OpenID ConnectPieteikšanās notiek caur jūsu identitātes nodrošinātāju, izmantojot Apache moduli mod_auth_openidcOIDC_ENABLED un mainīgie OIDC_*, Debian attēlā uz x86_64

Dokumentācija brīdina, ka FreshRSS uzticas jebkurai adresei, kas norādīta TRUSTED_PROXY: slikti aizsargāts starpniekserveris ļautu uzbrucējam iestatīt galveni un iegūt administratora piekļuvi. Šeit ports klausās tikai uz 127.0.0.1, kas to rezervē paša servera starpniekserverim. Dokumentācija arī neiesaka nevienu instanci bez autentifikācijas, tiklīdz serveris ir sasniedzams no ārpuses jūsu tīkla.

Reģistrācijas un lietotāji

Instancei, ko izmanto vairāki cilvēki, dokumentācija iesaka atvērt kontus cilvēkiem, kuriem uzticaties, un turēt instanci aiz starpniekservera vai ugunsmūra, kas bloķē piekļuvi iekšējiem adrešu diapazoniem.

Mobilās lietotnes: Google Reader un Fever API

FreshRSS darbojas pārlūkprogrammā, gan lielos, gan mazos ekrānos, un lietotnēs Android, iOS, Linux, Windows un macOS sistēmām. Šīs lietotnes izmanto vienu no tā diviem API: Google Reader, ko README vērtē kā labāko, un Fever, ar šaurākām iespējām, mazāk efektīvu un mazāk drošu.

  1. Kā administrators sadaļā Autentifikācija ieslēdziet opciju, kas atļauj piekļuvi API.
  2. Katrs lietotājs savā profilā iestata API paroli. Tā ir atsevišķa no galvenās paroles, dod piekļuvi mazākam apjomam un ir paredzēta mazāk drošām situācijām.
  3. Lietotnē ievadiet adresi https://rss.example.com/api/greader.php vai Fever gadījumā https://rss.example.com/api/fever.php, kopā ar lietotājvārdu un šo API paroli.

Pārbaudei saite, kas profilā redzama blakus API parolei, atver testa lapu: PASS pilnajā pārbaudē apstiprina, ka viss darbojas. Docker attēls jau iestata Apache pieņemt kodētas slīpsvītras, kas vajadzīgas dažām lietotnēm; ja priekšā ir Nginx, saglabājiet galvenes Authorization pārsūtīšanu.

README uztur saderīgo lietotņu tabulu ar to platformu, API un iespējām: starp citām Capy Reader un Readrops Android ierīcēm, FeedFlow tālrunim un datoram, RSS Guard un NewsFlash datoram, ReadKit un Reeder Classic iOS un macOS sistēmām.

SQLite, PostgreSQL, MySQL vai MariaDB

FreshRSS ir iebūvēts SQLite, ko Docker README raksturo kā vienkāršāko iespēju ar labu veiktspēju. Prasību lapa iesaka PostgreSQL 10 vai jaunāku un pieņem arī MariaDB 10.6 un MySQL 8.0 vai jaunāku. Izvēli izdarāt uzstādīšanas vednī.

DatubāzeIeviešanaRezerves kopija
SQLiteNav vajadzīga: viens fails katram lietotājam, data/users/<user>/db.sqliteSējums data
PostgreSQLPakalpojums postgres tajā pašā compose.yamlpg_dump vai cli/db-backup.php
MySQL vai MariaDBJūsu datubāzes serveris un tā resursdatora vārds vednīmysqldump vai cli/db-backup.php

PostgreSQL gadījumā pievienojiet failam compose.yaml šo pakalpojumu, ņemtu no projekta faila docker-compose-db.yml, un sējumu sarakstam sējumu db. Parole tiek ievietota failā .env, blakus compose.yaml:

compose.yaml, sadaļā 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'

Vednī izvēlieties PostgreSQL un kā resursdatoru ievadiet freshrss-db, kopā ar lietotāju, paroli un datubāzi freshrss.

Pie šīs izvēles varat atgriezties vēlāk. Dokumentācija apraksta pāreju no vienas datubāzes uz citu, piemēram, no MySQL uz PostgreSQL, vai uz jaunāku PostgreSQL galveno versiju: cli/db-backup.php kopē katra lietotāja datubāzi SQLite failā, pēc tam cli/db-restore.php to ielādē jaunajā datubāzē.

Rezerves kopijas

README norāda, ka FreshRSS tiek piedāvāts bez jebkādas garantijas: jūsu rezerves kopijas saglabā jūsu abonementus, rakstus un iestatījumus. Lūk, ko dokumentācija lūdz saglabāt:

ElementsKo tas glabāRezerves kopija
data/Konfigurāciju, kontus, žurnālus un, ar SQLite, datubāzesObligāti; cache/ var izlaist, FreshRSS to izveido no jauna
extensions/Trešās puses paplašinājumusIeteicams, ja tādus izmantojat
Ārējā datubāzeAr PostgreSQL, MySQL vai MariaDB, lietotāju datusObligāti, atsevišķi

Sējumi, pakalpojumam apturētam

Dokumentācija uzskata, ka drošāk ir apturēt pakalpojumu apkopes darbu laikā. Docker sējumus kopē ar pagaidu konteineru, metodi, kas aprakstīta Docker dokumentācijā:

Terminālis, mapē 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

Datubāzes, pakalpojumam darbojoties

Kopš versijas 1.29.1 FreshRSS pats prot eksportēt katra lietotāja datubāzi SQLite failā, neatkarīgi no izmantotās datubāzes, un paturēt tikai jaunākos. Ieslēdziet šo eksportu failā data/config.php:

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

Pēc tam ieplānojiet komandu serverī, šeit katru nakti. Katra palaišana ieraksta data/users/<user>/sqlite-backups/<date>.sqlite un izdzēš failus, kas pārsniedz pēdējos septiņus:

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

Ar PostgreSQL pievienojiet eksportu ar pašas datubāzes rīku, kā Docker README. Opcija -T atslēdz termināli, kas ieplānotam uzdevumam nav vajadzīgs:

Terminālis, mapē freshrss
docker compose exec -T freshrss-db pg_dump -U freshrss freshrss | gzip -9 > freshrss-postgres-$(date +%F).sql.gz

OPML eksports no saskarnes saglabā jūsu plūsmu sarakstu, bez dažiem FreshRSS raksturīgiem iestatījumiem, piemēram, piekļuves datiem vai lapu nolasīšanas noteikumiem. Pilnai kopijai glabājiet SQLite eksportus: novietoti servera diskā, tie nonāk arī tā nakts rezerves kopijās.

Atjaunošana

  1. Apturiet FreshRSS ar docker compose stop freshrss.
  2. Ielādējiet arhīvu atpakaļ sējumos: docker run --rm --volumes-from freshrss -v "$PWD":/backup ubuntu tar -xzf /backup/freshrss-YYYY-MM-DD.tgz -C /var/www/FreshRSS.
  3. Ja izmantojat ārēju datubāzi, atjaunojiet to no tās eksporta vai no SQLite failiem ar cli/db-restore.php --delete-backup --force-overwrite.
  4. Palaidiet to no jauna ar docker compose start freshrss, pēc tam pārbaudiet, vai jūsu plūsmas un raksti ir vietā.

Laiku pa laikam atkārtojiet šo vingrinājumu uz kopijas: tā jūs pārbaudāt, vai rezerves kopija darbojas.

Atjauninājumi

Docker README dod divas komandas, kas jāpalaiž no mapes ar compose.yaml. Sējumi paliek vietā:

Terminālis
docker compose pull
docker compose up -d

FreshRSS publicē divos kanālos. Numurētās versijas, birka latest, iznāk dažas reizes gadā, bez noteikta kalendāra, un to labojumi netiek pārnesti uz vecākām versijām. Nepārtrauktā versija, birka edge, saņem jaunas funkcijas un labojumus, tiklīdz tie ir gatavi: kopš versijas 1.30.0 projekts to iesaka ātrākiem drošības labojumiem.

Lai sekotu jaunām versijām, projekts publicē savu versiju Atom plūsmu: abonējiet to savā FreshRSS instancē.

Kurš ko dara Managed VPS serverī

Mitināšana savā serverī prasa uzturēt serveri papildus lietojumprogrammai. Ar Managed VPS mūsu komandas uzņemas serveri un proaktīvi seko jūsu instancei; FreshRSS paliek jūsu programmatūra ar saviem iestatījumiem un datiem.

TematsMūsu komandasJūs
ServerisSistēmas un drošības atjauninājumi, ieskaitot iejaukšanos serverīBrīdis, kas der jūsu darbam
UzraudzībaServeris tiek uzraudzīts 24/7, iejaucoties, negaidot jūsu zvanuJūsu instances žurnālu lasīšana
FreshRSSProaktīva sekošana: kļūdas, palēninājumi un diska vieta tiek pamanīti, labojums tiek ieteiktsTā uzstādīšana, atjauninājumi un iestatījumi, ko ieviešat jūs vai jūsu MI asistents
Konti un plūsmasServeris, kas tos nes, uzraudzīts un ar rezerves kopijāmLietotāji, abonementi, paplašinājumi un API paroles
Rezerves kopijasKatru nakti, šifrētas un glabātas ārpus mašīnas; atjaunošana iekļautaFreshRSS raksturīgie eksporti un atjaunošanas pieprasījums, kad tas vajadzīgs
MigrācijaJūsu pašreizējā servera migrācija, bez maksasPārslēgšanās brīdis

Ja vēlaties, lai mūsu komandas iejaucas pašā lietojumprogrammā, šis pakalpojums tiek rēķināts par stundu vai par fiksētu summu, ar novērtējumu, kas paziņots pirms iejaukšanās.

FreshRSS serverī, ko uzturam jūsu vietā

Ar Simafri Managed VPS mūsu komandas uztur jūsu FreshRSS instances serveri atjauninātu, uzrauga to dienu un nakti un iejaucas, negaidot jūsu zvanu; tās arī proaktīvi seko jūsu instancei un iesaka noderīgus labojumus, ko ieviešat jūs paši vai jūsu MI asistents. Rezerves kopijas katru nakti tiek šifrētas un glabātas ārpus mašīnas, to atjaunošana ir iekļauta, un jūsu pašreizējā servera migrācija ir bez maksas.

Skatīt Managed VPS

Biežāk uzdotie jautājumi

Vai FreshRSS uzņēmumam ir bez maksas?

Jā. FreshRSS ir ar AGPL-3.0 licenci: varat to darbināt uzņēmumā, nepērkot nekādu licenci. Ja to mainīsiet, jūsu versijai jāpiedāvā pirmkods tiem, kas to izmanto caur tīklu. Paliek tikai servera izmaksas, uz kura tas darbojas.

Kā uzstādīt FreshRSS ar Docker Compose?

Izveidojiet compose.yaml ar attēlu freshrss/freshrss, sējumiem data un extensions un portu, publicētu uz 127.0.0.1, un palaidiet docker compose up -d. Pēc tam pirms tā novietojiet HTTPS reverso starpniekserveri, atveriet savu adresi un sekojiet uzstādīšanas vednim.

Kā FreshRSS automātiski atjaunināt plūsmas?

Ar Docker attēlu norādiet mainīgajā CRON_MIN palaišanas minūtes, piemēram, 13,43: projekts iesaka aptuveni divas palaišanas stundā. Bez CRON_MIN iebūvētais uzdevums paliek izslēgts. To pašu darbu veic ieplānots uzdevums serverī, kas konteinerā palaiž app/actualize_script.php.

Kuru datubāzi izvēlēties FreshRSS?

SQLite ir iebūvēts un neprasa nekādu sagatavošanu; Docker README to raksturo kā vienkāršāko ar labu veiktspēju. Prasību lapa iesaka PostgreSQL 10 vai jaunāku un pieņem MariaDB 10.6 un MySQL 8.0. Komandas db-backup un db-restore ļauj vēlāk nomainīt datubāzi.

Kā lasīt FreshRSS tālrunī?

Sadaļā Autentifikācija ieslēdziet piekļuvi API, pēc tam savā profilā iestatiet API paroli. Saderīgā lietotnē ievadiet savas instances adresi api/greader.php, jo Google Reader API saskaņā ar README ir labākais, vai api/fever.php.

Vai FreshRSS reģistrācijas ir atvērtas?

Pēc noklusējuma nē: konfigurācija ierobežo kontus ar administratora kontu. Pārējos izveidojat sadaļā Administrēšana, Lietotāju pārvaldība, vai arī sistēmas konfigurācijā palielināt kontu skaitu, lai parādītos reģistrācijas veidlapa.

Kā veidot FreshRSS rezerves kopiju?

Kopējiet sējumus data un extensions, pakalpojumam apturētam. Ieslēdziet arī auto_sqlite_export un ieplānojiet cli/export-sqlite-auto.php, kas katru nakti eksportē katra lietotāja datubāzi SQLite formātā. Ar PostgreSQL pievienojiet pg_dump. Regulāri pārbaudiet atjaunošanu.

Vai Managed VPS aptver FreshRSS?

Managed VPS aptver serveri: sistēmu, drošību, uzraudzību un rezerves kopijas. Mūsu komandas proaktīvi seko arī jūsu instancei un iesaka noderīgus labojumus, ko ieviešat jūs. Iejaukšanās lietojumprogrammā tiek rēķināta par stundu vai par fiksētu summu.

Avoti un oficiālā dokumentācija

Sazinieties ar mums