|
version: "3" |
|
|
|
networks: |
|
web: |
|
external: true |
|
internal: |
|
external: false |
|
|
|
services: |
|
traefik: |
|
image: traefik:latest |
|
container_name: traefik |
|
restart: always |
|
security_opt: |
|
- no-new-privileges:true |
|
ports: |
|
- 80:80 |
|
- 443:443 |
|
networks: |
|
- web |
|
labels: |
|
- traefik.enable=true |
|
- traefik.http.middlewares.traefik-auth.basicauth.users=$TRAEFIK_BASIC_AUTH |
|
- traefik.http.routers.traefik.middlewares=traefik-auth |
|
- traefik.http.routers.traefik.entrypoints=https |
|
- traefik.http.routers.traefik.rule=Host(`traefik-cloud.$DOMAIN`) |
|
- traefik.http.routers.traefik.tls=true |
|
- traefik.http.routers.traefik.tls.certresolver=http |
|
- traefik.http.routers.traefik.service=api@internal |
|
- traefik.http.services.traefik.loadbalancer.server.port=8080 |
|
|
|
volumes: |
|
- /etc/localtime:/etc/localtime:ro |
|
- /var/run/docker.sock:/var/run/docker.sock:ro |
|
- $HOME/.config/traefik/traefik.yml:/traefik.yml:ro |
|
- $HOME/.config/traefik/acme.json:/acme.json |
|
|
|
gitea: |
|
depends_on: |
|
- traefik |
|
image: gitea/gitea:latest |
|
security_opt: |
|
- no-new-privileges:true |
|
container_name: gitea |
|
environment: |
|
- USER_UID=1000 |
|
- USER_GID=1000 |
|
restart: always |
|
volumes: |
|
- ./.config/gitea:/data |
|
networks: |
|
- internal |
|
- web |
|
labels: |
|
- traefik.enable=true |
|
- traefik.http.routers.gitea.entrypoints=https |
|
- traefik.http.routers.gitea.rule=Host(`gitea.$DOMAIN`) |
|
- traefik.http.routers.gitea.tls=true |
|
- traefik.http.routers.gitea.tls.certresolver=http |
|
- traefik.http.routers.gitea.service=gitea |
|
- traefik.http.services.gitea.loadbalancer.server.port=3000 |
|
- traefik.docker.network=web |
|
|
|
|
|
webdav: |
|
depends_on: |
|
- traefik |
|
image: bytemark/webdav |
|
container_name: webdav |
|
restart: always |
|
environment: |
|
AUTH_TYPE: Basic |
|
USERNAME: $USER |
|
PASSWORD: $WEBDAV_PW |
|
volumes: |
|
- ./.config/webdav:/var/lib/dav |
|
networks: |
|
- internal |
|
- web |
|
labels: |
|
- traefik.enable=true |
|
- traefik.http.routers.webdav.entrypoints=http |
|
- traefik.http.routers.webdav.rule=Host(`webdav.$DOMAIN`) |
|
- traefik.http.middlewares.webdav-https-redirect.redirectscheme.scheme=https |
|
- traefik.http.routers.webdav.middlewares=webdav-https-redirect |
|
- traefik.http.routers.webdav-secure.entrypoints=https |
|
- traefik.http.routers.webdav-secure.rule=Host(`webdav.$DOMAIN`) |
|
- traefik.http.routers.webdav-secure.tls=true |
|
- traefik.http.routers.webdav-secure.tls.certresolver=http |
|
- traefik.http.routers.webdav-secure.service=webdav |
|
- traefik.http.services.webdav.loadbalancer.server.port=80 |
|
- traefik.docker.network=web |