Overview
My self-hosted environment is a practical laboratory for the work that begins after an application leaves a development machine. I plan deployments, manage access, investigate failures, monitor services, and document changes across virtualized, containerized, and cloud-connected systems.
The challenge
Understand how software behaves as a maintained system, including the dependencies, permissions, networks, certificates, and operational failures that local development rarely exposes.
The approach
I treat the environment as a continuously evolving lab: isolate workloads, document access paths, centralize identity where appropriate, monitor health, and make changes with recovery in mind.
Technical decisions
- Separate services into virtualized or containerized workloads according to their operational needs.
- Keep administration surfaces behind private networking and deliberate access controls.
- Add monitoring and documentation during deployment.
What I learned
- Operating a service requires regular updates, observation, and maintenance.
- Most failures cross boundaries between configuration, networking, storage, and permissions.
- Simple diagrams and accurate runbooks reduce the cost of future troubleshooting.
Technology
- Linux
- Proxmox
- Docker
- Cloudflare
- Authentik
- Grafana
- Networking
- OAuth 2.0 / OIDC