{ config, lib, pkgs, ... }: { boot.kernelParams = [ "consoleblank=60" ]; imports = [ ../common.nix ./hardware.nix ./mods/web.nix ./mods/mail.nix ./mods/system.nix ]; security.acme = { acceptTerms = true; defaults.email = "letsencrypt@bogaledev.ru"; certs."bogaledev.ru" = { validMinDays = 3; dnsProvider = "cloudflare"; extraDomainNames = [ "*.bogaledev.ru" ]; credentialFiles = { "CF_DNS_API_TOKEN_FILE" = "/secrets/cf-token"; }; reloadServices = [ "nginx.service" "dovecot.service" "postfix.service" ]; }; }; systemd.tmpfiles.rules = [ "d /root/backup/server" "L /root/backup/server/http - - - - /srv/http" "L /root/backup/server/acme - - - - /var/lib/acme" "L /root/backup/server/mail - - - - /var/spool/mail" "L /root/backup/server/forgejo - - - - /var/lib/forgejo/dump" "L /root/backup/server/vaultwarden - - - - /var/lib/vaultwarden" "L /root/backup/server/postgresql - - - - /var/backup/postgresql" ]; users = { groups = { php.gid = 1568; vmail.gid = 1819; }; users = { nginx.extraGroups = [ "php" "acme" ]; php = { uid = 1568; group = "php"; isSystemUser = true; }; vmail = { uid = 1819; group = "vmail"; isSystemUser = true; }; root.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+wc+3rahpNa+OMS9gaWgMQIxXIKHy4Beku5LBDt+Ow" ]; }; }; networking = { hostName = "nixos-server"; firewall = { allowedUDPPorts = [ 443 ]; allowedTCPPorts = [ 25 443 465 993 ]; }; wg-quick.interfaces.awg0 = { configFile = "/secrets/awg/1.conf"; address = [ "fc00::2/128" "10.0.0.2/32" ]; }; networkmanager.ensureProfiles.profiles.wifi = { wifi.ssid = "bogale_2.4"; ipv6.addresses = "fc01::2/64"; ipv4.addresses = "10.1.0.2/16"; wifi-security.psk = "$BOGALE_2_4_PSK"; }; }; }