コンテンツにスキップ

インストール: Docker run

このページ専用の手順を実行します: インストール: Docker run. この手順で扱う項目: DATABASE_URL · discvault-postgres · 6080:5000 · /api/next/health.

このページの対象は インストール: Docker run (Docker). チャンネルとデータの境界: DiscVault · ghcr.io/helmerznl/discvault:latest; PostgreSQL API MCP; 6080 → API 5000; DiscVault · ghcr.io/helmerznl/discvault:beta; PostgreSQL API MCP; 6080 → API 5000. このページ固有の確認点: DATABASE_URL · discvault-postgres · 6080:5000 · /api/next/health.

  • DiscVault · ghcr.io/helmerznl/discvault:latest
  • PostgreSQL API MCP
  • 6080 → API 5000
  • DiscVault · ghcr.io/helmerznl/discvault:beta
  • PostgreSQL API MCP
  • 6080 → API 5000
  • Docker Engine 24+
  • OpenSSL
  • 6080:5000
  1. 記録: DISCVAULT_IMAGE · :latest :beta
  2. 作成: --env-file · DATABASE_URL · 所有者のみのファイル権限 (0600)
  3. 開始: discvault-postgresdiscvault-api → MCP
  4. 検証: 6080:5000 · GET /api/next/health
Terminal window
export DISCVAULT_IMAGE=ghcr.io/helmerznl/discvault:latest
Terminal window
export DISCVAULT_IMAGE=ghcr.io/helmerznl/discvault:beta
Terminal window
set -euo pipefail
test -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 ;;
esac
install -d -m 0700 /opt/discvault
install -d -m 0750 /srv/discvault
install -d -o 70 -g 70 -m 0700 /srv/discvault-postgres
umask 077
ENV_FILE=/opt/discvault/docker-run.env
test ! -e "$ENV_FILE"
ENV_TMP="$(mktemp "$ENV_FILE.tmp.XXXXXX")"
trap 'rm -f "$ENV_TMP"' EXIT
POSTGRES_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 - EXIT
docker network inspect discvault >/dev/null 2>&1 || docker network create discvault
docker 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-alpine
until [ "$(docker inspect discvault-postgres --format '{{.State.Health.Status}}')" = healthy ]; do
sleep 2
done
docker 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; done
docker 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 work
docker 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 6090
docker ps --filter 'name=discvault-'

次の結果を受け入れる条件: インストール: Docker run 以下の結果をすべて確認した場合のみ: HTTP 2xx · /api/next/health; discvault-postgres. このページ固有の確認点: DATABASE_URL · discvault-postgres · 6080:5000 · /api/next/health.

  • HTTP 2xx · /api/next/health
  • discvault-postgres

インストール: 初回起動とヘルスチェック