aboutsummaryrefslogtreecommitdiff
path: root/modules/common
diff options
context:
space:
mode:
Diffstat (limited to 'modules/common')
-rw-r--r--modules/common/adguard/default.nix106
-rw-r--r--modules/common/default.nix45
-rw-r--r--modules/common/fonts/default.nix12
-rw-r--r--modules/common/gnupg/default.nix5
-rw-r--r--modules/common/i18n/default.nix20
-rw-r--r--modules/common/nh/default.nix9
-rw-r--r--modules/common/pipewire/default.nix12
-rw-r--r--modules/common/searx/default.nix115
-rw-r--r--modules/common/ssh/default.nix5
-rw-r--r--modules/common/users/default.nix20
-rw-r--r--modules/common/xserver/default.nix9
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";
+ };
+}
Directive (EU) 2019/790, Article 4(3); all rights regarding Text and Data Mining (TDM) are reserved.