diff options
| author | haturatu <taro@eyes4you.org> | 2026-04-21 05:21:33 +0900 |
|---|---|---|
| committer | haturatu <taro@eyes4you.org> | 2026-04-21 05:21:33 +0900 |
| commit | 836cdbbcb566a36c16b28305b50a502fa09f2c97 (patch) | |
| tree | 796904fec1e2536e83630be181d9f3777bd2de3e /docker | |
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/cgitrc | 25 | ||||
| -rw-r--r-- | docker/entrypoint.sh | 26 | ||||
| -rw-r--r-- | docker/nginx.conf | 47 |
3 files changed, 98 insertions, 0 deletions
diff --git a/docker/cgitrc b/docker/cgitrc new file mode 100644 index 0000000..25c5f1e --- /dev/null +++ b/docker/cgitrc @@ -0,0 +1,25 @@ +css=/cgit.css +logo=/cgit.png +favicon=/cgit.png + +root-title=Git Repositories +root-desc=public repositories +root-readme= + +virtual-root=/ +scan-path=/var/lib/git/repos + +remove-suffix=1 +enable-http-clone=1 +enable-index-owner=0 +enable-commit-graph=1 +snapshots=tar.gz zip + +clone-url=https://git.example.com/$CGIT_REPO_URL + +cache-root=/var/cache/cgit +cache-size=5000 +cache-static-ttl=60 +cache-dynamic-ttl=30 +cache-repo-ttl=30 +cache-root-ttl=30 diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 0000000..c3ccc41 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,26 @@ +#!/bin/sh +set -eu + +if [ ! -d /var/lib/git/repos ]; then + echo "repository path /var/lib/git/repos does not exist" >&2 + exit 1 +fi + +mkdir -p /run/fcgiwrap +chown www-data:www-data /run/fcgiwrap + +if [ -n "${CGIT_TITLE:-}" ]; then + sed -i "s/^root-title=.*/root-title=${CGIT_TITLE}/" /etc/cgitrc +fi + +if [ -n "${CGIT_DESC:-}" ]; then + sed -i "s/^root-desc=.*/root-desc=${CGIT_DESC}/" /etc/cgitrc +fi + +if [ -n "${CGIT_CLONE_BASE_URL:-}" ]; then + sed -i "s#^clone-url=.*#clone-url=${CGIT_CLONE_BASE_URL}/\\\$CGIT_REPO_URL#" /etc/cgitrc +fi + +spawn-fcgi -s /run/fcgiwrap/fcgiwrap.sock -U www-data -G www-data -- /usr/sbin/fcgiwrap + +exec nginx -g "daemon off;" diff --git a/docker/nginx.conf b/docker/nginx.conf new file mode 100644 index 0000000..0a5cf5d --- /dev/null +++ b/docker/nginx.conf @@ -0,0 +1,47 @@ +user www-data; +worker_processes auto; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + access_log /dev/stdout; + error_log /dev/stderr warn; + + sendfile on; + tcp_nopush on; + keepalive_timeout 65; + + server { + listen 80 default_server; + server_name _; + + root /usr/share/cgit; + index cgit.css; + + location /cgit.css { + try_files $uri =404; + } + + location /cgit.png { + try_files $uri =404; + } + + location /favicon.ico { + try_files /cgit.png =404; + } + + location / { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi; + fastcgi_param PATH_INFO $uri; + fastcgi_param QUERY_STRING $query_string; + fastcgi_pass unix:/run/fcgiwrap/fcgiwrap.sock; + fastcgi_read_timeout 60s; + } + } +} |
