DevOps
How I Built an Agentless Self-Hosting Orchestrator with 100+ Tested Stacks & 100% Local AI
Henk van Hoek DEV Community
2 views
For anyone passionate about digital sovereignty and homelabbing, setting up a private home server on a Single Board Computer (like a Raspberry Pi 5, Orange Pi) or a Proxmox home lab is one of the most rewarding engineering projects.
However, anyone who has managed a growing homelab knows the friction that comes with it:
Writing and debugging endless docker-compose.yml files with conflicting port mappings, network subnets, and missing environment variables.
Heavy all-in-one platforms (CasaOS, Umbrel, Cosmos, etc.) that install bloated background web servers, daemons, and proprietary agents on your target hardware, hogging precious RAM and CPU cycles.
Cloud lock-in and AI privacy leaks: Newer DevOps tools often require subscriptions or send internal infrastructure topology and credentials to proprietary US cloud APIs.
To solve this, I built NjordDeploy — a lightweight, agentless, metadata-driven deployment orchestrator with 100 tested, production-ready service templates, dual Docker/Rootless Podman support, and a 100% Local AI component generator (Ollama & European sovereign AI).
In this article, I want to share the architectural decisions, lessons learned, and why treating container stacks as "vessels steered into a safe home port" shaped this open-source project.
⛵ Why the Name "Njord"?
In Norse mythology, Njörðr (Njord) is the god of the sea, seafaring, wind, and calm, safe harbors (from his mythological haven Nóatún, "haven of ships").
In modern DevOps, nautical metaphors are everywhere:
Docker represents the shipping container and dock worker.
Kubernetes (κυβερνήτης) is Greek for the helmsman or steersman.
Helm is the ship's wheel.
Portainer is the harbor master.
NjordDeploy carries this tradition forward: it acts as your sovereign navigator, steering your container stacks, storage volumes, and reverse proxies safely through turbulent technical waters and docking them cleanly into the calm harbor of your own private server.
NjordDeploy is the continuation of the PiSelfhosting project I started more than a year ago. I also started the Sovereign Stack Project, also on Github as a testing environment for PiSelfhosting.
As the project got bigger and bigger, I needed another name as the project is not only for the Rasberry Pi.
🏗️ 1. Architecture: The "Zero-Agent, No-Python-on-Target" Philosophy
One of the most important architectural rules of NjordDeploy is Target Purity:
+-------------------------------------------------------------+
| Control Machine (Laptop / PC / Workstation) |
| - NjordDeploy 3-in-1 Suite (Configurator, Editor, Web UI) |
| - Local AI Engine (Ollama: Llama 3 / Mistral / Loes.ai) |
| - Deterministic Jinja2 Macro Renderer & Port Manager |
+-------------------------------------------------------------+
|
[Agentless SSH Tunnel]
|
+-------------------------------------------------------------+
| Target Server (Raspberry Pi / Orange Pi / Proxmox VM / LXC) |
| - NO background agents / NO custom background daemons |
| - NO Python runtime requirements on host |
| - Pure Docker CE or Rootless Podman Engine |
| - Standard Docker Compose / Podman Compose stacks |
+-------------------------------------------------------------+
Why this matters:
No Background Overhead: When you deploy a stack to a Raspberry Pi or low-power mini-PC, 100% of your system resources remain dedicated to your applications (Nextcloud, Home Assistant, Immich, Jellyfin), not to a management control plane.
No Lock-In: All configurations are rendered as standard, industry-standard docker-compose.yml stacks. If you ever close NjordDeploy, your containers keep running natively with standard docker compose up -d commands.
Security: Zero open management ports exposed on the target server. All communication happens over encrypted SSH key authentication.
📦 2. Scaling to 100 Tested & Curated Service Stacks
Starting from a small set of basic utilities, the NjordDeploy catalog recently expanded to 100 fully verified and tested service templates across 8 core domains:
Category
Popular Examples Included
Media & Entertainment
Jellyfin, Audiobookshelf, Immich, Navidrome, Radarr, Sonarr, Prowlarr, SABnzbd, Calibre-Web
Smart Home & IoT
Home Assistant, Zigbee2MQTT, Frigate (AI NVR), Scrypted, ESPHome, Node-RED, UniFi Controller
Productivity & Cloud
Nextcloud, Paperless-ngx, Stirling PDF, Actual Budget, Vikunja, Focalboard, Flatnotes, Mealie
AI & LLM Services
Open WebUI, Ollama LLM Engine, LiteLLM AI Gateway, LibreChat, Voicebox TTS/STT, n8n
Privacy & DNS
AdGuard Home, Pi-hole, Technitium DNS, Unbound DNS, Vaultwarden
Monitoring & System
Uptime Kuma, Netdata, Beszel, Grafana Stack, Prometheus, Portainer, Dockge, Semaphore UI
Reverse Proxies
Traefik, Caddy, Nginx Proxy Manager
Utilities & Storage
MinIO S3, Syncthing, Headscale, Changedetection.io, CyberChef, IT-Tools, SearXNG, Gotify
Every component includes automated volume path resolution (/var/njorddeploy/volumes), deterministic port conflict avoidance, healthchecks, and optional reverse proxy domain binding with automated Let's Encrypt certificates.
🤖 3. 100% Local AI Meets Zero-Cloud Component Generation
What happens when you want to self-host a brand new open-source repository that isn't in any template catalog yet?
Traditionally, you'd have to read the repo's README, hunt down container image tags on Docker Hub, figure out environment variables, port conflicts, volume permissions, and write YAML by hand.
NjordDeploy solves this with an AI-Assisted Component Generator designed for strict data sovereignty:
[ Git URL (GitHub / GitLab / Gitea / Forgejo) ]
│
▼
[ Deep Context Ingestion (README, Compose, OCI Tags) ]
│
▼
[ Strict "Air Traffic Control" Validation Prompt ]
│
▼
[ Local LLM: Ollama (Llama 3, Mistral, Qwen) OR Loes.ai (EU) ]
│
▼
[ Automated OCI Registry Verification & Jinja2 Template Output ]
The Key Innovations:
Universal Git Ingestion: Paste any URL from GitHub, GitLab (including nested subgroups), Codeberg, Gitea, Forgejo, or private self-hosted Git instances.
"Air Traffic Control" Mathematical Constraints: AI models often hallucinate YAML keys. We created a deterministic schema contract and linter loop that forces the model to generate syntactically exact Jinja2 macros, verified ports, and OCI image tags.
Total Privacy (Ollama & Loes.ai): You can run the entire pipeline locally on your workstation using Ollama (tested with Llama 3, Mistral, and Qwen) or via European sovereign cloud endpoints like Loes.ai / HostYourAI. Zero telemetry, zero subscriptions, and zero infrastructure metadata leaving your private network.
🧪 4. Rigorous Quality: The 4-Way Proxmox VE Cross-Validation Matrix
To ensure that service templates work reliably across different operating environments, we built an automated 4-Way Cross-Validation Testing Matrix on Proxmox VE:
┌───────────────────────┬────────────────────────┐
│ Docker CE Engine │ Rootless Podman Engine │
┌─────────────────┼───────────────────────┼────────────────────────┤
│ Debian 12 LXC │ Run 1: Docker on LXC │ Run 2: Podman on LXC │
├─────────────────┼───────────────────────┼────────────────────────┤
│ QEMU Linux VM │ Run 3: Docker on VM │ Run 4: Podman on VM │
└─────────────────┴───────────────────────┴────────────────────────┘
Each of the 100 templates undergoes automated lifecycle testing:
Clean Provisioning: Automated container/VM deployment via SSH.
Port Conflict & Volume Auditing: Verifying permissions under both root Docker and unprivileged (rootless) Podman namespaces.
HTTP Healthcheck Verification: Polling web endpoints and API responses until steady-state is confirmed.
Teardown & Volume Retention Tests: Ensuring upgrades and rebuilds do not destroy persistent data.
🚀 Getting Started
NjordDeploy is free for self-hosting and homelabs (BSL-1.1 licensed) and available as a portable standalone application for Linux, macOS, and Windows.
Download & Launch: Grab the latest release package from GitHub Releases.
Scan Your Subnet: The 5-step visual wizard auto-detects your Raspberry Pi, server, or Proxmox node via agentless SSH.
Pick Your Services: Select from the 100+ catalog templates or paste a Git repository URL into the AI generator.
Deploy: Watch real-time streaming logs as your stack is configured, secured, and launched.
Check also my other project Sovereign-Stack
🔗 Links & Resources
🌐 Official Website & Interactive Catalog: njorddeploy.com
🐙 GitHub Core Repository: HenkVanHoek/njord-deploy
📦 Component Templates Repository: HenkVanHoek/njord-deploy-components
📖 Full Architecture & User Guides: Documentation & FAQ
I would love to hear your thoughts and feedback! What self-hosted services are you running in your homelab, and what templates would you like to see added next?
Read original: https://dev.to/henk_van_hoek/how-i-built-an-agentless-self-hosting-orchestrator-with-100-tested-stacks-100-local-ai-1cbo
← Previous
Expo + Supabase GitHub Auth Broke 3 Times — Here's the Fix
Next →
I Ship Mobile Apps for $0: Vercel + Render + Supabase Free Tier
Related
Postman Collection to MCP: From Requests to MCP Tools
DevOps
1
DEV Community
Можно ли, не имея доступа к маршрутизаторам провайдера, повлиять на выбор его upstream для своего трафика?
DevOps
2
Dev.to (EN Zone)
An Alarm Dashboard + Tecnoalarm Keypad in Home Assistant
DevOps
2
Dev.to (EN Zone)
Run YunCMS with Docker Compose: MySQL 8.4 Included
DevOps
3
DEV Community
Comments0
No comments yet — be the first