chore: add docker-compose stack and Caddy config for deployment

This commit is contained in:
pyr0ball 2026-07-13 14:36:37 -07:00
parent f2709fc425
commit d9a2aa1b6d
4 changed files with 64 additions and 0 deletions

17
.env.example Normal file
View file

@ -0,0 +1,17 @@
CHORUS_DISCORD_TOKEN=
CHORUS_GUILD_ID=
CHORUS_INBOX_CHANNEL_ID=
CHORUS_TRIAGE_ROLE_ID=
CHORUS_BACKEND_BASE_URL=http://backend:8000
CHORUS_GVOICE_IMAP_HOST=
CHORUS_GVOICE_IMAP_USER=
CHORUS_GVOICE_IMAP_PASSWORD=
CHORUS_BH_EMAIL_IMAP_HOST=
CHORUS_BH_EMAIL_IMAP_USER=
CHORUS_BH_EMAIL_IMAP_PASSWORD=
CHORUS_PERSONAL_EMAIL_IMAP_HOST=
CHORUS_PERSONAL_EMAIL_IMAP_USER=
CHORUS_PERSONAL_EMAIL_IMAP_PASSWORD=

15
Caddyfile.snippet Normal file
View file

@ -0,0 +1,15 @@
chorus.circuitforge.tech {
basicauth {
donna <bcrypt-hash-here>
alan <bcrypt-hash-here>
}
handle /api/* {
uri strip_prefix /api
reverse_proxy backend:8000
}
handle {
reverse_proxy frontend:80
}
}

6
backend/Dockerfile Normal file
View file

@ -0,0 +1,6 @@
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app ./app
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

26
docker-compose.yml Normal file
View file

@ -0,0 +1,26 @@
services:
backend:
build: ./backend
environment:
CHORUS_DB_URL: sqlite:////data/chorus.db
volumes:
- chorus_data:/data
expose:
- "8000"
bot:
build: ./bot
env_file: .env
depends_on:
- backend
volumes:
- chorus_bot_state:/app
frontend:
build: ./frontend
expose:
- "80"
volumes:
chorus_data:
chorus_bot_state: