feat: simplified the config for running services, only one hosts config is required now in each server config file

This commit is contained in:
silver 2024-05-30 17:55:29 +01:00
parent f8c7860eb5
commit 379cb84839
Signed by: silver
GPG key ID: 54E2C71918E93B74
34 changed files with 200 additions and 581 deletions

View file

@ -18,6 +18,9 @@ in {
# for the secrets
inputs.agenix.nixosModules.default
# base config for all servers
../applications/_base.nix
# every sever may need the firewall config stuff
../applications/firewall.nix

View file

@ -20,6 +20,7 @@ Notes: Used to have Agent Smith as a partner but it died (Ironically)
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -35,22 +36,9 @@ in {
tags = ["active-firewall"];
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
services.skynet = {
host = host;
backup.enable = true;
};
# keep the wired usb connection alive (front panel)

View file

@ -21,6 +21,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -35,27 +36,10 @@ in {
tags = ["active"];
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
host = host;
};
services.skynet.nextcloud = {
enable = true;
services.skynet = {
host = host;
backup.enable = true;
nextcloud.enable = true;
};
# this was causing a conflict for some reason

View file

@ -22,6 +22,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -38,24 +39,11 @@ in {
tags = ["active"];
};
# it has two network devices so two
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet = {
nix-cache.host = host;
open-governance.host = host;
keyserver.host = host;
host = host;
backup.enable = true;
nix-cache.enable = true;
open-governance.enable = true;
keyserver.enable = true;
};
}

View file

@ -21,6 +21,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -35,26 +36,9 @@ in {
tags = ["active-core"];
};
# it has two network devices so two
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
host = host;
};
services.skynet.website = {
services.skynet = {
host = host;
backup.enable = true;
website.enable = true;
};
}

View file

@ -22,6 +22,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -36,26 +37,9 @@ in {
tags = ["active"];
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
host = host;
};
services.skynet.ulfm = {
enable = true;
services.skynet = {
host = host;
backup.enable = true;
ulfm.enable = true;
};
}

View file

@ -21,6 +21,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -35,29 +36,9 @@ in {
tags = ["active-core"];
};
# add this server to dns
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
services.skynet = {
host = host;
};
# we use this to pass in teh relevent infomation to the
services.skynet.email = {
enable = true;
host = host;
domain = "skynet.ie";
backup.enable = true;
email.enable = true;
};
}

View file

@ -22,6 +22,7 @@ Notes: Each user has roughly 20gb os storage
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -36,26 +37,9 @@ in {
tags = ["active-gitlab"];
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
host = host;
};
services.skynet.gitlab = {
enable = true;
services.skynet = {
host = host;
backup.enable = true;
gitlab.enable = true;
};
}

View file

@ -22,10 +22,12 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
../applications/ldap/server.nix
../applications/ldap/backend.nix
../applications/discord.nix
../applications/bitwarden/vaultwarden.nix
../applications/bitwarden/bitwarden_sync.nix
@ -41,49 +43,20 @@ in {
tags = ["active-core"];
};
# add this server to dns
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
services.skynet = {
host = host;
};
backup.enable = true;
services.skynet.ldap = {
enable = true;
host = host;
};
# ldap setup
ldap.enable = true;
ldap_backend.enable = true;
services.skynet.discord_bot = {
enable = true;
};
# private member services
discord_bot.enable = true;
services.skynet.vaultwarden = {
enable = true;
host = host;
};
services.skynet.prometheus = {
server = {
enable = true;
host = host;
};
};
services.skynet.grafana = {
enable = true;
host = host;
# committee/admin services
vaultwarden.enable = true;
prometheus.server.enable = true;
grafana.enable = true;
};
}

View file

@ -20,6 +20,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
groups = [
@ -53,23 +54,8 @@ in {
sudo_groups = groups;
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
services.skynet = {
host = host;
backup.enable = true;
};
# Put test services below this
}

View file

@ -21,6 +21,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -48,22 +49,8 @@ in {
tags = ["active-core"];
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
server.enable = true;
services.skynet = {
host = host;
backup.server.enable = true;
};
}

View file

@ -22,6 +22,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -36,26 +37,9 @@ in {
tags = ["active"];
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
host = host;
};
services.skynet.games = {
enable = true;
services.skynet = {
host = host;
backup.enable = true;
games.enable = true;
};
}

View file

@ -24,6 +24,7 @@ Notes: Does not host offical sites
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -39,23 +40,9 @@ in {
tags = ["active-ext"];
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup.host = host;
services.skynet.website_users = {
services.skynet = {
host = host;
backup.enable = true;
website_users.enable = true;
};
}

View file

@ -21,6 +21,7 @@ Notes: Using the server that used to be called Earth
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -49,32 +50,16 @@ in {
];
};
services.skynet.backup = {
services.skynet = {
host = host;
};
services.skynet.dns = {
server = {
enable = true;
# primary dns server (ns1)
primary = true;
ip = ip_pub;
backup.enable = true;
dns = {
server = {
enable = true;
# primary dns server (ns1)
primary = true;
ip = ip_pub;
};
};
records = [
# vendetta IN A 193.1.99.120
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
# 120 IN PTR vendetta.skynet.ie.
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
};
}

View file

@ -20,6 +20,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -33,33 +34,16 @@ in {
tags = ["active-dns" "dns"];
};
services.skynet.backup = {
services.skynet = {
host = host;
};
services.skynet.dns = {
server = {
enable = true;
# secondary dns server (ns2)
primary = false;
ip = ip_pub;
backup.enable = true;
dns = {
server = {
enable = true;
# secondary dns server (ns2)
primary = false;
ip = ip_pub;
};
};
# this server will have to have dns records
records = [
# vigil IN A 193.1.99.109
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
# 109 IN PTR vigil.skynet.ie.
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
};
}

View file

@ -21,6 +21,7 @@ Notes:
host = {
ip = ip_pub;
name = name;
hostname = hostname;
};
in {
imports = [
@ -35,26 +36,13 @@ in {
tags = ["active-gitlab"];
};
services.skynet.dns.records = [
{
record = name;
r_type = "A";
value = ip_pub;
server = true;
}
{
record = ip_pub;
r_type = "PTR";
value = hostname;
}
];
services.skynet.backup = {
services.skynet = {
host = host;
};
backup.enable = true;
services.skynet.gitlab_runner = {
enable = true;
runner.name = "runner01";
gitlab_runner = {
enable = true;
runner.name = "runner01";
};
};
}