Mit Version 0.1.0 (“Featherweight”) ist die Ansible-Rolle head1328.ivly auf Ansible Galaxy
veröffentlicht. Sie deployt den kompletten ivly
-Invoicing-Stack als rootless Podman-Quadlets auf Raspberry Pi OS / Debian Trixie.
An Ansible role that deploys the ivly invoicing stack on Raspberry Pi OS (Debian 13 / Trixie) using containers.
Was sie macht#
Die Rolle bringt den gesamten ivly-Stack als rootless Container über Podman + systemd Quadlets auf einen Pi:
- CouchDB als Document Store
- ivly-api (Go) - Backend-API
- ivly-backoffice (SvelteKit-SPA via nginx) - Web-Frontend
- ivly-printer (Go + TeX Live) - PDF-Rendering aus LaTeX
- ivly-validation (Java) - XRechnung-/ZUGFeRD-/Factur-X-Validierung
- Caddy als Reverse Proxy
Alle Komponenten kommunizieren über ein gemeinsames Podman-Network. Die Image-Tags sind in der Default-Konfiguration auf 0.1.0 gepinnt; per ivly_autoupdate_enabled lässt sich podman-auto-update einschalten, falls man auf Floating-Tags wechselt.
Topologie#
Der Referenz-Setup geht von zwei Pis aus:
| Host | Hardware | Aufgabe | Pflicht? |
|---|---|---|---|
ivly | Pi 4/5 | ivly-Stack | ja |
ollama | Pi 5 + AI HAT+ 2 | Ollama via head1328.hailo | optional |
Ohne dedizierten Ollama-Host kann ivly_ollama_url auf jeden beliebigen, erreichbaren Ollama-kompatiblen Endpoint zeigen - oder die LLM-Variablen werden weggelassen, dann läuft ivly ohne LLM-gestützte Assistenz-Features.
TLS und Netzwerk#
- Caddy mit automatischem Let’s Encrypt (
ivly_caddy_domain) oder - internem Caddy-CA für interne Domains (
ivly_caddy_tls_internal) - optionale
iptables-PREROUTING-Redirects für privilegierte Ports < 1024 (rootless Podman bindet diese sonst nicht)
Installation#
ansible-galaxy role install head1328.ivlyDie Rolle setzt auf head1328.podman
auf.
Lizenz#
AGPL-3.0-or-later.
Verwendete Projekte#
- ivly - Open-Source-Invoicing-Stack (XRechnung/ZUGFeRD/Factur-X)
- Podman - daemonless Container-Runtime
- Caddy - Reverse Proxy mit automatischer TLS-Verwaltung
- CouchDB - dokumentenorientierte Datenbank
- Ansible Galaxy - Rollen-Registry
Hat dir das hier geholfen?
Unterstütze gerne via:
