2026-02-03 18:51:57 -08:00
---
2026-02-07 21:44:57 -08:00
title: Replicating BlumeOps
2026-02-03 18:51:57 -08:00
tags:
- tutorials
- replication
---
# Replicating BlumeOps
> **Audiences:** Replicator
This tutorial provides a roadmap for building your own homelab GitOps environment inspired by BluemeOps. It links to detailed component tutorials for each major piece.
## What You'll Build
By following this guide, you'll have:
- A secure mesh network connecting your devices
- A Kubernetes cluster for running containerized services
- GitOps-driven deployments via ArgoCD
- Observability with metrics, logs, and dashboards
- Backup and disaster recovery capabilities
## Hardware Requirements
BluemeOps runs on modest hardware. At minimum:
| Component | BlumeOps Uses | Minimum Alternative |
|-----------|---------------|---------------------|
| **Server ** | Mac Mini M1 | Any machine with sufficient RAM (16GB recommended) |
| **NAS ** | Synology DS920+ | USB drive or second machine |
| **Workstation ** | MacBook Air M4 | Whatever you use daily |
You can start with a single machine and add storage later.
## The Journey
### Phase 1: Networking Foundation
Before deploying services, establish secure connectivity.
2026-02-04 17:21:34 -08:00
**[[tailscale-setup|Setting Up Tailscale]]**
2026-02-03 18:51:57 -08:00
- Create a tailnet and connect your devices
- Configure ACLs for service access
- Set up MagicDNS for convenient naming
This replaces: traditional VPNs, port forwarding, dynamic DNS
### Phase 2: Core Services
Bootstrap the essential services that everything else depends on.
2026-02-04 17:21:34 -08:00
**[[core-services|Core Services Setup]]**
2026-02-03 18:51:57 -08:00
- Set up [[forgejo]] for git hosting and CI/CD
- Optionally set up [[zot]] container registry
- Configure SSH access and deploy keys
Forgejo is central to GitOps - it's where your infrastructure definitions live and where CI/CD workflows run.
### Phase 3: Kubernetes Cluster
A cluster for running containerized workloads.
2026-02-04 17:21:34 -08:00
**[[kubernetes-bootstrap|Bootstrapping Kubernetes]]**
2026-02-03 18:51:57 -08:00
- Install minikube (or k3s, kind, etc.)
- Configure persistent storage
- Expose the API securely via Tailscale
BlumeOps uses minikube for simplicity, but the patterns apply to any distribution.
### Phase 4: GitOps with ArgoCD
Declarative, git-driven deployments.
2026-02-04 17:21:34 -08:00
**[[argocd-config|Configuring ArgoCD]]**
2026-02-03 18:51:57 -08:00
- Install ArgoCD in your cluster
- Connect to your git repository
- Deploy your first application
- Set up the app-of-apps pattern
This is the heart of GitOps - changes in git automatically sync to your cluster.
### Phase 5: Observability Stack
Know what's happening in your infrastructure.
2026-02-04 17:21:34 -08:00
**[[observability-stack|Building the Observability Stack]]**
2026-02-03 18:51:57 -08:00
- Deploy Prometheus for metrics
- Deploy Loki for logs
- Deploy Grafana for dashboards
- Configure Alloy for collection
Without observability, you're flying blind.
### Phase 6: Your First Services
With the foundation in place, deploy actual workloads. BluemeOps runs:
- [[miniflux]] - RSS reader
- [[jellyfin]] - Media server
- [[immich]] - Photo management
- [[navidrome]] - Music streaming
- [[docs]] - Documentation site (Quartz)
Pick what matters to you. Each service follows similar patterns:
1. Create Kubernetes manifests
2. Create ArgoCD Application
3. Configure ingress routing
4. Sync and verify
### Phase 7: Backups and Resilience
Protect your data.
- Set up [[borgmatic]] for backup automation
- Configure NAS as backup target
- Test restore procedures
- Document disaster recovery
## Alternative Approaches
BluemeOps makes specific choices that may not suit everyone:
| BlumeOps Choice | Alternative |
|-----------------|-------------|
| macOS server | Linux server (more common) |
| Minikube | k3s, kind, or managed K8s |
| Tailscale | WireGuard, Nebula |
| ArgoCD | Flux, manual kubectl |
| Ansible | NixOS, Docker Compose |
The principles (GitOps, IaC, observability) matter more than specific tools.
## Getting Started
2026-02-04 17:21:34 -08:00
Begin with [[tailscale-setup]] - networking is the foundation everything else builds on.
2026-02-03 18:51:57 -08:00
## Related
2026-02-04 17:21:34 -08:00
- [[reference]] - See BlumeOps' specific configurations
2026-02-03 18:51:57 -08:00
- [[contributing]] - Help improve BlumeOps instead