01 / OPERATE
Make systems repeatable.
Define services in Compose, keep configuration in Git, and validate changes before they reach a host.
Linux · Docker · GitHub Actions
Explore the workflowNorthern Virginia Personal portfolio
I’m Blessings. I build and document a Linux homelab, from the services it runs to the monitoring and troubleshooting that keep it understandable.
01 Selected work
cat infrastructure.txt
Proxmox VE / Virtual machines
Docker Compose / Service definitions
Git / Configuration & documentation
Operations repository inventory · last updated September 2026Configuration and documentation counts, not live service status. The public repository contains selected work.
02 How I work
01 / OPERATE
Define services in Compose, keep configuration in Git, and validate changes before they reach a host.
Linux · Docker · GitHub Actions
Explore the workflow02 / PROTECT
Route internal apps through HTTPS and use central identity for supported services. Keep credentials outside tracked configuration.
Caddy · Authentik · OIDC
See the access model03 / UNDERSTAND
Use metrics and logs to investigate problems, then document the cause, recovery, and work still outstanding.
Prometheus · Grafana · Loki
Read an incident example03 Under the hood
A hands-on environment for learning how services fit together. The useful part is more than getting an app running: it is understanding its configuration, access, and failure modes.
01 / SYSTEMS
Two Proxmox VE hosts provide the foundation, with ZFS storage and separate virtual machines for apps and media. Docker Compose describes the services, while Git records the configuration changes.
The public repository’s GitHub Actions workflow validates each Compose stack using example environment files. It checks configuration on pushes and pull requests; deployment remains a separate step.
A concrete practice: example environment files make configuration checks possible without putting real credentials in the repository.
02 / ACCESS
The apps stack is documented as LAN-only. Caddy routes HTTPS requests to internal services and obtains certificates through the DNS-01 challenge. Certificate issuance does not require opening inbound internet ports.
03 / OPERATIONS
Prometheus collects host and container metrics; Grafana presents dashboards. Alloy ships container logs to Loki. Alert rules cover conditions such as unavailable targets, resource pressure, and expiring TLS certificates.
Incident note / July 12, 2026
A host address changed; monitoring lost its target. The postmortem records a DHCP address change that left Prometheus scraping the old address. Updating the references restored metrics. The documented permanent fix, a DHCP reservation, was still pending in that write-up.
Read the postmortem04 Background
My focus is Linux infrastructure, security, and automation. The homelab is where I put that learning into practice and document what I find.
github.com/bmoyo413Open to work / Northern Virginia
Interested in IT support, Linux systems, and infrastructure opportunities. Email is the best place to start.