Single-file Bimaru puzzle game packaged for Docker, Portainer and GHCR.
docker build -t bimaru:local .
docker run --rm -p 8080:80 bimaru:localOpen: http://localhost:8080
Use docker-compose.portainer.yml as stack file in Portainer.
This variant includes:
- GHCR image reference
- Traefik host routing for
bimari.suter.email - TLS via the
letsencryptcert resolver - basic security headers via Traefik middleware
If you do not want the extra security-header middleware, you can also use:
docker-compose.traefik.yml
- existing external Docker network named
traefik - Traefik configured with an ACME resolver named
letsencrypt - DNS for
bimari.suter.emailpointing to the Traefik host - the GHCR image must be published successfully
The container listens internally on port 80.
Traefik hostname:
bimari.suter.email
Set this in your Traefik static config / ACME resolver:
letsencrypt@stumpi.ch
Example Traefik static snippet:
certificatesResolvers:
letsencrypt:
acme:
email: letsencrypt@stumpi.ch
storage: /letsencrypt/acme.json
httpChallenge:
entryPoint: webThe workflow .github/workflows/publish-ghcr.yml publishes:
ghcr.io/stumpigit/bimaru:latestghcr.io/stumpigit/bimaru:sha-...
After a push to main, GitHub Actions should publish automatically.
In Portainer:
- Stacks
- Add stack
- Paste
docker-compose.portainer.yml - Deploy the stack
If your GHCR package is private, Portainer needs registry credentials for ghcr.io.