services: traefik: ports: - "80:80" - "443:443" - 5173:5173 networks: development: aliases: - financialfreedom.dev.test volumes: # Mount the Docker socket as read-only so Traefik can listen to events - /var/run/docker.sock:/var/run/docker.sock:ro - ./.infrastructure/conf/traefik/dev/traefik.yml:/traefik.yml:ro - ./.infrastructure/conf/traefik/dev/traefik-certs.yml:/traefik-certs.yml - ./.infrastructure/conf/traefik/dev/certificates/:/certificates php: build: context: . dockerfile: Dockerfile.php target: development args: USER_ID: ${SPIN_USER_ID} GROUP_ID: ${SPIN_GROUP_ID} environment: SSL_MODE: "full" volumes: - .:/var/www/html/ networks: - development depends_on: - traefik labels: - "traefik.enable=true" - "traefik.http.routers.financialfreedom.rule=HostRegexp(`financialfreedom.dev.test`)" - "traefik.http.routers.financialfreedom.entrypoints=websecure" - "traefik.http.routers.financialfreedom.tls=true" - "traefik.http.services.financialfreedom.loadbalancer.server.port=8443" - "traefik.http.services.financialfreedom.loadbalancer.server.scheme=https" node: build: context: . dockerfile: Dockerfile.node args: USER_ID: ${SPIN_USER_ID} networks: - development environment: VITE_HOST: "vite.dev.test" volumes: - .:/usr/src/app/:cached working_dir: /usr/src/app/ labels: - "traefik.enable=true" - "traefik.http.routers.vite.rule=HostRegexp(`vite.dev.test`)" - "traefik.http.routers.vite.entrypoints=websecure" - "traefik.http.routers.vite.tls=true" - "traefik.http.services.vite.loadbalancer.server.port=5173" - "traefik.http.services.vite.loadbalancer.server.scheme=https" mailpit: image: axllent/mailpit networks: - development labels: - "traefik.enable=true" - "traefik.http.routers.mailpit.rule=Host(`mailpit.dev.test`)" - "traefik.http.routers.mailpit.entrypoints=websecure" - "traefik.http.routers.mailpit.tls=true" - "traefik.http.services.mailpit.loadbalancer.server.port=8025" - "traefik.http.services.mailpit.loadbalancer.server.scheme=http" depends_on: - traefik networks: development: