version: "3.7" services: traefik: image: traefik:2.4.8 container_name: proxy hostname: proxy command: - --entrypoints.http.address=:80 - --entrypoints.https.address=:443 - --providers.docker=true - --api=false - --log.level=DEBUG - --certificatesresolvers.letsencrypt.acme.httpchallenge=true - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=http - --certificatesresolvers.letsencrypt.acme.email=${EMAIL} - --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json networks: - ngptnet labels: - traefik.enable=true - traefik.docker.network=ngptnet - traefik.http.routers.to-https.rule=HostRegexp(`{host:.+}`) - traefik.http.routers.to-https.entrypoints=http - traefik.http.routers.to-https.middlewares=to-https - traefik.http.middlewares.to-https.redirectscheme.scheme=https - traefik.http.middlewares.basicauth.basicauth.users=${TRAEFIK_USER}:${TRAEFIK_PASSWORD_HASH} ports: - 80:80 - 443:443 volumes: - acmes:/letsencrypt - /var/run/docker.sock:/var/run/docker.sock:ro neurogengpt: image: neurogen/neurogengpt:latest build: context: ../ dockerfile: Dockerfile container_name: neurogengpt hostname: neurogengpt environment: - SUBF=/sub env_file: - .env networks: - ngptnet labels: - traefik.enable=true - traefik.docker.network=ngptnet # WebUI config - traefik.http.routers.ngpt-webui.rule=Host(`${DOMAIN}`) - traefik.http.routers.ngpt-webui.entrypoints=https - traefik.http.routers.ngpt-webui.tls=true - traefik.http.routers.ngpt-webui.tls.certresolver=${CERT_RESOLVER} - traefik.http.routers.ngpt-webui.service=ngpt-webui - traefik.http.services.ngpt-webui.loadbalancer.server.port=7860 - traefik.http.routers.ngpt-webui.middlewares=basicauth # API config - traefik.http.routers.ngpt-api.rule=Host(`${DOMAIN}`) && PathPrefix(`/api`) - traefik.http.routers.ngpt-api.middlewares=api-stripprefix - traefik.http.middlewares.api-stripprefix.stripprefix.prefixes=/api - traefik.http.routers.ngpt-api.entrypoints=https - traefik.http.routers.ngpt-api.service=ngpt-api - traefik.http.services.ngpt-api.loadbalancer.server.port=1337 volumes: - ../config.json:/app/config.json volumes: acmes: networks: ngptnet: