networks: traefik: name: traefik volumes: pb_data: services: traefik: image: traefik:v3.6 container_name: traefik restart: unless-stopped ports: - "80:80" - "443:443" - "8080:8080" command: - "--api.dashboard=true" - "--api.insecure=true" - "--log.level=DEBUG" - "--accesslog=true" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--certificatesresolvers.letsencrypt.acme.email=tech@thob.studio" - "--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme.json" - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" - "--entrypoints.web.http.redirections.entryPoint.to=websecure" - "--entrypoints.web.http.redirections.entryPoint.scheme=https" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./configs/traefik/acme.json:/etc/traefik/acme.json" networks: - traefik labels: - "traefik.enable=true" - "traefik.http.routers.traefik.service=api@internal" - "traefik.http.routers.traefik.entrypoints=websecure" - "traefik.http.routers.traefik.tls.certresolver=letsencrypt" - "traefik.http.routers.traefik.rule=Host(`traefik.ar.thob.studio`)" wud: image: fmartinou/whats-up-docker:latest container_name: wud restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - WUD_WATCHER=all - WUD_INTERVAL=5m - WUD_RESTART=true - WUD_LOG_LEVEL=info ports: - "3001:3000" networks: - traefik labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.middlewares.wud-auth.basicauth.users=wud@thob.studio:$$apr1$$gHgeyFwm$$oGcBdBE7TkdQN7oEONHxa1" - "traefik.http.routers.wud.middlewares=wud-auth@docker" - "traefik.http.routers.wud.rule=Host(`wud.ar.thob.studio`)" - "traefik.http.routers.wud.entrypoints=websecure" - "traefik.http.routers.wud.tls=true" - "traefik.http.routers.wud.tls.certresolver=letsencrypt" - "traefik.http.routers.wud.service=wud" - "traefik.http.services.wud.loadbalancer.server.port=3000" app: container_name: ar-app image: registry.digitalocean.com/thob-blr1/ar:latest pull_policy: always restart: unless-stopped build: context: . dockerfile: Dockerfile args: - VITE_POCKETBASE_URL=${VITE_POCKETBASE_URL:-https://pb.ar.thob.studio} expose: - "3000" environment: - VITE_POCKETBASE_URL=${VITE_POCKETBASE_URL:-https://pb.ar.thob.studio} - VITE_FRONTEND_URL=${VITE_FRONTEND_URL:-https://ar.thob.studio} - INTERNAL_POCKETBASE_URL=http://ar-pb:8090 depends_on: - pocketbase networks: - traefik labels: - "wud.watch=true" - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.ar-app.rule=Host(`ar.thob.studio`)" - "traefik.http.routers.ar-app.entrypoints=websecure" - "traefik.http.routers.ar-app.tls=true" - "traefik.http.routers.ar-app.tls.certresolver=letsencrypt" - "traefik.http.routers.ar-app.service=ar-app" - "traefik.http.services.ar-app.loadbalancer.server.port=3000" pocketbase: container_name: ar-pb image: ghcr.io/muchobien/pocketbase:latest restart: unless-stopped command: - serve - --http=0.0.0.0:8090 - --dir=/pb_data - --migrationsDir=/pb_migrations volumes: - pb_data:/pb_data - ./pb_migrations:/pb_migrations networks: - traefik labels: - "wud.watch=true" - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.ar-pb.rule=Host(`pb.ar.thob.studio`)" - "traefik.http.routers.ar-pb.entrypoints=websecure" - "traefik.http.routers.ar-pb.tls=true" - "traefik.http.routers.ar-pb.tls.certresolver=letsencrypt" - "traefik.http.routers.ar-pb.service=ar-pb" - "traefik.http.services.ar-pb.loadbalancer.server.port=8090"