Inside My Proxmox Lab: A Practical Self-Hosted Environment


Why I Built This Lab

Over the years, I’ve learned that the best way to truly understand infrastructure is to **build it yourself**, operate it, and occasionally break it. Documentation and diagrams are helpful, but nothing replaces the lessons learned from running real services under real constraints.

This Proxmox environment is my personal lab — a place to experiment, learn, and refine how modern infrastructure fits together.

It’s not meant to be perfect. It’s meant to be *useful*.

---

The Foundation: Proxmox VE

At the core of this setup is **Proxmox VE**, which I use to manage virtual machines and containers. Proxmox gives me the flexibility to:

- Run multiple isolated workloads

- Snapshot before risky changes

- Allocate resources intentionally

- Treat infrastructure as something I can iterate on

Everything else in this lab builds on top of that foundation.

---

Core Services I’m Running

Git & Source Control (Gitea)

I run a self-hosted **Gitea** instance for source control. This powers:

- Version control for my websites and projects

- Authentication for Decap CMS

- A private, self-contained development workflow

Hosting my own Git server forces me to think about identity, access, TLS, and availability in ways that cloud-hosted Git never exposes.

---

This Website: seans.cloud

This site is built with **Astro** and intentionally kept simple. It serves as:

- A place to document what I’m learning

- A long-term knowledge archive

- A testing ground for ideas before they become something bigger

Content is written in Markdown and managed through Decap CMS, which commits directly to Gitea. That means everything here is versioned, reviewable, and reproducible.

---

Browser-Based Editing with Decap CMS

One of my goals was to make writing frictionless. With **Decap CMS**, I can:

- Write blog posts from a browser

- Save drafts without publishing

- Commit content directly to Git

- Let the site build itself

This setup blends the convenience of a traditional CMS with the reliability of Git-based workflows.

---

Media & Personal Services

Alongside the “serious” infrastructure, I also run services that support daily life and experimentation:

- **Jellyfin** for personal media streaming

- A **Minecraft server** for shared worlds and tinkering

- Supporting services behind a reverse proxy with TLS

These services might seem unrelated, but they provide real traffic patterns, real users, and real failure modes — which makes them excellent learning tools.

---

Networking & Access

I rely on a layered approach to access and security:

- Reverse proxying with TLS

- Internal-only services where possible

- Controlled exposure of public endpoints

- Clear separation between management and user-facing services

Debugging OAuth flows, certificates, and proxy behavior has been one of the most educational parts of this lab.

---

What This Lab Teaches Me

This environment constantly reinforces a few core lessons:

- **Small decisions compound quickly**

- **Security is a system, not a feature**

- **Documentation matters — especially your own**

- **Operational simplicity beats cleverness**

Running your own infrastructure forces you to think holistically: networking, identity, storage, automation, and human workflows all intersect.

---

What’s Next

This lab will continue to evolve. Some things I’m actively working toward:

- More automation and infrastructure-as-code

- Better observability and logging

- Expanding content and experiments on this site

- Turning lessons learned into reusable patterns

This site — and this lab — are living systems. They exist to support learning, reflection, and growth.

If you’re building something similar, I hope this gives you ideas — or at least reassurance that imperfect systems are still incredibly valuable teachers.

---

*Thanks for reading. More experiments to come.*