HomeLab

Mar 7, 2025·
Diego Castro
Diego Castro
· 3 min read
projects
Note

Still under development

Homelab is my personal server infrastructure used to manage self-hosted services, automate deployments, and ensure the privacy of my data. It grew out of my experience with a QNAP NAS, which became limited in resources and speed, and from my increasing interest in avoiding dependence on large IT companies’ services.

The system is based on two miniPCs running Proxmox and Proxmox Backup Server:

  • Main miniPC: i9 with 20 cores, 64 GB RAM, 2 TB storage. This is where all virtual machines run, depending on the services I want to deploy.
  • Secondary miniPC: less powerful, dedicated to Proxmox Backup Server to optimize storage and keep a second local copy of backups.
  • Encrypted remote backup: stored in a cloud provider, following the 3-2-1 backup strategy (three copies, two media types, one off-site).

Both the creation and configuration of virtual machines and the deployment of all services (via Docker containers) are fully automated using Ansible.

Services I currently use

ServiceUsage / what it is for
HomerDashboard to access all homelab services
Vaultwarden Streamline Icon: https://streamlinehq.comVaultwarden VaultWardenSelf-hosted password manager compatible with Bitwarden
AdGuard HomeInternal DNS with ad-blocking, malware protection, and tracking filters
Home AssistantHome automation platform for integrating and controlling devices
Z Wave Logo Streamline Icon: https://streamlinehq.com ZWaveControl and integration of IoT devices using the Z-Wave protocol
PeaNutUPS status monitoring through a web interface
Layer 1 OwnCloudFile storage, synchronization, and sharing
ImmichPrivate photo hosting with automatic backup and mobile sync
MemosLightweight, self-hosted note-taking app
LubeLoggerVehicle maintenance and expense tracking
Tandoor RecipesRecipe manager, meal planner, and shopping list system
Tailscale Streamline Icon: https://streamlinehq.comTailscale TailscaleMesh VPN for secure remote access without opening ports
MailRiseSMTP server that converts emails into notifications
AppRiseREST API to send notifications to more than 90 services
MailPitFake SMTP server for testing, with web UI to view emails
PortainerGUI to manage Docker containers and stacks
ActualBudgetPersonal finance manager based on envelope budgeting
TraefikReverse proxy and TLS certificate manager with Let’s Encrypt
AlertManagerMetrics-based alert routing and notifications
PrometheusSystem and service monitoring and metrics collection

Main goals achieved:

  • Secure remote access to all services without opening ports directly on the router.
  • Access to services through internal DNS with automatic TLS certificate issuance and renewal using Let’s Encrypt, avoiding exposed IPs and ports.
  • Organization of services by hardware resources and data criticality, defining backup frequency and retention.
  • Full control of my data, storage, and applications, replacing third-party services (Dropbox, Google Docs, Google Photos, Google Keep, etc).

homelab

by dicastro Jinja
Powered by Hugo Blox Builder - https://github.com/HugoBlox/kit
Diego Castro
Authors
Computer Engineer

I am a computer engineer with over 15 years of experience, during which I have worked in a wide variety of environments and taken on different roles throughout the development lifecycle. This journey has allowed me to gain a broad understanding of the industry and to adapt easily to different technical and organizational contexts.

I have worked at large multinational consulting firms, participating in projects of various natures and collaborating with teams distributed across multiple countries. I have also experienced working in an early-stage startup, which gave me the opportunity to be involved in building a product from scratch and to gain firsthand insight into the challenges of the business world.

I am passionate about programming and maintain a continuous learning mindset. For me, the key is not mastering a specific language or framework, but the ability to learn, evolve, and deeply understand problems in order to provide robust solutions. Along this learning path, I have explored areas such as Data Science and Big Data, completing a master’s program that reflects my interest in broadening my horizons and understanding new technological perspectives.