96 lines
No EOL
1.7 KiB
Nix
96 lines
No EOL
1.7 KiB
Nix
/*
|
|
|
|
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
|
|
# name of the server, sets teh hostname and record for it
|
|
name = "optimus";
|
|
ip_pub = "193.1.99.112";
|
|
ip_priv = "172.20.20.7";
|
|
hostname = "${name}.skynet.ie";
|
|
|
|
in {
|
|
imports = [
|
|
# applications for this particular server
|
|
../applications/dns.nix
|
|
../applications/games.nix
|
|
|
|
|
|
../applications/ldap_client.nix
|
|
|
|
# for testing
|
|
../applications/ldap.nix
|
|
../applications/gitlab.nix
|
|
];
|
|
|
|
deployment = {
|
|
targetHost = hostname;
|
|
targetPort = 22;
|
|
targetUser = "root";
|
|
};
|
|
|
|
|
|
skynet_dns.records = {
|
|
external = [
|
|
"${name} A ${ip_pub}"
|
|
];
|
|
reverse = [
|
|
"${builtins.substring 9 3 ip_pub} IN PTR ${name}"
|
|
];
|
|
};
|
|
|
|
services.skynet_games = {
|
|
enable = true;
|
|
|
|
host = {
|
|
# pass in teh ip (used for firewall)
|
|
ip = ip_pub;
|
|
|
|
# the name is used for dns
|
|
name = name;
|
|
};
|
|
};
|
|
|
|
# we use this to pass in teh relevent infomation to the
|
|
services.skynet_ldap = {
|
|
enable = true;
|
|
|
|
host = {
|
|
# pass in teh ip (used for firewall)
|
|
ip = ip_pub;
|
|
|
|
# the name is used for dns
|
|
name = name;
|
|
};
|
|
};
|
|
|
|
|
|
services.skynet_ldap_client = {
|
|
enable = true;
|
|
# skynet-admin will always be added
|
|
groups = [ "skynet-users"];
|
|
};
|
|
|
|
|
|
services.skynet_gitlab = {
|
|
enable = true;
|
|
|
|
host = {
|
|
# pass in teh ip (used for firewall)
|
|
ip = ip_pub;
|
|
|
|
# the name is used for dns
|
|
name = name;
|
|
};
|
|
};
|
|
|
|
} |