2 KiB
2 KiB
tops — koopa-tops-ng1 … ng3
| Item | Value |
|---|---|
| Live | /home/hernani/koopa-tops/ |
| Containers | koopa-tops-ng1, koopa-tops-ng2, koopa-tops-ng3 |
| Image | docker.io/nginxinc/nginx-unprivileged:1.27-alpine (non-root, container port 8080) |
| Compose | compose.yml (this dir) |
| Secrets | none |
Site HTML is not in this repo (container wiring only).
Containers
| Container | Host port | Caddy host |
|---|---|---|
koopa-tops-ng1 |
9090 | tops.ng1.hacktivism.ch |
koopa-tops-ng2 |
9091 | tops.ng2.hacktivism.ch |
koopa-tops-ng3 |
9092 | tops.ng3.hacktivism.ch |
Caddy snippet: Caddyfile.snippet.
nginx
Mirror: nginx-default.conf → mounted as /etc/nginx/conf.d/default.conf in each container.
Cache (always fresh)
Preview sites must not be cached by browsers/proxies:
Cache-Control: no-store, no-cache, must-revalidate, max-age=0, privatePragma: no-cache/Expires: 0etag off·if_modified_since off·expires -1
After editing the conf on the host (bind mount), reload nginx inside the container (do not stop the container):
for c in koopa-tops-ng1 koopa-tops-ng2 koopa-tops-ng3; do
podman exec "$c" nginx -t && podman exec "$c" nginx -s reload
done
Autostart
User unit container-koopa-tops.service (mirror in this dir) starts all three via compose.
# as hernani on koopa
mkdir -p ~/.config/systemd/user
cp ~/koopa-tops/deploy/container-koopa-tops.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now container-koopa-tops.service
Needs linger so the unit runs without an interactive login:
# once as root, if needed
loginctl enable-linger hernani
loginctl show-user hernani -p Linger
Check:
systemctl --user status container-koopa-tops.service
podman ps --filter name=koopa-tops
Related
configs/ports.md · host/overview/LIVE.md