Installation: Docker run
Ziel und Ergebnis
Abschnitt betitelt „Ziel und Ergebnis“Führe den seitenspezifischen Ablauf aus für Installation: Docker run. Dieses Verfahren arbeitet mit DATABASE_URL · discvault-postgres · 6080:5000 · /api/next/health.
Gültig für
Abschnitt betitelt „Gültig für“Diese Seite gilt ausschließlich für Installation: Docker run (Docker). Kanal- und Datengrenzen sind: DiscVault · ghcr.io/helmerznl/discvault:latest; PostgreSQL API MCP; 6080 → API 5000; DiscVault · ghcr.io/helmerznl/discvault:beta; PostgreSQL API MCP; 6080 → API 5000. Seitenspezifische Kontrollpunkte: DATABASE_URL · discvault-postgres · 6080:5000 · /api/next/health.
DiscVault v26 – stabil
Abschnitt betitelt „DiscVault v26 – stabil“- DiscVault ·
ghcr.io/helmerznl/discvault:latest - PostgreSQL API MCP
6080→ API5000
DiscVault v26 – Beta
Abschnitt betitelt „DiscVault v26 – Beta“- DiscVault ·
ghcr.io/helmerznl/discvault:beta - PostgreSQL API MCP
6080→ API5000
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Docker Engine
24+ - OpenSSL
6080:5000
Vorgehen
Abschnitt betitelt „Vorgehen“- Festhalten:
DISCVAULT_IMAGE·:latest:beta - Erstellen:
--env-file·DATABASE_URL· Dateirechte nur für den Eigentümer (0600) - Starten:
discvault-postgres→discvault-api→ MCP - Verifizieren:
6080:5000·GET /api/next/health
Befehle und Einstellungen
Abschnitt betitelt „Befehle und Einstellungen“DiscVault v26 – stabil
Abschnitt betitelt „DiscVault v26 – stabil“export DISCVAULT_IMAGE=ghcr.io/helmerznl/discvault:latestDiscVault v26 – Beta
Abschnitt betitelt „DiscVault v26 – Beta“export DISCVAULT_IMAGE=ghcr.io/helmerznl/discvault:betaBeide Kanäle
Abschnitt betitelt „Beide Kanäle“set -euo pipefailtest -n "$DISCVAULT_IMAGE"case "$DISCVAULT_IMAGE" in ghcr.io/helmerznl/discvault:latest|ghcr.io/helmerznl/discvault:beta) ;; *) printf '%s\n' "$DISCVAULT_IMAGE" >&2; exit 64 ;;esacinstall -d -m 0700 /opt/discvaultinstall -d -m 0750 /srv/discvaultinstall -d -o 70 -g 70 -m 0700 /srv/discvault-postgresumask 077ENV_FILE=/opt/discvault/docker-run.envtest ! -e "$ENV_FILE"ENV_TMP="$(mktemp "$ENV_FILE.tmp.XXXXXX")"trap 'rm -f "$ENV_TMP"' EXITPOSTGRES_PASSWORD="$(openssl rand -hex 32)"JWT_SECRET="$(openssl rand -hex 32)"printf '%s\n' \ 'POSTGRES_DB=discvault' \ 'POSTGRES_USER=discvault' \ "POSTGRES_PASSWORD=$POSTGRES_PASSWORD" \ "DATABASE_URL=postgresql://discvault:$POSTGRES_PASSWORD@discvault-postgres:5432/discvault" \ "JWT_SECRET=$JWT_SECRET" \ 'TZ=Europe/Amsterdam' \ 'RP_ID=localhost' \ 'RP_NAME=DiscVault' \ 'RP_ORIGINS=http://localhost:6080' \ 'DISCVAULT_DATA_DIR=/data' \ 'DISCVAULT_PLUGIN_INSTALL_DIR=/data/plugins' \ 'DISCVAULT_WORKER_ID=worker-1' \ 'DISCVAULT_WORKER_POLL_INTERVAL=2' \ 'DISCVAULT_API=http://discvault-api:5000' > "$ENV_TMP"chmod 0600 "$ENV_TMP"ln "$ENV_TMP" "$ENV_FILE"rm -f "$ENV_TMP"trap - EXITdocker network inspect discvault >/dev/null 2>&1 || docker network create discvaultdocker run -d --name discvault-postgres --restart unless-stopped \ --network discvault --env-file "$ENV_FILE" \ --health-cmd 'pg_isready -U "$POSTGRES_USER" -d "$POSTGRES_DB"' \ --health-interval 10s --health-timeout 5s --health-retries 10 \ -v /srv/discvault-postgres:/var/lib/postgresql/data postgres:17-alpineuntil [ "$(docker inspect discvault-postgres --format '{{.State.Health.Status}}')" = healthy ]; do sleep 2donedocker run -d --name discvault-api --restart unless-stopped \ --network discvault --env-file "$ENV_FILE" -w /opt/discvault/backend \ -p 6080:5000 -v /srv/discvault:/data "$DISCVAULT_IMAGE" \ sh -c 'python next_database.py migrate && exec gunicorn --bind 0.0.0.0:5000 --workers 2 --timeout 180 next_app:app'until curl --fail http://localhost:6080/api/next/health; do sleep 2; donedocker run -d --name discvault-worker --restart unless-stopped \ --network discvault --env-file "$ENV_FILE" -w /opt/discvault/backend \ -v /srv/discvault:/data "$DISCVAULT_IMAGE" python next_worker.py workdocker run -d --name discvault-mcp --restart unless-stopped \ --network discvault --env-file "$ENV_FILE" -w /opt/discvault/mcp-server \ -p 6090:6090 "$DISCVAULT_IMAGE" \ python server.py --http --host 0.0.0.0 --port 6090docker ps --filter 'name=discvault-'Erwartetes Ergebnis
Abschnitt betitelt „Erwartetes Ergebnis“Akzeptiere das Ergebnis für Installation: Docker run nur wenn alle folgenden Ergebnisse erfüllt sind: HTTP 2xx · /api/next/health; discvault-postgres. Seitenspezifische Kontrollpunkte: DATABASE_URL · discvault-postgres · 6080:5000 · /api/next/health.
- HTTP
2xx·/api/next/health discvault-postgres
Sicherheit und Rollback
Abschnitt betitelt „Sicherheit und Rollback“Nächster Schritt
Abschnitt betitelt „Nächster Schritt“Installation: Erster Start und Zustandsprüfung
Quelle und Status
Abschnitt betitelt „Quelle und Status“helmerzNL/DiscVault@6d27c689ac21- Quelle und Status:
2026-07-14 - DiscVault Docs:
0.1.0
