# Facturix — deployment Facturix is een single-binary on-prem pakket. Er is **geen hosted SaaS**: klanten draaien zelf, via Docker of native (systemd). Dit document beschrijft beide, plus reverse-proxy + TLS, backup en licentie. ## Snel starten (Docker) ```bash docker compose up -d --build ``` Facturix luistert dan op `127.0.0.1:8080` op de host. Open `http://127.0.0.1:8080`. Voor publieke toegang zet je er een reverse-proxy met TLS voor (zie onder). Losse container zonder compose: ```bash docker build -t facturix:latest . docker run -d --name facturix -p 127.0.0.1:8080:8080 \ -v facturix-data:/data facturix:latest ``` ## Omgevingsvariabelen | Variabele | Default | Betekenis | |-----------|---------|-----------| | `DATABASE_URL` | `sqlite:./data/facturix.db` | Pad naar de SQLite-database | | `FACTURIX_BIND` | `127.0.0.1` | IP om op te binden (`0.0.0.0` in een container) | | `FACTURIX_PORT` | `8090` (native) / `8080` (image) | Poort | | `FACTURIX_STATIC` | `crates/facturix-web/static` | Map met de frontend-assets | | `FACTURIX_SINGLE_USER` | uit | `1` = kiosk zonder login (lokaal eenpersoons) | | `FACTURIX_ADMIN_PASSWORD` | — | Eerste-boot admin-wachtwoord (login-modus) | | `FACTURIX_SECRET` | — | 64-hex sleutel voor at-rest-encryptie; anders `secret.key` in de data-map | | `FACTURIX_LICENSE` | — | Licentietoken (kan ook via Instellingen → Licentie) | | `RUST_LOG` | `info` | Log-niveau | ## Reverse-proxy + TLS Draai productie **achter** Caddy, nginx of Traefik. Voorbeeldconfigs staan in `deploy/`: - `deploy/caddy/Caddyfile` — automatische HTTPS via Let's Encrypt (eenvoudigst). - `deploy/nginx/facturix.conf` — met certbot-certificaten. - `deploy/traefik/facturix.yml` — file-provider dynamic config. Vervang overal `facturix.example.com` door je eigen domein en zorg dat de DNS naar de host wijst. ## Backup Het volume/`/data` (of de native data-map) bevat je **hele administratie** (`facturix.db`) én de encryptiesleutel (`secret.key`). Neem **beide** mee in je backup: zonder `secret.key` is een versleuteld SMTP-wachtwoord niet meer leesbaar. Alternatief: zet een vaste `FACTURIX_SECRET` zodat de sleutel niet van een bestand afhangt. Voorbeeld (Docker-volume): ```bash docker run --rm -v facturix-data:/d busybox tar czf - /d > facturix-backup.tar.gz ``` ## Licentie Facturix draait onbeperkt op de gratis **ZZP**-tier. Extra functies (herhaalfacturen, aanmaningen, bankimport, Ledgerix-koppeling, meerdere administraties, bulkverzending) zitten in **MKB** en **Accountant**. Installeer een licentietoken via **Instellingen → Licentie**, of zet `FACTURIX_LICENSE`. Een verlopen licentie valt automatisch terug op ZZP; de basis blijft werken. ## Native (systemd, zonder Docker) Zie `deploy/systemd/facturix.service` voor een kant-en-klare unit met een dedicated user en systemd-hardening. Kort: ```bash sudo useradd --system --home /opt/facturix --shell /usr/sbin/nologin facturix sudo mkdir -p /opt/facturix/data # kopieer het binary naar /opt/facturix/facturix en de static-map ernaast sudo cp deploy/systemd/facturix.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now facturix ``` ## Windows Voor Windows is er een Inno Setup-installer (`installer/`). Bouw 'm met `installer\build.bat` (vereist Inno Setup 6). De installer biedt een single-user (kiosk) optie en automatisch starten bij aanmelden. ## SCML (toegankelijke opmaak, optioneel) De rijke, toegankelijke documentopmaak (PDF/UA, braille/spraak/easy-read) loopt via een externe `scml-serve`-engine. Zet de URL bij **Instellingen → Documentgeneratie**. Zonder scml-serve gebruikt Facturix de ingebouwde printpdf-opmaak (werkt standalone).