65 lines
1.9 KiB
Nix
65 lines
1.9 KiB
Nix
{ 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";
|
|
};
|
|
};
|
|
}
|