Backend Dockerfile runs drizzle-kit migrate on start, frontend serves the built Vite app via nginx and proxies /api to the backend container. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TBf3yfnnHzMQ5qhLV2285A
40 lines
1.1 KiB
YAML
40 lines
1.1 KiB
YAML
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: talktime
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme}
|
|
POSTGRES_DB: talktime
|
|
volumes:
|
|
- ./pgdata:/var/lib/postgresql/data
|
|
|
|
backend:
|
|
build: ./backend
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db
|
|
environment:
|
|
DATABASE_URL: postgresql://talktime:${DB_PASSWORD:-changeme}@db:5432/talktime
|
|
JWT_SECRET: ${JWT_SECRET:?JWT_SECRET must be set}
|
|
PORT: 4000
|
|
APP_BASE_URL: ${APP_BASE_URL:-http://localhost:8080}
|
|
SYNAPSE_BASE_URL: ${SYNAPSE_BASE_URL}
|
|
SYNAPSE_ADMIN_TOKEN: ${SYNAPSE_ADMIN_TOKEN}
|
|
SYNAPSE_SERVER_NAME: ${SYNAPSE_SERVER_NAME}
|
|
SMTP_HOST: ${SMTP_HOST:-}
|
|
SMTP_PORT: ${SMTP_PORT:-587}
|
|
SMTP_USER: ${SMTP_USER:-}
|
|
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
|
|
MAIL_FROM: ${MAIL_FROM:-TalkTime <no-reply@talktime.local>}
|
|
ports:
|
|
- "4000:4000"
|
|
|
|
frontend:
|
|
build: ./frontend
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- backend
|
|
ports:
|
|
- "8080:80"
|