version: "3.8" services: traefik: image: traefik:v3.3 container_name: traefik restart: unless-stopped command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.file.directory=/etc/traefik/dynamic" - "--providers.file.watch=true" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" ports: - "80:80" - "443:443" volumes: - "./traefik/dynamic:/etc/traefik/dynamic:ro" - "./certs:/certs:ro" - "/var/run/docker.sock:/var/run/docker.sock:ro" localtunnel: build: context: . # Build your forked LocalTunnel server image: localtunnel-server:latest container_name: localtunnel restart: unless-stopped env_file: - ./.env # Contains DOMAIN=chara-ai.dev labels: - "traefik.enable=true" - "traefik.http.routers.localtunnel.entrypoints=websecure" - "traefik.http.routers.localtunnel.rule=Host(`chara-ai.dev`) || HostRegexp(`{subdomain:[a-z0-9-]+}.chara-ai.dev`)" - "traefik.http.routers.localtunnel.tls=true" - "traefik.http.services.localtunnel.loadbalancer.server.port=3000"