Labelixa auf Ihrem eigenen Server betreiben: Umgebungsvariablen, Docker-Bereitstellung, eigene Schriften und die zustandslose Architektur.
Der Renderdienst ist bewusst zustandslos: Eingehendes ZPL wird weder auf die Festplatte geschrieben noch protokolliert. Das ist für den Datenschutz (DSGVO) wichtig und erleichtert die horizontale Skalierung — Sie fügen einfach Worker oder Server hinzu.
| Variable | Zweck | Standard |
|---|---|---|
LABELIXA_DB | SQLite-Datenbankpfad (Konto/Nutzung) | ./labelixa.db |
DATABASE_URL | PostgreSQL-Verbindung (statt SQLite) | keine |
LABELIXA_FONT | Eigene Textschrift (TTF-Pfad) | Liberation Sans Bold |
STRIPE_SECRET_KEY | Stripe-Geheimschlüssel (Abonnements) | keiner |
STRIPE_WEBHOOK_SECRET | Stripe-Webhook-Signaturgeheimnis | keines |
STRIPE_PRICE_STARTER | Stripe-Preis-ID für den Starter-Tarif | keine |
STRIPE_PRICE_PRO | Stripe-Preis-ID für den Professional-Tarif | keine |
STRIPE_PRICE_ENTERPRISE | Enterprise-Preis-ID (On-Prem) | keine |
STRIPE_PRICE_*_YEARLY | Jahres-Preis-IDs der Tarife | keine |
SITE_URL | Kanonische Domain auf SEO-Seiten | aus der Anfrage |
CORS_ORIGINS | Erlaubte Ursprünge (kommagetrennt) | * (alle) |
LABELIXA_VEKIL | Reverse-Proxy-Topologie (welcher Identitäts-Header vertraut wird); außerhalb von Cloudflare auf 'genel' setzen | cloudflare |
LOG_JSON | Ein JSON-Objekt pro Logzeile | 0 |
LOG_LEVEL | Log-Stufe (DEBUG|INFO|WARNING|ERROR) | INFO |
METRICS_TOKEN | Aktiviert den Prometheus-Endpunkt /metrics (ohne ihn geschlossen) | keiner |
WEB_CONCURRENCY | Anzahl der uvicorn-Worker | 2 |
Das Dockerfile im Wurzelverzeichnis erstellt ein einzelnes Image:
docker build -t labelixa .
docker run -p 8000:8000 \
-e LABELIXA_DB=/data/labelixa.db \
-e LABELIXA_FONT=/fonts/MyFont.ttf \
-v $PWD/data:/data -v $PWD/fonts:/fonts labelixaDie integrierten Schriften von Zebra (Schrift 0 = CG Triumvirate Bold Condensed) sind proprietär und nicht Teil des ZPL-Codes; das ZPL trägt nur die Nummer, Höhe und Breite der Schrift. Standardmäßig wird die nach Breite nächstgelegene offene Schrift, Liberation Sans Bold, verwendet. Muss die Ausgabe bis zur Strichstärke übereinstimmen, definieren Sie Ihre lizenzierte Schrift mit LABELIXA_FONT, und die Engine verwendet sie für allen Text. Ist der Pfad falsch, fällt der Dienst nicht stillschweigend zurück — das Feld font.sorun und die Statusseite warnen Sie.
GET /health gibt den Komponentenstatus als JSON zurück; /durum ist eine menschenlesbare Statusseite. /health kann für Load-Balancer-Prüfungen verwendet werden.