Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Remove the container deployment

9bce37233413e6a56c38d5cf90e79dfa496649b2 · Keenan Nemetz · 3d ago · parent c1edfd3c

Remove the container deployment

A Vole instance is one process whose state is a directory on local disk. A
container therefore adds a layer without removing one, and it costs
something real: the service unit's hardening, and the CI half, which needs
an OCI runtime the container does not have without mounting the host's
socket — the thing the runner docs refuse.

It was also the weakest path in practice. No image is published, so an
upgrade meant a source checkout and a Go build where the package is one
`apt install`. CI never ran the container; it was tested by hand once, which
is a surface that rots quietly.

So the Dockerfile, the compose file, the entrypoint, the image's
configuration, and the guide go. The deployment checker loses its compose
and COPY checks, and the render script is the only shipped script left.

Every other mention of Docker in the repository means the CI container
runtime, and those stay.

Users who manage their machines with Compose or Kubernetes are told where
they stand: give the forge a small virtual machine of its own, and the
first-boot file works there unchanged.

deploy/docker/compose.yaml −39

@@ -1,39 +0,0 @@
1 # Vole in one container.
2 #
3 # Copy the configuration out of the image (or from this directory) and edit it
4 # first; public_url is the one setting that has to be right before anyone signs
5 # in:
6 #
7 # cp deploy/docker/vole.toml ./vole.toml
8 # $EDITOR vole.toml
9 # docker compose -f deploy/docker/compose.yaml up -d
10 #
11 # Port 8080 is published on loopback: put a TLS proxy in front of it, such as the
12 # Caddy snippet in docs/deploy/docker.md. To let Vole obtain its own certificate
13 # instead, uncomment https_addr in vole.toml and publish 80 and 443 here.
14
15 name: vole
16
17 services:
18 vole:
19 build:
20 # The build needs the Go source, so the context is the repository root.
21 context: ../..
22 dockerfile: deploy/docker/Dockerfile
23 image: vole:local
24 restart: unless-stopped
25 ports:
26 - "2222:2222"
27 - "127.0.0.1:8080:8080"
28 volumes:
29 - vole-data:/var/lib/vole
30 - ./vole.toml:/etc/vole/vole.toml:ro
31 healthcheck:
32 test: ["CMD", "curl", "-fsS", "-o", "/dev/null", "http://127.0.0.1:8080/healthz"]
33 interval: 30s
34 timeout: 5s
35 retries: 3
36 start_period: 10s
37
38 volumes:
39 vole-data: