PoC working SP module system
+ simple-nixos-mailserver as an SP module
This commit is contained in:
62
userdata-variables.nix
Normal file
62
userdata-variables.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
jsonData: { lib, ... }:
|
||||
{
|
||||
selfprivacy.userdata = jsonData // {
|
||||
hostname = lib.attrsets.attrByPath [ "hostname" ] null jsonData;
|
||||
domain = lib.attrsets.attrByPath [ "domain" ] null jsonData;
|
||||
timezone = lib.attrsets.attrByPath [ "timezone" ] "Europe/Uzhgorod" jsonData;
|
||||
stateVersion = lib.attrsets.attrByPath [ "stateVersion" ] "22.05" jsonData;
|
||||
autoUpgrade = {
|
||||
enable = lib.attrsets.attrByPath [ "autoUpgrade" "enable" ] true jsonData;
|
||||
allowReboot = lib.attrsets.attrByPath [ "autoUpgrade" "allowReboot" ] true jsonData;
|
||||
};
|
||||
username = lib.attrsets.attrByPath [ "username" ] null jsonData;
|
||||
hashedMasterPassword = lib.attrsets.attrByPath [ "hashedMasterPassword" ] null jsonData;
|
||||
sshKeys = lib.attrsets.attrByPath [ "sshKeys" ] [ ] jsonData;
|
||||
api = {
|
||||
enableSwagger = lib.attrsets.attrByPath [ "api" "enableSwagger" ] false jsonData;
|
||||
skippedMigrations = lib.attrsets.attrByPath [ "api" "skippedMigrations" ] [ ] jsonData;
|
||||
};
|
||||
dns = {
|
||||
provider = lib.attrsets.attrByPath [ "dns" "provider" ] "CLOUDFLARE" jsonData;
|
||||
useStagingACME = lib.attrsets.attrByPath [ "dns" "useStagingACME" ] false jsonData;
|
||||
};
|
||||
backup = {
|
||||
bucket = lib.attrsets.attrByPath [ "backup" "bucket" ] (lib.attrsets.attrByPath [ "backblaze" "bucket" ] "" jsonData) jsonData;
|
||||
};
|
||||
server = {
|
||||
provider = lib.attrsets.attrByPath [ "server" "provider" ] "HETZNER" jsonData;
|
||||
};
|
||||
bitwarden = {
|
||||
enable = lib.attrsets.attrByPath [ "bitwarden" "enable" ] false jsonData;
|
||||
location = lib.attrsets.attrByPath [ "bitwarden" "location" ] "sda1" jsonData;
|
||||
};
|
||||
gitea = {
|
||||
enable = lib.attrsets.attrByPath [ "gitea" "enable" ] false jsonData;
|
||||
location = lib.attrsets.attrByPath [ "gitea" "location" ] "sda1" jsonData;
|
||||
};
|
||||
nextcloud = {
|
||||
enable = lib.attrsets.attrByPath [ "nextcloud" "enable" ] false jsonData;
|
||||
location = lib.attrsets.attrByPath [ "nextcloud" "location" ] "sda1" jsonData;
|
||||
};
|
||||
pleroma = {
|
||||
enable = lib.attrsets.attrByPath [ "pleroma" "enable" ] false jsonData;
|
||||
location = lib.attrsets.attrByPath [ "pleroma" "location" ] "sda1" jsonData;
|
||||
};
|
||||
jitsi = {
|
||||
enable = lib.attrsets.attrByPath [ "jitsi" "enable" ] false jsonData;
|
||||
};
|
||||
ocserv = {
|
||||
enable = lib.attrsets.attrByPath [ "ocserv" "enable" ] false jsonData;
|
||||
};
|
||||
ssh = {
|
||||
enable = lib.attrsets.attrByPath [ "ssh" "enable" ] true jsonData;
|
||||
rootKeys = lib.attrsets.attrByPath [ "ssh" "rootKeys" ] [ "" ] jsonData;
|
||||
passwordAuthentication = lib.attrsets.attrByPath [ "ssh" "passwordAuthentication" ] true jsonData;
|
||||
};
|
||||
email = {
|
||||
location = lib.attrsets.attrByPath [ "email" "location" ] "sda1" jsonData;
|
||||
};
|
||||
users = lib.attrsets.attrByPath [ "users" ] [ ] jsonData;
|
||||
volumes = lib.attrsets.attrByPath [ "volumes" ] [ ] jsonData;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user