/* 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; }; }; }