services: condado-newsletter-postgres: image: postgres:16 container_name: condado-newsletter-postgres restart: unless-stopped env_file: - .env environment: POSTGRES_DB: ${APP_DB_NAME:-condado} POSTGRES_USER: ${POSTGRES_USER:-condado} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-condado} volumes: - postgres-data:/var/lib/postgresql/data networks: - default healthcheck: test: ["CMD-SHELL", "pg_isready -h localhost -U $${POSTGRES_USER:-postgres}"] interval: 10s timeout: 5s retries: 10 start_period: 10s condado-newsletter: image: sancho41/condado-newsletter:latest container_name: condado-newsletter restart: unless-stopped env_file: - .env depends_on: condado-newsletter-postgres: condition: service_healthy networks: - external - default environment: SPRING_PROFILES_ACTIVE: prod SPRING_JPA_HIBERNATE_DDL_AUTO: ${SPRING_JPA_HIBERNATE_DDL_AUTO:-update} SPRING_DATASOURCE_URL: jdbc:postgresql://condado-newsletter-postgres:5432/${APP_DB_NAME:-condado} SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME:-condado} SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:-condado} JWT_SECRET: ${JWT_SECRET} JWT_EXPIRATION_MS: ${JWT_EXPIRATION_MS:-86400000} MAIL_HOST: ${MAIL_HOST} MAIL_PORT: ${MAIL_PORT} MAIL_USERNAME: ${MAIL_USERNAME} MAIL_PASSWORD: ${MAIL_PASSWORD} IMAP_HOST: ${IMAP_HOST} IMAP_PORT: ${IMAP_PORT} IMAP_INBOX_FOLDER: ${IMAP_INBOX_FOLDER} OPENAI_API_KEY: ${OPENAI_API_KEY}.env OPENAI_MODEL: ${OPENAI_MODEL} LLAMA_BASE_URL: ${LLAMA_BASE_URL} LLAMA_MODEL: ${LLAMA_MODEL} APP_RECIPIENTS: ${APP_RECIPIENTS} extra_hosts: - "celtinha.desktop:host-gateway" - "host.docker.internal:host-gateway" labels: - "traefik.enable=true" - "traefik.http.routers.condado.rule=Host(`condado-newsletter.lab`)" - "traefik.http.services.condado.loadbalancer.server.port=80" - "traefik.docker.network=traefik" - "homepage.group=Hyperlink" - "homepage.name=Condado Newsletter" - "homepage.description=Automated newsletter generator using AI" - "homepage.logo=claude-dark.png" - "homepage.href=http://condado-newsletter.lab" volumes: postgres-data: networks: default: driver: bridge external: name: traefik external: true