nix-config/hosts/matemat/default.nix

73 lines
1.6 KiB
Nix

{ config, lib, pkgs, ... }:
{
c3d2.deployment.server = "server10";
microvm.mem = 2 * 1024;
networking.hostName = "matemat";
services = {
nginx = {
enable = true;
virtualHosts."matemat.hq.c3d2.de" = {
default = true;
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://localhost:3000";
# ip ranges duplicated with prometheus node exporter
extraConfig = ''
satisfy any;
auth_basic secured;
auth_basic_user_file ${config.sops.secrets."nginx/basic-auth".path};
allow 2a00:8180:2c00:200::/56;
allow 2a0f:5382:acab:1400::/56;
allow fd23:42:c3d2:500::/56;
allow 30c:c3d2:b946:76d0::/64;
allow 172.22.99.0/24;
allow 172.20.72.0/21;
deny all;
'';
};
};
};
postgresql = {
package = pkgs.postgresql_15;
upgrade.stopServices = [ "yammat" ];
};
yammat = {
enable = true;
config = lib.mkOptionDefault ''
copyright_link: "https://gitea.c3d2.de/c3d2/yammat"
'';
};
};
programs.msmtp = {
enable = true;
accounts.default = {
host = "mail.c3d2.de";
port = 587;
tls = true;
tls_starttls = true;
auth = false;
domain = "matemat.hq.c3d2.de";
from = "nek0@c3d2.de";
};
};
sops = {
defaultSopsFile = ./secrets.yaml;
secrets = {
"nginx/basic-auth".owner = "nginx";
"restic/password".owner = "root";
"restic/repository/server8".owner = "root";
};
};
system.stateVersion = "22.05";
}