version: '3.5' services: felicity_proxy: # new build: context: ./services/traefik dockerfile: Dockerfile.traefik ports: - 80:80 - 443:443 volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./traefik-public-certificates:/certificates" labels: - "traefik.enable=true" - "traefik.http.routers.dashboard.rule=Host(`felicity-dashboard.felicity.com`) && (PathPrefix(`/`)" - "traefik.http.routers.dashboard.tls=true" - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt" - "traefik.http.routers.dashboard.service=api@internal" - "traefik.http.routers.dashboard.middlewares=auth" - "traefik.http.middlewares.auth.basicauth.users=testuser:$$apr1$$jIKW.bdS$$eKXe4Lxjgy/rH65wP1iQe1" felicity_fe: container_name: felicity_fe restart: unless-stopped build: context: ./frontend volumes: - ./frontend:/app ports: - "3000:3000" depends_on: - felicity_be networks: - felicitynet command: bash -c "cd vite && yarn dev --host" labels: - "traefik.enable=true" - "traefik.http.routers.felicity-frontend.rule=Host(`felicity-frontend.felicity.com`)" - "traefik.http.routers.felicity-frontend.tls=true" - "traefik.http.routers.felicity-frontend.tls.certresolver=letsencrypt" - "traefik.http.services.felicity-frontend.loadbalancer.server.port=3000" felicity_be: container_name: felicity_be restart: unless-stopped build: context: ./backend/ environment: - POSTGRES_SERVER=felicity_db - POSTGRES_DB=felicity_lims - POSTGRES_USER=felicity - POSTGRES_PASSWORD=felicity - POSTGRES_HOST_AUTH_METHOD=trust - DATABASE_URL=postgresql://felicity:felicity@felicity_db:5432/felicity_lims volumes: - ./backend/:/app ports: - 8000:8000 depends_on: - felicity_db networks: - felicitynet command: bash -c "cd felicity_lims && ./felicity.sh" labels: - "traefik.enable=true" - "traefik.http.routers.felicity-backend.rule=Host(`felicity-backend.felicity.com`)" - "traefik.http.routers.felicity-backend.tls=true" - "traefik.http.routers.felicity-backend.tls.certresolver=letsencrypt" - "traefik.http.services.felicity-backend.loadbalancer.server.port=8000" felicity_db: container_name: felicity_db image: postgres:12 restart: unless-stopped environment: - POSTGRES_DB=felicity_lims - POSTGRES_USER=felicity - POSTGRES_PASSWORD=felicity - POSTGRES_HOST_AUTH_METHOD=trust volumes: - ./postgres/init/:/docker-entrypoint-initdb.d/ - db-data:/var/lib/postgresql/data ports: - 5434:5432 networks: - felicitynet felicity_pgadmin: container_name: felicity_pgadmin image: dpage/pgadmin4 environment: PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-admin@pgadmin.org} PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin} volumes: - pgadmin:/root/.pgadmin ports: - "${PGADMIN_PORT:-5050}:80" networks: - felicitynet restart: unless-stopped depends_on: - felicity_db labels: - "traefik.enable=true" - "traefik.http.routers.felicity-pgadmin.rule=Host(`felicity-pgadmin.felicity.com`)" - "traefik.http.routers.felicity-pgadmin.tls=true" - "traefik.http.routers.felicity-pgadmin.tls.certresolver=letsencrypt" - "traefik.http.services.felicity-pgadmin.loadbalancer.server.port=80" volumes: db-data: pgadmin: traefik-public-certificates: networks: felicitynet: driver: bridge