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:
Damit sieht das Setup inkl. aller optionalen Möglichkeiten so aus:
┌──────────────────────────────────────────────┐
│ FreeBSD Optional: │
│ ┌────────────────────┐ ┌───────────────────┐ │
│ │ bastille/jails/web │ │ bastille/data/web │ │
│ │ freshrss (php) ──┼─┼─► backup │ │
│ │ ▲ │ │ conf │ │
LAN: 0.0.0.0:443 ──┼─┼─► nginx │ │ data │ │
│ └────────────────────┘ └───────────────────┘ │
└──────────────────────────────────────────────┘
Es wird ein eigenes Jail benötigt. Hier nehmen wir rss
als Jailnamen.
Wie bestimmte Datenverzeichnisse außerhalb des Jails abgelegt werden, wird hier erklärt..
Es werden folgende Verzeichnisse benötigt:
└── /usr/local/bastille/data
└── rss # Name des Jails
├── backup # Ablage für Backups (im Jail: /mnt/backup)
├── conf # Ablage für Konfigurationsdateien (im Jail: /mnt/conf)
└── data # Ablage für die Daten im FreshRSS (im Jail: /mnt/data)
Entweder mit bastile console rss
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.
Paketquellen sollten angepasst werden, siehe separater Artikel!
Nginx und PHP müssen bereits installiert sein, siehe separater Artikel!
Die Nginx Konfiguration wird zur besseren Verwaltung in eine eigene Datei erstellt:
/usr/local/etc/nginx/conf.d/freshrss.conf
= FreshRSS Konfiguration für NginxOptional: Symlink setzen, um auf die Konfiguration in /mnt/conf/
zu verweisen:
ln -sf /mnt/conf/freshrss.conf /usr/local/etc/nginx/conf.d/freshrss.conf
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'
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
Optional: Symlink setzen, um das komplette FreshRSS Verzeichnis in /mnt/data/
zu verweisen:
ln -sf /mnt/data/FreshRSS /usr/local/www/FreshRSS
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/
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.
OPTIONAL = Nur durchführen wenn die Konfiguration außerhalb des Jails liegt
INITIAL = Nur bei der Erstinstallation ausführen oder wenn die Konfiguration nicht außerhalb des Jails liegt
pkg update
pkg install -y git php84-curl php84-fileinfo php84-zip php84-intl php84-mbstring
OPTIONAL: ln -sf /mnt/conf/freshrss.conf /usr/local/etc/nginx/conf.d/freshrss.conf
OPTIONAL: ln -sf /mnt/data/FreshRSS /usr/local/www/FreshRSS
INITIAL: fetch https://raw.githubusercontent.com/marzlberger/bsdbox/main/freshrss/freshrss.conf -o /usr/local/etc/nginx/conf.d/freshrss.conf
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/
service php_fpm restart && service nginx restart