Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+140
View File
@@ -0,0 +1,140 @@
---
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]]