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: