dnsmasq
This commit is contained in:
parent
4ee6c7957c
commit
2e60504041
3 changed files with 54 additions and 23 deletions
19
common.nix
19
common.nix
|
|
@ -59,7 +59,26 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
sbctl
|
sbctl
|
||||||
];
|
];
|
||||||
|
systemd.tmpfiles.rules = [ "d /srv/tftp 0755 root root -" ];
|
||||||
services = {
|
services = {
|
||||||
logind.settings.Login.HandleLidSwitch = "ignore";
|
logind.settings.Login.HandleLidSwitch = "ignore";
|
||||||
|
dnsmasq = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
enable-ra = true;
|
||||||
|
no-resolv = true;
|
||||||
|
cache-size = 1024;
|
||||||
|
bogus-priv = true;
|
||||||
|
enable-tftp = true;
|
||||||
|
interface = "enp1s0";
|
||||||
|
domain-needed = true;
|
||||||
|
tftp-root = "/srv/tftp";
|
||||||
|
dhcp-boot = "grubx64.efi";
|
||||||
|
dhcp-range = [ "10.2.0.2,10.2.255.254,12h"
|
||||||
|
"fc02::2,fc02::ffff:ffff:ffff:ffff,12h" ];
|
||||||
|
server = [ "1.0.0.1" "2606:4700:4700::1001"
|
||||||
|
"1.1.1.1" "2606:4700:4700::1111" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
marks
3
marks
|
|
@ -12,5 +12,6 @@ nixos-install --flake "/mnt/etc/nixos#nixos" --no-channel-copy --no-root-passwd
|
||||||
systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+2+7 <LUKS_DEV>
|
systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+2+7 <LUKS_DEV>
|
||||||
|
|
||||||
todo:
|
todo:
|
||||||
- postfix, dovecot, rspamd
|
- ssh-add, rspamd
|
||||||
|
- email tracking
|
||||||
- gitea, mediawiki
|
- gitea, mediawiki
|
||||||
|
|
|
||||||
|
|
@ -16,14 +16,24 @@
|
||||||
};
|
};
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "nixos-server";
|
hostName = "nixos-server";
|
||||||
networkmanager.ensureProfiles.profiles.home-wifi = {
|
|
||||||
wifi.ssid = "bogale_2.4";
|
|
||||||
wifi-security.psk = "$BOGALE_2_4_PSK";
|
|
||||||
};
|
|
||||||
firewall = {
|
firewall = {
|
||||||
allowedTCPPorts = [ 25 80 443 587 993 ];
|
allowedTCPPorts = [ 25 80 443 587 993 ];
|
||||||
allowedUDPPorts = [ 443 ];
|
allowedUDPPorts = [ 443 ];
|
||||||
};
|
};
|
||||||
|
networkmanager.ensureProfiles.profiles.home-wifi = {
|
||||||
|
wifi.ssid = "bogale_2.4";
|
||||||
|
wifi-security.psk = "$BOGALE_2_4_PSK";
|
||||||
|
ipv4 = {
|
||||||
|
method = "manual";
|
||||||
|
gateway = "10.1.0.1";
|
||||||
|
addresses = "10.1.0.2/16";
|
||||||
|
};
|
||||||
|
ipv6 = {
|
||||||
|
method = "manual";
|
||||||
|
gateway = "fc01::1";
|
||||||
|
addresses = "fc01::2/64";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
|
|
@ -32,8 +42,8 @@
|
||||||
dnsProvider = "cloudflare";
|
dnsProvider = "cloudflare";
|
||||||
email = "letsencrypt@bogaledev.ru";
|
email = "letsencrypt@bogaledev.ru";
|
||||||
extraDomainNames = [ "*.bogaledev.ru" ];
|
extraDomainNames = [ "*.bogaledev.ru" ];
|
||||||
reloadServices = [ "nginx.service" "dovecot.service" "postfix.service" ];
|
|
||||||
credentialFiles = { "CF_DNS_API_TOKEN_FILE" = "/secrets/cf-token"; };
|
credentialFiles = { "CF_DNS_API_TOKEN_FILE" = "/secrets/cf-token"; };
|
||||||
|
reloadServices = [ "nginx.service" "dovecot.service" "postfix.service" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
systemd = {
|
systemd = {
|
||||||
|
|
@ -91,6 +101,20 @@
|
||||||
"listen.group" = "nginx";
|
"listen.group" = "nginx";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
vaultwarden = {
|
||||||
|
enable = true;
|
||||||
|
dbBackend = "postgresql";
|
||||||
|
configurePostgres = true;
|
||||||
|
package = pkgs.vaultwarden-postgresql;
|
||||||
|
environmentFile = "/secrets/vaultwarden.env";
|
||||||
|
config = {
|
||||||
|
SIGNUPS_ALLOWED = false;
|
||||||
|
TRASH_AUTO_DELETE_DAYS = 90;
|
||||||
|
PASSWORD_HINTS_ALLOWED = false;
|
||||||
|
EMERGENCY_ACCESS_ALLOWED = false;
|
||||||
|
DOMAIN = "https://bogaledev.ru/vw";
|
||||||
|
};
|
||||||
|
};
|
||||||
dovecot2 = {
|
dovecot2 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
@ -99,12 +123,12 @@
|
||||||
mail_uid = "vmail";
|
mail_uid = "vmail";
|
||||||
protocols.imap = true;
|
protocols.imap = true;
|
||||||
mail_driver = "maildir";
|
mail_driver = "maildir";
|
||||||
mail_path = "/var/mail/vmail";
|
|
||||||
auth_mechanisms = [ "plain" ];
|
auth_mechanisms = [ "plain" ];
|
||||||
dovecot_config_version = "2.4.5";
|
|
||||||
dovecot_storage_version = "2.4.5";
|
dovecot_storage_version = "2.4.5";
|
||||||
|
mail_path = "/var/spool/mail/vmail";
|
||||||
ssl_server_key_file = "${sslCertDir}/key.pem";
|
ssl_server_key_file = "${sslCertDir}/key.pem";
|
||||||
ssl_server_cert_file = "${sslCertDir}/fullchain.pem";
|
ssl_server_cert_file = "${sslCertDir}/fullchain.pem";
|
||||||
|
dovecot_config_version = config.services.dovecot2.package.version;
|
||||||
"passdb passwd-file".passwd_file_path = "/secrets/dovecot-passwd";
|
"passdb passwd-file".passwd_file_path = "/secrets/dovecot-passwd";
|
||||||
"service auth"."unix_listener ${saslSocket}" = {
|
"service auth"."unix_listener ${saslSocket}" = {
|
||||||
mode = "0660";
|
mode = "0660";
|
||||||
|
|
@ -143,20 +167,6 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
vaultwarden = {
|
|
||||||
enable = true;
|
|
||||||
dbBackend = "postgresql";
|
|
||||||
configurePostgres = true;
|
|
||||||
package = pkgs.vaultwarden-postgresql;
|
|
||||||
environmentFile = "/secrets/vaultwarden.env";
|
|
||||||
config = {
|
|
||||||
SIGNUPS_ALLOWED = false;
|
|
||||||
TRASH_AUTO_DELETE_DAYS = 90;
|
|
||||||
PASSWORD_HINTS_ALLOWED = false;
|
|
||||||
EMERGENCY_ACCESS_ALLOWED = false;
|
|
||||||
DOMAIN = "https://bogaledev.ru/vw";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nginx = {
|
nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
recommendedTlsSettings = true;
|
recommendedTlsSettings = true;
|
||||||
|
|
@ -181,8 +191,9 @@
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
allow fc00::/64;
|
allow fc00::/64;
|
||||||
|
allow fc01::/64;
|
||||||
allow 10.0.0.0/24;
|
allow 10.0.0.0/24;
|
||||||
allow 192.168.1.0/24;
|
allow 10.1.0.0/24;
|
||||||
deny all;
|
deny all;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue