docker-compose.yml
Rama main · réplica de lectura del repositorio original.
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env}
POSTGRES_DB: ${POSTGRES_DB:-tanchi}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_DB:-tanchi}"]
interval: 5s
timeout: 5s
retries: 10
ports:
- "127.0.0.1:5432:5432"
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redisdata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
ports:
- "127.0.0.1:6379:6379"
api:
build:
context: .
dockerfile: apps/api/Dockerfile
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
environment:
NODE_ENV: production
PORT: 3000
DATABASE_URL: postgres://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env}@postgres:5432/${POSTGRES_DB:-tanchi}
REDIS_URL: redis://redis:6379
APP_URL: ${APP_URL:-http://localhost:8080}
AUTH_BASE_URL: ${AUTH_BASE_URL:-http://localhost:3000}
AUTH_SECRET: ${AUTH_SECRET:?set AUTH_SECRET in .env}
ENCRYPTION_KEY: ${ENCRYPTION_KEY:?set ENCRYPTION_KEY in .env}
REQUIRE_EMAIL_VERIFICATION: ${REQUIRE_EMAIL_VERIFICATION:-false}
DISABLE_SIGNUP: ${DISABLE_SIGNUP:-false}
LLM_PROVIDER: ${LLM_PROVIDER:-api}
LLM_RESEARCH_PROVIDER: ${LLM_RESEARCH_PROVIDER:-}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
OPENAI_BASE_URL: ${OPENAI_BASE_URL:-https://api.openai.com/v1}
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
MOONSHOT_API_KEY: ${MOONSHOT_API_KEY:-}
MOONSHOT_BASE_URL: ${MOONSHOT_BASE_URL:-https://api.moonshot.ai/v1}
HUNTER_API_KEY: ${HUNTER_API_KEY:-}
RUN_WORKERS: ${RUN_WORKERS:-true}
MAIL_FROM_EMAIL: ${MAIL_FROM_EMAIL:-Tanchi <no-reply@tanchi.io>}
MAIL_SMTP_HOST: ${MAIL_SMTP_HOST:-}
MAIL_SMTP_PORT: ${MAIL_SMTP_PORT:-587}
MAIL_SMTP_USER: ${MAIL_SMTP_USER:-}
MAIL_SMTP_PASS: ${MAIL_SMTP_PASS:-}
MAIL_SMTP_SECURE: ${MAIL_SMTP_SECURE:-false}
ports:
- "3000:3000"
web:
build:
context: .
dockerfile: apps/web/Dockerfile
args:
VITE_API_URL: ${VITE_API_URL:-http://localhost:3000}
restart: unless-stopped
depends_on:
- api
ports:
- "8080:80"
volumes:
pgdata:
redisdata: