Compare commits
No commits in common. "3631ba11a8ee10f53e222f180f252943ca8e7df4" and "3ce9b625d1630bccef9cf89fe70a0f0c29e21063" have entirely different histories.
3631ba11a8
...
3ce9b625d1
4 changed files with 90 additions and 10 deletions
|
@ -109,6 +109,13 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# home-assistant = {
|
||||||
|
# enable = false;
|
||||||
|
# subdomain = "home";
|
||||||
|
# };
|
||||||
|
adguardhome = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.network = {
|
systemd.network = {
|
||||||
|
|
72
modules/nixos-modules/server/adguardhome.nix
Normal file
72
modules/nixos-modules/server/adguardhome.nix
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
dnsPort = 53;
|
||||||
|
in {
|
||||||
|
options.host.adguardhome = {
|
||||||
|
enable = lib.mkEnableOption "should ad guard home be enabled on this computer";
|
||||||
|
directory = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "/var/lib/AdGuardHome/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.host.adguardhome.enable (lib.mkMerge [
|
||||||
|
{
|
||||||
|
services.adguardhome = {
|
||||||
|
enable = true;
|
||||||
|
mutableSettings = false;
|
||||||
|
settings = {
|
||||||
|
dns = {
|
||||||
|
bootstrap_dns = [
|
||||||
|
"1.1.1.1"
|
||||||
|
"9.9.9.9"
|
||||||
|
];
|
||||||
|
upstream_dns = [
|
||||||
|
"dns.quad9.net"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
filtering = {
|
||||||
|
protection_enabled = true;
|
||||||
|
filtering_enabled = true;
|
||||||
|
|
||||||
|
parental_enabled = false; # Parental control-based DNS requests filtering.
|
||||||
|
safe_search = {
|
||||||
|
enabled = false; # Enforcing "Safe search" option for search engines, when possible.
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# The following notation uses map
|
||||||
|
# to not have to manually create {enabled = true; url = "";} for every filter
|
||||||
|
# This is, however, fully optional
|
||||||
|
filters =
|
||||||
|
map (url: {
|
||||||
|
enabled = true;
|
||||||
|
url = url;
|
||||||
|
}) [
|
||||||
|
"https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt"
|
||||||
|
"https://adguardteam.github.io/HostlistsRegistry/assets/filter_9.txt" # The Big List of Hacked Malware Web Sites
|
||||||
|
"https://adguardteam.github.io/HostlistsRegistry/assets/filter_11.txt" # malicious url blocklist
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
dnsPort
|
||||||
|
];
|
||||||
|
}
|
||||||
|
(lib.mkIf config.host.impermanence.enable {
|
||||||
|
environment.persistence."/persist/system/root" = {
|
||||||
|
enable = true;
|
||||||
|
hideMounts = true;
|
||||||
|
directories = [
|
||||||
|
{
|
||||||
|
directory = config.host.adguardhome.directory;
|
||||||
|
user = "adguardhome";
|
||||||
|
group = "adguardhome";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
})
|
||||||
|
]);
|
||||||
|
}
|
|
@ -9,6 +9,7 @@
|
||||||
./forgejo.nix
|
./forgejo.nix
|
||||||
./searx.nix
|
./searx.nix
|
||||||
./home-assistant.nix
|
./home-assistant.nix
|
||||||
|
./adguardhome.nix
|
||||||
./immich.nix
|
./immich.nix
|
||||||
./qbittorent.nix
|
./qbittorent.nix
|
||||||
];
|
];
|
||||||
|
|
|
@ -61,16 +61,16 @@ in {
|
||||||
bantime = 600;
|
bantime = 600;
|
||||||
maxretry = 5;
|
maxretry = 5;
|
||||||
};
|
};
|
||||||
home-assistant-iptables.settings = lib.mkIf config.services.home-assistant.enable {
|
# home-assistant-iptables.settings = lib.mkIf config.services.home-assistant.enable {
|
||||||
enabled = true;
|
# enabled = true;
|
||||||
filter = "hass";
|
# filter = "hass";
|
||||||
action = ''iptables-multiport[name=HTTP, port="http,https"]'';
|
# action = ''iptables-multiport[name=HTTP, port="http,https"]'';
|
||||||
logpath = "${config.services.home-assistant.configDir}/*.log";
|
# logpath = "${config.services.home-assistant.configDir}/*.log";
|
||||||
backend = "auto";
|
# backend = "auto";
|
||||||
findtime = 600;
|
# findtime = 600;
|
||||||
bantime = 600;
|
# bantime = 600;
|
||||||
maxretry = 5;
|
# maxretry = 5;
|
||||||
};
|
# };
|
||||||
# TODO; figure out if there is any fail2ban things we can do on searx
|
# TODO; figure out if there is any fail2ban things we can do on searx
|
||||||
# searx-iptables.settings = lib.mkIf config.services.searx.enable {};
|
# searx-iptables.settings = lib.mkIf config.services.searx.enable {};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue