Rechnungsstellung leicht gemacht: Wie ich als Technik-Blogger mit Invoice Ninja via Docker und Nginx kostengünstig professionelle Rechnungen erstelle. Ideal für Selbsthoster:innen, die eine freie und flexible Lösung suchen.
>
Bisher war ich allein auf meinem Blog dasnetzundich.de Blog aktiv. 2005 hatte ich mir die Domain gesichert und fing an zu schreiben. Eher halbherzig und natürlich neben meiner regulären Arbeit als Fachangestellter für Bäderbetriebe. Diesen Beruf übe ich nach wie vor mit Leidenschaft aus.
Irgendwann, ca. 2021, hatte ich erste Auftraggeber für das Artikelschreiben sowie das Einstellen von Gastartikeln auf meinem Blog. Das ließ ich mir natürlich bezahlen. Also musste eine Abrechnungsmöglichkeit her, da auch die Auftraggeber eine Gewerbenummer von mir wollten, musste ein Gewerbe angemeldet werden. Infolgedessen musste ich lückenlos die Rechnungen stellen und aufbewahren. Zuerst hatte ich Lexware genutzt, das wurde mir aber zu teuer, dann bin ich auf Invoice Ninja gestoßen.
Der Vorteil hier – ich musste kein Geld dafür bezahlen, musste aber alles selbst installieren und einrichten und habe dafür dann eine Plattform mit allen möglichen Features für 0 Kosten. Hier der Überblick…
Plattformunterstützung & Setup
Native Apps für Android, iOS, macOS, Linux und Windows – synchronisierte Daten über alle Plattformen
Webbasiertes Dashboard mit anpassbarem Sidebar-Menü, Listen- und Vorschaubereich
Grundfunktionen
Rechnungen & Angebote: Erstellung, Versand, Echtzeit-PDF-Vorschau, wiederkehrende Rechnungen
Zahlungen: Unterstützung gängiger Gateways wie Stripe, PayPal, Square, Mollie u.v.m.
Kunden‑ & Vendor‑Verwaltung: Übersichtliche Verwaltung und Kommunikation mit Kunden und Lieferanten
Ausgaben & Lieferanten: Ausgaben erfassen, Lieferanten verwalten, PO‑Erstellung, Wiederverrechnung
Projekt- & Zeitmanagement
Automatisierung & Workflows
Produkt- & Bestandsverwaltung
Produktbibliothek & Inventur: Artikel definieren, Lagerbestände verfolgen, Warnungen bei niedrigem Bestand
Client‑Portal
Client‑Portal & Dokumenten-Uploads: Zugriff auf Rechnungen, Angebote, Zahlungen; Clients/Vendors können Dokumente hochladen
Lokalisierung & Steuern
Mehrsprachigkeit & Währungsunterstützung: individuelle Sprache und Währung pro Kunde möglich
Steuerfunktionen: Zeilen- oder Gesamtsteuer, mehrere Steuersätze pro Rechnung
Benutzerfreundlichkeit & Anpassung
Custom Fields (Pro/Enterprise): individuell definierbare Felder für Rechnungen/Angebote
Kanban‑Ansicht für Projekte (Free) – visuelles Task Management
Erweiterte Funktionen (Pro / Enterprise)
Mehrere Unternehmen & Benutzer: Verwaltung mehrerer Firmenkonten mit einem Login, Rechteverwaltung, Aktivitäts-Benachrichtigungen
Erweiterte Automatisierung: Zapier, Make, Pabbly Integrationen
Unternehmensbranding & Custom Domains: eigene Domains fürs Kunden-Portal, PDF-Branding, BCC‑E-Mail-Adressen
Berichte & Geldeingangserinnerungen: Profit & Loss, Aging Reports, late‑fee Automation
Bankintegration (Enterprise): automatische Synchronisation von Banktransaktionen via Yodlee
Datei-Uploads: Anhänge von Dokumenten an Rechnungen und Ausgaben
Nach den ganzen Features, aber nun zum Setup! Kurz und knapp hier das Setup mittels Docker/Docker-compose.
Installation von Invoice Ninja via Docker mit Nginx Reverse Proxy
Die einfachste und sauberste Methode, Invoice Ninja zu betreiben, ist über Docker. Das offizielle Docker-Setup von Invoice Ninja findet sich unter: https://github.com/invoiceninja/dockerfiles
Weitere Dokumentation über die weitere Einrichtung findet ihr hier.
Hier eine kompakte Anleitung für die Installation mit einem externen Nginx als Reverse-Proxy:
Voraussetzungen:
Docker und Docker Compose sind installiert
Ein Domainname zeigt auf deinen Server
Nginx ist bereits als Reverse Proxy eingerichtet (z. B. mit Let’s Encrypt)
Invoice Ninja Docker-Setup klonen:
git clone https://github.com/invoiceninja/dockerfiles.git invoiceninja
cd invoiceninja/
Dann mit nano .env die Konfigurationsdatei anpassen.
![]()
.env Datei anpassen:
APP_URL=https://deinedomain.deE-Mail-Einstellungen für SMTP anpassen
Bei Bedarf Datenbank-Passwort ändern
APP_Key erstellen:
docker run --rm -it invoiceninja/invoiceninja-debian php artisan key:generate --showDocker-Container starten: (wenn nötig, den Nginx Port ändern im Compose file)
docker-compose up -d
Nginx-Konfiguration für Reverse Proxy (Beispiel):
server {
listen 80;
listen [::]:80;
server_name deinedomain.de;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name deinedomain.de;
ssl_certificate /etc/letsencrypt/live/deinedomain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/deinedomain.de/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8000;
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;
}
}
Installation im Browser abschließen:
Rufe deine Domain auf und folge dem Setup-Wizard (Admin-Zugang, Datenbank-Setup, E-Mail testen usw.)
Updates machen:
docker compose down
docker compose pull
docker compose upFertig! Dann läuft das ganze Setup unter der gewünschten Domain. Jetzt kann das eigentliche Setup beginnen. Kunden anlegen, E-Mail-Server zum Rechnungsversand einrichten sowie ein geeignetes Zahlungsportal finden und einbinden. Bei mir war es damals Stripe und Paypal.
Hier noch einmal die Kernfunktionen: professionelle Rechnungserstellung, Angebotsverwaltung, Zeiterfassung, Projektmanagement und Integration verschiedener Zahlungsanbieter. Dabei ist die Nutzung in der selbst gehosteten Variante komplett kostenfrei, sämtliche Pro- und Enterprise-Funktionen sind enthalten. Lediglich wer das Branding entfernen möchte, benötigt eine kostenpflichtige White-Label-Lizenz.
Besonders hilfreich war für mich die Möglichkeit, Rechnungen zu automatisieren und direkt per E-Mail zu versenden. Auch wiederkehrende Rechnungen ließen sich problemlos einrichten. Invoice Ninja unterstützt verschiedene Plattformen: Neben dem Web-Interface gibt es auch Anwendungen für Windows und Linux sowie mobile Apps für Android und iOS. Diese Vielfalt macht es besonders angenehm, von verschiedenen Geräten aus auf Rechnungen und Projekte zuzugreifen.
Zu den herausragenden Funktionen zählen neben der klassischen Rechnungserstellung auch die Verwaltung von Ausgaben und Lieferanten, automatisierte Zahlungserinnerungen, Teilzahlungen und ein integriertes Zeiterfassungsmodul für projektbasierte Arbeit. Die Anbindung an Zahlungsanbieter wie PayPal, Stripe oder Mollie ermöglicht es Kund:innen, direkt aus der Rechnung heraus zu zahlen. Auch die Automatisierung via Zapier oder n8n wird unterstützt.
Fazit:
Auch wenn ich selbst nicht mehr Geld verdiene, mit dem Bloggen, wollte ich euch das Setup und meinen Favoriten bei Abrechnungssystemen nicht vorenthalten. Sorry für den ausufernden Artikel, aber ich wusste nicht, wie ich es kürzen sollte.

