319 lines
7.7 KiB
Nix
319 lines
7.7 KiB
Nix
# https://docs.clan.lol
|
|
{
|
|
meta = {
|
|
name = "schallerclan";
|
|
domain = "clan";
|
|
};
|
|
|
|
inventory.machines = {
|
|
"barebonej3160".tags = [
|
|
"impermanance"
|
|
"interactive"
|
|
"serve_dns"
|
|
];
|
|
"darkbase900".tags = [
|
|
"impermanance"
|
|
"interactive"
|
|
"users"
|
|
];
|
|
"minisforumhm80".tags = [
|
|
"impermanance"
|
|
"interactive"
|
|
"night-sleep"
|
|
"users"
|
|
];
|
|
};
|
|
|
|
inventory.instances = {
|
|
sshd = {
|
|
roles.server.settings = {
|
|
authorizedKeys = {
|
|
"david@DavidDESKTOP" =
|
|
"***REMOVED_SSH-PUBLICKEY***";
|
|
"david@DavidLEGION" =
|
|
"***REMOVED_SSH-PUBLICKEY***";
|
|
};
|
|
};
|
|
|
|
roles.server.tags = [ "all" ];
|
|
};
|
|
|
|
root = {
|
|
# password
|
|
module.name = "users";
|
|
roles.default.tags = [ "all" ];
|
|
};
|
|
|
|
#
|
|
# Networking
|
|
#
|
|
# https://docs.clan.lol/guides/networking/networking/
|
|
internet = {
|
|
roles.default.machines."barebonej3160".settings.host = "barebonej3160.tail67c8bb.ts.net";
|
|
roles.default.machines."darkbase900".settings.host = "darkbase900.tail67c8bb.ts.net";
|
|
roles.default.machines."minisforumhm80".settings.host = "minisforumhm80.tail67c8bb.ts.net";
|
|
};
|
|
|
|
tailscale = {
|
|
module.input = "self";
|
|
module.name = "@schallerclan/tailscale";
|
|
|
|
roles.default.machines."barebonej3160" = { };
|
|
roles.default.machines."darkbase900" = { };
|
|
roles.default.machines."minisforumhm80" = { };
|
|
};
|
|
|
|
tor = {
|
|
roles.client.tags = [ "all" ];
|
|
roles.server = {
|
|
tags = [ "all" ];
|
|
settings = {
|
|
secretHostname = false;
|
|
portMapping = [
|
|
{
|
|
port = 6443; # yggdrasil TCP
|
|
target.port = 6443;
|
|
}
|
|
{
|
|
port = 6446; # yggdrasil TLS
|
|
target.port = 6446;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
dns = {
|
|
module.name = "@schallerclan/dns";
|
|
module.input = "self";
|
|
|
|
roles.server = {
|
|
tags = [ "serve_dns" ];
|
|
extraModules = [ modules/blocky.nix ];
|
|
};
|
|
|
|
roles.default = {
|
|
tags = [ "all" ];
|
|
machines = {
|
|
"barebonej3160".settings.extraRecords = {
|
|
A = [
|
|
"***REMOVED_IPv4***" # lan
|
|
"***REMOVED_IPv4***" # tailscale
|
|
];
|
|
AAAA = [
|
|
"***REMOVED_IPv6***" # lan
|
|
"***REMOVED_IPv6***" # tailscale
|
|
];
|
|
};
|
|
"darkbase900".settings.extraRecords = {
|
|
A = [
|
|
"***REMOVED_IPv4***" # lan
|
|
"***REMOVED_IPv4***" # tailscale
|
|
];
|
|
AAAA = [
|
|
"***REMOVED_IPv6***" # lan
|
|
"***REMOVED_IPv6***" # tailscale
|
|
];
|
|
};
|
|
"minisforumhm80".settings.extraRecords = {
|
|
A = [
|
|
"***REMOVED_IPv4***" # lan
|
|
"***REMOVED_IPv4***" # tailscale
|
|
];
|
|
AAAA = [
|
|
"***REMOVED_IPv6***" # lan
|
|
"***REMOVED_IPv6***" # tailscale
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
#
|
|
# Modules & Services
|
|
#
|
|
base = {
|
|
module.name = "importer";
|
|
roles.default.tags = [ "all" ];
|
|
roles.default.extraModules = [
|
|
modules/base/boot.nix
|
|
modules/base/environment.nix
|
|
modules/base/firewall.nix
|
|
modules/base/locale.nix
|
|
modules/base/nix.nix
|
|
modules/base/time.nix
|
|
];
|
|
};
|
|
|
|
fish = {
|
|
module.name = "importer";
|
|
roles.default.tags = [ "interactive" ];
|
|
roles.default.extraModules = [ modules/fish.nix ];
|
|
};
|
|
|
|
impermanance = {
|
|
module.name = "importer";
|
|
roles.default.tags = [ "impermanance" ];
|
|
roles.default.extraModules = [ modules/impermanance.nix ];
|
|
};
|
|
|
|
week-night-sleep = {
|
|
module.name = "@schallerclan/sleep";
|
|
module.input = "self";
|
|
|
|
roles.default.tags = [ "night-sleep" ];
|
|
roles.default.settings = {
|
|
mode = "poweroff";
|
|
sleepAt = "Sun..Thu ***REMOVED_IPv6***";
|
|
wakeAt = "tomorrow ***REMOVED_IPv6***";
|
|
};
|
|
};
|
|
week-night-sleep-2 = {
|
|
module.name = "@schallerclan/sleep";
|
|
module.input = "self";
|
|
|
|
roles.default.tags = [ "night-sleep" ];
|
|
roles.default.settings = {
|
|
mode = "poweroff";
|
|
sleepAt = "Mon..Fri 00..***REMOVED_IPv6***";
|
|
wakeAt = "***REMOVED_IPv6***";
|
|
};
|
|
};
|
|
weekend-night-sleep = {
|
|
module.name = "@schallerclan/sleep";
|
|
module.input = "self";
|
|
|
|
roles.default.tags = [ "night-sleep" ];
|
|
roles.default.settings = {
|
|
mode = "poweroff";
|
|
sleepAt = "Sat,Sun 01..***REMOVED_IPv6***";
|
|
wakeAt = "***REMOVED_IPv6***";
|
|
};
|
|
};
|
|
|
|
poweroff = {
|
|
module.name = "@schallerclan/poweroff";
|
|
module.input = "self";
|
|
|
|
roles.at.machines."darkbase900".settings.time = "***REMOVED_IPv6***";
|
|
roles.idle.machines."darkbase900".settings.uptime = 30;
|
|
};
|
|
|
|
wakeonlan = {
|
|
module.name = "@schallerclan/wakeonlan";
|
|
module.input = "self";
|
|
|
|
roles.target.machines."barebonej3160".settings.interfaces = [
|
|
"00:E***REMOVED_IPv6***B:9F"
|
|
"00:E***REMOVED_IPv6***B:A0"
|
|
"00:E***REMOVED_IPv6***B:A1"
|
|
"00:E***REMOVED_IPv6***B:A2"
|
|
];
|
|
roles.target.machines."darkbase900".settings.interfaces = [
|
|
"D8:BB:C***REMOVED_IPv6***:A8"
|
|
];
|
|
roles.target.machines."minisforumhm80".settings.interfaces = [
|
|
"1C***REMOVED_IPv6***:BF:7B"
|
|
"1C***REMOVED_IPv6***:BE:A7"
|
|
];
|
|
|
|
roles.source.tags = [ "all" ];
|
|
};
|
|
|
|
garage = {
|
|
# roles.default.machines."server" = { };
|
|
roles.default.extraModules = [ modules/garage.nix ];
|
|
};
|
|
|
|
quadlets = {
|
|
module.name = "@schallerclan/quadlets";
|
|
module.input = "self";
|
|
|
|
roles.default.machines."barebonej3160".settings.quadlets = [
|
|
quadlets/ca-files.nix
|
|
quadlets/whoami.nix
|
|
];
|
|
roles.default.machines."minisforumhm80".settings.quadlets = [
|
|
quadlets/bitwarden.nix
|
|
quadlets/glance.nix
|
|
quadlets/searxng.nix
|
|
quadlets/syncthing.nix
|
|
quadlets/vikunja.nix
|
|
];
|
|
};
|
|
|
|
pki = {
|
|
roles.default.tags = [ "all" ];
|
|
};
|
|
|
|
#
|
|
# Backups
|
|
#
|
|
localbackup = {
|
|
roles.default.machines = {
|
|
"barebonej3160".settings.targets."varlib".directory = "/var/lib/localbackup";
|
|
"minisforumhm80".settings.targets."varlib".directory = "/var/lib/localbackup";
|
|
};
|
|
};
|
|
|
|
borgbackup = {
|
|
roles.client = {
|
|
settings.exclude = [ ];
|
|
|
|
# destinations ^= externalDestinations
|
|
machines = {
|
|
"barebonej3160".settings.destinations = {
|
|
"schallernetz-magentacloud" = {
|
|
repo = "/mnt/schallernetz-magentacloud/SchallerclanBACKUPS/barebonej3160";
|
|
};
|
|
};
|
|
"minisforumhm80" = { };
|
|
};
|
|
|
|
extraModules = [
|
|
modules/borgbackup/schallernetz-magentacloud.nix
|
|
{
|
|
config.systemd.services = {
|
|
"borgbackup-job-darkbase900".environment.BORG_RELOCATED_REPO_ACCESS_IS_OK = "yes";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
roles.server.machines = {
|
|
"darkbase900" = { };
|
|
};
|
|
};
|
|
|
|
#
|
|
# Users
|
|
#
|
|
david = {
|
|
module.name = "users";
|
|
|
|
roles.default = {
|
|
tags = [ "users" ];
|
|
settings = {
|
|
share = true;
|
|
openssh.authorizedKeys.keys = [
|
|
"***REMOVED_SSH-PUBLICKEY*** david@DavidDESKTOP"
|
|
"***REMOVED_SSH-PUBLICKEY*** david@DavidLEGION"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
timon = {
|
|
module.name = "users";
|
|
|
|
roles.default = {
|
|
tags = [ "users" ];
|
|
settings = {
|
|
share = true;
|
|
openssh.authorizedKeys.keys = [ ];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|