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 } ports: - "4000:4000" frontend: build: ./frontend restart: unless-stopped depends_on: - backend ports: - "8080:80"