2020-04-29 23:23:06 +00:00
|
|
|
version: '3'
|
|
|
|
|
2020-05-02 22:55:38 +00:00
|
|
|
networks:
|
|
|
|
gitea:
|
|
|
|
external: false
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
nextcloud:
|
|
|
|
db:
|
|
|
|
traefik_acme:
|
2020-05-04 22:47:08 +00:00
|
|
|
traefik_logs:
|
|
|
|
nginx_logs:
|
2020-05-02 22:55:38 +00:00
|
|
|
|
2020-05-04 22:47:08 +00:00
|
|
|
services:
|
|
|
|
|
2020-05-02 22:55:38 +00:00
|
|
|
traefik:
|
2020-05-04 22:47:08 +00:00
|
|
|
image: "traefik:v2.2"
|
2020-05-02 22:55:38 +00:00
|
|
|
ports:
|
2020-05-04 22:47:08 +00:00
|
|
|
- "80:80"
|
|
|
|
- "443:443"
|
2020-05-06 23:08:47 +00:00
|
|
|
- "222:222" # gitea ssh
|
2020-05-04 22:47:08 +00:00
|
|
|
- "8080:8080"
|
2020-04-29 23:23:06 +00:00
|
|
|
environment:
|
2020-05-04 22:47:08 +00:00
|
|
|
DO_AUTH_TOKEN: "{{ DO_AUTH_TOKEN }}"
|
2020-05-06 23:08:47 +00:00
|
|
|
networks:
|
|
|
|
gitea:
|
2020-04-29 23:23:06 +00:00
|
|
|
volumes:
|
2020-05-04 22:47:08 +00:00
|
|
|
- "/home/josiah/apps/awful/letsencrypt/:/letsencrypt"
|
|
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
2020-05-06 23:08:47 +00:00
|
|
|
- "/home/josiah/apps/awful/traefik.yml:/etc/traefik/traefik.yml"
|
2020-05-04 22:47:08 +00:00
|
|
|
- traefik_logs:/log
|
2020-05-06 23:08:47 +00:00
|
|
|
labels:
|
|
|
|
- "traefik.enable=true"
|
|
|
|
- "traefik.http.routers.edge.rule=hostregexp(`{host:.+}`)"
|
|
|
|
- "traefik.http.routers.edge.entrypoints=web"
|
|
|
|
- "traefik.http.routers.edge.middlewares=redirect-to-https"
|
|
|
|
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
|
2020-04-29 23:23:06 +00:00
|
|
|
|
2020-05-04 22:47:08 +00:00
|
|
|
whoami:
|
|
|
|
image: "containous/whoami"
|
2020-05-02 22:55:38 +00:00
|
|
|
labels:
|
|
|
|
- "traefik.enable=true"
|
2020-05-04 22:47:08 +00:00
|
|
|
- "traefik.http.routers.whoami.rule=Host(`whoami.awful.club`)"
|
|
|
|
- "traefik.http.routers.whoami.entrypoints=websecure"
|
|
|
|
- "traefik.http.routers.whoami.tls.certresolver=awful-letsencrypt"
|
2020-05-06 23:08:47 +00:00
|
|
|
- "traefik.http.routers.whoami.tls=true"
|
|
|
|
|
2020-05-04 22:47:08 +00:00
|
|
|
nginx:
|
|
|
|
image: nginx:1.17.10
|
2020-05-02 22:55:38 +00:00
|
|
|
volumes:
|
2020-05-04 22:47:08 +00:00
|
|
|
- /etc/nginx/:/etc/nginx/
|
|
|
|
- /etc/letsencrypt/:/etc/letsencrypt/
|
|
|
|
- /home/josiah/apps/awful/awful.club.html:/var/www/awful.club/html/index.html
|
|
|
|
- nginx_logs:/log
|
2020-05-02 22:55:38 +00:00
|
|
|
labels:
|
|
|
|
- "traefik.enable=true"
|
2020-05-04 22:47:08 +00:00
|
|
|
- "traefik.http.routers.nginx.rule=Host(`awful.club`)||Host(`jowj.net`)"
|
|
|
|
- "traefik.http.routers.nginx.entrypoints=websecure"
|
|
|
|
- "traefik.http.routers.nginx.tls.certresolver=awful-letsencrypt"
|
2020-05-06 23:08:47 +00:00
|
|
|
|
|
|
|
gitea-server:
|
|
|
|
image: gitea/gitea:latest
|
|
|
|
environment:
|
|
|
|
- USER_UID=1000
|
|
|
|
- USER_GID=1000
|
|
|
|
- DB_TYPE=postgres
|
|
|
|
- DB_HOST=172.28.1.3:5432
|
|
|
|
- DB_NAME={{ GITEA_DB_NAME }}
|
|
|
|
- DB_USER={{ GITEA_DB_USER }}
|
|
|
|
- DB_PASSWD={{ GITEA_DB_PASSWD }}
|
|
|
|
networks:
|
|
|
|
gitea:
|
|
|
|
ipv4_address: 172.28.1.2
|
|
|
|
volumes:
|
|
|
|
- /mnt/volume_sfo2_01/gitea:/data
|
|
|
|
depends_on:
|
|
|
|
- gitea-db
|
|
|
|
labels:
|
|
|
|
# global rules
|
|
|
|
- "traefik.enable=true"
|
|
|
|
|
|
|
|
# the web ui
|
|
|
|
- "traefik.http.routers.gitea-web.rule=Host(`git.awful.club`)"
|
|
|
|
- "traefik.http.routers.gitea-web.entrypoints=websecure"
|
|
|
|
- "traefik.http.routers.gitea-web.service=gitea-web-svc"
|
|
|
|
- "traefik.http.routers.gitea-web.tls=true"
|
|
|
|
- "traefik.http.routers.gitea-web.tls.certresolver=awful-letsencrypt"
|
|
|
|
- "traefik.http.services.gitea-web-svc.loadbalancer.server.port=3000"
|
|
|
|
|
|
|
|
|
|
|
|
# handle ssh
|
|
|
|
- "traefik.tcp.routers.gitea-ssh.rule=HostSNI(`*`)"
|
|
|
|
- "traefik.tcp.routers.gitea-ssh.entrypoints=ssh"
|
|
|
|
- "traefik.tcp.routers.gitea-ssh.service=gitea-ssh-svc"
|
|
|
|
- "traefik.tcp.services.gitea-ssh-svc.loadbalancer.server.port=22"
|
|
|
|
|
|
|
|
gitea-db:
|
|
|
|
image: postgres:9.6
|
|
|
|
environment:
|
|
|
|
- POSTGRES_USER={{ GITEA_POSTGRES_USER }}
|
|
|
|
- POSTGRES_PASSWORD={{ GITEA_POSTGRES_USER }}
|
|
|
|
- POSTGRES_DB={{ GITEA_POSTGRES_USER }}
|
|
|
|
networks:
|
|
|
|
gitea:
|
|
|
|
ipv4_address: 172.28.1.3
|
|
|
|
volumes:
|
|
|
|
- /mnt/volume_sfo2_01/psql:/var/lib/postgresql/data
|
|
|
|
|