SMB-Zugangsdaten nach .env ausgelagert statt in docker-compose.yml.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
dfuhrmann3 2026-07-30 16:37:53 +02:00
parent 35139ab2b1
commit a4e9918e23
4 changed files with 34 additions and 26 deletions

14
.env.example Normal file
View File

@ -0,0 +1,14 @@
# Vorlage fuer die Zugangsdaten der Netzwerkfreigabe (Stapelbetrieb).
#
# Kopieren nach '.env' und ausfuellen:
# copy .env.example .env
#
# '.env' ist in .gitignore eingetragen und landet damit NICHT im Repository.
# Diese Vorlage hier enthaelt bewusst keine echten Werte und wird versioniert.
#
# Das Konto braucht Lese- UND Schreibrechte auf //FS01/Daten/Technik/AI - der Stapelbetrieb
# schreibt die fertigen E-Rechnungen zurueck und verschiebt die Quelldateien nach 'verarbeitet'.
SMB_USER=dienstkonto
SMB_PASSWORD=
SMB_DOMAIN=SCITECH

7
.gitignore vendored
View File

@ -4,6 +4,13 @@ models
__pycache__/
*.pyc
# Zugangsdaten der Netzwerkfreigabe - duerfen NICHT ins Repository (.env.example ist die
# Vorlage ohne echte Werte und wird versioniert).
.env
# Lokaler Ersatzordner, wenn keine Freigabe eingebunden ist
batch_data/
# Nur lokal - nicht zum Betrieb des Tools noetig (Tests, Test-Config, Planungsdoku)
docs/
tests/

View File

@ -35,24 +35,15 @@ Der Stapelbetrieb liest Rechnungen aus einem Ordner und schreibt die fertigen E-
Der Windows-Pfad wird dabei in Docker-Schreibweise angegeben: aus `\\FS01\Daten\Technik\AI` wird `//FS01/Daten/Technik/AI`.
```yaml
volumes:
datev_austausch:
driver: local
driver_opts:
type: cifs
device: "//FS01/Daten/Technik/AI"
o: "username=DIENSTKONTO,password=GEHEIM,domain=SCITECH,uid=1000,gid=1000,vers=3.0"
**1. Zugangsdaten hinterlegen** – nicht in `docker-compose.yml`, sondern in einer `.env`-Datei. Diese ist in `.gitignore` eingetragen und landet nicht im Repository:
```cmd
copy .env.example .env
```
und beim Service:
Dann `.env` öffnen und Benutzer, Passwort und Domäne des Dienstkontos eintragen. Das Konto braucht Lese- **und** Schreibrechte auf der Freigabe.
```yaml
volumes:
- datev_austausch:/data
```
Beides steht auskommentiert in der Datei und muss nur aktiviert und um die Zugangsdaten ergänzt werden. Das Konto braucht Lese- **und** Schreibrechte.
**2. Volume aktivieren** – in `docker-compose.yml` den Block am Dateiende einkommentieren sowie beim Service `- datev_austausch:/data` statt `- ./batch_data:/data` verwenden. Beides steht dort vorbereitet.
Wichtig: Binden Sie den **übergeordneten** Ordner ein, nicht einen einzelnen Unterordner. `Test1`, `Test2` und jeder künftige Unterordner sind dann in der Oberfläche frei wählbar, ohne dass diese Datei erneut angefasst werden muss.

View File

@ -10,18 +10,11 @@ services:
# frei waehlbar - fuer neue Ordner muss diese Datei NICHT angefasst werden.
- BATCH_ROOT_DIR=/data
volumes:
# Die Netzwerkfreigabe \\FS01\Daten\Technik\AI wird unten als Volume 'datev_austausch'
# definiert und hier auf /data gelegt. Der Container arbeitet damit DIREKT auf der
# Netzwerkfreigabe einbinden: die naechste Zeile einkommentieren und dafuer
# './batch_data:/data' darunter entfernen. Der Container arbeitet dann DIREKT auf der
# Freigabe - es wird nichts kopiert oder synchronisiert.
#
# Zum Aktivieren: die naechste Zeile einkommentieren, './batch_data:/data' entfernen und
# unten im Block 'volumes:' Benutzername und Passwort eintragen.
# - datev_austausch:/data
#
# Alternative, falls die Freigabe auf dem Docker-Host bereits eingehaengt ist (dann
# braucht es keine Zugangsdaten hier):
# - /mnt/fs01/Daten/Technik/AI:/data
#
# Vorbelegung ohne Freigabe: lokaler Ordner, damit der Container startet. Der
# Stapelbetrieb findet darin nichts und weist darauf hin; die Einzelrechnung
# funktioniert uneingeschraenkt.
@ -35,11 +28,14 @@ services:
# sind Test1, Test2 und jeder kuenftige Unterordner im UI waehlbar, ohne diese Datei erneut
# anzufassen.
#
# Das angegebene Konto braucht Lese- UND Schreibrechte auf der Freigabe.
# WICHTIG: Zugangsdaten stehen NICHT hier, sondern in der Datei '.env' (siehe .env.example).
# Diese Datei liegt im Git - ein hier eingetragenes Passwort waere im Repository sichtbar.
# Das Konto braucht Lese- UND Schreibrechte auf der Freigabe.
#
# volumes:
# datev_austausch:
# driver: local
# driver_opts:
# type: cifs
# device: "//FS01/Daten/Technik/AI"
# o: "username=DIENSTKONTO,password=GEHEIM,domain=SCITECH,uid=1000,gid=1000,vers=3.0"
# o: "username=${SMB_USER},password=${SMB_PASSWORD},domain=${SMB_DOMAIN},uid=1000,gid=1000,vers=3.0"