62 lines
1.3 KiB
Nix
62 lines
1.3 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";
|
||
|
hostname = ip_pub;
|
||
|
|
||
|
in {
|
||
|
imports = [
|
||
|
# applications for this particular server
|
||
|
../applications/firewall.nix
|
||
|
../applications/dns.nix
|
||
|
../applications/games.nix
|
||
|
];
|
||
|
|
||
|
deployment = {
|
||
|
targetHost = hostname;
|
||
|
targetPort = 22;
|
||
|
targetUser = "root";
|
||
|
};
|
||
|
|
||
|
# these two are to be able to add the rules for firewall and dns
|
||
|
# open the firewall for this
|
||
|
skynet_firewall.forward = [
|
||
|
"ip saddr ${ip_pub} tcp dport 80 counter packets 0 bytes 0 accept"
|
||
|
"ip saddr ${ip_pub} tcp dport 443 counter packets 0 bytes 0 accept"
|
||
|
"ip saddr ${ip_pub} tcp dport 25565 counter packets 0 bytes 0 accept"
|
||
|
];
|
||
|
|
||
|
skynet_dns.records = {
|
||
|
external = [
|
||
|
"${name} A ${ip_pub}"
|
||
|
];
|
||
|
cname = [
|
||
|
# the games are each going to have a subdomain on this
|
||
|
"games CNAME ${name}"
|
||
|
];
|
||
|
};
|
||
|
|
||
|
networking.firewall.allowedTCPPorts = [
|
||
|
22
|
||
|
80
|
||
|
443
|
||
|
25565
|
||
|
];
|
||
|
|
||
|
}
|