How to use NixOS with GandiCloud¶
This page will show you how to use NixOS on the GandiCloud platform.
What is NixOS?¶
NixOS is an operating system that takes a unique approach to package management and system configuration.
Learn more about NixOS on their website.
Prerequisites¶
Create a NixOS GandiCloud VPS
Initial configurations¶
SSH into the server, and copy the file /etc/gandi/configuration.nix to /etc/nixos/gandicloud.nix.
$ cp /etc/gandi/configuration.nix /etc/nixos/gandicloud.nix
You can now update the file /etc/nixos/configuration.nix according to your specific needs. However, be sure to include the gandicloud.nix file in your imports section, as this is needed for the OS to run properly on our platform.
imports = [ ./gandicloud.nix ];
Nginx example¶
Let’s add an Nginx configuration to serve a simple web page. The file /etc/nixos/configuration.nix should look like this:
{ 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 ];
};
}
This server configuration can then be deployed using the tool 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
The server configuration has been activated and Nginx will now serve our static page:
$ curl YOUR-GANDICLOUD-SERVER
NixOS @ gandi.net \o/