koopa-admin-log/configs/tops/README.md

1.9 KiB

tops — koopa-tops-ng1ng3

Item Value
Live /home/hernani/koopa-tops/
Containers koopa-tops-ng1, koopa-tops-ng2, koopa-tops-ng3
Image docker.io/library/nginx:1.27-alpine
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, private
  • Pragma: no-cache / Expires: 0
  • etag 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

configs/ports.md · host/overview/LIVE.md