/* 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 # name of the server, sets teh hostname and record for it name = "galatea"; ip_pub = "193.1.99.111"; ip_priv = "172.20.20.6"; hostname = "${name}.skynet.ie"; # dosent seem to be any otehr way to have it like read from a file feck = "d9J4jDsJPuMPUMAAE4J4tH37HsmxEDze"; in { imports = [ # general stuff for config ../applications/firewall.nix ../applications/dns.nix # web stuff ../applications/nginx.nix ../applications/acme.nix # specific to tis server ../applications/ulfm.nix ]; deployment = { targetHost = hostname; targetPort = 22; targetUser = "root"; tags = [ "active" ]; }; # these two are to be able to add the rules for firewall and dns # open the firewall for this skynet_firewall.forward = [ "ip daddr ${ip_pub} tcp dport 80 counter packets 0 bytes 0 accept" "ip daddr ${ip_pub} tcp dport 443 counter packets 0 bytes 0 accept" "ip daddr ${ip_pub} tcp dport 8000 counter packets 0 bytes 0 accept" ]; skynet_dns.records = { external = [ "${name} A ${ip_pub}" ]; cname = [ # this is also the stream server #"stream CNAME ${name}" "ulfm CNAME ${name}" ]; reverse = [ "${builtins.substring 9 3 ip_pub} IN PTR ${name}" ]; }; }