---
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]]
