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:  | 
