Initial vault setup
This commit is contained in:
@@ -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]]
|
||||
Reference in New Issue
Block a user