aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cgit/css_variable_colors.sh30
-rw-r--r--cgit/everforest.css49
-rw-r--r--docker-compose-setup.yml2
-rw-r--r--docker-compose.yml17
-rw-r--r--gitolite/Dockerfile98
-rw-r--r--gitolite/cgit/40-fcgiwrap.sh (renamed from cgit/40-fcgiwrap.sh)0
-rw-r--r--gitolite/cgit/Dockerfile (renamed from cgit/Dockerfile)2
-rw-r--r--gitolite/cgit/about-formatting.sh34
-rw-r--r--gitolite/cgit/about.html (renamed from cgit/about.html)0
-rw-r--r--gitolite/cgit/cgit.png (renamed from cgit/cgit.png)bin1462 -> 1462 bytes
-rw-r--r--gitolite/cgit/cgitrc (renamed from cgit/cgitrc)13
-rw-r--r--gitolite/cgit/css_variable_colors.sh35
-rw-r--r--gitolite/cgit/everforest.css61
-rw-r--r--gitolite/cgit/favicon.icobin0 -> 432254 bytes
-rw-r--r--gitolite/cgit/favicon.png (renamed from cgit/favicon.png)bin6713 -> 6713 bytes
-rw-r--r--gitolite/cgit/nginx.conf (renamed from cgit/nginx.conf)2
-rw-r--r--gitolite/docker-entrypoint.sh12
-rw-r--r--rawhost.sh28
18 files changed, 282 insertions, 101 deletions
diff --git a/cgit/css_variable_colors.sh b/cgit/css_variable_colors.sh
deleted file mode 100644
index 9ef2818..0000000
--- a/cgit/css_variable_colors.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-CGIT_CSS_PATH=/var/www/htdocs/cgit/cgit.css
-sed -i -Ee 's/\<white\>/var(--color-bg)/g' "${CGIT_CSS_PATH}"
-sed -i -Ee 's/\<blue\>/var(--color-accent)/g' "${CGIT_CSS_PATH}"
-sed -i -Ee 's/\<black\>/var(--color-fg)/g' "${CGIT_CSS_PATH}"
-sed -i -Ee 's/#333\>/var(--color-fg)/g' "${CGIT_CSS_PATH}"
-
-sed -i -Ee 's/#ccc\>/var(--color-white-dim)/g' "${CGIT_CSS_PATH}"
-sed -i -Ee 's/#000\>/var(--color-fg-bright)/g' "${CGIT_CSS_PATH}"
-
-sed -i -Ee 's/#777\>/var(--color-white-dim)/g' "${CGIT_CSS_PATH}"
-sed -i -Ee 's/#f7f7f7\>/var(--color-bg-bright)/g' "${CGIT_CSS_PATH}"
-
-sed -i -Ee 's/#eee\>/var(--color-black-bright)/g' "${CGIT_CSS_PATH}"
-
-# links
-sed -i -Ee 's/#00f\>/var(--color-accent)/g' "${CGIT_CSS_PATH}"
-
-# ago, minutes, hours
-sed -i -Ee 's/#080\>/var(--color-green)/g' "${CGIT_CSS_PATH}"
-# ago, days
-sed -i -Ee 's/#040\>/var(--color-green-bright)/g' "${CGIT_CSS_PATH}"
-# ago, weeks
-sed -i -Ee 's/#444\>/var(--color-yellow)/g' "${CGIT_CSS_PATH}"
-# ago, months
-sed -i -Ee 's/#888\>/var(--color-yellow-bright)/g' "${CGIT_CSS_PATH}"
-# ago, years
-sed -i -Ee 's/#bbb\>/var(--color-white)/g' "${CGIT_CSS_PATH}"
-
diff --git a/cgit/everforest.css b/cgit/everforest.css
deleted file mode 100644
index 60c64f3..0000000
--- a/cgit/everforest.css
+++ /dev/null
@@ -1,49 +0,0 @@
-:root {
-
- /* Regular */
- --color-black: #1e2326;
- --color-red: #e67e80;
- --color-green: #a7c080;
- --color-yellow: #dbbc7f;
- --color-blue: #7fbbb3;
- --color-purple: #d699b6;
- --color-turquoise: #7fbbb3;
- --color-white: #d3c6aa;
-
- /* Bright */
- --color-black-bright: #4f5b58;
- --color-red-bright: #e66868;
- --color-green-bright: #93b259;
- --color-yellow-bright: #dfa000;
- --color-blue-bright: #3a94c5;
- --color-purple-bright: #df69ba;
- --color-turquoise-bright: #3a94c5;
- --color-white-bright: #ffffff;
-
- --color-white-dim: #7a8478;
-
-
- --color-fg: #d3c6aa;
- --color-bg: #3c4841; /*#272e33;*/
- --color-fg-bright: #fff;
- --color-bg-bright: #374145;
- --color-fg-sel: #fff;
- --color-bg-sel: #414b50;
-
- --color-accent: var(--color-green);
- --color-header: var(--color-accent);
- --color-list-point: var(--color-accent);
-
- --color-var(--color-blue):
-}
-
-body {
- background-color: var(--color-bg);
- color: var(--color-fg);
-}
-
-div#cgit table.tabs td.form input,
-div#cgit table.tabs td.form select {
- background-color: var(--color-bg-bright);
- color: var(--color-fg-bright);
-}
diff --git a/docker-compose-setup.yml b/docker-compose-setup.yml
index da619ac..43d69fd 100644
--- a/docker-compose-setup.yml
+++ b/docker-compose-setup.yml
@@ -7,7 +7,7 @@ services:
volumes:
- gitolite-sshkeys:/etc/ssh/keys
- gitolite-git:/var/lib/git
- command: ["true"]
+ command: ["/docker-entrypoint.sh", "true"]
volumes:
gitolite-sshkeys:
diff --git a/docker-compose.yml b/docker-compose.yml
index 143c85e..4fbbbc9 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,24 +1,23 @@
services:
gitolite:
build: gitolite
- ports:
- - 2222:22
- volumes:
- - gitolite-sshkeys:/etc/ssh/keys
- - gitolite-git:/var/lib/git
- cgit:
- build: cgit
environment:
- DOMAIN=${DOMAIN}
ports:
+ - 2222:22
- 8080:80
volumes:
+ - gitolite-sshkeys:/etc/ssh/keys
- gitolite-git:/var/lib/git
- logs_nginx:/var/log/nginx
- #command: ["nginx-debug"]
+ #cgit:
+ # build: cgit
+ # ports:
+ # volumes:
+ # - gitolite-git:/var/lib/git
+ # #command: ["nginx-debug"]
volumes:
gitolite-sshkeys:
gitolite-git:
logs_nginx:
-
diff --git a/gitolite/Dockerfile b/gitolite/Dockerfile
index 8ac87f6..44af1f0 100644
--- a/gitolite/Dockerfile
+++ b/gitolite/Dockerfile
@@ -1,27 +1,109 @@
+# Compile cgit
+FROM alpine:3.23.3 AS build
+
+RUN set -x \
+ && apk add --no-cache gcc g++ cmake make curl linux-headers musl-dev zlib-dev libressl-dev libintl musl-libintl
+
+# Compile cgit
+RUN set -x \
+ && wget 'https://git.zx2c4.com/cgit/snapshot/cgit-1.3.tar.xz' \
+ && tar -xvf cgit-1.3.tar.xz \
+ && make -C /cgit-1.3 get-git \
+ && DESTDIR=/pkg NO_REGEX=NeedsStartEnd make -C /cgit-1.3 install
+
+
+ #&& tar -czvf deps.tar.gz -C /cgit-1.3/pkg .
+
+
+# Compile cmark-gfm
+RUN set -x \
+ && wget https://github.com/github/cmark-gfm/archive/refs/tags/0.29.0.gfm.13.tar.gz \
+ && tar -xvf 0.29.0.gfm.13.tar.gz \
+ && cmake -S /cmark-gfm-0.29.0.gfm.13 -B /cmark-gfm-0.29.0.gfm.13/build \
+ -DCMAKE_POLICY_VERSION_MINIMUM=4.0 -DCMAKE_INSTALL_PREFIX=pkg \
+ && cmake --build /cmark-gfm-0.29.0.gfm.13/build \
+ && cmake --install /cmark-gfm-0.29.0.gfm.13/build
+
+RUN set -x \
+ && tar -czvf deps.tar.gz -C pkg .
+
+# Configure nginx & cgit + fcgiwrap
FROM alpine:3.23.3
+COPY --from=build /deps.tar.gz /deps.tar.gz
+
+ARG DOMAIN=localhost
-# Install OpenSSH server and Gitolite
-# Unlock the automatically-created git user
RUN set -x \
- && apk add --no-cache openrc fail2ban gitolite openssh
+ && apk add --no-cache \
+ curl cmark fail2ban fcgiwrap gcc gitolite libintl libressl-dev linux-headers \
+ make musl-dev musl-libintl nginx openrc openssh py3-pygments zlib-dev \
+ && tar -xvf /deps.tar.gz
-RUN apk update && apk update
+RUN apk update \
+ && apk upgrade --no-cache \
+ && sed -i '/getty/d' /etc/inittab
-RUN rc-update add fail2ban
+COPY cgit/40-fcgiwrap.sh /docker-entrypoint.d/
+RUN chmod +x /docker-entrypoint.d/40-fcgiwrap.sh
-RUN git config --system advice.defaultBranchName false
+COPY cgit/cgitrc /etc/
+
+COPY cgit/nginx.conf /
+RUN sed "s/\$DOMAIN/$DOMAIN/g" /nginx.conf > /etc/nginx/http.d/default.conf \
+ && rm /nginx.conf
+
+RUN addgroup nginx www-data
+
+COPY cgit/about.html /var/www/htdocs/cgit/
+COPY cgit/cgit.png /var/www/htdocs/cgit/logo.png
+COPY cgit/favicon.ico /var/www/htdocs/cgit/
+
+COPY cgit/css_variable_colors.sh /
+COPY cgit/everforest.css /var/www/htdocs/cgit/
+RUN sh css_variable_colors.sh
+
+COPY cgit/about-formatting.sh /usr/local/lib/cgit/filters/about-formatting.sh
+RUN chmod 755 /usr/local/lib/cgit/filters/about-formatting.sh
# Volume used to store SSH host keys, generated on first run
VOLUME /etc/ssh/keys
+RUN rc-update add fail2ban \
+ && rc-update add fcgiwrap \
+ && rc-update add nginx \
+ && rc-update add sshd
+
+# www-data may not be necessary
+RUN addgroup fcgiwrap git
+#RUN usermod -G nginx,www-data,git nginx
+# Configure gitolite
+# Install OpenSSH server and Gitolite
+# Unlock the automatically-created git user
+
+#RUN addgroup -g 102 -S git \
+# && adduser -S -D -H -u 102 -h /var/lib/git -s /sbin/nologin -G git -g git git
+
+RUN git config --system advice.defaultBranchName false
+
# Volume used to store all Gitolite data (keys, config and repositories), initialized on first run
VOLUME /var/lib/git
+RUN chmod 750 /var/lib/git
+
+# Disable unwanted authentications and Disable sftp subsystem
+RUN perl -i -pe 's/^#?((?!Kerberos|GSSAPI|Password)\w*Authentication)\s.*/\1 no/;s/^(PubkeyAuthentication) no/\1 yes/' /etc/ssh/sshd_config \
+ && perl -i -pe 's/^#?(PermitRootLogin)\s.*/\1 no/' /etc/ssh/sshd_config \
+ && perl -i -pe 's/^(Subsystem\ssftp\s)/#\1/' /etc/ssh/sshd_config
+
# Permissions are fixed in docker-entrypoint.sh
RUN mkdir -p /var/lib/git/local/hooks/common
COPY post-receive /var/lib/git/local/hooks/common/
RUN chmod +x /var/lib/git/local/hooks/common/post-receive
+# Configure nginx & cgit + fcgiwrap
+#RUN addgroup -g 101 -S nginx \
+# && adduser -S -D -H -u 101 -h /var/cache/nginx -s /sbin/nologin -G nginx -g nginx nginx
+
# Entrypoint responsible for SSH host keys generation, and Gitolite data initialization
COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
@@ -31,4 +113,6 @@ ENTRYPOINT ["/docker-entrypoint.sh"]
EXPOSE 22
# Default command is to run the SSH server
-CMD ["sshd"]
+#CMD ["sshd"]
+#CMD ["/sbin/init"]
+CMD ["/sbin/init"]
diff --git a/cgit/40-fcgiwrap.sh b/gitolite/cgit/40-fcgiwrap.sh
index 3f788af..3f788af 100644
--- a/cgit/40-fcgiwrap.sh
+++ b/gitolite/cgit/40-fcgiwrap.sh
diff --git a/cgit/Dockerfile b/gitolite/cgit/Dockerfile
index 007fe23..0c41144 100644
--- a/cgit/Dockerfile
+++ b/gitolite/cgit/Dockerfile
@@ -20,7 +20,7 @@ COPY --from=build /cgit-1.3/pkg/cgit-1.3.tar.gz /cgit-1.3.tar.gz
ARG DOMAIN=localhost
RUN set -x \
- && apk add --no-cache fcgiwrap envsubst \
+ && apk add --no-cache fcgiwrap py3-pygments \
&& tar -xvf /cgit-1.3.tar.gz
RUN apk update && apk update
diff --git a/gitolite/cgit/about-formatting.sh b/gitolite/cgit/about-formatting.sh
new file mode 100644
index 0000000..0cd0e5d
--- /dev/null
+++ b/gitolite/cgit/about-formatting.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+# This may be used with the about-filter or repo.about-filter setting in cgitrc.
+# It passes formatting of about pages to differing programs, depending on the usage.
+
+# Markdown support requires python and markdown-python.
+# RestructuredText support requires python and docutils.
+# Man page support requires groff.
+
+# The following environment variables can be used to retrieve the configuration
+# of the repository for which this script is called:
+# CGIT_REPO_URL ( = repo.url setting )
+# CGIT_REPO_NAME ( = repo.name setting )
+# CGIT_REPO_PATH ( = repo.path setting )
+# CGIT_REPO_OWNER ( = repo.owner setting )
+# CGIT_REPO_DEFBRANCH ( = repo.defbranch setting )
+# CGIT_REPO_SECTION ( = section setting )
+# CGIT_REPO_CLONE_URL ( = repo.clone-url setting )
+
+cd "$(dirname $0)/html-converters/"
+case "$(printf '%s' "$1" | tr '[:upper:]' '[:lower:]')" in
+ *.markdown|*.mdown|*.md|*.mkd) cmark-gfm --to html \
+ -e footnotes \
+ -e table \
+ -e strikethrough \
+ -e autolink \
+ -e tagfilter \
+ -e tasklist \
+ --width 80 <(cat -); ;;
+ *.rst) exec ./rst2html; ;;
+ *.[1-9]) exec ./man2html; ;;
+ *.htm|*.html) exec cat; ;;
+ *.txt|*) exec ./txt2html; ;;
+esac
diff --git a/cgit/about.html b/gitolite/cgit/about.html
index ede0cb5..ede0cb5 100644
--- a/cgit/about.html
+++ b/gitolite/cgit/about.html
diff --git a/cgit/cgit.png b/gitolite/cgit/cgit.png
index 65cb7da..65cb7da 100644
--- a/cgit/cgit.png
+++ b/gitolite/cgit/cgit.png
Binary files differ
diff --git a/cgit/cgitrc b/gitolite/cgit/cgitrc
index 6abeaf5..cbfa6a9 100644
--- a/cgit/cgitrc
+++ b/gitolite/cgit/cgitrc
@@ -1,6 +1,13 @@
+repository-sort=age
+clone-url=https://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL
+enable-http-clone=1
+
# Needed to avoid duplicating URI in every href
virtual-root=/
+# Extra <head>
+head-include=/usr/lib/cgit/include.html
+
# Enable us "ignoring" specific repositories
enable-git-config=1
@@ -10,13 +17,15 @@ enable-http-clone=1
# Remove .git suffix
remove-suffix=1
+readme=:README.md
+about-filter=/usr/local/lib/cgit/filters/about-formatting.sh
+
# Needs to be mountpoint of the gitolite volume
-scan-path=/var/lib/git/repositories
project-list=/var/lib/git/projects.list
+scan-path=/var/lib/git/repositories
# Requires python
#source-filter=/usr/lib/cgit/filters/syntax-high.py
-#about-filter=/usr/lib/cgit/filters/about-formatting.sh
root-title=Personal projects
root-desc=A brief collection
diff --git a/gitolite/cgit/css_variable_colors.sh b/gitolite/cgit/css_variable_colors.sh
new file mode 100644
index 0000000..fbab0cc
--- /dev/null
+++ b/gitolite/cgit/css_variable_colors.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+CGIT_CSS_PATH=/var/www/htdocs/cgit/cgit.css
+sed -i -Ee 's/\<white\>/var(--color-bg)/g' "${CGIT_CSS_PATH}"
+sed -i -Ee 's/\<blue\>/var(--color-accent)/g' "${CGIT_CSS_PATH}"
+sed -i -Ee 's/\<black\>/var(--color-fg)/g' "${CGIT_CSS_PATH}"
+
+# Diffs?
+sed -i -Ee 's/\<green\>/var(--color-green)/g' "${CGIT_CSS_PATH}"
+sed -i -Ee 's/#009\>/var(--color-blue)/g' "${CGIT_CSS_PATH}"
+sed -i -Ee 's/\<red\>/var(--color-red)/g' "${CGIT_CSS_PATH}"
+
+sed -i -Ee 's/#333\>/var(--color-fg)/g' "${CGIT_CSS_PATH}"
+
+sed -i -Ee 's/#ccc\>/var(--color-bg-2)/g' "${CGIT_CSS_PATH}"
+sed -i -Ee 's/#000\>/var(--color-fg)/g' "${CGIT_CSS_PATH}"
+
+sed -i -Ee 's/#777\>/var(--color-white)/g' "${CGIT_CSS_PATH}"
+sed -i -Ee 's/#f7f7f7\>/var(--color-bg-1)/g' "${CGIT_CSS_PATH}"
+
+sed -i -Ee 's/#eee\>/var(--color-bg-2)/g' "${CGIT_CSS_PATH}"
+
+# links
+sed -i -Ee 's/#00f\>/var(--color-accent)/g' "${CGIT_CSS_PATH}"
+
+# ago, minutes, hours
+sed -i -Ee 's/#080\>/var(--color-blue)/g' "${CGIT_CSS_PATH}"
+# ago, days
+sed -i -Ee 's/#040\>/var(--color-green)/g' "${CGIT_CSS_PATH}"
+# ago, weeks
+sed -i -Ee 's/#444\>/var(--color-yellow)/g' "${CGIT_CSS_PATH}"
+# ago, months
+sed -i -Ee 's/#888\>/var(--color-bg-yellow)/g' "${CGIT_CSS_PATH}"
+# ago, years
+sed -i -Ee 's/#bbb\>/var(--color-grey)/g' "${CGIT_CSS_PATH}"
diff --git a/gitolite/cgit/everforest.css b/gitolite/cgit/everforest.css
new file mode 100644
index 0000000..46333e3
--- /dev/null
+++ b/gitolite/cgit/everforest.css
@@ -0,0 +1,61 @@
+:root {
+ --color-bg-dim: #1e2326;
+ --color-bg-0: #272e33;
+ --color-bg-1: #2e383c;
+ --color-bg-2: #374145;
+ --color-bg-3: #414b50;
+ --color-bg-4: #495156;
+ --color-bg-5: #4f5b58;
+ --color-bg-red: #493b40;
+ --color-bg-yellow: #45443c;
+ --color-bg-green: #3c4841;
+ --color-bg-blue: #384b55;
+ --color-bg-purple: #463f48;
+ --color-bg-visual: #4c3743;
+
+ /* Regular */
+ --color-fg: #d3c6aa;
+ --color-red: #e67e80;
+ --color-yellow: #dbbc7f;
+ --color-green: #a7c080;
+ --color-blue: #7fbbb3;
+ --color-purple: #d699b6;
+ --color-aqua: #83c092;
+ --color-orange: #e69875;
+ --color-grey-0: #7a8478;
+ --color-grey-1: #859289;
+ --color-grey-2: #9da9a0;
+ --color-grey: var(--color-grey-2);
+
+ --color-black: var(--color-bg-dim);
+ --color-turquoise: var(--color-aqua);
+ --color-white: var(--color-grey);
+
+
+ --color-bg: var(--color-bg-0);
+ --color-fg-sel: var(--color-fg);
+ --color-bg-sel: var(--color-bg-visual);
+
+ --color-accent: var(--color-green);
+ --color-header-0: var(--color-red);
+ --color-header-1: var(--color-orange);
+ --color-header-2: var(--color-yellow);
+ --color-header-3: var(--color-green);
+ --color-header-4: var(--color-blue);
+ --color-header-5: var(--color-purple);
+ --color-header-delim:var(--color-grey-1);
+
+ --color-list-point-0: var(--color-red);
+ --color-list-point-1: var(--color-orange);
+ --color-list-point-2: var(--color-yellow);
+ --color-list-point-3: var(--color-green);
+ --color-list-point-4: var(--color-blue);
+ --color-list-point-5: var(--color-purple);
+
+ --color-var(--color-blue):
+}
+
+body {
+ background-color: var(--color-bg);
+ color: var(--color-fg);
+}
diff --git a/gitolite/cgit/favicon.ico b/gitolite/cgit/favicon.ico
new file mode 100644
index 0000000..f4d51ba
--- /dev/null
+++ b/gitolite/cgit/favicon.ico
Binary files differ
diff --git a/cgit/favicon.png b/gitolite/cgit/favicon.png
index da6269e..da6269e 100644
--- a/cgit/favicon.png
+++ b/gitolite/cgit/favicon.png
Binary files differ
diff --git a/cgit/nginx.conf b/gitolite/cgit/nginx.conf
index 7b03929..f4a115b 100644
--- a/cgit/nginx.conf
+++ b/gitolite/cgit/nginx.conf
@@ -13,7 +13,7 @@ server {
location @cgit {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/htdocs/cgit/cgit.cgi;
- fastcgi_pass unix:/run/fcgiwrap.socket;
+ fastcgi_pass unix:/run/fcgiwrap/fcgiwrap.sock;
fastcgi_param PATH_INFO $uri;
fastcgi_param QUERY_STRING $args;
diff --git a/gitolite/docker-entrypoint.sh b/gitolite/docker-entrypoint.sh
index 3d08d34..d83d9e0 100644
--- a/gitolite/docker-entrypoint.sh
+++ b/gitolite/docker-entrypoint.sh
@@ -42,8 +42,18 @@ else
su - git -c "gitolite setup"
fi
+su - git -c "chmod 750 ~git/repositories"
+su - git -c "chmod 640 ~git/projects.list"
+
if [ "${1}" != 'sshd' ]; then
- sed -i -Ee "s/^([^#]*GIT_CONFIG_KEYS\\s*=>\\s*)'[^']*'\\s*,/\\1'cgit.*',/" /var/lib/git/.gitolite.rc
+ # LOCAL_CODE => "$ENV{HOME}/local",
+
+ su - git -c "sed -i -Ee \"s/^([^#]*UMASK\\s*=>\\s*)[0-9]*\\s*,/\\1 0027,/\" /var/lib/git/.gitolite.rc"
+ su - git -c "sed -i -Ee \"s/^([^#]*GIT_CONFIG_KEYS\\s*=>\\s*)'[^']*'\\s*,/\\1'.*',/\" /var/lib/git/.gitolite.rc"
+ #su - git -c "sed -i -Ee 's/#?(\\s*LOCAL_CODE\\s+=>\\s+\"\\\$ENV\\{HOME\\}\\/local\",.*)/\\1/' ~/.gitolite.rc"
+ #su - git -c "chmod 650 ~git/repositories"
+ #su - git -c "chmod 640 ~git/projects.list"
+ #sed -i -Ee "s/^([^#]*UMASK\\s*=>)\\s*'[^']*'\\s*,/\\1 0027,/" /var/lib/git/.gitolite.rc
#sed -i -Ee "s/^([^#]*GIT_CONFIG_KEYS\\s*=>\\s*)'[^']*'\\s*,/\\1'.*',/" /var/lib/git/.gitolite.rc
fi
diff --git a/rawhost.sh b/rawhost.sh
new file mode 100644
index 0000000..f846266
--- /dev/null
+++ b/rawhost.sh
@@ -0,0 +1,28 @@
+apk add --no-cache gcc make curl linux-headers musl-dev zlib-dev libressl-dev libintl musl-libintl fcgiwrap nginx gitolite
+apk update && apk update
+
+tar -xvf cgit-1.3.tar.xz
+cd ~/cgit-1.3
+make get-git
+
+DESTDIR=pkg NO_REGEX=NeedsStartEnd make install
+
+cd ~/cgit-1.3/pkg
+tar -czvf cgit-1.3.tar.gz .
+
+cp ~/cgit-1.3/pkg/cgit-1.3.tar.gz /cgit-1.3.tar.gz
+
+cd /
+tar -xvf /cgit-1.3.tar.gz
+
+scp cgitrc git.nelin.dk:/etc/
+scp nginx.conf git.nelin.dk:/etc/nginx/http.d/
+scp css_variable_colors.sh git.nelin.dk:/
+
+scp about.html git.nelin.dk:/var/www/htdocs/cgit/
+scp cgit.png git.nelin.dk:/var/www/htdocs/cgit/logo.png
+scp favicon.ico git.nelin.dk:/var/www/htdocs/cgit/
+scp everforest.css git.nelin.dk:/var/www/htdocs/cgit/
+sh css_variable_colors.sh
+
+chmod 750 /var/lib/git