DynaLake hosting
The pipeline works.
If you are reading this over HTTPS with a valid certificate, every hop below ran without anyone touching a server.
What had to happen
- Site pushed to Forgejo
c-acme/website - Workflow dispatched
deploy-aiv1.yml - Cloned onto the edge host
via AWS SSM - Container started
acme-web - Proxy host created
Nginx Proxy Manager - Certificate issued
Let's Encrypt HTTP-01
One host, many sites
A single Graviton instance behind one Elastic IP. Each customer is an isolated Compose project on the npm-proxy network, with no published host ports.
Wildcard DNS
*.customers.dynalake.net already resolves to the edge. New sites need no DNS change at all.
No hand edits
No SSH, no clicking in the proxy UI. The proxy host and certificate are written by script over SSM.