Merge branch 'main' of https://git.mektem.com/Faris/nixos
This commit is contained in:
commit
fbabf36336
26
README.md
Normal file
26
README.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
# Faris' NixOS config
|
||||||
|
|
||||||
|
This flake includes the complete NixOS setup for all my computers.
|
||||||
|
|
||||||
|
It includes the configuration of zsh, neovim, tmux, etc across all the machines. On Linux desktops it uses the Gnome desktop environment. On the main server it uses podman (docker drop-in replacement) containers for all the services.
|
||||||
|
|
||||||
|
Feel free to take a look and I hope it can be used for inspiration.
|
||||||
|
|
||||||
|
To update the flake run:
|
||||||
|
```
|
||||||
|
sudo nix flake update
|
||||||
|
```
|
||||||
|
To rebuild and switch to the configuration, first copy over the *hardware.nix* which by default on a NixOS install will be at `/etc/nixos/hardware-configuration.nix` and then run one of the following
|
||||||
|
```
|
||||||
|
sudo nixos-rebuild switch --flake .#desktop
|
||||||
|
```
|
||||||
|
```
|
||||||
|
sudo darwin-rebuild switch --flake .#admins-MacBook-Air
|
||||||
|
```
|
||||||
|
```
|
||||||
|
sudo nixos-rebuild switch --flake .#nixos-server
|
||||||
|
```
|
||||||
|
```
|
||||||
|
sudo nixos-rebuild switch --flake .#nixos-server-nut
|
||||||
|
```
|
||||||
@ -11,51 +11,13 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Bootloader
|
|
||||||
#boot.loader.limine.enable = true;
|
|
||||||
#boot.loader.systemd-boot.enable = true;
|
|
||||||
#boot.loader.limine.secureBoot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
#programs.nix-ld = { enable = true; libraries = pkgs.steam-run.fhsenv.args.multiPkgs pkgs; }; # for dynamically links execs
|
|
||||||
|
|
||||||
# Enable networking
|
|
||||||
#networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "Europe/London";
|
time.timeZone = "Europe/London";
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
|
||||||
|
|
||||||
i18n.extraLocaleSettings = {
|
|
||||||
LC_ADDRESS = "en_GB.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_GB.UTF-8";
|
|
||||||
LC_MEASUREMENT = "en_GB.UTF-8";
|
|
||||||
LC_MONETARY = "en_GB.UTF-8";
|
|
||||||
LC_NAME = "en_GB.UTF-8";
|
|
||||||
LC_NUMERIC = "en_GB.UTF-8";
|
|
||||||
LC_PAPER = "en_GB.UTF-8";
|
|
||||||
LC_TELEPHONE = "en_GB.UTF-8";
|
|
||||||
LC_TIME = "en_GB.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.xserver.libinput.enable = true;
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users.admin = {
|
users.users.admin = {
|
||||||
isNormalUser = true;
|
|
||||||
description = "admin";
|
description = "admin";
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
extraGroups = [
|
|
||||||
#"networkmanager"
|
|
||||||
"wheel"
|
|
||||||
"adbusers" # adb
|
|
||||||
"kvm" # virt
|
|
||||||
"networkmanager"
|
|
||||||
"lp" #printing
|
|
||||||
];
|
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@ -86,68 +48,30 @@
|
|||||||
keep-derivations = true
|
keep-derivations = true
|
||||||
'';
|
'';
|
||||||
gc.automatic = true;
|
gc.automatic = true;
|
||||||
gc.randomizedDelaySec = "14m";
|
|
||||||
gc.options = "--delete-older-than 10d";
|
gc.options = "--delete-older-than 10d";
|
||||||
optimise.automatic = true;
|
optimise.automatic = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# unfree
|
# unfree
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
nixpkgs.config.allowUnfree = true;
|
||||||
# nvidia
|
|
||||||
"nvidia-x11"
|
|
||||||
"nvidia-settings"
|
|
||||||
# cuda
|
|
||||||
"cuda_cudart"
|
|
||||||
"cuda_nvcc"
|
|
||||||
"cuda_cccl"
|
|
||||||
"libcublas"
|
|
||||||
"cuda-merged"
|
|
||||||
"cuda_cuobjdump"
|
|
||||||
"cuda_gdb"
|
|
||||||
"cuda_nvdisasm"
|
|
||||||
"cuda_nvprune"
|
|
||||||
"cuda_cupti"
|
|
||||||
"cuda_cuxxfilt"
|
|
||||||
"cuda_nvml_dev"
|
|
||||||
"cuda_nvrtc"
|
|
||||||
"cuda_nvtx"
|
|
||||||
"cuda_profiler_api"
|
|
||||||
"cuda_sanitizer_api"
|
|
||||||
"libcufft"
|
|
||||||
"libcurand"
|
|
||||||
"libcusolver"
|
|
||||||
"libnvjitlink"
|
|
||||||
"libcusparse"
|
|
||||||
"libnpp"
|
|
||||||
# other
|
|
||||||
"proton-authenticator"
|
|
||||||
"obsidian"
|
|
||||||
"via"
|
|
||||||
"steam"
|
|
||||||
"steam-unwrapped"
|
|
||||||
"osu-lazer-bin"
|
|
||||||
"corefonts"
|
|
||||||
|
|
||||||
"claude-code"
|
|
||||||
|
|
||||||
"brgenml1lpr"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
zsh
|
zsh
|
||||||
htop
|
htop
|
||||||
fastfetch
|
fastfetch
|
||||||
restic
|
restic
|
||||||
nixpkgs-fmt
|
nixfmt
|
||||||
nixfmt-rfc-style
|
|
||||||
rsync
|
rsync
|
||||||
lm_sensors
|
|
||||||
pciutils # lspci
|
pciutils # lspci
|
||||||
usbutils # lsusb
|
usbutils # lsusb
|
||||||
nmap
|
nmap
|
||||||
tree
|
tree
|
||||||
p7zip
|
p7zip
|
||||||
|
unar
|
||||||
inetutils # telnet
|
inetutils # telnet
|
||||||
|
wget
|
||||||
|
dnsutils
|
||||||
|
iftop
|
||||||
|
|
||||||
# media
|
# media
|
||||||
yt-dlp
|
yt-dlp
|
||||||
@ -166,6 +90,14 @@
|
|||||||
man-pages-posix
|
man-pages-posix
|
||||||
];
|
];
|
||||||
|
|
||||||
# enable developer documenation
|
environment.shellAliases = {
|
||||||
documentation.dev.enable = true;
|
"server" = "ssh admin@192.168.0.30";
|
||||||
|
"desktop" = "ssh admin@192.168.30.40";
|
||||||
|
"server-nut" = "ssh admin@192.168.0.20";
|
||||||
|
"laptop" = "ssh admin@192.168.0.41";
|
||||||
|
|
||||||
|
".." = "cd ..";
|
||||||
|
"lsa" = "ls -al";
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,16 +35,6 @@
|
|||||||
services.tailscale.enable = true;
|
services.tailscale.enable = true;
|
||||||
services.printing.drivers = [ pkgs.brlaser pkgs.brgenml1lpr pkgs.brgenml1cupswrapper ];
|
services.printing.drivers = [ pkgs.brlaser pkgs.brgenml1lpr pkgs.brgenml1cupswrapper ];
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
|
||||||
services.pulseaudio.enable = false;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable automatic login for the user.
|
# Enable automatic login for the user.
|
||||||
# services.displayManager.autoLogin.enable = true;
|
# services.displayManager.autoLogin.enable = true;
|
||||||
# services.displayManager.autoLogin.user = "admin";
|
# services.displayManager.autoLogin.user = "admin";
|
||||||
@ -141,9 +131,9 @@
|
|||||||
element-desktop
|
element-desktop
|
||||||
chirp
|
chirp
|
||||||
scrcpy
|
scrcpy
|
||||||
|
veracrypt
|
||||||
# AI?
|
lmms
|
||||||
claude-code
|
restic-browser
|
||||||
|
|
||||||
# games
|
# games
|
||||||
heroic
|
heroic
|
||||||
@ -159,8 +149,7 @@
|
|||||||
openttd
|
openttd
|
||||||
xonotic
|
xonotic
|
||||||
osu-lazer-bin
|
osu-lazer-bin
|
||||||
#ufoai
|
ufoai
|
||||||
#inputs.nix-citizen.packages.${system}.rsi-launcher
|
|
||||||
|
|
||||||
# game utils
|
# game utils
|
||||||
mangohud
|
mangohud
|
||||||
@ -177,7 +166,6 @@
|
|||||||
|
|
||||||
# backup
|
# backup
|
||||||
keepassxc
|
keepassxc
|
||||||
jdk
|
|
||||||
];
|
];
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
@ -335,11 +323,4 @@
|
|||||||
virtualisation.spiceUSBRedirection.enable = true;
|
virtualisation.spiceUSBRedirection.enable = true;
|
||||||
|
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
# programs.nix-ld = {
|
|
||||||
# enable = true;
|
|
||||||
# libraries = with pkgs; [
|
|
||||||
# (pkgs.runCommand "steamrun-lib" {} "mkdir $out; ln -s ${pkgs.steam-run.fhsenv}/usr/lib64 $out/lib")
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
|
|||||||
47
config/linux.nix
Normal file
47
config/linux.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
# Enable sound with pipewire.
|
||||||
|
services.pulseaudio.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.admin = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [
|
||||||
|
#"networkmanager"
|
||||||
|
"wheel"
|
||||||
|
"adbusers" # adb
|
||||||
|
"kvm" # virt
|
||||||
|
"networkmanager"
|
||||||
|
"lp" #printing
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
|
|
||||||
|
i18n.extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_GB.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_GB.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_GB.UTF-8";
|
||||||
|
LC_MONETARY = "en_GB.UTF-8";
|
||||||
|
LC_NAME = "en_GB.UTF-8";
|
||||||
|
LC_NUMERIC = "en_GB.UTF-8";
|
||||||
|
LC_PAPER = "en_GB.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_GB.UTF-8";
|
||||||
|
LC_TIME = "en_GB.UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
lm_sensors
|
||||||
|
iotop
|
||||||
|
dmidecode
|
||||||
|
];
|
||||||
|
|
||||||
|
# enable developer documenation
|
||||||
|
documentation.dev.enable = true;
|
||||||
|
}
|
||||||
448
flake.lock
generated
448
flake.lock
generated
@ -1,186 +1,17 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"agenix": {
|
|
||||||
"inputs": {
|
|
||||||
"darwin": "darwin",
|
|
||||||
"home-manager": "home-manager",
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1762618334,
|
|
||||||
"narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
|
|
||||||
"owner": "ryantm",
|
|
||||||
"repo": "agenix",
|
|
||||||
"rev": "fcdea223397448d35d9b31f798479227e80183f6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ryantm",
|
|
||||||
"repo": "agenix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cachyos-kernel": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770052877,
|
|
||||||
"narHash": "sha256-Ejj9F2obMjVoy0Jsugw6txHFaR9ziuErYIt58cIJqzE=",
|
|
||||||
"owner": "CachyOS",
|
|
||||||
"repo": "linux-cachyos",
|
|
||||||
"rev": "1f8a79ffeac6f319a8c0fc3abad27a3ec7762abf",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "CachyOS",
|
|
||||||
"repo": "linux-cachyos",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cachyos-kernel-patches": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770051966,
|
|
||||||
"narHash": "sha256-udCJTbUAEZm5zBrr4zVVjpBLQtCC/vQlkIOLnEGr5Ik=",
|
|
||||||
"owner": "CachyOS",
|
|
||||||
"repo": "kernel-patches",
|
|
||||||
"rev": "bfa4ff5231408610ffcc92898cd1e4c9bd55e452",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "CachyOS",
|
|
||||||
"repo": "kernel-patches",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"darwin": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"agenix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1744478979,
|
|
||||||
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
|
|
||||||
"owner": "lnl7",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "lnl7",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767039857,
|
|
||||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769996383,
|
|
||||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"nix-citizen",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1768135262,
|
|
||||||
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_3": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1768135262,
|
|
||||||
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"agenix",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745494811,
|
"lastModified": 1775425411,
|
||||||
"narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=",
|
"narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be",
|
"rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769580047,
|
|
||||||
"narHash": "sha256-tNqCP/+2+peAXXQ2V8RwsBkenlfWMERb+Uy6xmevyhM=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "366d78c2856de6ab3411c15c1cb4fb4c2bf5c826",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -190,104 +21,55 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-cachyos-kernel": {
|
"home-manager-unstable": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"cachyos-kernel": "cachyos-kernel",
|
|
||||||
"cachyos-kernel-patches": "cachyos-kernel-patches",
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs-unstable"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770055712,
|
"lastModified": 1777258755,
|
||||||
"narHash": "sha256-VpbF4JDFPSW2crh0tP5EiegnuTkj3fACs0SLWDhlfPM=",
|
"narHash": "sha256-EC07KwADRE2LdIk7vEDyAaD3I0ZUq24T9jQF9L0iEPk=",
|
||||||
"owner": "xddxdd",
|
|
||||||
"repo": "nix-cachyos-kernel",
|
|
||||||
"rev": "220dce3edcb81188ecb896382699884243d1c2e3",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "xddxdd",
|
|
||||||
"ref": "release",
|
|
||||||
"repo": "nix-cachyos-kernel",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-citizen": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_2",
|
|
||||||
"nix-gaming": "nix-gaming",
|
|
||||||
"nix-github-actions": "nix-github-actions",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"systems": "systems_2",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769832985,
|
|
||||||
"narHash": "sha256-PKONM6JUGWviRsv3tZWj72HE0aeHKcHTrzTskj58MRM=",
|
|
||||||
"owner": "LovingMelody",
|
|
||||||
"repo": "nix-citizen",
|
|
||||||
"rev": "47823c1ea4c53153dabd43f08b26f3c67c557542",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "LovingMelody",
|
|
||||||
"repo": "nix-citizen",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-gaming": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_3",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nix-citizen",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769653948,
|
|
||||||
"narHash": "sha256-vOKkxlAREINxBVFzsj+8D3WZkoOPHLcjhweE0hDMwbg=",
|
|
||||||
"owner": "fufexan",
|
|
||||||
"repo": "nix-gaming",
|
|
||||||
"rev": "60855f0c988b2b4b787f54ddda18a3af44134623",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "fufexan",
|
|
||||||
"repo": "nix-gaming",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-github-actions": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nix-citizen",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737420293,
|
|
||||||
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
|
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-github-actions",
|
"repo": "home-manager",
|
||||||
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
|
"rev": "7f8bbc93d63401e41368d6ddc46a4f631610fa90",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-github-actions",
|
"ref": "master",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1775037210,
|
||||||
|
"narHash": "sha256-KM2WYj6EA7M/FVZVCl3rqWY+TFV5QzSyyGE2gQxeODU=",
|
||||||
|
"owner": "nix-darwin",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "06648f4902343228ce2de79f291dd5a58ee12146",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-darwin",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769302137,
|
"lastModified": 1776830795,
|
||||||
"narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=",
|
"narHash": "sha256-PAfvLwuHc1VOvsLcpk6+HDKgMEibvZjCNvbM1BJOA7o=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8",
|
"rev": "72674a6b5599e844c045ae7449ba91f803d44ebc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -299,89 +81,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754028485,
|
"lastModified": 1776734388,
|
||||||
"narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
|
"narHash": "sha256-vl3dkhlE5gzsItuHoEMVe+DlonsK+0836LIRDnm6MXQ=",
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "59e69648d345d6e8fef86158c555730fa12af9de",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-25.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769909678,
|
|
||||||
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "72716169fe93074c333e8d0173151350670b824c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765674936,
|
|
||||||
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-unstable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770107345,
|
|
||||||
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
|
"rev": "10e7ad5bbcb421fe07e3a4ad53a634b0cd57ffac",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769461804,
|
|
||||||
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770056022,
|
|
||||||
"narHash": "sha256-yvCz+Qmci1bVucXEyac3TdoSPMtjqVJmVy5wro6j/70=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "d04d8548aed39902419f14a8537006426dc1e4fa",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -391,67 +95,31 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1776329215,
|
||||||
|
"narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b86751bc4085f48661017fa226dee99fab6c651b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"home-manager": "home-manager",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager-unstable": "home-manager-unstable",
|
||||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
"nix-darwin": "nix-darwin",
|
||||||
"nix-citizen": "nix-citizen",
|
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nix-citizen",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769515380,
|
|
||||||
"narHash": "sha256-CWWK3PaQ7zhr+Jcf5zyaTR2cfRBXPo09H7+5nWApL8s=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "9911802c2822def2eec3d22e2cafd1619ede94a5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
30
flake.nix
30
flake.nix
@ -6,17 +6,22 @@
|
|||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
nixos-hardware.url = "github:nixos/nixos-hardware/master";
|
nixos-hardware.url = "github:nixos/nixos-hardware/master";
|
||||||
home-manager.url = "github:nix-community/home-manager/release-25.11";
|
home-manager.url = "github:nix-community/home-manager/release-25.11";
|
||||||
|
home-manager-unstable.url = "github:nix-community/home-manager/master";
|
||||||
|
home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
nix-darwin.url = "github:nix-darwin/nix-darwin/master";
|
||||||
|
nix-darwin.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{ self, nixpkgs, home-manager, ... }@inputs:
|
{ self, nixpkgs, home-manager, home-manager-unstable, nix-darwin, ... }@inputs:
|
||||||
{
|
{
|
||||||
nixosConfigurations.desktop = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.desktop = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {inherit inputs;};
|
specialArgs = {inherit inputs;};
|
||||||
#inherit system;
|
#inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
./config/common.nix
|
./config/common.nix
|
||||||
|
./config/linux.nix
|
||||||
./config/desktop.nix
|
./config/desktop.nix
|
||||||
./hosts/desktop/hardware.nix
|
./hosts/desktop/hardware.nix
|
||||||
./hosts/desktop/settings.nix
|
./hosts/desktop/settings.nix
|
||||||
@ -38,6 +43,7 @@
|
|||||||
specialArgs = {inherit inputs;};
|
specialArgs = {inherit inputs;};
|
||||||
modules = [
|
modules = [
|
||||||
./config/common.nix
|
./config/common.nix
|
||||||
|
./config/linux.nix
|
||||||
./hosts/server/hardware.nix
|
./hosts/server/hardware.nix
|
||||||
./hosts/server/settings.nix
|
./hosts/server/settings.nix
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
@ -53,6 +59,28 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
darwinConfigurations."admins-MacBook-Air" = nix-darwin.lib.darwinSystem {
|
||||||
|
modules = [
|
||||||
|
./config/common.nix
|
||||||
|
./hosts/macbook/settings.nix
|
||||||
|
home-manager-unstable.darwinModules.home-manager
|
||||||
|
{
|
||||||
|
users.users.admin = {
|
||||||
|
name = "admin";
|
||||||
|
home = "/Users/admin";
|
||||||
|
};
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.admin = {
|
||||||
|
home.stateVersion = "25.11";
|
||||||
|
imports = [
|
||||||
|
./home/common.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{ config, ...}:
|
{ config, pkgs, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
VISUAL = "nvim";
|
VISUAL = "nvim";
|
||||||
@ -8,6 +8,25 @@
|
|||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
|
||||||
|
mpv = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.mpv.override {
|
||||||
|
scripts = with pkgs.mpvScripts; [
|
||||||
|
sponsorblock
|
||||||
|
];
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
profile = "high-quality";
|
||||||
|
ytdl-format = "bestvideo+bestaudio";
|
||||||
|
cache-default = 4000000;
|
||||||
|
loop-file = "inf";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraInput = ''
|
||||||
|
r cycle_values video-rotate 90 180 270 0
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
neovim = {
|
neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
@ -57,8 +76,6 @@
|
|||||||
zsh = {
|
zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dotDir = "${config.xdg.configHome}/zsh";
|
dotDir = "${config.xdg.configHome}/zsh";
|
||||||
#enableCompletions = true;
|
|
||||||
#autosuggestions.enable = true;
|
|
||||||
syntaxHighlighting.enable = true;
|
syntaxHighlighting.enable = true;
|
||||||
oh-my-zsh = {
|
oh-my-zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@ -1,42 +1,7 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs = {
|
|
||||||
# chromium = {
|
|
||||||
# enable = true;
|
|
||||||
# package = pkgs.brave;
|
|
||||||
# commandLineArgs = [
|
|
||||||
# #"--sync-url='http://192.168.0.30:8295/v2'"
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
mpv = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = (
|
|
||||||
pkgs.mpv-unwrapped.wrapper {
|
|
||||||
scripts = with pkgs.mpvScripts; [
|
|
||||||
sponsorblock
|
|
||||||
];
|
|
||||||
|
|
||||||
mpv = pkgs.mpv-unwrapped.override {
|
|
||||||
waylandSupport = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
config = {
|
|
||||||
profile = "high-quality";
|
|
||||||
ytdl-format = "bestvideo+bestaudio";
|
|
||||||
cache-default = 4000000;
|
|
||||||
loop-file = "inf";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraInput = ''
|
|
||||||
r cycle_values video-rotate 90 180 270 0
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# add bookmarks for shared drives
|
# add bookmarks for shared drives
|
||||||
xdg.configFile."gtk-3.0/bookmarks" = {
|
xdg.configFile."gtk-3.0/bookmarks" = {
|
||||||
force = true;
|
force = true;
|
||||||
|
|||||||
368
home/podman.nix
368
home/podman.nix
@ -6,6 +6,30 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
systemd.user.services.podman-prune = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Prune unused Podman resources for admin user";
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${pkgs.podman}/bin/podman system prune -f --all";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.timers.podman-prune = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Weekly Podman prune timer";
|
||||||
|
};
|
||||||
|
Timer = {
|
||||||
|
OnCalendar = "weekly";
|
||||||
|
Persistent = true;
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "timers.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.podman.networks = {
|
services.podman.networks = {
|
||||||
internal_net = {
|
internal_net = {
|
||||||
driver = "bridge";
|
driver = "bridge";
|
||||||
@ -57,6 +81,50 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# akaunting = {
|
||||||
|
# image = "docker.io/akaunting/akaunting:latest";
|
||||||
|
# autoStart = true;
|
||||||
|
# autoUpdate = "registry";
|
||||||
|
# network = "internal_net";
|
||||||
|
# environmentFile = [
|
||||||
|
# "/pool/services/secrets/default"
|
||||||
|
# "/pool/services/secrets/akaunting"
|
||||||
|
# ];
|
||||||
|
# volumes = [
|
||||||
|
# "/pool/services/podman/akaunting/data:/var/www/html/akaunting"
|
||||||
|
# ];
|
||||||
|
# ports = [
|
||||||
|
# "8003:80"
|
||||||
|
# ];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# akaunting-db = {
|
||||||
|
# image = "docker.io/mariadb:latest";
|
||||||
|
# autoStart = true;
|
||||||
|
# autoUpdate = "registry";
|
||||||
|
# network = "internal_net";
|
||||||
|
# environmentFile = [
|
||||||
|
# "/pool/services/secrets/default"
|
||||||
|
# "/pool/services/secrets/akaunting"
|
||||||
|
# ];
|
||||||
|
# volumes = [
|
||||||
|
# "/pool/services/podman/akaunting/db:/var/lib/mysql"
|
||||||
|
# ];
|
||||||
|
# ports = [
|
||||||
|
# "3307:3306"
|
||||||
|
# ];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
archivebox = {
|
archivebox = {
|
||||||
image = "docker.io/archivebox/archivebox:latest";
|
image = "docker.io/archivebox/archivebox:latest";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
@ -94,75 +162,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
authentik-server = {
|
|
||||||
image = "ghcr.io/goauthentik/server:2026.2.1";
|
|
||||||
autoStart = true;
|
|
||||||
autoUpdate = "registry";
|
|
||||||
network = "internal_net";
|
|
||||||
exec = "server";
|
|
||||||
environmentFile = [
|
|
||||||
"/pool/services/secrets/default"
|
|
||||||
"/pool/services/secrets/authentik"
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
"/pool/services/podman/authentik/data:/data"
|
|
||||||
"/pool/services/podman/authentik/certs:/certs"
|
|
||||||
"/pool/services/podman/authentik/templates:/templates"
|
|
||||||
];
|
|
||||||
extraPodmanArgs = [
|
|
||||||
"--shm-size=256m"
|
|
||||||
];
|
|
||||||
extraConfig = {
|
|
||||||
Service = {
|
|
||||||
TimeoutStartSec = 900;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
authentik-postgresql = {
|
|
||||||
image = "docker.io/postgres:16-alpine";
|
|
||||||
autoStart = true;
|
|
||||||
autoUpdate = "registry";
|
|
||||||
network = "internal_net";
|
|
||||||
environmentFile = [
|
|
||||||
"/pool/services/secrets/default"
|
|
||||||
"/pool/services/secrets/authentik"
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
"/pool/services/podman/authentik/db:/var/lib/postgresql/data"
|
|
||||||
];
|
|
||||||
extraConfig = {
|
|
||||||
Service = {
|
|
||||||
TimeoutStartSec = 900;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
authentik-worker = {
|
|
||||||
image = "ghcr.io/goauthentik/server:2026.2.1";
|
|
||||||
autoStart = true;
|
|
||||||
autoUpdate = "registry";
|
|
||||||
network = "internal_net";
|
|
||||||
exec = "worker";
|
|
||||||
environmentFile = [
|
|
||||||
"/pool/services/secrets/default"
|
|
||||||
"/pool/services/secrets/authentik"
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
"/pool/services/podman/authentik/data:/data"
|
|
||||||
"/pool/services/podman/authentik/certs:/certs"
|
|
||||||
"/pool/services/podman/authentik/templates:/templates"
|
|
||||||
];
|
|
||||||
extraPodmanArgs = [
|
|
||||||
"--shm-size=256m"
|
|
||||||
];
|
|
||||||
extraConfig = {
|
|
||||||
Service = {
|
|
||||||
TimeoutStartSec = 900;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
caddy-local = {
|
caddy-local = {
|
||||||
image = "ghcr.io/caddybuilds/caddy-cloudflare:latest";
|
image = "ghcr.io/caddybuilds/caddy-cloudflare:latest";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
@ -188,6 +187,25 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cleanuparr = {
|
||||||
|
image = "ghcr.io/cleanuparr/cleanuparr:latest";
|
||||||
|
autoStart = true;
|
||||||
|
autoUpdate = "registry";
|
||||||
|
network = "internal_net";
|
||||||
|
environmentFile = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/services/podman/cleanuparr:/config"
|
||||||
|
"/pool/media/torrents:/downloads"
|
||||||
|
];
|
||||||
|
extraConfig = {
|
||||||
|
Service = {
|
||||||
|
TimeoutStartSec = 900;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
bazarr = {
|
bazarr = {
|
||||||
image = "lscr.io/linuxserver/bazarr:latest";
|
image = "lscr.io/linuxserver/bazarr:latest";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
@ -253,10 +271,14 @@
|
|||||||
autoStart = true;
|
autoStart = true;
|
||||||
autoUpdate = "registry";
|
autoUpdate = "registry";
|
||||||
network = "internal_net";
|
network = "internal_net";
|
||||||
environmentFile = [
|
environment = {
|
||||||
"/pool/services/secrets/default"
|
OIDC_ENABLED="1";
|
||||||
"/pool/services/secrets/freshrss"
|
OIDC_PROVIDER_METADATA_URL="https://authentik.mektem.com/application/o/fresh-rss/.well-known/openid-configuration";
|
||||||
];
|
OIDC_CLIENT_ID="PsqRnVLTezIKL7582E8pnKNFIF0W41kVyMhh4RoG";
|
||||||
|
OIDC_CLIENT_SECRET="h1XsvbUcRn33rq7qBBS0GUENEgn6zTJQeHpVPhzcqG4ekdwlCghIn1ALhydYXF1pfS8HaskM3KntHXDTC8a7athLxLzT95Gxr8OpvN9iOY75pUXrNnLJXUrY9o4qKM7m";
|
||||||
|
OIDC_X_FORWARDED_HEADERS="X-Forwarded-Port X-Forwarded-Proto X-Forwarded-Host";
|
||||||
|
OIDC_SCOPES="openid email profile";
|
||||||
|
};
|
||||||
volumes = [
|
volumes = [
|
||||||
"/pool/services/podman/freshrss:/config"
|
"/pool/services/podman/freshrss:/config"
|
||||||
];
|
];
|
||||||
@ -403,6 +425,9 @@
|
|||||||
volumes = [
|
volumes = [
|
||||||
"/pool/services/podman/immich/db:/var/lib/postgresql/data:z"
|
"/pool/services/podman/immich/db:/var/lib/postgresql/data:z"
|
||||||
];
|
];
|
||||||
|
ports = [
|
||||||
|
"5433:5432"
|
||||||
|
];
|
||||||
userNS = "keep-id";
|
userNS = "keep-id";
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
Service = {
|
Service = {
|
||||||
@ -423,6 +448,9 @@
|
|||||||
volumes = [
|
volumes = [
|
||||||
"/pool/services/podman/immich/cache:/cache"
|
"/pool/services/podman/immich/cache:/cache"
|
||||||
];
|
];
|
||||||
|
ports = [
|
||||||
|
"3003:3003"
|
||||||
|
];
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
Service = {
|
Service = {
|
||||||
TimeoutStartSec = 900;
|
TimeoutStartSec = 900;
|
||||||
@ -439,6 +467,9 @@
|
|||||||
"/pool/services/secrets/default"
|
"/pool/services/secrets/default"
|
||||||
"/pool/services/secrets/immich"
|
"/pool/services/secrets/immich"
|
||||||
];
|
];
|
||||||
|
ports = [
|
||||||
|
"6379:6379"
|
||||||
|
];
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
Service = {
|
Service = {
|
||||||
TimeoutStartSec = 900;
|
TimeoutStartSec = 900;
|
||||||
@ -508,6 +539,47 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# joplin = {
|
||||||
|
# image = "docker.io/joplin/server:latest";
|
||||||
|
# autoStart = true;
|
||||||
|
# autoUpdate = "registry";
|
||||||
|
# network = "internal_net";
|
||||||
|
# environmentFile = [
|
||||||
|
# "/pool/services/secrets/default"
|
||||||
|
# "/pool/services/secrets/joplin"
|
||||||
|
# ];
|
||||||
|
# ports = [
|
||||||
|
# "22300:22300"
|
||||||
|
# ];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# joplin-db = {
|
||||||
|
# image = "docker.io/postgres:15";
|
||||||
|
# autoStart = true;
|
||||||
|
# autoUpdate = "registry";
|
||||||
|
# network = "internal_net";
|
||||||
|
# environmentFile = [
|
||||||
|
# "/pool/services/secrets/default"
|
||||||
|
# "/pool/services/secrets/joplin"
|
||||||
|
# ];
|
||||||
|
# volumes = [
|
||||||
|
# "/pool/services/podman/joplin-db:/var/lib/postgresql/data"
|
||||||
|
# ];
|
||||||
|
# ports = [
|
||||||
|
# "5432:5432"
|
||||||
|
# ];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
kiwix = {
|
kiwix = {
|
||||||
image = "ghcr.io/kiwix/kiwix-serve:latest";
|
image = "ghcr.io/kiwix/kiwix-serve:latest";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
@ -567,6 +639,71 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# mastodon = {
|
||||||
|
# image = "ghcr.io/linuxserver/mastodon:amd64-latest";
|
||||||
|
# autoStart = true;
|
||||||
|
# autoUpdate = "registry";
|
||||||
|
# network = "internal_net";
|
||||||
|
# environmentFile = [
|
||||||
|
# "/pool/services/secrets/default"
|
||||||
|
# "/pool/services/secrets/mastodon"
|
||||||
|
# ];
|
||||||
|
# volumes = [
|
||||||
|
# "/pool/services/podman/mastodon/config:/config"
|
||||||
|
# ];
|
||||||
|
# ports = [
|
||||||
|
# "808:80"
|
||||||
|
# "8449:443"
|
||||||
|
# "3009:3000"
|
||||||
|
# ];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# mastodon-db = {
|
||||||
|
# image = "docker.io/postgres:16-alpine";
|
||||||
|
# autoStart = true;
|
||||||
|
# autoUpdate = "registry";
|
||||||
|
# network = "internal_net";
|
||||||
|
# environmentFile = [
|
||||||
|
# "/pool/services/secrets/default"
|
||||||
|
# "/pool/services/secrets/mastodon-db"
|
||||||
|
# ];
|
||||||
|
# volumes = [
|
||||||
|
# "/pool/services/podman/mastodon/db:/var/lib/postgresql/data"
|
||||||
|
# ];
|
||||||
|
# ports = [
|
||||||
|
# "5435:5432"
|
||||||
|
# ];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# mastodon-redis = {
|
||||||
|
# image = "registry.hub.docker.com/library/redis:6.2-alpine";
|
||||||
|
# autoStart = true;
|
||||||
|
# autoUpdate = "registry";
|
||||||
|
# network = "internal_net";
|
||||||
|
# environmentFile = [
|
||||||
|
# "/pool/services/secrets/default"
|
||||||
|
# ];
|
||||||
|
# ports = [
|
||||||
|
# "6382:6379"
|
||||||
|
# ];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
|
||||||
metube = {
|
metube = {
|
||||||
image = "ghcr.io/alexta69/metube:latest";
|
image = "ghcr.io/alexta69/metube:latest";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
@ -623,6 +760,88 @@
|
|||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
#nginx-proxy-manager = {
|
||||||
|
# image = "docker.io/jc21/nginx-proxy-manager:2.9.22";
|
||||||
|
# autoStart = true;
|
||||||
|
# autoUpdate = "registry";
|
||||||
|
# network = "internal_net";
|
||||||
|
# environmentFile = [
|
||||||
|
# "/pool/services/secrets/default"
|
||||||
|
# ];
|
||||||
|
# volumes = [
|
||||||
|
# "/pool/services/podman/nginx-proxy-manager:/data"
|
||||||
|
# "/pool/services/podman/letsencrypt:/etc/letsencrypt"
|
||||||
|
# ];
|
||||||
|
# ports = [
|
||||||
|
# "80:80"
|
||||||
|
# "443:443"
|
||||||
|
# "81:81"
|
||||||
|
# ];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
#};
|
||||||
|
|
||||||
|
nextcloud = {
|
||||||
|
image = "docker.io/nextcloud";
|
||||||
|
autoStart = true;
|
||||||
|
autoUpdate = "registry";
|
||||||
|
network = "internal_net";
|
||||||
|
environmentFile = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
"/pool/services/secrets/nextcloud"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/services/podman/nextcloud/app:/var/www/html"
|
||||||
|
];
|
||||||
|
extraConfig = {
|
||||||
|
Service = {
|
||||||
|
TimeoutStartSec = 900;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nextcloud-db = {
|
||||||
|
image = "docker.io/mariadb:10.6";
|
||||||
|
autoStart = true;
|
||||||
|
autoUpdate = "registry";
|
||||||
|
network = "internal_net";
|
||||||
|
exec = "--transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW";
|
||||||
|
environmentFile = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
"/pool/services/secrets/nextcloud"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/services/podman/nextcloud/db:/var/lib/mysql"
|
||||||
|
];
|
||||||
|
extraConfig = {
|
||||||
|
Service = {
|
||||||
|
TimeoutStartSec = 900;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ntfy = {
|
||||||
|
image = "docker.io/binwiederhier/ntfy";
|
||||||
|
autoStart = true;
|
||||||
|
autoUpdate = "registry";
|
||||||
|
network = "internal_net";
|
||||||
|
exec = "serve";
|
||||||
|
environmentFile = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
"/pool/services/secrets/ntfy"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/services/podman/ntfy:/var/lib/ntfy"
|
||||||
|
];
|
||||||
|
extraConfig = {
|
||||||
|
Service = {
|
||||||
|
TimeoutStartSec = 900;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
ntp = {
|
ntp = {
|
||||||
image = "docker.io/cturra/ntp";
|
image = "docker.io/cturra/ntp";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
@ -631,6 +850,9 @@
|
|||||||
environmentFile = [
|
environmentFile = [
|
||||||
"/pool/services/secrets/default"
|
"/pool/services/secrets/default"
|
||||||
];
|
];
|
||||||
|
ports = [
|
||||||
|
"123:123/udp"
|
||||||
|
];
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
Service = {
|
Service = {
|
||||||
TimeoutStartSec = 900;
|
TimeoutStartSec = 900;
|
||||||
|
|||||||
@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostName = "nixos-laptop";
|
|
||||||
interfaces.enp7s0 = {
|
|
||||||
ipv4.addresses = [
|
|
||||||
{
|
|
||||||
address = "192.168.0.41";
|
|
||||||
prefixLength = 24;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
defaultGateway = "192.168.0.1";
|
|
||||||
nameservers = [ "192.168.0.1" "1.1.1.1" ];
|
|
||||||
networkmanager.wifi.powersave = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
auto-cpufreq = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
battery = {
|
|
||||||
governor = "powersave";
|
|
||||||
turbo = "never";
|
|
||||||
};
|
|
||||||
charger = {
|
|
||||||
governor = "performance";
|
|
||||||
turbo = "auto";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# fwupdmgr update (bios updates)
|
|
||||||
fwupd.enable = true;
|
|
||||||
thermald.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
powerManagement.powertop.enable = true;
|
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
|
||||||
}
|
|
||||||
42
hosts/macbook/settings.nix
Normal file
42
hosts/macbook/settings.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||||
|
system.stateVersion = 6;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
audacity
|
||||||
|
brave
|
||||||
|
firefox
|
||||||
|
signal-desktop
|
||||||
|
protonmail-desktop
|
||||||
|
prismlauncher
|
||||||
|
localsend
|
||||||
|
anki
|
||||||
|
bitwarden-desktop
|
||||||
|
element-desktop
|
||||||
|
wireshark
|
||||||
|
inkscape
|
||||||
|
moonlight-qt
|
||||||
|
nvtopPackages.apple
|
||||||
|
vscodium
|
||||||
|
chirp
|
||||||
|
scrcpy
|
||||||
|
restic-browser
|
||||||
|
|
||||||
|
# games
|
||||||
|
unciv
|
||||||
|
wesnoth
|
||||||
|
osu-lazer-bin
|
||||||
|
|
||||||
|
# emu
|
||||||
|
ryubing
|
||||||
|
xemu
|
||||||
|
dolphin-emu
|
||||||
|
|
||||||
|
#backup
|
||||||
|
keepassxc
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
@ -59,6 +59,21 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
};
|
};
|
||||||
users.users.admin.linger = true;
|
users.users.admin.linger = true;
|
||||||
|
|
||||||
|
#services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
# hardware = {
|
||||||
|
# graphics.enable = true;
|
||||||
|
# nvidia = {
|
||||||
|
# modesetting.enable = true;
|
||||||
|
# powerManagement.enable = true;
|
||||||
|
# powerManagement.finegrained = false;
|
||||||
|
# open = false;
|
||||||
|
# nvidiaSettings = false;
|
||||||
|
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
|
# };
|
||||||
|
# nvidia-container-toolkit.enable = true;
|
||||||
|
# };
|
||||||
|
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true; # only needed if you run 32-bit apps
|
enable32Bit = true; # only needed if you run 32-bit apps
|
||||||
@ -138,6 +153,7 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
boot.supportedFilesystems = [ "zfs" ];
|
boot.supportedFilesystems = [ "zfs" ];
|
||||||
boot.zfs.forceImportRoot = false;
|
boot.zfs.forceImportRoot = false;
|
||||||
boot.zfs.extraPools = [ "pool" ];
|
boot.zfs.extraPools = [ "pool" ];
|
||||||
|
#environment.etc."zfs/keys/pool.key".source = config.age.secrets."zfs/pool.key".path;
|
||||||
|
|
||||||
services.zfs.autoScrub = {
|
services.zfs.autoScrub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -146,45 +162,15 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
|
|
||||||
services.smartd = {
|
services.smartd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
notifications = {
|
|
||||||
mail.enable = true;
|
|
||||||
mail.recipient = "faris@mektem.com";
|
|
||||||
};
|
|
||||||
#devices = [ "DEVICESCAN -a" ]; # autodetect all drives
|
#devices = [ "DEVICESCAN -a" ]; # autodetect all drives
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
programs.msmtp = {
|
|
||||||
enable = true;
|
|
||||||
accounts.default = {
|
|
||||||
auth = true;
|
|
||||||
tls = true;
|
|
||||||
host = "smtp.protonmail.ch";
|
|
||||||
port = 587;
|
|
||||||
from = "faris@mektem.com";
|
|
||||||
user = "faris@mektem.com";
|
|
||||||
passwordeval = "cat /pool/services/secrets/mail.txt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
environment.etc."zfs/zed-notify.sh" = {
|
|
||||||
mode = "0755";
|
|
||||||
text = ''
|
|
||||||
#!/bin/sh
|
|
||||||
# ZED calls: ZED_EMAIL_PROG "subject" "recipient"
|
|
||||||
SUBJECT="$1"
|
|
||||||
TO="$2"
|
|
||||||
(echo "Subject: $SUBJECT"; echo "To: $TO"; echo ""; cat) | \
|
|
||||||
${pkgs.msmtp}/bin/msmtp "$TO"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
services.zfs.zed = {
|
services.zfs.zed = {
|
||||||
enableMail = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
ZED_EMAIL_ADDR = [ "faris@mektem.com" ];
|
ZED_NTFY_URL="https://ntfy.mektem.com";
|
||||||
ZED_EMAIL_PROG = "/etc/zfs/zed-notify.sh"; # Or ssmtp
|
ZED_NTFY_TOPIC="zfs";
|
||||||
ZED_EMAIL_OPTS = "";
|
ZED_NTFY_ACCESS_TOKEN="tk_gtjia7itxhg1qik7j58wkgey2parr";
|
||||||
ZED_NOTIFY_INTERVAL_SECS = 3600;
|
ZED_NOTIFY_INTERVAL_SECS = 1;
|
||||||
ZED_NOTIFY_VERBOSE = true; # Set to false to only get alerts on degradation
|
ZED_NOTIFY_VERBOSE = true; # Set to false to only get alerts on degradation
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -274,29 +260,6 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
# headscale = {
|
|
||||||
# image = "docker.io/headscale/headscale:stable";
|
|
||||||
# autoStart = true;
|
|
||||||
# #utoUpdate = "registry";
|
|
||||||
# networks = [ "vlan50" ];
|
|
||||||
# cmd = [ "serve" ];
|
|
||||||
# environmentFiles = [
|
|
||||||
# "/pool/services/secrets/default"
|
|
||||||
# ];
|
|
||||||
# volumes = [
|
|
||||||
# "/pool/services/podman/headscale/config:/etc/headscale:ro"
|
|
||||||
# "/pool/services/podman/headscale/lib:/var/lib/headscale"
|
|
||||||
# ];
|
|
||||||
# extraOptions = [
|
|
||||||
# "--ip=192.168.50.38"
|
|
||||||
# ];
|
|
||||||
# #extraConfig = {
|
|
||||||
# # Service = {
|
|
||||||
# # TimeoutStartSec = 900;
|
|
||||||
# # };
|
|
||||||
# ##};
|
|
||||||
# };
|
|
||||||
|
|
||||||
matrix = {
|
matrix = {
|
||||||
image = "ghcr.io/element-hq/synapse";
|
image = "ghcr.io/element-hq/synapse";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
@ -342,29 +305,6 @@ systemd.services.podman-network-vlan50 = {
|
|||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
ntfy = {
|
|
||||||
image = "docker.io/binwiederhier/ntfy";
|
|
||||||
autoStart = true;
|
|
||||||
#autoUpdate = "registry";
|
|
||||||
networks = [ "vlan50" ];
|
|
||||||
cmd = [ "serve" ];
|
|
||||||
environmentFiles = [
|
|
||||||
"/pool/services/secrets/default"
|
|
||||||
"/pool/services/secrets/ntfy"
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
"/pool/services/podman/ntfy:/var/lib/ntfy"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--ip=192.168.50.35"
|
|
||||||
];
|
|
||||||
# extraConfig = {
|
|
||||||
# Service = {
|
|
||||||
# TimeoutStartSec = 900;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
|
|
||||||
privatebin = {
|
privatebin = {
|
||||||
image = "docker.io/privatebin/nginx-fpm-alpine:latest";
|
image = "docker.io/privatebin/nginx-fpm-alpine:latest";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|||||||
@ -1,2 +0,0 @@
|
|||||||
nix flake update
|
|
||||||
sudo nixos-rebuild switch --flake .#desktop
|
|
||||||
Loading…
x
Reference in New Issue
Block a user