hosts/common: add server profile
- bridge sysctl, caddy, mongodb, factorio, *arr, transmission, adguardhome, ddclient, flaresolverr, jackett shared by baremetal
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
# Server stack shared by dogma-nixos and dogma-nixos-rtx (not WSL)
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
boot.kernel.sysctl = {
|
||||
"net.ipv4.ip_forward" = 1;
|
||||
"net.bridge.bridge-nf-call-iptables" = 1;
|
||||
"net.ipv4.conf.all.forwarding" = 1;
|
||||
"net.ipv6.conf.all.forwarding" = 1;
|
||||
"net.ipv4.conf.all.proxy_arp" = 1;
|
||||
"net.ipv4.conf.ens2.proxy_arp" = 1;
|
||||
};
|
||||
|
||||
networking.firewall.trustedInterfaces = ["br0"];
|
||||
|
||||
# Bridge networking - host-specific NIC may be overridden per-host
|
||||
networking.interfaces.enp6s0.useDHCP = false;
|
||||
networking.interfaces.br0.useDHCP = true;
|
||||
networking.bridges.br0.interfaces = ["enp6s0"];
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
environmentFile = config.sops.templates."caddy.env".path;
|
||||
virtualHosts."centraldogma.site:".extraConfig = ''
|
||||
|
||||
root * /srv/root/
|
||||
file_server
|
||||
encode zstd gzip
|
||||
|
||||
redir /jellyfin /jellyfin/
|
||||
reverse_proxy /jellyfin/* 127.0.0.1:8096
|
||||
|
||||
redir /sonarr /sonarr/
|
||||
reverse_proxy /sonarr/* 127.0.0.1:8989
|
||||
|
||||
redir /radarr /radarr/
|
||||
reverse_proxy /radarr/* 127.0.0.1:7878
|
||||
|
||||
'';
|
||||
virtualHosts."jellyfin.centraldogma.site:".extraConfig = ''
|
||||
reverse_proxy /* 127.0.0.1:8096
|
||||
'';
|
||||
virtualHosts."jellyfin2.centraldogma.site:".extraConfig = ''
|
||||
redir /jellyfin /jellyfin/
|
||||
reverse_proxy /jellyfin/* 127.0.0.1:8096
|
||||
'';
|
||||
virtualHosts."git.centraldogma.site:".extraConfig = ''
|
||||
reverse_proxy /* 127.0.0.1:3000
|
||||
'';
|
||||
virtualHosts."spy.centraldogma.site:".extraConfig = ''
|
||||
reverse_proxy /* 192.168.1.78:4444
|
||||
'';
|
||||
};
|
||||
|
||||
services.flaresolverr.enable = true;
|
||||
|
||||
services.mongodb = {
|
||||
enable = true;
|
||||
package = pkgs.mongodb-ce;
|
||||
initialRootPasswordFile = config.sops.secrets."mongodb/initial_password".path;
|
||||
};
|
||||
|
||||
services.jackett.enable = true;
|
||||
|
||||
services.factorio = {
|
||||
enable = true;
|
||||
public = true;
|
||||
requireUserVerification = true;
|
||||
username = "TheMaskedMan95";
|
||||
admins = ["TheMaskedMan95"];
|
||||
game-name = "Realm of the Masked Men";
|
||||
description = "No Dogs allowed";
|
||||
extraSettingsFile = config.sops.templates."factorio.json".path;
|
||||
saveName = "SPACExxxx";
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
services.radarr.enable = true;
|
||||
|
||||
services.ddclient = {
|
||||
enable = true;
|
||||
protocol = "namecheap";
|
||||
server = "dynamicdns.park-your-domain.com";
|
||||
ssl = true;
|
||||
username = "centraldogma.site";
|
||||
domains = [
|
||||
"@"
|
||||
"www"
|
||||
];
|
||||
usev4 = "webv4, webv4=ipify-ipv4";
|
||||
passwordFile = config.sops.secrets."namecheap/ddyn_password".path;
|
||||
interval = "5mins";
|
||||
};
|
||||
|
||||
services.sonarr.enable = true;
|
||||
|
||||
services.transmission = {
|
||||
enable = true;
|
||||
openRPCPort = true;
|
||||
settings = {
|
||||
rpc-bind-address = "0.0.0.0";
|
||||
rpc-whitelist = "127.0.0.1,192.168.1.86";
|
||||
download-dir = "/mnt/media/Downloads";
|
||||
};
|
||||
};
|
||||
|
||||
services.adguardhome = {
|
||||
enable = true;
|
||||
host = "0.0.0.0";
|
||||
port = 3003;
|
||||
settings = {
|
||||
allowDHCP = true;
|
||||
dns = {
|
||||
upstream_dns = [
|
||||
"9.9.9.9#dns.quad9.net"
|
||||
"149.112.112.112#dns.quad9.net"
|
||||
];
|
||||
};
|
||||
filtering = {
|
||||
protection_enabled = true;
|
||||
filtering_enabled = true;
|
||||
parental_enabled = true;
|
||||
safe_search.enabled = false;
|
||||
};
|
||||
filters = map (url: {
|
||||
enabled = true;
|
||||
url = url;
|
||||
}) [
|
||||
"https://adguardteam.github.io/HostlistsRegistry/assets/filter_9.txt"
|
||||
"https://adguardteam.github.io/HostlistsRegistry/assets/filter_11.txt"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user