MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m15s
- VAPID keys from VAPID_* or generated once (push_keys, migration 9); devices in push_subscriptions, forgotten on 404/410 from the push service - push column for every event (also due tasks) and the daily summary, bundles as one notification; /push/key, /devices, /subscribe, /unsubscribe, /test - settings: switch push on per device, test it, see the devices; the service worker shows notifications and focuses MindSift on click - tests decrypt a sent push like a browser (RFC 8291) and check VAPID Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
81 lines
3.5 KiB
YAML
81 lines
3.5 KiB
YAML
# MindSift – Docker Compose
|
||
# Eingestellt wird alles in der Datei .env neben dieser Datei. Was jede Variable bewirkt, steht in
|
||
# .env.example (kopieren: cp .env.example .env). Hier stehen nur die Zuordnungen mit Standardwerten.
|
||
services:
|
||
mindsift:
|
||
image: git.dsit.me/sandrodach/mindsift:dev
|
||
container_name: mindsift
|
||
restart: unless-stopped
|
||
ports:
|
||
- "${PORT:-8080}:8080"
|
||
volumes:
|
||
- ./data:/data
|
||
environment:
|
||
- PORT=8080
|
||
- DATA_DIR=/data
|
||
- TZ=${TZ:-Europe/Berlin}
|
||
- JWT_SECRET=${JWT_SECRET:-change_this_to_a_secure_random_key_min_32_chars}
|
||
- BASE_URL=${BASE_URL:-http://localhost:8080}
|
||
- ALLOW_REGISTRATION=${ALLOW_REGISTRATION:-false}
|
||
- TRUSTED_PROXIES=${TRUSTED_PROXIES:-private}
|
||
- LOGIN_PROTECTION=${LOGIN_PROTECTION:-true}
|
||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||
- DEBUG=${DEBUG:-false}
|
||
- MINDA_DEMO=${MINDA_DEMO:-false}
|
||
- DEMO_RESET_MINUTES=${DEMO_RESET_MINUTES:-20}
|
||
# E-Mail
|
||
- SMTP_HOST=${SMTP_HOST:-}
|
||
- SMTP_PORT=${SMTP_PORT:-587}
|
||
- SMTP_USER=${SMTP_USER:-}
|
||
- SMTP_PASS=${SMTP_PASS:-}
|
||
- SMTP_FROM=${SMTP_FROM:-}
|
||
- SMTP_FROM_NAME=${SMTP_FROM_NAME:-MindSift}
|
||
- NOTIFY_DIGEST_MINUTES=${NOTIFY_DIGEST_MINUTES:-5}
|
||
- SMTP_TLS=${SMTP_TLS:-true}
|
||
- SMTP_SKIP_VERIFY=${SMTP_SKIP_VERIFY:-false}
|
||
# Web-Push: ohne Angabe erzeugt MindSift die Schlüssel selbst
|
||
# - VAPID_SUBJECT=${VAPID_SUBJECT:-mailto:admin@example.com}
|
||
# Impressum / Datenschutz
|
||
- LEGAL_IMPRINT_URL=${LEGAL_IMPRINT_URL:-}
|
||
- LEGAL_PRIVACY_URL=${LEGAL_PRIVACY_URL:-}
|
||
- LEGAL_IMPRINT_CONTENT=${LEGAL_IMPRINT_CONTENT:-}
|
||
- LEGAL_PRIVACY_CONTENT=${LEGAL_PRIVACY_CONTENT:-}
|
||
- LEGAL_IMPRINT_CONTENT_FILE=${LEGAL_IMPRINT_CONTENT_FILE:-}
|
||
- LEGAL_PRIVACY_CONTENT_FILE=${LEGAL_PRIVACY_CONTENT_FILE:-}
|
||
# Bilder und Audio in Notizen
|
||
- MEDIA_MAX_IMAGE_MB=${MEDIA_MAX_IMAGE_MB:-15}
|
||
- MEDIA_MAX_AUDIO_MB=${MEDIA_MAX_AUDIO_MB:-50}
|
||
- MEDIA_QUOTA_MB=${MEDIA_QUOTA_MB:-0}
|
||
- MEDIA_DEMO_MAX_MB=${MEDIA_DEMO_MAX_MB:-3}
|
||
# Spracherkennung
|
||
- STT_URL=${STT_URL:-}
|
||
- STT_MODEL=${STT_MODEL:-deepdml/faster-whisper-large-v3-turbo-ct2}
|
||
- STT_LANGUAGE=${STT_LANGUAGE:-de}
|
||
- STT_API_KEY=${STT_API_KEY:-}
|
||
- STT_DISABLED=${STT_DISABLED:-false}
|
||
- STT_MAX_SECONDS=${STT_MAX_SECONDS:-600}
|
||
- STT_MAX_UPLOAD_MB=${STT_MAX_UPLOAD_MB:-25}
|
||
- STT_MAX_PARALLEL=${STT_MAX_PARALLEL:-1}
|
||
- STT_PER_USER_PER_HOUR=${STT_PER_USER_PER_HOUR:-60}
|
||
- STT_TIMEOUT_SECONDS=${STT_TIMEOUT_SECONDS:-120}
|
||
|
||
# Optional: eigene Spracherkennung (Whisper). Zum Einschalten:
|
||
# 1. die Rauten vor dem Block "whisper" unten entfernen
|
||
# 2. in .env setzen: STT_URL=http://whisper:8000
|
||
# 3. mkdir -p whisper && sudo chown 1000:1000 whisper (der Container läuft als UID 1000)
|
||
# 4. docker compose up -d
|
||
# Das Modell lädt MindSift beim ersten Start selbst nach ./whisper (large-v3-turbo ca. 1,6 GB).
|
||
# RAM: large-v3-turbo ca. 2 GB, small ca. 1 GB. Kein Port nach außen nötig.
|
||
#
|
||
# whisper:
|
||
# image: ghcr.io/speaches-ai/speaches:0.8.3-cpu
|
||
# container_name: mindsift-whisper
|
||
# restart: unless-stopped
|
||
# volumes:
|
||
# - ./whisper:/home/ubuntu/.cache/huggingface/hub
|
||
# environment:
|
||
# - WHISPER__COMPUTE_TYPE=int8 # schneller auf der CPU, kaum Qualitätsverlust
|
||
# - STT_MODEL_TTL=-1 # Modell im Speicher halten statt nach 5 Min. zu entladen
|
||
# - ENABLE_UI=false # ohne die Weboberfläche von speaches
|
||
# - LOG_LEVEL=info
|