So installierst du die Software für die aktuelle Budgetierung auf einem Debian 12 Server
Actual Budget ist eine Open-Source-Finanzverwaltungssoftware, die sich auf den Datenschutz konzentriert und auf dem „Envelope Style Budgeting“ aufbaut. Actual ist in Node.js geschrieben und kann im Handumdrehen lokal installiert werden. Es unterstützt die Synchronisierung mit mehreren Geräten und eine optionale Ende-zu-Ende-Verschlüsselung.
In diesem Tutorial zeigen wir dir, wie du das Actual Budgeting System auf einem Debian 12 Server installierst. Du installierst Actual mit Nginx als Reverse Proxy und sicherst es mit HTTPS über Certbot und Letsencrypt.
Voraussetzungen
Um mit diesem Lernprogramm zu beginnen, musst du Folgendes haben
- Einen Debian 12-Server
- Einen Nicht-Root-Benutzer mit Administrator-Rechten
- Einen Domainnamen, der auf die IP-Adresse des Servers zeigt
Installation von Node.js und Yarn
Bevor du Actual installierst, musst du sicherstellen, dass Node.js, Git und der Paketmanager Yarn auf deinem System installiert sind. Zurzeit benötigt Actual Node v18 oder höher, das du aus dem offiziellen Debian-Repository installieren kannst.
Führe zunächst den Befehl„apt“ aus, um deinen Debian-Paketindex zu aktualisieren und grundlegende Pakete wie Node.js, NPM und Git zu installieren. Gib„Y“ ein, um die Installation zu bestätigen.
sudo apt update sudo apt install nodejs npm git
Nachdem die Installation abgeschlossen ist, installierst du den Yarn-Paketmanager mit dem unten stehenden Befehl„npm„. In diesem Beispiel installierst du Yarn global oder systemweit.
npm install --global yarn
Wenn du fertig bist, überprüfe die Version von Node.js und Yarn mit dem unten stehenden Befehl.
node --version yarn --version
In der Ausgabe unten siehst du, dass Node.js 18 und Yarn 1.22 installiert sind.
Herunterladen des Actual Budget-Quellcodes
Nachdem die Abhängigkeiten installiert sind, kannst du den Actual-Quellcode herunterladen, die Abhängigkeiten über Yarn installieren, Actual mit der Datei „config.json“ konfigurieren und Actual dann über die Kommandozeile ausführen. Außerdem brauchst du einen eigenen Benutzer, um Actual auf deinem System zu installieren und auszuführen.
Melde dich mit dem unten stehenden Befehl bei deinem Benutzer an.
su - username
Lade den Quellcode von Actual Budget mit dem unten stehenden Befehl„git“ herunter.
git clone https://github.com/actualbudget/actual-server.git
Gehe in das Verzeichnis„actual-server“ und installiere die JavaScript-Abhängigkeiten mit dem unten stehenden Befehl„yarn„.
cd actual-server yarn install
Unten siehst du die Installation der JavaScript-Abhängigkeiten über den Yarn-Paketmanager.
Nachdem die Installation abgeschlossen ist, erstelle eine neue Datei„config.json“ mit dem Editor„nano„.
nano config.json
Füge die folgende Konfiguration ein, um Actual auf der lokalen IP-Adresse mit dem Standardport 5006 auszuführen.
{ "hostname": "127.0.0.1", "port": 5006 }
Speichere die Datei und beende den Editor.
Führe abschließend den Befehl„yarn start“ aus, um die Actual-Software zu starten. Dadurch wird der Port 5006 auf deinem localhost oder der Adresse„127.0.0.1“ geöffnet, der von der Anwendung verwendet werden soll.
yarn start
Drücke Strg+c, um den Prozess zu beenden.
Actual im Hintergrund als Systemd-Dienst laufen lassen
Nachdem du Actual installiert und konfiguriert hast, erstellen wir nun eine neue systemd-Dienstdatei, um Actual als systemd-Dienst im Hintergrund laufen zu lassen.
Erstelle eine neue systemd-Dienstdatei„/etc/systemd/system/actual.service“ mit dem folgenden„nano„-Editor.
sudo nano /etc/systemd/system/actual.service
Füge die unten stehende Konfiguration ein, um Actual im Hintergrund als systemd-Dienst laufen zu lassen. Achte darauf, dass du die Standardwerte für„Benutzer“ und„Gruppe“ durch deinen Benutzernamen und das„Arbeitsverzeichnis“ durch deinen richtigen Pfad ersetzt.
[Unit] Description=Actual-Server (https://actualbudget.org) After=network.target [Service] User=flash Group=flash WorkingDirectory=/home/flash/actual-server/ ExecStart=/usr/local/bin/yarn start Restart=on-watchdog [Install] WantedBy=multi-user.target
Speichere die Datei und beende den Editor, wenn du fertig bist.
Führe nun den Befehl„systemctl“ aus, um den systemd Manager neu zu laden und deine Änderungen zu übernehmen.
sudo systemctl daemon-reload
Starte und aktiviere dann den„actual.service“ mit dem folgenden Befehl. Dadurch wird der„actual.service“ im Hintergrund gestartet und kann beim Systemstart automatisch ausgeführt werden.
sudo systemctl enable --now actual.service
Überprüfe den Status des„actual.service“ mit dem folgenden Befehl. Du solltest sehen, dass der„actual.service“ auf deinem System läuft und aktiviert ist.
sudo systemctl status actual.service
Nginx als Reverse Proxy einrichten
Zu diesem Zeitpunkt läuft Actual im Hintergrund als systemd-Dienst. In diesem Abschnitt installierst du Nginx und konfigurierst es als Reverse Proxy für Actual. Danach erstellst du mit Certbot und Letsencrypt SSL-Zertifikate für deinen Actual-Einsatz.
Führe zunächst den Befehl„apt“ aus, um Nginx, Certbot und das Python3 Certbot Nginx Plugin zu installieren. Gib„Y“ ein, um mit der Installation fortzufahren.
sudo apt install nginx certbot python3-certbot-nginx -y
Nachdem die Installation abgeschlossen ist, erstelle mit dem Editor„nano“ eine neue Nginx-Serverblockdatei„/etc/nginx/sites-available/actual-budget„.
sudo nano /etc/nginx/sites-available/actual-budget
Füge die unten stehende Konfiguration ein und achte darauf, dass du den Parameter„server_name“ durch deinen Domainnamen ersetzt.
server { listen 80; server_name budget.howtoforge.local; location / { include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; set $upstream_app 127.0.0.1; set $upstream_port 5006; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } }
Wenn du fertig bist, speichere die Datei und beende den Editor.
Führe nun den unten stehenden Befehl aus, um den Serverblock„actual-budget“ zu aktivieren und deine Nginx-Konfigurationen zu überprüfen. Wenn kein Fehler auftritt, erhältst du eine Ausgabe wie„syntax is ok – test is successful„.
sudo ln -s /etc/nginx/sites-available/actual-budget /etc/nginx/sites-enabled/ sudo nginx -t
Als Nächstes führst du den folgenden Befehl aus, um den Nginx-Dienst neu zu starten und seinen Status zu überprüfen. Vergewissere dich, dass der Nginx-Webserver läuft.
sudo systemctl restart nginx sudo systemctl status nginx
Zum Schluss führst du den Befehl„certbot“ aus, um SSL-Zertifikate zu erzeugen und deine Actual Software-Installation zu sichern. Achte darauf, dass du den Domainnamen und die E-Mail-Adresse im folgenden Befehl änderst.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email <alice@howtoforge.local> -d budget.howtoforge.local
Wenn der Vorgang abgeschlossen ist, sollte deine Actual-Installation mit HTTPS über Certbot und Letsencrypt gesichert sein. Deine SSL-Zertifikate sind im Verzeichnis„/etc/letsencrypt/live/domain.com“ verfügbar und HTTPS ist automatisch in der Blockdatei deines Servers aktiviert.
Zugriff auf Actual Budget über den Webbrowser
Rufe den Domainnamen deiner Actual-Installation auf, z. B. https://budget.howtoforge.local. Wenn du erfolgreich warst, siehst du die Willkommensnachricht von Actual und wirst aufgefordert, ein Passwort einzurichten.
Gib dein neues Passwort ein und wiederhole es, dann klicke auf„OK„.
Sobald das Passwort eingerichtet ist, gibst du es ein, um dich im Actual Dashboard anzumelden.
Wenn du dich zum ersten Mal anmeldest, wirst du gefragt, ob du die Demodaten sehen oder neu beginnen möchtest.
Wenn du mit Actual vertraut bist, kannst du auf„Neu starten“ klicken, aber wenn du Actual noch nicht kennst, klicke auf„Demo anzeigen„, um einen Überblick über die grundlegende Nutzung von Actual zu bekommen.
Unten siehst du ein Beispiel für Demodaten aus dem Actual Budgeting System.
Fazit
Herzlichen Glückwunsch! Du hast die Installation von Actual, einer Finanzsoftware mit Fokus auf Datenschutz, auf einem Debian 12-Server abgeschlossen. Du hast Actual als systemd-Dienst im Hintergrund gestartet, der auf dem Nginx-Reverse-Proxy läuft. Außerdem hast du Actual mit HTTPS über Certbot und Letsencrypt abgesichert.