nixos/applications/skynet.ie.nix

69 lines
1.6 KiB
Nix
Raw Normal View History

2023-07-23 02:08:56 +00:00
{ config, pkgs, lib, inputs, ... }:
with lib;
let
cfg = config.services.skynet;
in {
imports = [
./acme.nix
./dns.nix
];
options.services.skynet = {
host = {
ip = mkOption {
type = types.str;
};
name = mkOption {
type = types.str;
};
};
};
config = {
skynet_acme.domains = [
# the root one is already covered by teh certificate
"2016.skynet.ie"
2023-08-11 00:44:04 +00:00
"discord.skynet.ie"
];
2023-07-23 02:08:56 +00:00
skynet_dns.records = [
# means root domain, so skynet.ie
2023-08-11 00:44:04 +00:00
{record="@"; r_type="A"; value=cfg.host.ip;}
{record="2016"; r_type="CNAME"; value="@";}
{record="discord"; r_type="CNAME"; value="@";}
2023-07-23 02:08:56 +00:00
];
networking.firewall.allowedTCPPorts = [80 443];
services.httpd = {
enable = true;
group = "acme";
virtualHosts = {
# main site
"skynet.ie" = {
forceSSL = true;
useACMEHost = "skynet";
documentRoot = "${inputs.skynet_website.defaultPackage."x86_64-linux"}";
# only on skynet.ie
# skynet.ie/~username
#enableUserDir = true;
};
2023-07-23 02:08:56 +00:00
# archive of teh site as it was ~2012 to 2016
"2016.skynet.ie" = {
forceSSL = true;
useACMEHost = "skynet";
documentRoot = "${inputs.skynet_website_2016.defaultPackage."x86_64-linux"}";
};
2023-08-11 00:44:04 +00:00
# archive of teh site as it was ~2012 to 2016
"discord.skynet.ie" = {
forceSSL = true;
useACMEHost = "skynet";
globalRedirect = "https://discord.gg/mkuKJkCuyM";
};
2023-07-23 02:08:56 +00:00
};
};
};
}