version: '3.8' services: portfolio: container_name: portfolio image: git.altaiar.dev/ahmed/portfolio:latest restart: unless-stopped environment: - NODE_ENV=production - API_PROXY_TARGET=http://localhost:8911 - MAX_HTTP_CONNECTIONS_PER_MINUTE=60 - SESSION_SECRET=super_secret_session_key_change_me_in_production_please - DATABASE_URL=postgresql://redwood:changeme@db/portfolio - FIRST_NAME=first name # Your first name - LAST_NAME=lastname # Your last name - COUNTRY=US # ISO-3166-1 alpha-2 country code, https://en.wikipedia.org/wiki/ISO_3166-1#Codes - STATE=New York # Optional, state or province - CITY=Manhattan # Optional - DEFAULT_THEME=light # 'light' or 'dark' - SMTP_HOST=smtp.example.com - SMTP_PORT=465 - SMTP_SECURE=true - SMTP_USER=noreply@example.com - EMAIL_FROM=noreply@example.com - EMAIL_TO=email@example.com - SMTP_PASSWORD=password - DOMAIN=portfolio.example.com - API_DOMAIN=api.portfolio.example.com # Careful, addresses below must not end with a '/' - ADDRESS_PROD=https://portfolio.example.com # https://DOMAIN - API_ADDRESS_PROD=https://api.portfolio.example.com # https://API_DOMAIN ports: - 8910:8910 # Web - 8911:8911 # API depends_on: db: condition: service_healthy volumes: - files:/home/node/app/api/files_prod command: > /bin/sh -c " yarn rw build && yarn rw prisma migrate deploy && yarn rw prisma db seed && yarn rw serve" db: container_name: portfolio-db image: postgres:16-bookworm environment: - POSTGRES_USER=redwood - POSTGRES_PASSWORD=changeme # Change to a more secure password - POSTGRES_DB=portfolio restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -d DATABASE_URL"] # Replace DATABASE_URL with the database URL from the portfolio container interval: 10s timeout: 5s retries: 5 volumes: - postgres:/var/lib/postgresql/data volumes: postgres: files: # For persistent file storage across upgrades