diff options
Diffstat (limited to '')
| -rw-r--r-- | modules/common/adguard/default.nix | 106 | ||||
| -rw-r--r-- | modules/common/default.nix | 45 | ||||
| -rw-r--r-- | modules/common/fonts/default.nix | 12 | ||||
| -rw-r--r-- | modules/common/gnupg/default.nix | 5 | ||||
| -rw-r--r-- | modules/common/i18n/default.nix | 20 | ||||
| -rw-r--r-- | modules/common/nh/default.nix | 9 | ||||
| -rw-r--r-- | modules/common/pipewire/default.nix | 12 | ||||
| -rw-r--r-- | modules/common/searx/default.nix | 115 | ||||
| -rw-r--r-- | modules/common/ssh/default.nix | 5 | ||||
| -rw-r--r-- | modules/common/users/default.nix | 20 | ||||
| -rw-r--r-- | modules/common/xserver/default.nix | 9 |
11 files changed, 358 insertions, 0 deletions
diff --git a/modules/common/adguard/default.nix b/modules/common/adguard/default.nix new file mode 100644 index 0000000..9929bc1 --- /dev/null +++ b/modules/common/adguard/default.nix @@ -0,0 +1,106 @@ +{ config, lib, ... }: +{ + services = { + adguardhome = { + enable = false; + openFirewall = false; + mutableSettings = false; + + settings = { + http = { + address = "127.0.0.1:3000"; + }; + + dns = { + bind_hosts = [ "10.0.0.5" "127.0.0.1" ]; + port = 53; + + upstream_dns = [ + "9.9.9.9" + "149.112.112.112" + ]; + fallback_dns = [ + "1.1.1.1" + "1.0.0.1" + ]; + bootstrap_dns = [ + "9.9.9.9" + "149.112.112.112" + ]; + }; + + filtering = { + rewrites = [ + # jellyfin + { + domain = "media.internal"; + answer = "10.0.0.5"; + } + # immich + { + domain = "photos.internal"; + answer = "10.0.0.5"; + } + # calibre-web + { + domain = "library.internal"; + answer = "10.0.0.5"; + } + # searxng + { + domain = "search.internal"; + answer = "10.0.0.5"; + } + # ollama api + { + domain = "ollama.internal"; + answer = "10.0.0.5"; + } + # open-webui + { + domain = "chat.internal"; + answer = "10.0.0.5"; + } + # forgejo + { + domain = "forge.internal"; + answer = "10.0.0.5"; + } + # cgit + { + domain = "code.internal"; + answer = "10.0.0.5"; + } + # adguard + { + domain = "dns.internal"; + answer = "10.0.0.5"; + } + # grafana + { + domain = "monitor.internal"; + answer = "10.0.0.5"; + } + ]; + }; + }; + }; + + nginx.virtualHosts = { + "dns.internal" = { + locations."/" = { + proxyPass = "http://127.0.0.1:3000"; + proxyWebsockets = true; + }; + }; + }; + }; + + # networking = { + # nameservers = [ + # "9.9.9.9" + # "127.0.0.1" + # "10.0.0.5" + # ]; + # }; +} diff --git a/modules/common/default.nix b/modules/common/default.nix new file mode 100644 index 0000000..f34cd8f --- /dev/null +++ b/modules/common/default.nix @@ -0,0 +1,45 @@ +{ config, pkgs, ... }: +{ + imports =[ + # names are self explanatory + ./adguard + ./fonts + ./gnupg + ./i18n + ./nh + ./pipewire + ./searx + ./ssh + ./users + ./xserver + ]; + + nix = { + settings = { + # Enable flakes + experimental-features = [ "nix-command" "flakes" ]; + + # Optimize storage + auto-optimise-store = true; + }; + }; + + # Allow unfree packages + nixpkgs = { + config.allowUnfree = true; + }; + + # List packages installed in system profile. + # These should be tools in case user tools brake. + # To search, run: + # $ nix search <pkgname> + # or + # $ nh search <pkgname> + environment.systemPackages = with pkgs; [ + alacritty + git + helix + xdg-utils + ]; +} + diff --git a/modules/common/fonts/default.nix b/modules/common/fonts/default.nix new file mode 100644 index 0000000..bf1c91d --- /dev/null +++ b/modules/common/fonts/default.nix @@ -0,0 +1,12 @@ +{ config, pkgs, ... }: +{ + fonts.packages = with pkgs; [ + corefonts + font-awesome + font-awesome_5 + maple-mono.NF-CN + noto-fonts + noto-fonts-cjk-sans + noto-fonts-emoji + ]; +} diff --git a/modules/common/gnupg/default.nix b/modules/common/gnupg/default.nix new file mode 100644 index 0000000..fc6e537 --- /dev/null +++ b/modules/common/gnupg/default.nix @@ -0,0 +1,5 @@ +{ + programs.gnupg.agent = { + enable = true; + }; +} diff --git a/modules/common/i18n/default.nix b/modules/common/i18n/default.nix new file mode 100644 index 0000000..786332c --- /dev/null +++ b/modules/common/i18n/default.nix @@ -0,0 +1,20 @@ +{ config, ... }: + +# Locale generation +{ + i18n = { + defaultLocale = "en_US.UTF-8"; + + extraLocaleSettings = { + LC_ADDRESS = "el_GR.UTF-8"; + LC_IDENTIFICATION = "el_GR.UTF-8"; + LC_MEASUREMENT = "el_GR.UTF-8"; + LC_MONETARY = "el_GR.UTF-8"; + LC_NAME = "el_GR.UTF-8"; + LC_NUMERIC = "el_GR.UTF-8"; + LC_PAPER = "el_GR.UTF-8"; + LC_TELEPHONE = "el_GR.UTF-8"; + LC_TIME = "el_GR.UTF-8"; + }; + }; +} diff --git a/modules/common/nh/default.nix b/modules/common/nh/default.nix new file mode 100644 index 0000000..a5e09ac --- /dev/null +++ b/modules/common/nh/default.nix @@ -0,0 +1,9 @@ +{ config, pkgs, ... }: +{ + programs.nh = { + enable = true; + clean.enable = true; + + flake = "/home/aethrvmn/.nix/"; + }; +} diff --git a/modules/common/pipewire/default.nix b/modules/common/pipewire/default.nix new file mode 100644 index 0000000..311cf94 --- /dev/null +++ b/modules/common/pipewire/default.nix @@ -0,0 +1,12 @@ +{ + security.rtkit.enable = true; + + services.pipewire = { + enable = true; + + audio.enable = true; + pulse.enable = true; + alsa.enable = true; + jack.enable = true; + }; +} diff --git a/modules/common/searx/default.nix b/modules/common/searx/default.nix new file mode 100644 index 0000000..659c700 --- /dev/null +++ b/modules/common/searx/default.nix @@ -0,0 +1,115 @@ +{ config, pkgs, lib, ... }: +{ + services = { + searx = { + enable = true; + package = pkgs.searxng; + + settings = { + server = { + port = 3040; + bind_address = "127.0.0.1"; + secret_key = "secret_key"; + }; + + general = { + debug = false; + instance_name = "SearXNG Instance"; + donation_url = false; + contact_url = false; + privacypolicy_url = false; + enable_metrics = false; + autocomplete = "startpage"; + }; + + # Search engines + engines = lib.mapAttrsToList (name: value: { inherit name; } // value) { + # main boys + "brave" = { + disabled = false; + weight = 0.8; + }; + "duckduckgo" = { + disabled = false; + weight = 0.8; + }; + "ecosia" = { + disabled = false; + weight = 0.7; + }; + "mojeek" = { + disabled = true; + weight = 0.4; + }; + "qwant" = { + disabled = false; + weight = 0.4; + }; + "startpage" = { + disabled = false; + weight = 1; + }; + "wiby" = { + disabled = false; + weight = 0.4; + }; + + # + "openverse".disabled = false; + + # repos + "bitbucket".disabled = false; + "codeberg".disabled = false; + "gitea.com".disabled = false; + "github".disabled = false; + "gitlab".disabled = false; + "huggingface".disabled = false; + "huggingface datasets".disabled = false; + "huggingface spaces".disabled = false; + "ollama".disabled = false; + "sourcehut".disabled = false; + + # software wikis + "gentoo".disabled = false; + "nixos wiki".disabled = false; + "arch linux wiki".disabled = false; + "free software directory".disabled = false; + + # IT etc + "mankier".disabled = false; + "searchcode code".disabled = false; + + # wikimedia + "wikidata".disabled = false; + "wikibooks".disabled = false; + "wikiquote".disabled = false; + "wikisource".disabled = false; + "wikivoyage".disabled = false; + "wikispecies".disabled = false; + "wikiversity".disabled = false; + "wikicommons".disabled = false; + + # translate + "mozhi".disabled = false; + "lingva".disabled = false; + "dictzone".disabled = false; + "libretranslate".disabled = false; + + # # scams/don't trusts + "bing".disabled = true; + "yahoo".disabled = true; + "google".disabled = true; + }; + }; + }; + + nginx.virtualHosts = { + "search.internal" = { + locations."/" = { + proxyPass = "http://127.0.0.1:3040"; + proxyWebsockets = true; + }; + }; + }; + }; +} diff --git a/modules/common/ssh/default.nix b/modules/common/ssh/default.nix new file mode 100644 index 0000000..70b67e2 --- /dev/null +++ b/modules/common/ssh/default.nix @@ -0,0 +1,5 @@ +{ + programs.ssh = { + startAgent = true; + }; +} diff --git a/modules/common/users/default.nix b/modules/common/users/default.nix new file mode 100644 index 0000000..6f086c7 --- /dev/null +++ b/modules/common/users/default.nix @@ -0,0 +1,20 @@ +{ config, pkgs, ... }: + +# User configuration +{ + users = { + defaultUserShell = pkgs.zsh; + + users.aethrvmn = { + isNormalUser = true; + extraGroups = [ "networkmanager" "video" "wheel" ]; + password = "gg"; + + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFTRmMBlTFJbOWQBLI9XS2HMdUSlsAcaQ6vWjLpfweEo aethrvmn@apotheke.earth" + ]; + }; + }; + + programs.zsh.enable = true; +} diff --git a/modules/common/xserver/default.nix b/modules/common/xserver/default.nix new file mode 100644 index 0000000..7249ae2 --- /dev/null +++ b/modules/common/xserver/default.nix @@ -0,0 +1,9 @@ +{ config, pkgs, ... }: + +# XServer +{ + services.xserver.xkb = { + layout = "us, gr"; + options = "grp:alt_shift_toggle"; + }; +} |
