summaryrefslogtreecommitdiff
path: root/playbooks/roles/src/templates/stacks/docker-compose.yml
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks/roles/src/templates/stacks/docker-compose.yml')
-rw-r--r--playbooks/roles/src/templates/stacks/docker-compose.yml46
1 files changed, 36 insertions, 10 deletions
diff --git a/playbooks/roles/src/templates/stacks/docker-compose.yml b/playbooks/roles/src/templates/stacks/docker-compose.yml
index 46f253d..547020d 100644
--- a/playbooks/roles/src/templates/stacks/docker-compose.yml
+++ b/playbooks/roles/src/templates/stacks/docker-compose.yml
@@ -1,4 +1,40 @@
services:
+ frontend:
+ image: emarcs/nginx-cgit
+ volumes:
+ - {{ src_base }}/volumes/data/repos:/srv/git:ro
+ - {{ src_base }}/volumes/cgit/:/usr/share/cgit:ro
+ - {{ src_base }}/volumes/cgit.nginx.conf:/etc/nginx/sites-available/default
+ environment:
+ CGIT_TITLE: '{{ src_domain }}'
+ CGIT_DESC: '<3 {{ domain }}'
+ CGIT_VROOT: '/cgit'
+ CGIT_SECTION_FROM_STARTPATH: 1
+ CGIT_MAX_REPO_COUNT: 100
+ networks:
+ - proxy
+ healthcheck:
+ test: ["CMD-SHELL", "curl --fail http://localhost"]
+ timeout: 15s
+ interval: 30s
+ retries: 3
+ start_period: 5s
+ deploy:
+ mode: replicated
+ update_config:
+ parallelism: 1
+ failure_action: rollback
+ order: start-first
+ monitor: 10s
+ labels:
+ - traefik.enable=true
+ - traefik.swarm.network=proxy
+ - traefik.http.routers.src.tls=true
+ - traefik.http.routers.src.tls.certResolver=letsencrypt
+ - traefik.http.routers.src.rule=Host(`{{ src_domain }}`)
+ - traefik.http.routers.src.entrypoints=websecure
+ - traefik.http.services.src.loadbalancer.server.port=80
+
src:
image: charmcli/soft-serve
volumes:
@@ -17,8 +53,6 @@ services:
- SOFT_SERVE_INITIAL_ADMIN_KEYS={{ src_admin_keys }}
- SOFT_SERVE_GIT_MAX_CONNECTIONS=20
- SOFT_SERVE_LOG_FORMAT=json
- networks:
- - proxy
healthcheck:
test: ["CMD-SHELL", "netstat -tuln | grep 2222"]
timeout: 15s
@@ -33,14 +67,6 @@ services:
order: stop-first
monitor: 10s
replicas: 1
- labels:
- - traefik.enable=true
- - traefik.swarm.network=proxy
- - traefik.http.routers.src.tls=true
- - traefik.http.routers.src.tls.certResolver=letsencrypt
- - traefik.http.routers.src.rule=Host(`{{ src_domain }}`)
- - traefik.http.routers.src.entrypoints=websecure
- - traefik.http.services.src.loadbalancer.server.port=8000
networks:
proxy: