mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 13:34:40 +00:00
597bc004fc
Containerises the three services (each intended for its own Proxmox VM)
and adds the code changes needed to run cleanly on Linux/Docker.
Code fixes:
- constants.py: CONJURER_DATA_DIR roots all writable bot state under one
mounted volume (per-variable overrides still win; native Pi unaffected)
- conjurer_librarian/search_bot.py + scrape_bot.py: the hardcoded Windows
DOI database path (C:\Database\chunks\) is now CONJURER_LIBRARIAN_DB_PATH,
with CONJURER_LIBRARIAN_MAXTHREADS / _CHUNK also env-overridable
Docker:
- docker/Dockerfile.{bot,librarian,musician} + compose.{bot,librarian,musician}.yaml
- docker/env/*.env.example (force-added; real *.env stays gitignored)
- docker/entrypoint.bot.sh seeds default JSON state into /data only when
absent, so preserved history is never overwritten
- .dockerignore
- docs/deployment/DOCKER_PROXMOX.md: step-by-step runbook incl. preserving
the existing command/conversation history and cross-VM auth
The bot image uses the vendored yt_dlp/spotify_dl forks (they win on
sys.path over the pip packages), dropping the old sed patching.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23 lines
868 B
YAML
23 lines
868 B
YAML
# Main bot VM. Run from the repository root:
|
|
# cp docker/env/bot.env.example docker/env/bot.env # then edit
|
|
# docker compose -f docker/compose.bot.yaml up -d --build
|
|
services:
|
|
conjurer-bot:
|
|
build:
|
|
context: ..
|
|
dockerfile: docker/Dockerfile.bot
|
|
image: conjurer-bot:latest
|
|
container_name: conjurer-bot
|
|
restart: unless-stopped
|
|
env_file:
|
|
- env/bot.env
|
|
ports:
|
|
# Flask comm layer — musician/librarian POST results here (/prepped_tracks, /conjurer).
|
|
- "5000:5000"
|
|
volumes:
|
|
# Persistent state (conversation history, settings, logs). Populate this
|
|
# host dir with your existing pamiec.json etc. to preserve command history.
|
|
- /srv/conjurer/data:/data
|
|
# Tokens: a read-only netrc covers discord/openai/spotipy/youtube in one file.
|
|
- /srv/conjurer/secrets/.netrc:/secrets/.netrc:ro
|