# The is the system definition for vps-15813ce.ovh.net. { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # Boot loader boot.loader = { grub = { enable = true; device = "/dev/sda"; }; }; boot.cleanTmpDir = true; # Network configuration networking = { hostName = "vps-15813cea"; useDHCP = false; interfaces.ens3.useDHCP = true; firewall.allowedTCPPorts = [ 22 80 443 ]; firewall.allowedTCPPortRanges = [ { from = 40000; to = 49999; } ]; }; # Time zone time.timeZone = "Europe/Paris"; # Packages installed in system profile environment.systemPackages = with pkgs; [ git htop tmux vim wget ]; # OpenSSH daemon services.openssh = { enable = true; passwordAuthentication = false; }; # Let's Encrypt certificates security.acme = { acceptTerms = true; email = "manu@beffara.org"; }; # Nginx web server services.nginx = { enable = true; virtualHosts."www.beffara.org" = { default = true; forceSSL = true; root = "/data/web/root"; enableACME = true; }; virtualHosts."cloud.beffara.org" = { forceSSL = true; enableACME = true; }; }; # Nextcloud services.nextcloud = { enable = true; hostName = "cloud.beffara.org"; https = true; package = pkgs.nextcloud21; home = "/data/web/nextcloud"; autoUpdateApps = { enable = true; startAt = "03:00:00"; }; config = { overwriteProtocol = "https"; dbtype = "pgsql"; dbuser = "nextcloud"; dbhost = "/run/postgresql"; # nextcloud will add /.s.PGSQL.5432 by itself dbname = "nextcloud"; dbpassFile = "/data/web/nextcloud/db-pass"; defaultPhoneRegion = "FR"; adminpassFile = "/data/web/nextcloud/admin-pass"; adminuser = "admin"; }; }; # Ensure that postgres is running before setting up Nextcloud systemd.services."nextcloud-setup" = { requires = ["postgresql.service"]; after = ["postgresql.service"]; }; # PostgreSQL database services.postgresql = { enable = true; ensureDatabases = [ "nextcloud" ]; ensureUsers = [ { name = "nextcloud"; ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES"; } ]; }; # Initial user account users.users.manu = { isNormalUser = true; extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. initialHashedPassword = "$6$40/yq55oyhD2MhbS$fox2DB5Aj4EpbQAx8z6FYEh3Jl3HKa7aHlGbijJukWxOpXIlKqNucBA8Eene7SaUQzHpvrhke9EFZIRxZpl5F/"; openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCCf/v5xV24A0f6oqktmxl4qxbEAg+LSaPqiNzXB7b6m0+uYqxxL5ywLGyLp2Dv3xkMuKTqKV3BvXqZXUjgpWC8W1a952D4vRlghgX6ZaA4R0feQYeba8OaQTmDyPD1Ou4pRGHz/VPH1W8y+46lgOMzNHNuvnVuny72syfGFquN12aS+gvN7+FBQektcK+1Rs+EplaZ28rI6vFQycMK17/pXzD1ug42GQxeR9tzDQjJAyVz1nomwuwNOTJDbfd8qGSGYFUWLcKctn+ZWQhD0C1GD8+mdwYilve3su8N3XOuOi4umDFajAv7+CuVAD5RdtSwzx5knKMx/ksfels9MiQFPDz5z/doc4/s/t2qKKmP3bghrvLTEI1p4xiBj/4aJetyqlYgyYyrOYlm3xcx/ImL7oZYF2Jxq7ekio23hHaQLOHA+BYxYulTvDw99Mly933Ny9Z2Ead3mYYfCkRJieJ/7p62IcQUKIwU1pvqDHXRUYgeWJg8pW1TgqZB6rYkYk= manu@manivelle" ]; }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "20.09"; # Did you read the comment? }