Files
2026-06-09 18:40:21 +02:00

5.4 KiB


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
GitHub raghavyuva/nixopus
License Apache-2.0
Langage Go (backend) + Nix (configs) + TypeScript (UI)
Étoiles GitHub 1,4k
Catégorie cat-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)

# 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

# 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

🔗 Pages Liées