tinovisas/docker-compose.yml

103 lines
2.3 KiB
YAML

services:
postgres:
image: postgres:16-alpine
container_name: tinovisas-postgres
environment:
POSTGRES_DB: tinovisas
POSTGRES_USER: tinovisas
POSTGRES_PASSWORD: tinovisas_secret_2024
volumes:
- postgres_data:/var/lib/postgresql/data
- ./postgres-init:/docker-entrypoint-initdb.d
ports:
- "127.0.0.1:5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U tinovisas -d tinovisas"]
interval: 5s
timeout: 5s
retries: 5
networks:
- tinovisas-network
redis:
image: redis:7-alpine
container_name: tinovisas-redis
volumes:
- redis_data:/data
ports:
- "127.0.0.1:6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5
networks:
- tinovisas-network
backend:
build: ./backend
container_name: tinovisas-backend
environment:
NODE_ENV: production
PORT: 4000
DB_HOST: postgres
DB_PORT: 5432
DB_NAME: tinovisas
DB_USER: tinovisas
DB_PASSWORD: tinovisas_secret_2024
REDIS_HOST: redis
REDIS_PORT: 6379
JWT_SECRET: tinovisas_super_secret_key_change_me
JWT_EXPIRES_IN: 24h
ENCRYPTION_KEY: tinovisas_encryption_key_32chars!!
UPLOAD_DIR: /app/uploads
MAX_FILE_SIZE: 10485760
PLAYWRIGHT_HEADLESS: "true"
PLAYWRIGHT_TIMEOUT: 30000
DEFAULT_ADMIN_EMAIL: admin@tinovisas.com
DEFAULT_ADMIN_PASSWORD: Admin123!
volumes:
- uploads_data:/app/uploads
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
networks:
- tinovisas-network
frontend:
build: ./frontend
container_name: tinovisas-frontend
depends_on:
- backend
networks:
- tinovisas-network
nginx:
image: nginx:alpine
container_name: tinovisas-nginx
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- uploads_data:/app/uploads
- ./nginx/html:/etc/nginx/html
- ./screenshots:/app/tinovisas/screenshots
depends_on:
- frontend
- backend
networks:
- tinovisas-network
- coolify
restart: unless-stopped
volumes:
postgres_data:
redis_data:
uploads_data:
networks:
tinovisas-network:
driver: bridge
coolify:
external: true