|
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 |
|
env_file: |
|
- .env |
|
networks: |
|
- ngptnet |
|
labels: |
|
- traefik.enable=true |
|
- traefik.docker.network=ngptnet |
|
|
|
- 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 |
|
|
|
- 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: |
|
|