FROM debian:bookworm-slim AS assets
RUN apt-get update && \
apt-get install -y --no-install-recommends curl ca-certificates && \
rm -rf /var/lib/apt/lists/* && \
find /var/log -type f -name '*.log*' -delete
RUN mkdir -p /var/www/html/cgit-css && \
curl -sSL -o /var/www/html/favicon.ico https://git-scm.com/favicon.ico && \
curl -sSL -o /var/www/html/cgit-css/highlight.min.js https://raw.githubusercontent.com/highlightjs/cdn-release/refs/heads/11-stable/build/highlight.min.js && \
curl -sSL -o /var/www/html/cgit-css/github.min.css https://raw.githubusercontent.com/highlightjs/cdn-release/refs/heads/11-stable/build/styles/github.min.css && \
curl -sSL -o /var/www/html/cgit-css/github-dark.min.css https://raw.githubusercontent.com/highlightjs/cdn-release/refs/heads/11-stable/build/styles/github-dark.min.css && \
sed -i '1s/^/@media screen and (prefers-color-scheme: dark) {/' /var/www/html/cgit-css/github-dark.min.css && echo '}' >> /var/www/html/cgit-css/github-dark.min.css && \
echo 'User-agent: *\nDisallow: /' >> /var/www/html/robots.txt
FROM debian:bookworm-slim
RUN apt-get update && \
apt-get install -y --no-install-recommends apache2 cgit python3-markdown && \
rm -rf /var/lib/apt/lists/* && \
find /var/log -type f -name '*.log*' -delete
COPY --from=assets /var/www/html /var/www/html
COPY theme.css /var/www/html/cgit-css/
COPY head-include.html /var/www/html/cgit-css/
COPY md2html.py /usr/lib/cgit/filters/
RUN cp /usr/share/cgit/cgit.css /usr/share/cgit/cgit.png /var/www/html/cgit-css/
RUN echo 'Listen ${APACHE_PORT}' > /etc/apache2/ports.conf && \
echo 'ServerName ${APACHE_SERVER_NAME}' >> /etc/apache2/apache2.conf && \
sed -e '/^User /d' -e '/^Group /d' -e 's;^PidFile .*;PidFile ${APACHE_RUN_DIR}/apache.pid;gi' -e 's;^ErrorLog .*;ErrorLog /dev/stderr;gi' \
-e 's;Require all granted;Require all denied;gi' -e 's;"^\\\\.ht";"^\\.";g' -i /etc/apache2/apache2.conf && \
rm -f /etc/apache2/sites-enabled/* /etc/apache2/mods-enabled/* /etc/apache2/conf-enabled/* && \
ln -s ../mods-available/mpm_event.load /etc/apache2/mods-enabled/mpm_event.load && \
ln -s ../mods-available/mpm_event.conf /etc/apache2/mods-enabled/mpm_event.conf && \
ln -s ../mods-available/mime.load /etc/apache2/mods-enabled/mime.load && \
ln -s ../mods-available/alias.load /etc/apache2/mods-enabled/alias.load && \
ln -s ../mods-available/filter.load /etc/apache2/mods-enabled/filter.load && \
ln -s ../mods-available/deflate.load /etc/apache2/mods-enabled/deflate.load && \
ln -s ../mods-available/deflate.conf /etc/apache2/mods-enabled/deflate.conf && \
ln -s ../mods-available/headers.load /etc/apache2/mods-enabled/headers.load && \
ln -s ../mods-available/authn_core.load /etc/apache2/mods-enabled/authn_core.load && \
ln -s ../mods-available/authz_core.load /etc/apache2/mods-enabled/authz_core.load && \
ln -s ../mods-available/authn_file.load /etc/apache2/mods-enabled/authn_file.load && \
ln -s ../mods-available/authz_user.load /etc/apache2/mods-enabled/authz_user.load && \
ln -s ../mods-available/auth_basic.load /etc/apache2/mods-enabled/auth_basic.load && \
ln -s ../mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load && \
echo 'TypesConfig /etc/mime.types\nDeflateAlterETag NoChange' > /etc/apache2/mods-enabled/mime.conf && \
echo 'ServerTokens Major\nServerSignature Off\nTraceEnable Off' > /etc/apache2/conf-enabled/security.conf && \
echo 'CustomLog /dev/stdout combined' > /etc/apache2/conf-enabled/access-log.conf
COPY cgitrc /etc/
COPY apache.conf /etc/apache2/sites-enabled/
ENV APACHE_PORT=8080
ENV APACHE_RUN_DIR=/dev/shm
ENV APACHE_SERVER_NAME=cgit
ENTRYPOINT ["/sbin/apache2", "-D", "FOREGROUND"]