{ config, lib, pkgs, ... }: with lib; let cfg = config.base; in { options.base = { name = mkOption { type = types.str; example = "server-1"; description = "Name of the machine, use for hostname"; }; domainName = mkOption { type = types.str; example = "example.com"; description = "Domain of the machine, use for hostname"; }; admin_email = mkOption { type = types.str; example = "example@example.com"; description = "Email of the admin, use for ACME and stuff"; }; }; config = { swapDevices = [ { device = "/swapfile"; priority = 0; size = 1024; } ]; boot.kernelParams = [ "console=tty0" "console=ttyS0,115200"]; services.qemuGuest.enable = true; system.autoUpgrade.enable = true; system.autoUpgrade.allowReboot = true; networking.hostName = "${cfg.name}"; time.timeZone = "Europe/Paris"; console = { font = "Lat2-Terminus16"; keyMap = "fr"; }; users.users.histausse = { isNormalUser = true; extraGroups = [ "wheel" ]; }; environment.systemPackages = with pkgs; [ vim git wget ]; services.openssh.enable = true; }; }