102 lines
2.7 KiB
Nix
102 lines
2.7 KiB
Nix
{ pkgs, ... }:
|
|
|
|
{
|
|
imports = [ ./hardware.nix ];
|
|
|
|
time.timeZone = "Europe/Berlin";
|
|
|
|
networking = {
|
|
hostId = "b352adfe";
|
|
firewall.allowedTCPPorts = [ 25 143 465 587 993 4190 ];
|
|
};
|
|
|
|
# Machine-specific module settings
|
|
chvp = {
|
|
stateVersion = "20.09";
|
|
base = {
|
|
network.ovh = {
|
|
enable = true;
|
|
publicIPV4 = {
|
|
ip = "54.38.222.69";
|
|
gateway = "54.38.222.254";
|
|
};
|
|
publicIPV6 = {
|
|
ip = "2001:41d0:0700:1445::";
|
|
gateway = "2001:41d0:0700:14ff:ff:ff:ff:ff";
|
|
};
|
|
internalIPV4 = "192.168.0.2";
|
|
};
|
|
nix.enableDirenv = false;
|
|
zfs = {
|
|
backups = [{
|
|
path = "zroot/safe/data";
|
|
remotePath = "zdata/recv/lasting-integrity/safe/data";
|
|
fast = true;
|
|
location = "192.168.0.1";
|
|
}];
|
|
rootDataset = "zroot/local/root";
|
|
};
|
|
};
|
|
development = {
|
|
docker.enable = true;
|
|
git.enable = true;
|
|
};
|
|
games.tetris.server = true;
|
|
services = {
|
|
matrix.enable = true;
|
|
nginx = {
|
|
extraPostACMEScripts = [
|
|
''
|
|
cp fullchain.pem /data/root/mailcow/data/assets/ssl/cert.pem
|
|
cp key.pem /data/root/mailcow/data/assets/ssl/key.pem
|
|
pushd /data/root/mailcow
|
|
${pkgs.bash}/bin/bash -c "source mailcow.conf && ${pkgs.docker-compose}/bin/docker-compose restart"
|
|
popd
|
|
''
|
|
];
|
|
hosts = [
|
|
{
|
|
fqdn = "vanpetegem.me";
|
|
options = {
|
|
locations = let matrixRedirect = {
|
|
proxyPass = "http://127.0.0.1:8448";
|
|
extraConfig = ''
|
|
proxy_read_timeout 600;
|
|
client_max_body_size 10M;
|
|
proxy_set_header X-Forwarded-Ssl on;
|
|
'';
|
|
}; in
|
|
{
|
|
"/_matrix" = matrixRedirect;
|
|
"/.well-known/matrix" = matrixRedirect;
|
|
"/".return = "307 https://www.vanpetegem.me$request_uri";
|
|
};
|
|
};
|
|
}
|
|
{ fqdn = "www.vanpetegem.me"; }
|
|
{
|
|
fqdn = "cvpetegem.be";
|
|
options = {
|
|
locations."/".return = "307 https://www.cvpetegem.be$request_uri";
|
|
};
|
|
}
|
|
{ fqdn = "www.cvpetegem.be"; }
|
|
{
|
|
fqdn = "chvp.be";
|
|
options = {
|
|
locations."/".return = "307 https://www.chvp.be$request_uri";
|
|
};
|
|
}
|
|
{ fqdn = "www.chvp.be"; }
|
|
{
|
|
fqdn = "mail.vanpetegem.me";
|
|
basicProxy = "http://127.0.0.1:8080";
|
|
}
|
|
];
|
|
};
|
|
nextcloud.enable = true;
|
|
syncthing.enable = true;
|
|
tunnel.enable = true;
|
|
};
|
|
};
|
|
}
|