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

  1. Site pushed to Forgejoc-acme/website
  2. Workflow dispatcheddeploy-aiv1.yml
  3. Cloned onto the edge hostvia AWS SSM
  4. Container startedacme-web
  5. Proxy host createdNginx Proxy Manager
  6. Certificate issuedLet'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.