Anleitungen 1/10
Installation
Docker Compose, Umgebungsvariablen, erster Administrator und Lizenz.
Diese Anleitung gilt für den Betrieb auf Ihrem eigenen Server. Nutzen Sie Fulfillment Companion als Service, übernehmen wir die Installation und Sie beginnen direkt mit Wawi-API verbinden.
Fulfillment Companion läuft als Docker-Anwendung. Ein Image enthält zwei Prozesse: web liefert die Oberfläche aus, worker führt die geplanten Abgleiche aus. Alle Daten liegen in einer SQLite-Datenbank im Ordner data neben der compose.yaml.
Voraussetzungen
- Ein Linux-Server mit Docker und dem Docker-Compose-Plugin.
- Netzwerkzugriff vom Server auf die REST-API Ihrer JTL-Wawi.
- Die Dateien
compose.yamlund.env.examplesowie Ihre Lizenzdaten von uns.
1. Verzeichnis vorbereiten
Legen Sie compose.yaml und .env.example in ein eigenes Verzeichnis, zum Beispiel /opt/fulfillment-companion, und erstellen Sie dort die Konfiguration und den Datenordner:
cd /opt/fulfillment-companion
cp .env.example .env
mkdir -p data/inbound
2. Umgebungsvariablen in der .env setzen
Öffnen Sie die .env und passen Sie mindestens diese Werte an:
DJANGO_SECRET_KEY: eine lange, zufällige Zeichenkette. Sie darf nicht öffentlich werden.DJANGO_ALLOWED_HOSTS: die Hostnamen, unter denen Sie die Anwendung aufrufen, kommagetrennt, zum Beispielcompanion.ihre-firma.de,localhost,127.0.0.1.DJANGO_DEBUG: bleibt aufFalse.WEB_PORT: der Port auf dem Server, standardmäßig8000.SYNC_HOUR: die Stunde (0 bis 23, Zeitzone des Containers), zu der der tägliche Wawi-Abgleich läuft. Standard ist3.INBOUND_HOST_FOLDER: der Ordner auf dem Server, in den die Wareneingangs-Exporte aus JTL-Wawi abgelegt werden. Standard ist./data/inbound. Siehe Wareneingänge.WAWI_APP_ID: bleibt aufFulfillmentCompanion.
Die übrigen Werte in der Vorlage, etwa GUNICORN_WORKERS und GUNICORN_TIMEOUT, können Sie unverändert lassen.
3. Lizenz eintragen
Die Lizenz wird zur Laufzeit geprüft. Die Werte erhalten Sie von uns:
FC_LICENSE_ENFORCE: bleibt auftrue.FC_LICENSE_PUBLIC_KEY: der öffentliche Schlüssel zur Prüfung der Lizenz.FC_LICENSE_RENEWAL_URL: die Adresse für die tägliche Online-Erneuerung.- Den Lizenzschlüssel tragen Sie entweder direkt als
FC_LICENSEein oder legen ihn als Dateidata/license.txtab. Im Container ist das der Pfad ausFC_LICENSE_FILE, standardmäßig/data/license.txt.
Die Lizenz kennt drei Zustände:
- Gültig: voller Funktionsumfang.
- Kulanzfrist: abgelaufen, aber noch innerhalb der Kulanzfrist. Voller Funktionsumfang, die Oberfläche zeigt einen Hinweis zur Verlängerung.
- Nur Lesen: keine, ungültige oder abgelaufene Lizenz nach der Kulanzfrist. Sie können alle Daten ansehen und exportieren, Änderungen sind gesperrt.
4. Container starten
docker compose up -d
Der Webprozess richtet beim Start die Datenbank ein und ist danach unter http://<server>:8000 erreichbar (oder unter dem Port aus WEB_PORT). Der Worker startet, sobald der Webprozess bereit ist.
Für den Zugriff über HTTPS setzen Sie einen Reverse Proxy Ihrer Wahl vor den Webprozess.
5. Ersten Administrator anlegen
docker compose exec web python manage.py createsuperuser
Geben Sie Benutzername und Passwort ein. Melden Sie sich anschließend im Browser unter Sign in an. Nach der Anmeldung sehen Sie die Startseite Home mit Kennzahlen zu Kunden, Aufträgen, Retouren, Wareneingängen und Bestandszeilen.

Weitere Benutzer legen Sie danach direkt in der Anwendung an, siehe Benutzer.
Betrieb
- Protokolle ansehen:
docker compose logs -f webunddocker compose logs -f worker. Der Worker gibt beim Start seinen Zeitplan aus. - Der Worker führt zwei Aufgaben aus: den täglichen Wawi-Abgleich zur Stunde aus
SYNC_HOURund die tägliche Erneuerung der Lizenz. - Den Wawi-Abgleich von Hand starten:
docker compose exec worker python manage.py run_worker --once wawi_sync
Sicherung und Wiederherstellung
Alle Daten liegen im Ordner data. Für eine konsistente Sicherung stoppen Sie die Container kurz:
docker compose stop && cp -r data data.bak && docker compose start
Zur Wiederherstellung legen Sie den gesicherten Ordner data zurück und starten mit docker compose up -d.
Als Nächstes verbinden Sie die Anwendung mit JTL-Wawi: Wawi-API verbinden.