feat: added a formatter and some instructions
This commit is contained in:
parent
14ae0a9065
commit
7f3dc8946e
39 changed files with 1739 additions and 1348 deletions
|
@ -1,6 +1,11 @@
|
|||
{ pkgs, modulesPath, config, options, inputs, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
modulesPath,
|
||||
config,
|
||||
options,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/virtualisation/proxmox-lxc.nix")
|
||||
|
||||
|
@ -21,7 +26,7 @@
|
|||
];
|
||||
|
||||
# flakes are essensial
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
system.stateVersion = "22.11";
|
||||
|
||||
|
@ -69,7 +74,7 @@
|
|||
};
|
||||
|
||||
# time on vendetta is strangely out of sync
|
||||
networking.timeServers = options.networking.timeServers.default ++ [ "ie.pool.ntp.org" ];
|
||||
networking.timeServers = options.networking.timeServers.default ++ ["ie.pool.ntp.org"];
|
||||
services.ntp.enable = true;
|
||||
|
||||
# use teh above nameservers as the fallback dns
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
/*
|
||||
|
||||
Name: https://matrix.fandom.com/wiki/Agent_Jones
|
||||
Type: Physical
|
||||
Hardware: PowerEdge r210
|
||||
From: 2011 (?)
|
||||
Role: Firewall
|
||||
Notes: Used to have Agent Smith as a partner but it died (Ironically)
|
||||
|
||||
Name: https://matrix.fandom.com/wiki/Agent_Jones
|
||||
Type: Physical
|
||||
Hardware: PowerEdge r210
|
||||
From: 2011 (?)
|
||||
Role: Firewall
|
||||
Notes: Used to have Agent Smith as a partner but it died (Ironically)
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "agentjones";
|
||||
ip_pub = "193.1.99.72";
|
||||
ip_priv = "193.1.99.125";
|
||||
hostname = "${name}.skynet.ie";
|
||||
|
||||
name = "agentjones";
|
||||
ip_pub = "193.1.99.72";
|
||||
ip_priv = "193.1.99.125";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
./hardware/_base.nix
|
||||
|
@ -29,12 +30,21 @@ in {
|
|||
targetUser = "root";
|
||||
|
||||
# somehow ssh from runner to this fails
|
||||
tags = [ "active-firewall" ];
|
||||
tags = ["active-firewall"];
|
||||
};
|
||||
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
@ -92,18 +102,20 @@ in {
|
|||
# gonna have to get all the
|
||||
forward = builtins.concatLists (
|
||||
# using this function "(key: value: value.config.skynet_firewall.forward)" turn the values ointo a list
|
||||
lib.attrsets.mapAttrsToList (key: value:
|
||||
lib.attrsets.mapAttrsToList (
|
||||
key: value:
|
||||
# make sure that anything running this firewall dosent count (recursion otherewise)
|
||||
# firewall may want to open ports in itself but can deal with that later
|
||||
if builtins.hasAttr "skynet_firewall" value.config
|
||||
then (
|
||||
if value.config.skynet_firewall.enable
|
||||
then []
|
||||
else value.config.skynet_firewall.forward
|
||||
)
|
||||
else []
|
||||
) nodes
|
||||
if builtins.hasAttr "skynet_firewall" value.config
|
||||
then
|
||||
(
|
||||
if value.config.skynet_firewall.enable
|
||||
then []
|
||||
else value.config.skynet_firewall.forward
|
||||
)
|
||||
else []
|
||||
)
|
||||
nodes
|
||||
);
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,21 +1,23 @@
|
|||
/*
|
||||
|
||||
Name: https://hitchhikers.fandom.com/wiki/Earth
|
||||
Why: Our home(page)
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Webserver
|
||||
Notes:
|
||||
|
||||
Name: https://hitchhikers.fandom.com/wiki/Earth
|
||||
Why: Our home(page)
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Webserver
|
||||
Notes:
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, inputs, ... }:
|
||||
let
|
||||
name = "earth";
|
||||
ip_pub = "193.1.99.79";
|
||||
hostname = "${name}.skynet.ie";
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
name = "earth";
|
||||
ip_pub = "193.1.99.79";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
../applications/skynet.ie.nix
|
||||
|
@ -26,13 +28,22 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active-core" ];
|
||||
tags = ["active-core"];
|
||||
};
|
||||
|
||||
# it has two network devices so two
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
@ -48,5 +59,4 @@ in {
|
|||
name = name;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,21 +1,24 @@
|
|||
/*
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/Galatea_(mythology)
|
||||
Why: Created as a product of artistic expression
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Icecast server for ULFM
|
||||
Notes:
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/Galatea_(mythology)
|
||||
Why: Created as a product of artistic expression
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Icecast server for ULFM
|
||||
Notes:
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, config, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "galatea";
|
||||
ip_pub = "193.1.99.111";
|
||||
hostname = "${name}.skynet.ie";
|
||||
name = "galatea";
|
||||
ip_pub = "193.1.99.111";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
../applications/ulfm.nix
|
||||
|
@ -26,12 +29,21 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active" ];
|
||||
tags = ["active"];
|
||||
};
|
||||
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
/*
|
||||
|
||||
Name: https://zim.fandom.com/wiki/GIR
|
||||
Why: Gir used to have this role before, servers never die
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Email Server
|
||||
Notes:
|
||||
|
||||
Name: https://zim.fandom.com/wiki/GIR
|
||||
Why: Gir used to have this role before, servers never die
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Email Server
|
||||
Notes:
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "gir";
|
||||
ip_pub = "193.1.99.76";
|
||||
hostname = "${name}.skynet.ie";
|
||||
name = "gir";
|
||||
ip_pub = "193.1.99.76";
|
||||
hostname = "${name}.skynet.ie";
|
||||
#hostname = ip_pub;
|
||||
|
||||
in {
|
||||
imports = [
|
||||
../applications/email.nix
|
||||
|
@ -28,13 +29,22 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active-core" ];
|
||||
tags = ["active-core"];
|
||||
};
|
||||
|
||||
# add this server to dns
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
/*
|
||||
|
||||
Name: https://half-life.fandom.com/wiki/GLaDOS
|
||||
Why: Glados has a vast experence of testing and deploying.
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Git server
|
||||
Notes: Each user has roughly 20gb os storage
|
||||
20 * 100 = 2000gb
|
||||
|
||||
Name: https://half-life.fandom.com/wiki/GLaDOS
|
||||
Why: Glados has a vast experence of testing and deploying.
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Git server
|
||||
Notes: Each user has roughly 20gb os storage
|
||||
20 * 100 = 2000gb
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "glados";
|
||||
ip_pub = "193.1.99.75";
|
||||
hostname = "${name}.skynet.ie";
|
||||
|
||||
name = "glados";
|
||||
ip_pub = "193.1.99.75";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
../applications/gitlab.nix
|
||||
|
@ -28,13 +29,21 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active-gitlab" ];
|
||||
tags = ["active-gitlab"];
|
||||
};
|
||||
|
||||
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
@ -51,5 +60,4 @@ in {
|
|||
name = name;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +1,35 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.initrd.availableKernelModules = ["ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/9b177e4a-726e-4e68-a0e1-53837a8cae2e";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/9b177e4a-726e-4e68-a0e1-53837a8cae2e";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/41AD-70AF";
|
||||
fsType = "vfat";
|
||||
};
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/41AD-70AF";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/c5990c64-077f-45b1-96b5-44ec93e6651f"; }
|
||||
];
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/c5990c64-077f-45b1-96b5-44ec93e6651f";}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -1,31 +1,35 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.initrd.availableKernelModules = ["ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/34918a4f-ca27-4070-a309-94bc59bdd743";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/34918a4f-ca27-4070-a309-94bc59bdd743";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/8B03-4D11";
|
||||
fsType = "vfat";
|
||||
};
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/8B03-4D11";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/c83e65ad-d252-4024-93a9-0253c5d8beac"; }
|
||||
];
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/c83e65ad-d252-4024-93a9-0253c5d8beac";}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -1,31 +1,35 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.initrd.availableKernelModules = ["ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/c48817e1-036f-49a7-adae-f63fc6c03cd5";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/c48817e1-036f-49a7-adae-f63fc6c03cd5";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/76CE-C65E";
|
||||
fsType = "vfat";
|
||||
};
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/76CE-C65E";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/eced30bd-b785-43e0-a202-cdaee7e0f4f7"; }
|
||||
];
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/eced30bd-b785-43e0-a202-cdaee7e0f4f7";}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
{ config, options, lib, ... }: with lib;
|
||||
let
|
||||
{
|
||||
config,
|
||||
options,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
# get a list of interfaces
|
||||
interfaces = attrNames config.networking.interfaces;
|
||||
# check if an IP has been assigned
|
||||
|
@ -13,5 +18,4 @@ in {
|
|||
}
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
/*
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/KITT
|
||||
Why: Kitt used to have this role before (as well as email and dns)
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: LDAP Server
|
||||
Notes:
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/KITT
|
||||
Why: Kitt used to have this role before (as well as email and dns)
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: LDAP Server
|
||||
Notes:
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "kitt";
|
||||
ip_pub = "193.1.99.74";
|
||||
hostname = "${name}.skynet.ie";
|
||||
name = "kitt";
|
||||
ip_pub = "193.1.99.74";
|
||||
hostname = "${name}.skynet.ie";
|
||||
#hostname = ip_pub;
|
||||
|
||||
in {
|
||||
imports = [
|
||||
../applications/ldap/server.nix
|
||||
|
@ -29,13 +30,22 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active-core" ];
|
||||
tags = ["active-core"];
|
||||
};
|
||||
|
||||
# add this server to dns
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
/*
|
||||
|
||||
Name: https://williamgibson.fandom.com/wiki/Neuromancer_(AI)
|
||||
Why: A sibling to Wintermute, stores and archives memories.
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Backup Server
|
||||
Notes:
|
||||
|
||||
Name: https://williamgibson.fandom.com/wiki/Neuromancer_(AI)
|
||||
Why: A sibling to Wintermute, stores and archives memories.
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Backup Server
|
||||
Notes:
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "neuromancer";
|
||||
ip_pub = "193.1.99.80";
|
||||
hostname = "${name}.skynet.ie";
|
||||
|
||||
name = "neuromancer";
|
||||
ip_pub = "193.1.99.80";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
./hardware/_base.nix
|
||||
./hardware/RM007.nix
|
||||
];
|
||||
|
||||
|
||||
networking.hostName = name;
|
||||
# this has to be defined for any physical servers
|
||||
# vms are defined by teh vm host
|
||||
|
@ -39,12 +39,21 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active-core" ];
|
||||
tags = ["active-core"];
|
||||
};
|
||||
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
@ -54,5 +63,4 @@ in {
|
|||
name = name;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,24 @@
|
|||
/*
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/Optimus_Prime
|
||||
Why: Created to sell toys so this vm is for games
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Game host
|
||||
Notes:
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/Optimus_Prime
|
||||
Why: Created to sell toys so this vm is for games
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Game host
|
||||
Notes:
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, arion, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
arion,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "optimus";
|
||||
ip_pub = "193.1.99.112";
|
||||
hostname = "${name}.skynet.ie";
|
||||
|
||||
name = "optimus";
|
||||
ip_pub = "193.1.99.112";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
../applications/games.nix
|
||||
|
@ -27,12 +29,21 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active" ];
|
||||
tags = ["active"];
|
||||
};
|
||||
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
@ -49,4 +60,4 @@ in {
|
|||
name = name;
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
/*
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/Ash_(Alien)
|
||||
Why: Infilitrate into the network
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Wireguard (VPN) Server
|
||||
Notes: Thius vpn is for admin use only, to give access to all the servers via ssh
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/Ash_(Alien)
|
||||
Why: Infilitrate into the network
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Wireguard (VPN) Server
|
||||
Notes: Thius vpn is for admin use only, to give access to all the servers via ssh
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "ash";
|
||||
ip_pub = "193.1.99.75";
|
||||
ip_priv = "172.20.20.5";
|
||||
name = "ash";
|
||||
ip_pub = "193.1.99.75";
|
||||
ip_priv = "172.20.20.5";
|
||||
# hostname = "${name}.skynet.ie";
|
||||
hostname = ip_pub;
|
||||
|
||||
hostname = ip_pub;
|
||||
in {
|
||||
imports = [
|
||||
# applications for this particular server
|
||||
|
@ -48,7 +49,6 @@ in {
|
|||
];
|
||||
};
|
||||
|
||||
|
||||
age.secrets.wireguard.file = ../secrets/wireguard.age;
|
||||
|
||||
networking = {
|
||||
|
@ -74,12 +74,12 @@ in {
|
|||
privateKeyFile = "/run/agenix/wireguard";
|
||||
|
||||
peers = [
|
||||
{ # silver - Brendan
|
||||
{
|
||||
# silver - Brendan
|
||||
publicKey = "46jMR/DzJ4rQCR8MBqLMwcyr2tsSII/xeCjihb6EQgQ=";
|
||||
allowedIPs = [ "172.20.21.2/32" ];
|
||||
allowedIPs = ["172.20.21.2/32"];
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -87,5 +87,4 @@ in {
|
|||
# needed to generate keys
|
||||
pkgs.wireguard-tools
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
/*
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/Skynet_(Terminator)
|
||||
Why: Skynet is eternal
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Webserver and member linux box
|
||||
Notes: Does not host offical sites
|
||||
|
||||
Name: https://en.wikipedia.org/wiki/Skynet_(Terminator)
|
||||
Why: Skynet is eternal
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Webserver and member linux box
|
||||
Notes: Does not host offical sites
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, inputs, ... }:
|
||||
let
|
||||
name = "skynet";
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
name = "skynet";
|
||||
# DMZ that ITD provided
|
||||
ip_pub = "193.1.96.165";
|
||||
ip_int = "193.1.99.81";
|
||||
hostname = "${name}.skynet.ie";
|
||||
|
||||
ip_pub = "193.1.96.165";
|
||||
ip_int = "193.1.99.81";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
../applications/skynet_users.nix
|
||||
|
@ -29,12 +31,21 @@ in {
|
|||
targetUser = "root";
|
||||
|
||||
# this one is manually deployed
|
||||
tags = [ "active-ext" ];
|
||||
tags = ["active-ext"];
|
||||
};
|
||||
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup.host = {
|
||||
|
@ -83,4 +94,4 @@ in {
|
|||
name = name;
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,21 +1,23 @@
|
|||
/*
|
||||
|
||||
Name: https://masseffect.fandom.com/wiki/Vendetta
|
||||
Why: Vendetta held troves of important data waiting for folks to request it.
|
||||
Type: Physical
|
||||
Hardware: PowerEdge r210
|
||||
From: 2011 (?)
|
||||
Role: DNS Server
|
||||
Notes: Using the server that used to be called Earth
|
||||
|
||||
Name: https://masseffect.fandom.com/wiki/Vendetta
|
||||
Why: Vendetta held troves of important data waiting for folks to request it.
|
||||
Type: Physical
|
||||
Hardware: PowerEdge r210
|
||||
From: 2011 (?)
|
||||
Role: DNS Server
|
||||
Notes: Using the server that used to be called Earth
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "vendetta";
|
||||
ip_pub = "193.1.99.120";
|
||||
hostname = "${name}.skynet.ie";
|
||||
name = "vendetta";
|
||||
ip_pub = "193.1.99.120";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
./hardware/_base.nix
|
||||
|
@ -27,7 +29,7 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active-dns" "dns" ];
|
||||
tags = ["active-dns" "dns"];
|
||||
};
|
||||
|
||||
networking = {
|
||||
|
@ -61,10 +63,18 @@ in {
|
|||
|
||||
records = [
|
||||
# vendetta IN A 193.1.99.120
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
# 120 IN PTR vendetta.skynet.ie.
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
/*
|
||||
|
||||
Name: https://masseffect.fandom.com/wiki/Vigil
|
||||
Why: Counterpart to Vendetta
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: DNS Server
|
||||
Notes:
|
||||
|
||||
Name: https://masseffect.fandom.com/wiki/Vigil
|
||||
Why: Counterpart to Vendetta
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: DNS Server
|
||||
Notes:
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
name = "vigil";
|
||||
ip_pub = "193.1.99.109";
|
||||
hostname = "${name}.skynet.ie";
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
name = "vigil";
|
||||
ip_pub = "193.1.99.109";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
|
||||
];
|
||||
|
||||
deployment = {
|
||||
|
@ -25,7 +26,7 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active-dns" "dns" ];
|
||||
tags = ["active-dns" "dns"];
|
||||
};
|
||||
|
||||
services.skynet_backup = {
|
||||
|
@ -46,10 +47,18 @@ in {
|
|||
# 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;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
# 109 IN PTR vigil.skynet.ie.
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
/*
|
||||
|
||||
Name: https://theportalwiki.com/wiki/Wheatley
|
||||
Why: Whereever GLaDOS is Wheatly is not too far away
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Gitlab Runner
|
||||
Notes:
|
||||
|
||||
Name: https://theportalwiki.com/wiki/Wheatley
|
||||
Why: Whereever GLaDOS is Wheatly is not too far away
|
||||
Type: VM
|
||||
Hardware: -
|
||||
From: 2023
|
||||
Role: Gitlab Runner
|
||||
Notes:
|
||||
*/
|
||||
|
||||
{ pkgs, lib, nodes, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodes,
|
||||
...
|
||||
}: let
|
||||
# name of the server, sets teh hostname and record for it
|
||||
name = "wheatly";
|
||||
ip_pub = "193.1.99.78";
|
||||
hostname = "${name}.skynet.ie";
|
||||
|
||||
name = "wheatly";
|
||||
ip_pub = "193.1.99.78";
|
||||
hostname = "${name}.skynet.ie";
|
||||
in {
|
||||
imports = [
|
||||
../applications/gitlab_runner.nix
|
||||
|
@ -27,13 +28,21 @@ in {
|
|||
targetPort = 22;
|
||||
targetUser = "root";
|
||||
|
||||
tags = [ "active-gitlab" ];
|
||||
tags = ["active-gitlab"];
|
||||
};
|
||||
|
||||
|
||||
skynet_dns.records = [
|
||||
{record=name; r_type="A"; value=ip_pub; server=true;}
|
||||
{record=ip_pub; r_type="PTR"; value=hostname;}
|
||||
{
|
||||
record = name;
|
||||
r_type = "A";
|
||||
value = ip_pub;
|
||||
server = true;
|
||||
}
|
||||
{
|
||||
record = ip_pub;
|
||||
r_type = "PTR";
|
||||
value = hostname;
|
||||
}
|
||||
];
|
||||
|
||||
services.skynet_backup = {
|
||||
|
@ -47,5 +56,4 @@ in {
|
|||
enable = true;
|
||||
runner.name = "runner01";
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue