Rhinvoice mit Docker Compose installieren
Rhinvoice installieren Sie mit Docker Compose: zwei Dateien herunterladen, in .env ein Datenbankpasswort setzen, die Container starten und die Adresse im Browser öffnen. Sie brauchen nur Docker mit Docker Compose, keinen Quellcode, kein Python und kein Node.js.
Rhinvoice ist in früher Entwicklung (0.x). Steuersätze und Regeln sind ohne Gewähr und ersetzen keine Steuerberatung. Probieren Sie es zuerst auf einer Testinstallation aus, bevor Sie echte Rechnungen damit schreiben.
Wo Rhinvoice läuft
Abschnitt betitelt „Wo Rhinvoice läuft“Auf einem Server, einem NAS, einem Raspberry Pi oder Ihrem eigenen Laptop mit Docker Desktop (macOS, Windows, Linux). Die Images gibt es für linux/amd64 und linux/arm64 (z. B. Apple Silicon, Raspberry Pi 4/5).
Rhinvoice besteht aus vier Containern: app (Weboberfläche und API), db (PostgreSQL), gotenberg (erzeugt die PDFs) und backup. Gotenberg hat keinen eigenen Port und stellt keine Anfragen ins Internet. Nur die App spricht mit ihm.
In drei Schritten installieren
Abschnitt betitelt „In drei Schritten installieren“-
Herunterladen:
compose.ymlund die Beispiel-Einstellungen in einen neuen Ordner laden:Terminal-Fenster mkdir rhinvoice && cd rhinvoicecurl -fsSLO https://raw.githubusercontent.com/rhinvoice/rhinvoice/v0.5.6/deploy/compose.ymlcurl -fsSL https://raw.githubusercontent.com/rhinvoice/rhinvoice/v0.5.6/.env.example -o .env -
Einstellen:
.envbearbeiten (siehe Tabelle unten). Setzen Sie mindestensPOSTGRES_PASSWORDundRHINVOICE_VERSION. -
Starten:
Terminal-Fenster docker compose pull # fetch the images of the version in .envdocker compose up -ddocker compose ps # "healthy" after a few seconds
docker compose pull ist wichtig, wenn schon ein älteres Image mit demselben Namen auf dem Rechner liegt (z. B. von einem früheren Test). up allein würde sonst dieses starten, statt das neue herunterzuladen.
Die Einstellungen in .env
Abschnitt betitelt „Die Einstellungen in .env“| Einstellung | Wert |
|---|---|
POSTGRES_PASSWORD |
ein langer Zufallswert, nur Buchstaben und Ziffern (z. B. openssl rand -hex 24) |
RHINVOICE_VERSION |
die Version, z. B. 0.5.6. Eine feste Version ändert sich nur, wenn Sie sie ändern; latest folgt jeder neuen Version |
RHINVOICE_PORT |
Port auf diesem Rechner, Standard 8000 |
RHINVOICE_BIND |
127.0.0.1 (Standard) = nur dieser Rechner; 0.0.0.0 = das ganze Netzwerk |
RHINVOICE_COOKIE_SECURE |
auf true lassen; false nur für reines HTTP in einem vertrauenswürdigen Netzwerk (für localhost nicht nötig) |
RHINVOICE_TIMEZONE |
Zeitzone für «heute» (Dokumentdatum, Fälligkeit), Standard Europe/Zurich |
COMPOSE_PROJECT_NAME |
Name dieser Installation für Docker, Standard rhinvoice; nicht mehr ändern, sobald Daten vorhanden sind |
Die Backup-Einstellungen in derselben Datei beschreibt Backup und Wiederherstellen.
Rhinvoice öffnen und das erste Konto anlegen
Abschnitt betitelt „Rhinvoice öffnen und das erste Konto anlegen“Öffnen Sie http://rhinvoice.localhost:8000 (oder http://127.0.0.1:8000). Jeder Name, der auf .localhost endet, zeigt auf Ihren eigenen Rechner. Ein Eintrag in /etc/hosts ist deshalb nicht nötig, und Browser behandeln die Adresse als sicher, sodass die Anmeldung ohne HTTPS funktioniert. Mit RHINVOICE_PORT=80 in .env lautet die Adresse einfach http://rhinvoice.localhost (wenn Port 80 frei ist).
Beim ersten Aufruf erscheint Rhinvoice einrichten: Geben Sie Ihren Namen, Ihre E-Mail-Adresse und ein Passwort mit mindestens 12 Zeichen ein und klicken Sie auf Konto anlegen. Dieses Konto hat Zugriff auf alle Daten der Installation. Alternativ legen Sie es auf der Kommandozeile an:
docker compose exec app rhinvoice user create --email you@example.com --name "Your Name"Danach fragt der Einrichtungsassistent nach Land und Firma.
Mit Beispieldaten ausprobieren
Abschnitt betitelt „Mit Beispieldaten ausprobieren“Schliessen Sie auf einer Testinstallation den Einrichtungsassistenten ab (Land und Firma) und füllen Sie sie dann mit erfundenen Kunden, Artikeln und rund 21 Monaten an Rechnungen, Zahlungen, überfälligen Rechnungen und Angeboten:
docker compose exec app rhinvoice demo # or: make demodocker compose exec app rhinvoice demo --without-documents # customers and articles onlyDer Befehl läuft nur auf einer Installation ohne Kunden und Dokumente und mischt sich so nie mit echten Daten. Gibt es noch kein Bankkonto, legt er die offiziellen Beispielkonten von SIX bzw. des ECBS an. Ersetzen Sie diese, bevor Sie echte Rechnungen verschicken.
Auf einem Server betreiben
Abschnitt betitelt „Auf einem Server betreiben“- Stellen Sie einen Reverse Proxy mit TLS davor (Caddy, Traefik, nginx) und lassen Sie
RHINVOICE_BIND=127.0.0.1. - Setzen Sie
RHINVOICE_FORWARDED_ALLOW_IPSauf die Adresse des Proxys und lassen Sie den ProxyStrict-Transport-Securitysenden. - Sitzungs-Cookies sind standardmässig
Secure. Setzen SieRHINVOICE_COOKIE_SECURE=falsenur, wenn Sie bewusst reines HTTP in einem vertrauenswürdigen Netzwerk nutzen. - Anmeldeversuche sind pro Konto begrenzt. Ist die Installation aus dem Internet erreichbar, begrenzen Sie zusätzlich im Proxy pro IP-Adresse und schalten Sie für jedes Konto die Zwei-Faktor-Authentifizierung ein.
- Richten Sie Backups ein.
Mehrere Installationen auf einem Rechner
Abschnitt betitelt „Mehrere Installationen auf einem Rechner“Jede Installation braucht einen eigenen Ordner, einen eigenen Port und einen eigenen Projektnamen, damit Container und Daten getrennt bleiben. Geben Sie den Namen mit -p an, in jedem Befehl für diese Installation:
RHINVOICE_PORT=8100 docker compose -p rhinvoice-try up -ddocker compose -p rhinvoice-try psdocker compose -p rhinvoice-try logs -f appdocker compose -p rhinvoice-try down -v # remove it again, with its dataEinfacher: Schreiben Sie Namen und Port einmal in die .env dieses Ordners. Dann funktionieren dort die normalen Befehle:
COMPOSE_PROJECT_NAME=rhinvoice-tryRHINVOICE_PORT=8100Sie erreichen diese Installation unter http://rhinvoice.localhost:8100.
Anhalten und wieder starten
Abschnitt betitelt „Anhalten und wieder starten“docker compose down # stop; the data stays in the volume "rhinvoice_db-data"docker compose up -d # start again, with all dataWie Sie Rhinvoice aktualisieren und wieder entfernen: Update, Deinstallieren.
Häufige Fragen
Abschnitt betitelt „Häufige Fragen“Was brauche ich, um Rhinvoice zu installieren?
Nur Docker mit Docker Compose. Quellcode, Python oder Node.js brauchen Sie nicht. Rhinvoice läuft unter Linux, macOS und Windows, auf Servern, NAS-Geräten, einem Raspberry Pi 4/5 oder einem Laptop mit Docker Desktop.
Wie lege ich das erste Benutzerkonto an?
Beim ersten Aufruf im Browser zeigt Rhinvoice ein einmaliges Formular für das erste Benutzerkonto. Alternativ legen Sie es mit docker compose exec app rhinvoice user create an, mit E-Mail-Adresse und Name.
Läuft Rhinvoice auf einem Raspberry Pi?
Ja. Die Images gibt es für linux/amd64 und linux/arm64, also auch für Apple Silicon und den Raspberry Pi 4 und 5.
Kann ich zwei Installationen auf einem Rechner betreiben?
Ja. Jede braucht einen eigenen Ordner, einen eigenen Port und einen eigenen Projektnamen, zum Beispiel mit COMPOSE_PROJECT_NAME und RHINVOICE_PORT in ihrer .env-Datei.