Files
SSW590-DevOps/docker/gitea/README.md

2.1 KiB

Inviscid Gitea foundation

This directory deploys Gitea at https://git.inviscid.dev/ behind a Caddy reverse proxy. The official image version is pinned. SQLite is /data/gitea/gitea.db; repositories and other application data share the persistent named volume inviscid_gitea_data. Never run docker compose down --volumes against the working service.

Only Caddy publishes host ports (80 and 443). Caddy terminates TLS and forwards to gitea:3000 over the private inviscid_services network. Gitea's port 3000 is also bound to EC2 loopback only, for SSH-tunnel administration. The Color Buttons container (ssw590-group-buttons) no longer publishes port 80; it runs on inviscid_services and Caddy serves it at http://100.49.80.94. No public backend or Git SSH firewall rule is needed.

From this directory on EC2:

sudo docker compose config --quiet
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps

Caddyfile must be in this directory before up; if it is missing, Docker creates a directory in its place and Caddy fails to start. Caddy obtains and renews the Let's Encrypt certificate automatically; certificate state persists in the inviscid_caddy_data and inviscid_caddy_config volumes.

The Color Buttons container is managed outside Compose. To recreate it without a published port:

sudo docker run -d --name ssw590-group-buttons --restart unless-stopped \
  --network inviscid_services ssw590-group-buttons

For private browser access, use your own authorized key:

ssh -i /path/to/your-private-key -o ExitOnForwardFailure=yes -N -L 127.0.0.1:3000:127.0.0.1:3000 ubuntu@100.49.80.94

Open http://localhost:3000 while the tunnel stays open. Each team member must have their public key authorized and their source IP allowed for administrative SSH.

Keep passwords, app.ini, database files, and volume contents out of Git and screenshots.

Sources: