Docker infrastructure for gendercomics.net — reverse proxy and container management.
| Service | Image | URL |
|---|---|---|
| Traefik | traefik:v3.7.1 |
traefik.<HOST> |
| Portainer | portainer/portainer-ce:2.27.0 |
portainer.<HOST> |
Traefik handles SSL termination via Let's Encrypt and routes traffic to all other services on the proxy Docker network.
# Set the target hostname
export HOST=gendercomics.net # or localhost for local dev
# Create networks and start services
./setup.shTwo Docker networks are created:
proxy— shared by all HTTP services for Traefik routingdatabase— shared by database services
./cleanup.shRemoves unused images, networks, and dangling volumes. The portainer_data volume is always preserved.
Traefik config is selected by the HOST environment variable:
| File | Used for |
|---|---|
traefik_gendercomics.net.toml |
Production — HTTPS with Let's Encrypt |
traefik_localhost.toml |
Local dev — HTTP only |
Pushing a git tag triggers a GitHub Actions workflow that SCPs docker-compose.yml, setup.sh, and cleanup.sh to the DigitalOcean server and runs docker compose up -d.
Required repository secrets: DEPLOY_KEY, APP_HOST, DEPLOY_USER.