aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2025-11-07 22:25:47 +0000
committersaturneric <[email protected]>2025-11-07 22:25:47 +0000
commit8823b8990cd6384b5919134150f96ce3aaa16888 (patch)
tree0970e2958ff98d8c9ad56d5ac1126977cb69cbbf
parentchore(ci): add CI workflow for Docker image build (diff)
downloadcgit-8823b8990cd6384b5919134150f96ce3aaa16888.tar.gz
cgit-8823b8990cd6384b5919134150f96ce3aaa16888.zip
feat(docker): improve runtime setup and add about page
* Replace build-time filter copy with host-based approach for flexibility * Expand runtime dependencies to include `python3` and `lua5.4` * Update repository scan path to align with container directory structure * Add healthcheck for service reliability * Introduce new HTML about page with contact, PGP keys, and usage info
-rw-r--r--Dockerfile12
-rw-r--r--cgitrc2
-rw-r--r--web/about.html120
3 files changed, 130 insertions, 4 deletions
diff --git a/Dockerfile b/Dockerfile
index 12f87d0..a423938 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,16 +16,22 @@ RUN make NO_REGEX=NeedsStartEnd LUA_PKGCONFIG=lua5.4 -j$(nproc) install
FROM alpine:latest AS runtime
COPY --from=builder /var/www/htdocs/cgit /usr/share/webapps/cgit
-COPY --from=builder /usr/local/lib/cgit/filters /usr/local/lib/cgit/filters
+COPY ./filters /usr/lib/cgit/filters
-RUN apk --no-cache add lighttpd
+RUN apk --no-cache add lighttpd python3 lua5.4
COPY lighttpd.conf /etc/lighttpd/lighttpd.conf
COPY cgitrc /etc/cgitrc
COPY cgitrepos /etc/cgitrepos
+COPY web/ /var/www/
RUN mkdir -p /var/cache/cgit && \
- chown -R lighttpd:lighttpd /var/cache/cgit
+ chown -R lighttpd:lighttpd /var/cache/cgit && \
+ mkdir -p /repositories && \
+ chown -R lighttpd:lighttpd /repositories
+
+HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
+ CMD wget --no-verbose --tries=1 --spider http://localhost/ || exit 1
EXPOSE 80
ENTRYPOINT [ "lighttpd", "-D", "-f", "/etc/lighttpd/lighttpd.conf" ] \ No newline at end of file
diff --git a/cgitrc b/cgitrc
index e09d2d3..4a41c0a 100644
--- a/cgitrc
+++ b/cgitrc
@@ -139,7 +139,7 @@ section-sort=1
max-repo-count=99999
remove-suffix=1
scan-hidden-path=1
-scan-path=/home/git/repositories
+scan-path=/repositories
##
## List of repositories.
diff --git a/web/about.html b/web/about.html
new file mode 100644
index 0000000..2caa07c
--- /dev/null
+++ b/web/about.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <title>About - Git Repositories of Saturneric</title>
+ <meta name="description" content="Information about the Git server hosted by Saturneric">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <style>
+ body {
+ font-family: sans-serif;
+ margin: 2em;
+ line-height: 1.6;
+ }
+
+ h1,
+ h2 {
+ color: #333;
+ }
+
+ pre {
+ background: #f6f6f6;
+ padding: 1em;
+ overflow-x: auto;
+ font-size: 0.9em;
+ }
+
+ .section {
+ margin-top: 2em;
+ }
+
+ .footer {
+ margin-top: 4em;
+ font-size: 0.9em;
+ color: #777;
+ text-align: center;
+ }
+ </style>
+ <script>
+ document.addEventListener("DOMContentLoaded", function () {
+ document.getElementById("year").textContent = new Date().getFullYear();
+ });
+ </script>
+</head>
+
+<body>
+
+ <section class="section">
+ <h1>About This Git Server</h1>
+ <p>
+ This server hosts open source projects related to Saturneric.<br>
+ It provides public access to selected repositories for collaboration and distribution.
+ </p>
+ </section>
+
+ <section class="section">
+ <h2>Hosting Information</h2>
+ <p>
+ The server is physically located in Germany.<br>
+ All services comply with applicable German and European Union laws and regulations.
+ </p>
+ </section>
+
+ <section class="section">
+ <h2>Contact</h2>
+ <p>
+ Email: <a href="mailto:[email protected]">[email protected]</a>
+ </p>
+ </section>
+
+ <section class="section">
+ <h2>PGP Keys</h2>
+ <p><strong>Email encryption key:</strong></p>
+ <pre>
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEZq5pTxYJKwYBBAHaRw8BAQdA+YEVawOeMQaAPI4rMfycgbDKA7ebPJ0V2r2J
++HPKbz60KnNhdHVybmVyaWMoZm9yIGVtYWlsIG9ubHkpPGVyaWNAYmt0dXMuY29t
+PoiZBBMWCgBBFiEEbygCyZlmJ+PDmQF8WJGHNplm8CsFAmauaU8CGyMFCQPCZsoF
+CwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQWJGHNplm8CtkrQEA3/PN483C
+Ag9+cHR4xZ+GvtLqIDIQsltNlSq77aSWd80A/3lp0WKcd8Ypfc650WgLh9GFZw2N
+IcYIqjoO7K2tm7IJuDgEZq5pbxIKKwYBBAGXVQEFAQEHQB5fS+kyqWm+7JvVRIL8
+7hzP4Zi1WdQ85Tkr7JbfEOxFAwEIB4h+BBgWCgAmFiEEbygCyZlmJ+PDmQF8WJGH
+Nplm8CsFAmauaW8CGwwFCQPCZvkACgkQWJGHNplm8Cs2fgEAlHPl0ucJlgrxOqy9
+c21JXPESJBPBENmgBh6vr0VkF/gA/0Mv8aUVpjy4yceRkCxCVpBT6I/9nPqyHlob
+NBzq630J
+=hYH/
+-----END PGP PUBLIC KEY BLOCK-----
+ </pre>
+
+ <p><strong>Git commit signing key:</strong></p>
+ <pre>
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEZsEF1xYJKwYBBAHaRw8BAQdAPZ3dA2od9HFaiaJRr1TEEeRMfAcrBp8oqQPa
+R16Icva0OHNhdHVybmVyaWMoZm9yIGNvZGUgb3IgYmluYXJ5IHNpZ24gb25seSk8
+ZXJpY0Bia3R1cy5jb20+iJkEExYKAEEWIQQS9+iFjPFb7Jl1/zxco9okaEP9AwUC
+ZsEF1wIbIwUJA8JmbgULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRBco9ok
+aEP9A3TTAQC/H61IVj6LiSQ0dvodo5VFb2jTJa8XVfb2NT3yc/+JDwD+KTm+nV73
+dbaEG0FOTKu+n4rVhBpTes93Bn2GcRSbQwA=
+=fWZe
+-----END PGP PUBLIC KEY BLOCK-----
+ </pre>
+ </section>
+
+ <section class="section">
+ <h2>Usage Terms</h2>
+ <p>
+ All content is provided under the terms of the respective open source licenses.<br>
+ Please refer to each repository for licensing details.
+ </p>
+ </section>
+
+ <div class="footer">
+ &copy; <span id="year"></span> Saturneric. All rights reserved.
+ </div>
+
+</body>
+
+</html> \ No newline at end of file