aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md36+12 −24
1 files changed, 12 insertions, 24 deletions
diff --git a/README.md b/README.md
index 2db136f..e0cced8 100644
--- a/README.md
+++ b/README.md
@@ -9,15 +9,12 @@ platforms but aren't ready to host complex services like Forgejo.
## Security boundary
-- Git fetch is available anonymously over smart HTTP; authenticated fetch and
- push use SSH public-key authentication through `gilti-ssh`.
+- Git fetch and push use SSH public-key authentication through `gilti-ssh`.
- Every configured key has read/write access to every repository and may create
a repository by pushing to its name for the first time.
-- Repository browsing, archives, LFS downloads, and smart HTTP fetches are
- anonymous and read-only; every repository is publicly visible.
-- Password authentication, shells, forwarding, and tunnels are disabled; content
- filters are not supported. Optional unauthenticated HTTP writes must be
- enabled explicitly.
+- cgit is anonymous and read-only; every repository is publicly visible.
+- Smart HTTP, password authentication, shells, forwarding, tunnels, and cgit
+ filters are disabled.
- Gilti is a single-replica service backed by one POSIX persistent volume. It is
not an HA system.
@@ -26,7 +23,7 @@ platforms but aren't ready to host complex services like Forgejo.
Every start requires a static `authorized_keys` file:
```console
-docker pull ghcr.io/dimidiumlabs/gilti:nightly
+docker build -t gilti:dev .
ssh-keygen -q -t ed25519 -N '' -f ./admin
cp ./admin.pub ./authorized_keys
@@ -36,22 +33,15 @@ docker run --rm \
--cap-add SETGID --cap-add SETUID --cap-add SYS_CHROOT \
--tmpfs /run:rw,nosuid,nodev,noexec,size=32m \
--tmpfs /tmp:rw,nosuid,nodev,noexec,size=256m \
+ --tmpfs /var/cache/cgit:rw,nosuid,nodev,noexec,size=1g \
-p 8080:8080 -p 2222:2222 \
-v gilti-state:/var/lib/gilti \
-v "$PWD/authorized_keys:/etc/gilti/authorized_keys:ro" \
- ghcr.io/dimidiumlabs/gilti:nightly
+ gilti:dev
```
-The HTTP configuration is read from the environment at startup:
-
-- `GILTI_ROOT_TITLE` (default: `Gilti`);
-- `GILTI_ROOT_DESCRIPTION` (default: `A tiny Git server`);
-- `GILTI_CLONE_PREFIX` (empty by default);
-- `GILTI_HTTP_WRITE` (`0` by default; `1` enables unauthenticated HTTP pushes and LFS uploads).
-
-Gilti snapshots the authorized keys file at process startup; changing it takes
-effect after a restart. Repositories and the persistent SSH host key live on
-the state volume.
+Gilti snapshots this file at process startup; changing it takes effect after a
+restart. Repositories and the persistent SSH host key live on the state volume.
## Helm
@@ -67,7 +57,7 @@ ssh:
helm upgrade --install gilti ./charts/gilti \
--namespace gilti --create-namespace \
--values values.yaml \
- --set web.clonePrefix='ssh://git@git.dimidiumlabs.io/'
+ --set cgit.clonePrefix='ssh://git@vcs.dimidiumlabs.io/'
```
See [`charts/gilti/README.md`](charts/gilti/README.md) for persistence, routing,
@@ -86,10 +76,8 @@ shellcheck scripts/*.sh tests/*.sh
mise run chart -- --chart charts/gilti --lint-only
```
-The CI matrix builds architecture-specific Alpine artifacts before assembling
-the image; the Dockerfile does not compile source code. Linux packages are
-intentionally not produced. Gilti's release artifacts are a multi-platform OCI
-image and an OCI Helm chart.
+Linux packages are intentionally not produced. Gilti's release artifacts are a
+multi-platform OCI image and an OCI Helm chart.
## Contributing