Pin
Verify Forgejo’s ED25519 SSH host fingerprint against the independently supplied SHA256 value before trust is stored.
Live from webserver-05
A repository hosted by the controller Forgejo service was cloned with a repository-scoped ED25519 identity, transformed on a dedicated branch, pushed upstream, and published over verified HTTPS.
01 / REPRODUCIBLE WORKFLOW
Verify Forgejo’s ED25519 SSH host fingerprint against the independently supplied SHA256 value before trust is stored.
Use the repository-scoped deploy identity to clone the canonical SSH URL into a dedicated, Nginx-readable working tree.
Create feature/forgejo-demo-webserver-05; redesign HTML/CSS and add complete deployment and security documentation.
Commit as the Ai-Admin controller identity, push the named branch, and verify local and remote object IDs match.
Serve that branch’s working tree through an isolated Nginx vhost with HTTP redirected to Let’s Encrypt HTTPS.
02 / MACHINE ROLES
Controller Forgejo service and authoritative Git remote in the ai-controller-0.02 namespace.
Least-privilege clone, checked-out feature branch, dedicated Nginx vhost, TLS termination, and public validation.
03 / SECURITY MODEL
StrictHostKeyChecking yes, a dedicated known-hosts file, and pinned ED25519 fingerprint SHA256:tWKoxIQTFY7y55+mNm0ab07Fwn3XwcntoRKFtGoH77s.
A local system account owns a mode 0600 private key outside the document root. The key is scoped by Forgejo to this repository; no password or private material is published.
Forgejo’s public registration route was checked and reports “Registration is disabled.” Account creation remains administrator-controlled.
Only static repository content is served. Dotfiles are denied, directory listing is off, security headers are set, and unrelated vhosts remain untouched.
04 / VALIDATION RESULTS
Upstream source: MDN beginner-html-site-styled · Forgejo remote: ai-controller-0.02/beginner-html-site-styled