summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorhaturatu <taro@eyes4you.org>2026-04-21 05:21:33 +0900
committerhaturatu <taro@eyes4you.org>2026-04-21 05:21:33 +0900
commit836cdbbcb566a36c16b28305b50a502fa09f2c97 (patch)
tree796904fec1e2536e83630be181d9f3777bd2de3e /docker
first commitHEADmain
Diffstat (limited to 'docker')
-rw-r--r--docker/cgitrc25
-rw-r--r--docker/entrypoint.sh26
-rw-r--r--docker/nginx.conf47
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;
+ }
+ }
+}