Deployment Guide
jinflow trennt App (Engine + JinDesk) von Daten (Tenant-KLS-Dateien).
Architektur
Abschnitt betitelt „Architektur“Deploy Root (App) Live Root (Daten) _cli/jinflow ← CLI millesime/domaine_zufferey/ _explorer/ ← JinDesk afs/, raw/, build/, store/ jinflow ← Launcher millesime/domaine_zufferey/ afs/, raw/, build/, store/Die App wird einmal pro Release gebaut. Daten werden pro Tenant via make gebaut.
Desktop Release
Abschnitt betitelt „Desktop Release“# Version erhoehen, bauen, paketierenjust release patch
# Aktuelle Version bauen ohne Erhoehungjust release --now
# Tests ueberspringen fuer schnellere Iterationjust release --now --skip-testsDas produziert:
jinflow-deploy/_cli/— PyInstaller-Binary (Python + dbt + DuckDB)jinflow-deploy/_explorer/— SvelteKit Build + node_modulesjinflow-deploy/jinflow— CLI Binary
Ausfuehrung
Abschnitt betitelt „Ausfuehrung“Desktop
Abschnitt betitelt „Desktop“# Via Launcher./jinflow make --tenant millesime.domaine_zufferey./jinflow desk --tenant millesime.domaine_zufferey
# JinDesk./jinflow desk # oeffnet JinDesk mit Tenant-AuswahlEntwicklung
Abschnitt betitelt „Entwicklung“# CLI (aus dem Repository)jin make --tenant millesime.domaine_zufferey
# JinDesk Dev Servercd explorer && npm run dev # localhost:4000Docker (nur Cloud)
Abschnitt betitelt „Docker (nur Cloud)“Docker ist fuer Cloud-Deployment. Lokaler JinDesk laeuft als Node.js Web Server.
# Docker Image bauenscripts/build-docker.sh
# Mit Live Root Mount ausfuehrendocker run -v /path/to/live:/data/live:ro \ -p 4000:4000 \ jinflow-explorerR2 (Cloud Storage)
Abschnitt betitelt „R2 (Cloud Storage)“KLS-Dateien koennen in Cloudflare R2 fuer den Cloud JinDesk gespeichert werden:
# R2 Anmeldedaten konfigurierenjin us --r2-account-id ... --r2-key ... --r2-secret ... --r2-bucket jinflow-demoJinDesk entdeckt KLS-Dateien in R2, laedt sie in den lokalen Cache und stellt sie von der Festplatte bereit. Hintergrundsynchronisation prueft alle 5 Minuten auf Updates (ETag-Vergleich).
Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“JinDesk
Abschnitt betitelt „JinDesk“| Variable | Zweck |
|---|---|
JINFLOW_LIVE_ROOT | Live Root fuer Tenant-Erkennung |
JINFLOW_DB_PATH | Expliziter KLS-Pfad (Einzeltenant-Modus) |
JINFLOW_AFS_ROOT | AFS Root fuer Brand-Konfiguration |
JINFLOW_SYSTEM_DB_PATH | System DuckDB (optional) |
JINFLOW_OPS_PATH | Expliziter OPS-Pfad (Ueberschreibung) |
ANTHROPIC_API_KEY | Claude API Key fuer KI-Erklaerungen |
JINFLOW_AI_MODEL | KI-Modell-Ueberschreibung (Standard: claude-haiku-4-5-20251001) |
KLS_SOURCE | Erkennungsmodus: local, r2 oder leer |
KLS_LOCAL_DIR | Lokales Verzeichnis fuer KLS-Erkennung |
| Variable | Zweck |
|---|---|
JINFLOW_LIVE | Live Root Ueberschreibung |
JINFLOW_PACKS_ROOT | Pack Root Ueberschreibung |
JINFLOW_DLZ_ROOT | DLZ Root Ueberschreibung |
JINFLOW_TENANT | Standard-Tenant |
JINFLOW_DEPLOY_ROOT | Deploy Root Ueberschreibung |
Plattformanforderungen
Abschnitt betitelt „Plattformanforderungen“| Plattform | CLI | JinDesk |
|---|---|---|
| macOS (arm64) | Native Binary | Node.js oder Bun |
| Windows | PyInstaller Build (auf Windows) | Node.js |
| Linux | PyInstaller Build (auf Linux) | Node.js |
Release-Checkliste
Abschnitt betitelt „Release-Checkliste“- Sicherstellen, dass Tests bestehen:
just test - Alle Aenderungen committen
- Release:
just release patch(oderminor,major) - Deployed Binary testen:
jinflow-deploy/jinflow version - Tenants bauen:
jin make --all --sync - JinDesk pruefen:
jin desk
v0.64.7 · built 2026-09-20 19:48 UTC