--- title: Nixopus created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, deployment, nix, devops, homelab] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Deployment, https://github.com/raghavyuva/nixopus] --- # 🚀 Nixopus > ⚠️ **Confiance : medium** — projet jeune (1,4k ⭐), encore en phase de maturation. À évaluer sur une VM jetable avant déploiement critique. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [nixopus.com](https://nixopus.com/) | | **GitHub** | [raghavyuva/nixopus](https://github.com/raghavyuva/nixopus) | | **License** | Apache-2.0 | | **Langage** | Go (backend) + Nix (configs) + TypeScript (UI) | | **Étoiles GitHub** | 1,4k ⭐ | | **Catégorie** | [[cat-deployment\|Deployment]] | | **Stack** | Nix + Docker | ## 📝 Description **Nixopus** est un **outil de déploiement et de management de serveurs** qui mise sur l'écosystème **Nix/NixOS** pour apporter reproductibilité et atomicité aux déploiements. L'idée directrice est de pouvoir **déclarer l'état complet d'un serveur** (paquets, services, configs, secrets) en un seul endroit, et de le pousser via une UI web, sans avoir à manipuler manuellement le langage Nix. Le projet se positionne comme une **surcouche web à NixOS** : pour les utilisateurs rebutés par la verbosité de `configuration.nix` ou la complexité de `nix flakes`, Nixopus propose une UI qui génère et applique les configs. Il intègre aussi la **gestion de fichiers**, le **monitoring de services**, et le **partage de secrets** (via SOPS/age) entre les co-admins. **Fonctionnalités principales** : - ✅ **Déploiement déclaratif** de serveurs NixOS via UI web - ✅ **Gestion de fichiers** : explorateur, éditeur, upload (rôle similaire à un self-hosted OwnCloud léger) - ✅ **Monitoring** des services systemd et des containers Docker présents sur l'hôte - ✅ **Secrets management** : SOPS/age, partage entre membres de l'équipe - ✅ **Multi-serveurs** : orchestrer depuis une seule UI un parc de VM NixOS - ✅ **Templates** : profils prédéfinis (web server, DB, dev machine) - ✅ **API REST** pour scripter **Positionnement** : à mi-chemin entre **NixOS pur** (powerful mais exigeant) et **PaaS classique** ([[app-coolify]], [[app-portainer]]). Pour un *homelab* avec 1-5 serveurs NixOS, c'est un confort appréciable. Pour de la production critique ou un parc hétérogène (Debian, Ubuntu, NixOS mélangés), c'est trop jeune. **Maturité** : 1,4k ⭐, commits fréquents mais changelog parfois instable, peu de retours d'usage en prod. À surveiller, pas à adopter en prod critique sans test approfondi. ## 🚀 Installation ### Prérequis - Un hôte NixOS existant (au moins un) - `git` et `nix` installés - Docker (pour le mode "binaire conteneurisé") ### Via Nix (sur l'hôte de management) ```bash # Cloner le repo git clone https://github.com/raghavyuva/nixopus.git cd nixopus # Lancer en local nix develop cargo run --release # ou via Docker docker compose up -d ``` ### docker-compose.yml ```yaml # docker-compose.yml services: nixopus: image: raghavyuva/nixopus:latest container_name: nixopus restart: unless-stopped ports: - "8080:8080" volumes: - nix-data:/data - /var/run/docker.sock:/var/run/docker.sock:ro environment: - NIXOPUS_DB=postgres - NIXOPUS_DB_HOST=db - NIXOPUS_DB_PASSWORD=changeme db: image: postgres:16 restart: unless-stopped environment: POSTGRES_PASSWORD: changeme POSTGRES_DB: nixopus volumes: - nix-db:/var/lib/postgresql/data volumes: nix-data: nix-db: ``` ## ⚙️ Configuration - **Premier hôte** : ajouter un serveur NixOS cible via SSH (clé publique), Nixopus va y installer l'agent - **Templates** : choisir un template (LAMP, Node, Postgres, ou custom Nix config) - **Secrets** : créer un vault SOPS/age, partager la clé publique `age` avec les co-admins - **Monitoring** : intervalle de scrape (par défaut 30s, configurable par hôte) - **Backups** : pas de système de backup intégré — à faire en aval (Borg, Restic, NixOS impermanence) ## 🔗 Alternatives - **[[app-coolify]]** — PaaS Docker plus mature, sans la complexité de Nix - **[[app-portainer]]** — UI Docker, pas de notion Nix - **NixOps / colmena** — l'original pour déployer du NixOS, mais CLI only - **Terraform + Packer** — IaC multi-providers, courbe d'apprentissage raide - **Ansible + Semaphore** — IaC déclaratif sans Nix, plus grand public ## 🔒 Sécurité - ⚠️ **Nixopus est jeune** : ne pas l'exposer sur Internet sans WAF/auth forte devant - **SSH keys** : limiter l'utilisateur `nixopus` (ou celui créé par l'agent) à `nixos-rebuild` via sudoers - **Secrets SOPS** : stocker la master key `age` dans un manager externe (Bitwarden, KeePassXC) — pas dans Nixopus - **Docker socket** : le montage `docker.sock` donne les droits root à Nixopus sur l'hôte ; en milieu hostile, préférer un agent distant - **Mises à jour** : suivre de près, le projet bouge vite et des breaking changes sont probables ## 📚 Ressources - [Site officiel](https://nixopus.com/) - [Dépôt GitHub](https://github.com/raghavyuva/nixopus) - [Documentation](https://nixopus.com/docs) - [Wiki](https://github.com/raghavyuva/nixopus/wiki) ## 🔗 Pages Liées - [[cat-deployment]] - [[app-portainer]] - [[app-coolify]] - [[app-traefik]] - [[cat-docker]] - [[securisation-home-lab]] - [[recettes-docker-compose]]