Comment utiliser Nixos sur VPS

Cette page a pour but de vous montrer comment utiliser NixOS sur notre plateforme GandiCloud.

Qu’est ce que c’est NixOS ?

NixOS est un système d’exploitation qui utilise une approche unique pour la gestion des paquets et la configuration du système.

Apprennez-en plus sur NixOS directement sur leus site Web.

Prérequis

Configuration initiale

Connectez-vous via SSH sur le serveur, et copiez le fichier /etc/gandi/configuration.nix vers /etc/nixos/gandicloud.nix.

$ cp /etc/gandi/configuration.nix /etc/nixos/gandicloud.nix

Vous pouvez maintenant mettre à jour le fichier /etc/nixos/configuration.nix selon vos propres besoins. Assurez-vous toutefois d’inclure le fichier gandicloud.nix dans la partie imports, car il est nécessaire pour que l’OS tourne correctement sur notre plateforme.

imports = [ ./gandicloud.nix ];

Exemple Nginx

Ajoutons une configuration Nginx pour pouvoir servir une simple page web. Le fichier /etc/nixos/configuration.nix devrait ressembler à cela :

{ pkgs, ... }: {
  imports = [ ./gandicloud.nix ];
  config = {
    services.nginx = {
      enable = true;
      virtualHosts = {
        "nixos.gandi.net" = {
          locations."/".root = pkgs.runCommand "web-root" {} ''
            mkdir $out
            echo 'NixOS @ gandi.net \o/' > $out/index.html
          '';
        };
      };
    };
    networking.firewall.allowedTCPPorts = [ 80 ];
  };
}

Cette configuration de serveur peut être déployées en utilisant l'outil nixos-rebuild:

$ nixos-rebuild switch
building Nix...
activating the configuration...
reloading the following units: dbus.service, firewall.service
the following new units were started: nginx.service

La configuration du serveur a été activée et Nginx est prêt à servir notre page statique :

$ curl VOTRE-SERVEUR-GANDICLOUD
NixOS @ gandi.net \o/