diff options
Diffstat (limited to 'terminaldweller.com/cgit')
-rw-r--r-- | terminaldweller.com/cgit/bootstrap/Dockerfile | 7 | ||||
-rwxr-xr-x | terminaldweller.com/cgit/bootstrap/bootstrap.sh | 64 | ||||
-rw-r--r-- | terminaldweller.com/cgit/bootstrap/crontab | 1 | ||||
-rwxr-xr-x | terminaldweller.com/cgit/bootstrap/docker-entrypoint.sh | 6 | ||||
-rw-r--r-- | terminaldweller.com/cgit/cgit/Dockerfile | 2 | ||||
-rw-r--r-- | terminaldweller.com/cgit/cgit/cgitrc | 19 | ||||
-rw-r--r-- | terminaldweller.com/cgit/cgit/nginx.conf | 32 | ||||
-rw-r--r-- | terminaldweller.com/cgit/docker-compose.yaml | 30 |
8 files changed, 161 insertions, 0 deletions
diff --git a/terminaldweller.com/cgit/bootstrap/Dockerfile b/terminaldweller.com/cgit/bootstrap/Dockerfile new file mode 100644 index 0000000..73e757a --- /dev/null +++ b/terminaldweller.com/cgit/bootstrap/Dockerfile @@ -0,0 +1,7 @@ +FROM alpine:3.16 +RUN apk update && apk add --no-cache git cronie busybox-initscripts +RUN rc-service crond start && rc-update add crond +COPY ./bootstrap.sh /bootstrap.sh +COPY ./docker-entrypoint.sh /docker-entrypoint.sh +COPY ./crontab /etc/crontabs/root +ENTRYPOINT ["/bootstrap.sh"] diff --git a/terminaldweller.com/cgit/bootstrap/bootstrap.sh b/terminaldweller.com/cgit/bootstrap/bootstrap.sh new file mode 100755 index 0000000..a943ffb --- /dev/null +++ b/terminaldweller.com/cgit/bootstrap/bootstrap.sh @@ -0,0 +1,64 @@ +#!/bin/sh +set -e + +GIT_REPO_DIR=/etc/gitrepos +ORIGIN_HTTPS=https://github.com/terminaldweller +ORIGIN_SSH=git@github.com:terminaldweller +REPOS="cgrep \ + mutator \ + delf \ + dwasm \ + colo \ + blog \ + devourer \ + hived \ + mdrtl \ + simplex \ + scripts \ + vagrantboxes \ + dockerimages \ + st \ + dmenu \ + tabbed \ + dwm \ + w3m \ + leetcode \ + irssi-scripts \ + jupyter-notebook-docker-compose \ + seer \ + devi-githooks \ + kaminokumo \ + wikis \ + grpc \ + faultreiber \ + luatablegen \ + cfe-extra" + +bootstrap() { + for REPO in ${REPOS}; do + (cd "${GIT_REPO_DIR}" && git clone --bare "${ORIGIN_HTTPS}/${REPO}") + done +} + +update_repos() { + for REPO in ${REPOS}; do + (cd "${GIT_REPO_DIR}/${REPO}" && git fetch) + done +} + +on_startup() { + dir_list=$(ls -A == "$1") + if [ -z "$dir_list" ]; then + bootstrap + else + update_repos + fi +} + +if [ "$1" = "--startup" ]; then + on_startup "$@" +elif [ "$1" = "--update" ]; then + update_repos +elif [ "$1" = "--bootstrap" ]; then + bootstrap +fi diff --git a/terminaldweller.com/cgit/bootstrap/crontab b/terminaldweller.com/cgit/bootstrap/crontab new file mode 100644 index 0000000..2346740 --- /dev/null +++ b/terminaldweller.com/cgit/bootstrap/crontab @@ -0,0 +1 @@ +0 */6 * * * /bootstrap.sh --update diff --git a/terminaldweller.com/cgit/bootstrap/docker-entrypoint.sh b/terminaldweller.com/cgit/bootstrap/docker-entrypoint.sh new file mode 100755 index 0000000..a6ea4d5 --- /dev/null +++ b/terminaldweller.com/cgit/bootstrap/docker-entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +. /bootstrap.sh +on_startup +crond -s -P -f diff --git a/terminaldweller.com/cgit/cgit/Dockerfile b/terminaldweller.com/cgit/cgit/Dockerfile new file mode 100644 index 0000000..247023a --- /dev/null +++ b/terminaldweller.com/cgit/cgit/Dockerfile @@ -0,0 +1,2 @@ +FROM alpine:3.16 +RUN apk add && apk add --no-cache cgit git fcgiwrap highlight diff --git a/terminaldweller.com/cgit/cgit/cgitrc b/terminaldweller.com/cgit/cgit/cgitrc new file mode 100644 index 0000000..3b72aa7 --- /dev/null +++ b/terminaldweller.com/cgit/cgit/cgitrc @@ -0,0 +1,19 @@ +css=/cgit/cgit.css +# logo=/cgit.png + +# git repos go here +scan-path=/srv/git/ + +virtual-root=/ + +# automatically render READMEs +about-file=/usr/lib/cgit/filters/about-formatting.sh +readme:=README.md + +# robots +robots=noindex, nofollow + +include=/etc/cgitrepos + +# syntax highlighting +source-filter=/usr/lib/cgit/filters/syntax-highlighting-edited.sh diff --git a/terminaldweller.com/cgit/cgit/nginx.conf b/terminaldweller.com/cgit/cgit/nginx.conf new file mode 100644 index 0000000..1fea320 --- /dev/null +++ b/terminaldweller.com/cgit/cgit/nginx.conf @@ -0,0 +1,32 @@ +worker_processes 1; + +events { + worker_connections 1024; +} + +http { + include mime.types; + default_type application/octet-stream; + sendfile on; + keepalive_timeout 65; + gzip on; + + server { + listen 80; + + server_name git.terminaldweller.com; + + root /usr/share/git; + + try_files $uri @cgit; + + location @cgit { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi; + fastcgi_param PATH_INFO $uri; + fastcgi_param QUERY_STRING $args; + fastcgi_param HTTP_HOST $server_name; + fastcgi_pass unix:/run/fcgiwrap.socket; + } + } +} diff --git a/terminaldweller.com/cgit/docker-compose.yaml b/terminaldweller.com/cgit/docker-compose.yaml new file mode 100644 index 0000000..4635764 --- /dev/null +++ b/terminaldweller.com/cgit/docker-compose.yaml @@ -0,0 +1,30 @@ +version: "3" +services: + cgit: + image: cgit + build: + context: ./cgit/ + networks: + - cgitnet + ports: + - "8040:8080" + restart: unless-stopped + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + - ./cgitrc:/etc/cgitrc:ro + - storage:/etc/gitrepos/ + bootstrap: + image: bootstrap + build: + context: ./bootstrap + networks:bootstrapnet + volumes: + - storage:/etc/gitrepos/ + entrypoint: ["/docker-entrypoint.sh"] + cap_drop: + - ALL +networks: + cgitnet: + bootstrapnet: +volumes: + storage: |