nixos/options/machine.nix

88 lines
2.1 KiB
Nix
Raw Normal View History

{ lib, ... }:
with lib;
{
options.machine = {
pkgs = mkOption {
2019-09-05 15:20:56 +02:00
type = types.listOf types.str;
2019-10-08 13:15:38 +02:00
default = [ "base" ];
description = ''
The list of metapackages to be installed.
'';
};
services = mkOption {
2019-09-05 15:20:56 +02:00
type = types.listOf types.str;
2019-10-08 13:15:38 +02:00
default = [];
description = ''
List of services to be enabled.
'';
};
conffiles = mkOption {
2019-09-05 15:20:56 +02:00
type = types.listOf types.str;
2019-10-08 13:15:38 +02:00
default = [ "zsh" ];
description = ''
List of configuration files to be enabled.
'';
};
hostName = mkOption {
type = types.str;
description = ''
The Machines HostName
'';
};
secretPath = mkOption {
2019-09-05 15:20:56 +02:00
type = types.str;
default = (findFirst (elem: elem.prefix == "secretPath") { path = "/secret"; } builtins.nixPath).path;
description = ''
Path to you systems secret folder containing files with sensitive information.
'';
};
2019-04-13 00:05:39 +02:00
administrators = mkOption {
type = types.listOf types.attrs;
description = ''
List of administrative users.
'';
};
domain = mkOption {
type = types.str;
default = "localhost";
description = ''
The Machines domain name.
'';
};
2019-10-08 13:15:38 +02:00
extraDomains = mkOption {
type = types.listOf types.str;
default = [];
description = ''
Extra domains used in various services.
'';
};
mailAccounts = mkOption {
type = types.listOf types.attrs;
2019-10-08 13:15:38 +02:00
default = [];
description = ''
List of mail account user names.
'';
};
2019-06-22 23:58:08 +02:00
vHosts = mkOption {
type = types.listOf types.attrs;
2019-10-08 13:15:38 +02:00
default = [];
2019-06-22 23:58:08 +02:00
description = ''
Domain - Service mappings for nginx vHost config.
'';
};
desktop.wms = mkOption {
2019-09-05 15:20:56 +02:00
type = types.listOf types.str;
default = [];
description = ''
The list of wms to be enabled.
'';
};
};
2019-10-08 13:15:38 +02:00
imports = [
(mkAliasOptionModule [ "machine" "firewall" ] [ "networking" "firewall" ])
(mkAliasOptionModule [ "machine" "allowUnfree" ] [ "nixpkgs" "config" "allowUnfree" ])
];
}