BlueRobin Local Development Setup Guide
A streamlined guide to setting up the full BlueRobin stack locally, from secret management with Infisical to running microservices with shared infrastructure.
Introduction
Onboarding to a microservice architecture can be daunting. At BlueRobin, we’ve invested heavily in “Developer Experience” (DevEx) to ensure you can go from git clone to a running application in under 15 minutes. We achieve this by hybridizing local compute (your laptop) with shared cluster infrastructure.
Why This Hybrid Approach Matters:
- Resource Efficiency: You don’t need to run Postgres, MinIO, Qdrant, and FalkorDB on your Mac. They run on the K8s homelab cluster.
- Speed:
.NET WatchandHot Reloadwork natively because the code runs locally. - Realism: You develop against real data services, not mocked in-memory alternatives.
What We’ll Build
You will set up the “BlueRobin Local” environment. You will:
- Authenticate: Connect to Infisical for secrets.
- Generate Config: Create the
.env.localfile. - Run: Launch the API, Web, and Workers simultaneously.
Architecture Overview
Network traffic flows from your local process to the data-layer services in the cluster via Tailscale.
flowchart TB
subgraph Local["💻 Local Workstation (Mac/PC)"]
Code["🖥️ Visual Studio Code"]
Infisical["🔐 Infisical CLI"]
DotNet["🟣 .NET Watch"]
end
subgraph K8s["☸️ Kubernetes Cluster (HomeLab)"]
PG[("🐘 PostgreSQL")]
NATS["⚡ NATS JetStream"]
MinIO["🪣 MinIO Storage"]
end
Infisical -->|Injects Secrets| DotNet
DotNet -->|Tailscale VPN| PG
DotNet -->|Tailscale VPN| NATS
DotNet -->|Tailscale VPN| MinIO
classDef primary fill:#7c3aed,color:#fff,stroke:#8b5cf6,stroke-width:2px
classDef secondary fill:#06b6d4,color:#fff,stroke:#22d3ee,stroke-width:2px
classDef db fill:#f43f5e,color:#fff,stroke:#fb7185,stroke-width:2px
classDef infra fill:#334155,color:#e2e8f0,stroke:#475569,stroke-width:2px
class DotNet primary
class Code,Infisical secondary
class PG,NATS,MinIO db
Implementation
1. Prerequisites
Ensure you have the following installed:
- .NET 10 SDK
- Node.js & NPM
- Infisical CLI
- Tailscale (Connected to
bluerobintailnet)
2. Secret Injection
We do not commit configuration files. Instead, we generate them from our centralized secret store.
# Login to Infisical
infisical login
# Generate the .env.local file
./scripts/generate-env.sh This script fetches connection strings for the dev environment databases running on K8s and writes them to .env.local.
3. Launching the Stack
We use VS Code Tasks to orchestrate the startup. Open the Command Palette (Cmd+Shift+P) and run “Tasks: Run Task” -> “Start Local Dev”.
This parallels the execution of:
- Tailwind Watcher: Compiles CSS for the UI.
- API: Starts the FastEndpoints backend on port 5000.
- Web: Starts the Blazor Server frontend on port 5001.
- Workers: Starts the background job processor.
Conclusion
By treating infrastructure as a shared utility and code as a local concern, we get the best of both worlds. There is no docker-compose up waiting time, no fan noise from running 10 containers, just pure coding efficiency. Welcome to BlueRobin!