diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..36c67ec --- /dev/null +++ b/.env.example @@ -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= diff --git a/Caddyfile.snippet b/Caddyfile.snippet new file mode 100644 index 0000000..f6c3e8a --- /dev/null +++ b/Caddyfile.snippet @@ -0,0 +1,15 @@ +chorus.circuitforge.tech { + basicauth { + donna + alan + } + + handle /api/* { + uri strip_prefix /api + reverse_proxy backend:8000 + } + + handle { + reverse_proxy frontend:80 + } +} diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..096945d --- /dev/null +++ b/backend/Dockerfile @@ -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"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..774c4e7 --- /dev/null +++ b/docker-compose.yml @@ -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: