mirror of
https://github.com/felipegcoutinho/openmonetis.git
synced 2026-05-09 11:01:45 +00:00
Adiciona PUBLIC_DOMAIN, UMAMI_URL, UMAMI_WEBSITE_ID e UMAMI_DOMAINS ao bloco de environment do serviço app no docker-compose.yml. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
147 lines
4.1 KiB
YAML
147 lines
4.1 KiB
YAML
# Docker Compose para Next.js + PostgreSQL
|
|
name: openmonetis
|
|
|
|
# MODOS DE USO:
|
|
# 1. Banco LOCAL (PostgreSQL em container):
|
|
# - Configure DATABASE_URL com host "db" no .env
|
|
# - Execute: docker compose --profile local up
|
|
#
|
|
# 2. Banco REMOTO (ex: Supabase, Neon, etc):
|
|
# - Configure DATABASE_URL com a URL do banco remoto no .env
|
|
# - Execute: docker compose up
|
|
#
|
|
# 3. Build local (desenvolvimento):
|
|
# - Execute: docker compose --profile local up --build
|
|
#
|
|
# 4. Para parar todos os serviços:
|
|
# - Execute: docker compose down
|
|
#
|
|
# 5. Para remover volumes (CUIDADO: apaga dados do banco local):
|
|
# - Execute: docker compose down -v
|
|
|
|
services:
|
|
# ============================================
|
|
# Serviço: PostgreSQL (Banco de dados local)
|
|
# Ativado apenas com: --profile local
|
|
# ============================================
|
|
db:
|
|
profiles: ["local"]
|
|
image: postgres:18-alpine
|
|
container_name: openmonetis_postgres
|
|
restart: unless-stopped
|
|
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER:-openmonetis}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-openmonetis_dev_password}
|
|
POSTGRES_DB: ${POSTGRES_DB:-openmonetis_db}
|
|
PGDATA: /var/lib/postgresql/data
|
|
POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C"
|
|
|
|
ports:
|
|
- "${DB_PORT:-5432}:5432"
|
|
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
|
|
# Cria extensão pgcrypto inline (necessária para gen_random_bytes no schema)
|
|
entrypoint: ["/bin/sh", "-c"]
|
|
command:
|
|
- |
|
|
echo 'CREATE EXTENSION IF NOT EXISTS pgcrypto;' > /docker-entrypoint-initdb.d/init.sql
|
|
exec docker-entrypoint.sh postgres
|
|
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD-SHELL",
|
|
"pg_isready -U ${POSTGRES_USER:-openmonetis} -d ${POSTGRES_DB:-openmonetis_db}",
|
|
]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 10s
|
|
|
|
# Para ativar logs de queries (debug), adicione ao command acima:
|
|
# exec docker-entrypoint.sh postgres -c log_statement=all
|
|
|
|
# ============================================
|
|
# Serviço: Aplicação Next.js
|
|
# ============================================
|
|
app:
|
|
build: .
|
|
image: felipegcoutinho/openmonetis:latest
|
|
|
|
container_name: openmonetis_app
|
|
restart: unless-stopped
|
|
|
|
ports:
|
|
- "${APP_PORT:-3000}:3000"
|
|
|
|
environment:
|
|
NODE_ENV: production
|
|
|
|
# Banco local: use host "db" | Banco remoto: URL completa do provider
|
|
DATABASE_URL: ${DATABASE_URL}
|
|
|
|
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
|
|
BETTER_AUTH_URL: ${BETTER_AUTH_URL:-http://localhost:3000}
|
|
|
|
# S3 (opcional)
|
|
S3_ENDPOINT: ${S3_ENDPOINT:-}
|
|
S3_REGION: ${S3_REGION:-}
|
|
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-}
|
|
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-}
|
|
S3_BUCKET: ${S3_BUCKET:-}
|
|
|
|
# Email (opcional)
|
|
RESEND_API_KEY: ${RESEND_API_KEY:-}
|
|
RESEND_FROM_EMAIL: ${RESEND_FROM_EMAIL:-}
|
|
|
|
# OAuth (opcional)
|
|
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-}
|
|
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-}
|
|
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-}
|
|
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-}
|
|
|
|
# AI providers (opcional)
|
|
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
|
|
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
|
|
GOOGLE_GENERATIVE_AI_API_KEY: ${GOOGLE_GENERATIVE_AI_API_KEY:-}
|
|
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}
|
|
|
|
# Multi-domínio (opcional)
|
|
PUBLIC_DOMAIN: ${PUBLIC_DOMAIN:-}
|
|
|
|
# Analytics (opcional)
|
|
UMAMI_URL: ${UMAMI_URL:-}
|
|
UMAMI_WEBSITE_ID: ${UMAMI_WEBSITE_ID:-}
|
|
UMAMI_DOMAINS: ${UMAMI_DOMAINS:-}
|
|
|
|
# required: false permite subir sem banco local (banco remoto via DATABASE_URL)
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
required: false
|
|
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD",
|
|
"wget",
|
|
"--quiet",
|
|
"--tries=1",
|
|
"--spider",
|
|
"http://localhost:3000/api/health",
|
|
]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# ============================================
|
|
# Volumes
|
|
# ============================================
|
|
volumes:
|
|
postgres_data:
|
|
driver: local
|