name: sim-eventos networks: savefamily: external: true proxy: external: true services: rabbitmq-sim-broker: container_name: rabbitmq-sim-broker image: "rabbitmq:4.2.2-management" expose: - 5672 - 15672 env_file: - ./.env restart: unless-stopped healthcheck: test: ["CMD", "rabbitmq-diagnostics", "check_port_connectivity"] interval: 10s timeout: 5s retries: 5 environment: RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER} RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD} volumes: - ./rabbitmq_plugins/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro - ./rabbit/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro - ./rabbit/definitions.json:/etc/rabbitmq/definitions.json:ro labels: - "io.portainer.accesscontrol.teams=develop" sf-sims-api: container_name: sf-sims-api build: context: . dockerfile: Dockerfile args: PORT: ${PORT:-3000} image: sf-sims-api env_file: - ./.env restart: unless-stopped depends_on: rabbitmq-sim-broker: condition: service_healthy postgresql-sim: condition: service_healthy networks: - savefamily - proxy expose: - ${PORT} labels: - "io.portainer.accesscontrol.teams=develop" - "traefik.enable=true" - "traefik.http.routers.sf-sims.entrypoints=web" - "traefik.http.routers.sf-sims.rule=Host(`sf-sims.savefamilygps.net`)" - "traefik.http.middlewares.sf-sims-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.sf-sims.middlewares=sf-sims-https-redirect" - "traefik.http.routers.sf-sims-secure.entrypoints=websecure" - "traefik.http.routers.sf-sims-secure.rule=Host(`sf-sims.savefamilygps.net`)" - "traefik.http.routers.sf-sims-secure.tls=true" - "traefik.http.routers.sf-sims-secure.service=sf-sims" - "traefik.http.routers.sf-sims-secure.tls.certresolver=myresolver" - "traefik.http.routers.sf-sims-secure.middlewares=tailscale-ipwhitelist@file" - "traefik.http.services.sf-sims.loadbalancer.server.port=${PORT}" - "traefik.docker.network=proxy" postgresql-sim: image: postgres:16.1 env_file: - ./.env ports: - 5432 volumes: - ./postgres:/var/lib/postgres/data - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s retries: 5 start_period: 5s timeout: 5s labels: - "io.portainer.accesscontrol.teams=develop"