Ziele

Der Betrieb eines lokalen FreshRSS Servers ist eigentlich recht einfach und ist dieser Teil abgeschlossen, kann auf einen kompletten FreshRSS Server im lokalen Netzwerk zugegriffen werden. Im Grunde ist es eine klassische Webserver, PHP Anwendung.

NEU: Für ganz ungeduldige habe ich einen "Konsole only" Abschnitt. Da gibt es nur Befehle, keine Erklärungen.

Letzte Aktualisierung:

  • 18.01.2026: Entfernen der externen Verzeichnisse. Das wird hier zwar erklärt, das ist nur für fortgeschrittene Admins.
  • 30.11.2024: Überarbeitung. Entfernung von TrueNAS und umschreiben auf reines FreeBSD. Jails mit Bastille.
  • 07.09.2024: Initiales Dokument

Voraussetzungen

Generell sollten solche Dienst in einer eigenen Umgebung eingerichtet werden. Das macht nicht nur die Sicherheit, sondern auch die Wartung wesentlich einfacher. Jails können relativ einfach gesichert werden und es sind nur die Pakete installiert, die absolut notwendig sind.

Diagramm

Damit sieht das Setup inkl. aller optionalen Möglichkeiten so aus:

                   ┌────────────────────────┐
                   │  FreeBSD               │
                   │ ┌────────────────────┐ │
                   │ │ bastille/jails/web │ │
                   │ │   freshrss (php)   │ │
                   │ │     ▲              │ │
LAN: 0.0.0.0:443 ──┼─┼─► nginx            │ │
                   │ └────────────────────┘ │
                   └────────────────────────┘

Jail erstellen

Es wird ein eigenes Jail benötigt. Hier nehmen wir rss als Jailnamen.

Jail einrichten

Entweder mit bastile console web eine Konsole in das erstellte Jail starten, oder es erfolgt ein Login per SSH (wenn aktiviert) mit ssh USERNAME@IP oder ssh USERNAME@HOSTNAME, um dann mit su root Rechte zu erlangen.

Paketquelle anpassen

Paketquellen sollten angepasst werden, siehe separater Artikel!

Nginx

Nginx und PHP müssen bereits installiert sein, siehe separater Artikel!

Konfiguration erstellen

Die Nginx Konfiguration wird zur besseren Verwaltung in eine eigene Datei erstellt:

  • /usr/local/etc/nginx/conf.d/freshrss.conf = FreshRSS Konfiguration für Nginx
cat > /usr/local/etc/nginx/conf.d/freshrss.conf <<'EOF'
server {
 listen 443 ssl;
 http2  on;
 root /usr/local/www/FreshRSS;
 index index.php index.html;
 location ~ \.php$ {
  include fastcgi_params;
  set $path_info $fastcgi_path_info;
  fastcgi_split_path_info ^(/.+\.php)(/.*)?$;
  fastcgi_param SCRIPT_FILENAME $request_filename;
  fastcgi_param PATH_INFO $path_info;
  fastcgi_pass php-handler;
 }
}
EOF

FreshRSS

Pakete installieren & Dienste aktivieren

Nun die Paketquelle mit pkg update aktualisieren und weitere von FreshRSS benötigten PHP Module installieren:
pkg install -y git php84-curl php84-fileinfo php84-zip php84-intl php84-mbstring

Installation

cd /usr/local/www/FreshRSS
git init && git remote add origin https://github.com/FreshRSS/FreshRSS.git && git pull origin edge
chown -R www:www /usr/local/www/FreshRSS/

Dienste starten

Damit sind wir nun am Ende der Vorbereitungen angelangt
und alle Dienste können nun mit service php_fpm restart && service nginx restart gestartet werden.

Nun kann die "FreshRSS" Webseite geöffnet werden.
Beim ersten mal wird der Installationsassistent durchlaufen. Der ist weitestgehend selbsterklärend, wichtig ist hierbei nur SQLITE als Datenbank zu wählen.

Konsole

Voilá