$ project self-hosting-this-site
Self-hosting the website that documents the project
The public lab endpoint now runs on infrastructure I build and operate myself. The current stage is adding HTTPS while keeping the exposure deliberately minimal.
A provider-hosted copy remains available as a fallback, while lab.siddle.nl is now served from my own infrastructure over public HTTP.
The migration is being treated as a system administration project rather than simply a web-design task. The physical host, KVM/libvirt layer, bridged VM networking, nginx web server, public DNS and IPv4 port forwarding are now functioning; HTTPS is next.
The important part is not only whether the website works. The objective is to understand and document the layers underneath it.
$
architecture_chain
physical host→Linux OS→virtualization→VM→networking→web server→HTTPS→firewall→monitoring→backups→public service
$
current_status
- doneUbuntu Server host
- doneHeadless operation
- doneSSH / SFTP administration
- doneNetwork configuration investigation
- doneKVM / libvirt
- doneBridged VM networking
- doneWeb-server VM / nginx
- donePublic DNS + HTTP exposure
- currentHTTPS / TLS
- plannedFirewall / secure exposure
- plannedMonitoring
- plannedBackups
- plannedProduction migration
$
phases
- Publish portfolio at current provider
- Prepare Ubuntu host
- Learn KVM / libvirt
- Build server VM
- Configure bridged VM networking
- Deploy nginx web server
- Publish DNS and minimal HTTP exposure
- HTTPS / TLS
- Firewall hardening and exposure review
- Monitoring and backups
- Complete production migration
- Document final architecture
$
public_documentation_rule
Reasoning and architecture are public; unnecessary attack surface is not.
Passwords, tokens, private keys, exact credentials, router exports, client information and other sensitive material are excluded. Internal network details are generalized where exact values add no learning value.
Passwords, tokens, private keys, exact credentials, router exports, client information and other sensitive material are excluded. Internal network details are generalized where exact values add no learning value.