summaryrefslogtreecommitdiff
path: root/playbooks/roles/src
diff options
context:
space:
mode:
authorElizabeth Alexander Hunt <me@liz.coffee>2025-05-07 18:10:57 -0700
committerElizabeth Alexander Hunt <me@liz.coffee>2025-05-07 18:10:57 -0700
commitb8ffbfe27eae919750ef4d3facf02393d1004287 (patch)
tree78a22cffd1a387a1f482aac78a93fb951dcc81bb /playbooks/roles/src
parent59417f290463d3aabbf3ec2ab8e75703928db217 (diff)
downloadinfra-b8ffbfe27eae919750ef4d3facf02393d1004287.tar.gz
infra-b8ffbfe27eae919750ef4d3facf02393d1004287.zip
.git was corrupted on the machine i worked on these many commits. so here it is all at once :P
Diffstat (limited to 'playbooks/roles/src')
-rw-r--r--playbooks/roles/src/templates/stacks/docker-compose.yml46
-rw-r--r--playbooks/roles/src/templates/volumes/cgit.nginx.conf49
-rw-r--r--playbooks/roles/src/templates/volumes/cgit/cgit-css/cgit.pngbin0 -> 25036 bytes
-rw-r--r--playbooks/roles/src/templates/volumes/cgit/index.html1
4 files changed, 86 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:
diff --git a/playbooks/roles/src/templates/volumes/cgit.nginx.conf b/playbooks/roles/src/templates/volumes/cgit.nginx.conf
new file mode 100644
index 0000000..5abe189
--- /dev/null
+++ b/playbooks/roles/src/templates/volumes/cgit.nginx.conf
@@ -0,0 +1,49 @@
+server {
+ listen 80;
+ server_name localhost;
+
+ #charset koi8-r;
+ #access_log /var/log/nginx/log/host.access.log main;
+
+ location / {
+ root /usr/share/cgit/;
+ }
+
+ location /cgit {
+ try_files $uri @cgit;
+ }
+
+ location @cgit {
+ fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi;
+
+ fastcgi_param HTTP_HOST $server_name;
+ fastcgi_split_path_info ^(/cgit/?)(.+)$;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ fastcgi_param QUERY_INFO $uri;
+
+ include fastcgi_params;
+
+ fastcgi_pass unix:/var/run/fcgiwrap.socket;
+ }
+
+ location /cgit-css/ {
+ rewrite ^/cgit-css(/.*)$ $1 break;
+ root /usr/share/cgit/cgit-css/;
+ }
+
+ error_page 404 /404.html;
+ error_page 401 /401.html;
+
+ # redirect server error pages to the static page /50x.html
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root /usr/share/nginx/html;
+ }
+
+ # deny access to .htaccess files, if Apache's document root
+ # concurs with nginx's one
+ #
+ location ~ /\.ht {
+ deny all;
+ }
+}
diff --git a/playbooks/roles/src/templates/volumes/cgit/cgit-css/cgit.png b/playbooks/roles/src/templates/volumes/cgit/cgit-css/cgit.png
new file mode 100644
index 0000000..bb7ffa1
--- /dev/null
+++ b/playbooks/roles/src/templates/volumes/cgit/cgit-css/cgit.png
Binary files differ
diff --git a/playbooks/roles/src/templates/volumes/cgit/index.html b/playbooks/roles/src/templates/volumes/cgit/index.html
new file mode 100644
index 0000000..4b06983
--- /dev/null
+++ b/playbooks/roles/src/templates/volumes/cgit/index.html
@@ -0,0 +1 @@
+<h1>hai</h1>