Initial commit - Reset history due to secrets
This commit is contained in:
commit
64c15d5260
171
config/common.nix
Normal file
171
config/common.nix
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
home-manager,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
# 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.
|
||||||
|
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’.
|
||||||
|
users.users.admin = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "admin";
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
extraGroups = [
|
||||||
|
#"networkmanager"
|
||||||
|
"wheel"
|
||||||
|
"adbusers" # adb
|
||||||
|
"kvm" # virt
|
||||||
|
"networkmanager"
|
||||||
|
"lp" #printing
|
||||||
|
];
|
||||||
|
packages = with pkgs; [
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Enable the OpenSSH daemon.
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
zsh.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
extraOptions = ''
|
||||||
|
keep-outputs = true
|
||||||
|
keep-derivations = true
|
||||||
|
'';
|
||||||
|
gc.automatic = true;
|
||||||
|
gc.randomizedDelaySec = "14m";
|
||||||
|
gc.options = "--delete-older-than 10d";
|
||||||
|
optimise.automatic = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# unfree
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
|
# 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; [
|
||||||
|
zsh
|
||||||
|
htop
|
||||||
|
fastfetch
|
||||||
|
restic
|
||||||
|
nixpkgs-fmt
|
||||||
|
nixfmt-rfc-style
|
||||||
|
rsync
|
||||||
|
lm_sensors
|
||||||
|
pciutils # lspci
|
||||||
|
usbutils # lsusb
|
||||||
|
nmap
|
||||||
|
tree
|
||||||
|
p7zip
|
||||||
|
inetutils # telnet
|
||||||
|
|
||||||
|
# media
|
||||||
|
yt-dlp
|
||||||
|
exiftool
|
||||||
|
mediainfo
|
||||||
|
ffmpeg-full
|
||||||
|
|
||||||
|
# barcodes
|
||||||
|
qrencode
|
||||||
|
zbar
|
||||||
|
barcode
|
||||||
|
ghostscript
|
||||||
|
|
||||||
|
# documenation
|
||||||
|
man-pages
|
||||||
|
man-pages-posix
|
||||||
|
];
|
||||||
|
|
||||||
|
# enable developer documenation
|
||||||
|
documentation.dev.enable = true;
|
||||||
|
}
|
||||||
341
config/desktop.nix
Normal file
341
config/desktop.nix
Normal file
@ -0,0 +1,341 @@
|
|||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
#system.includeBuildDependencies = true; # THIS CAN'T BE INCLUDED IN COMMON YET BECAUSE SERVER DOES NOT HAVE ENOUGH STORAGE
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable the X11 windowing system.
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
# Enable the GNOME Desktop Environment.
|
||||||
|
services.displayManager.gdm.enable = false; # use sddm until gnome 50 due to https://github.com/systemd/systemd/issues/39259
|
||||||
|
services.displayManager.sddm.enable = true;
|
||||||
|
services.desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
|
# Configure keymap in X11
|
||||||
|
services.xserver.xkb = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
services.printing.enable = true;
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
services.tailscale.enable = true;
|
||||||
|
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.
|
||||||
|
# services.displayManager.autoLogin.enable = true;
|
||||||
|
# services.displayManager.autoLogin.user = "admin";
|
||||||
|
# services.gnome.gnome-keyring.enable = true;
|
||||||
|
# security.pam.services.gdm.enableGnomeKeyring = true; #unlock PAM
|
||||||
|
|
||||||
|
# Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
|
||||||
|
systemd.services."getty@tty1".enable = false;
|
||||||
|
systemd.services."autovt@tty1".enable = false;
|
||||||
|
|
||||||
|
#services.xserver.desktopManager.retroarch.extraArgs = [
|
||||||
|
# "--config=/mnt/services/emulators/retroarch/retroarch.cfg"
|
||||||
|
#];
|
||||||
|
|
||||||
|
services.ollama = {
|
||||||
|
enable = true;
|
||||||
|
acceleration = "cuda";
|
||||||
|
openFirewall = true;
|
||||||
|
host = "0.0.0.0";
|
||||||
|
# Optional: preload models, see https://ollama.com/library
|
||||||
|
loadModels = [ "gemma3:4b-it-qat" ];
|
||||||
|
package = pkgs.unstable.ollama;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.keyboard.qmk.enable = true;
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
# Graphical boot
|
||||||
|
plymouth.enable = true;
|
||||||
|
# Allow higher virtual memory for games
|
||||||
|
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||||
|
};
|
||||||
|
|
||||||
|
#services.udev.packages = [ pkgs.via ];
|
||||||
|
|
||||||
|
environment.gnome.excludePackages = with pkgs; [
|
||||||
|
epiphany # web browser
|
||||||
|
geary # email
|
||||||
|
decibels #audio player
|
||||||
|
gnome-calendar
|
||||||
|
gnome-music
|
||||||
|
gnome-software
|
||||||
|
gnome-tour
|
||||||
|
totem # video player
|
||||||
|
xterm
|
||||||
|
yelp # help
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: _: {
|
||||||
|
# this allows you to access `pkgs.unstable` anywhere in your config
|
||||||
|
unstable = import inputs.nixpkgs-unstable {
|
||||||
|
inherit (final.stdenv.hostPlatform) system;
|
||||||
|
inherit (final) config;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
audacity
|
||||||
|
brave
|
||||||
|
blender
|
||||||
|
orca-slicer
|
||||||
|
firefox
|
||||||
|
gimp
|
||||||
|
gnomeExtensions.appindicator
|
||||||
|
gnomeExtensions.blur-my-shell
|
||||||
|
gnomeExtensions.caffeine
|
||||||
|
gnomeExtensions.dash-to-dock
|
||||||
|
inkscape
|
||||||
|
kiwix
|
||||||
|
libreoffice
|
||||||
|
obs-studio
|
||||||
|
obsidian
|
||||||
|
unstable.proton-authenticator
|
||||||
|
unstable.protonmail-desktop
|
||||||
|
unstable.protonvpn-gui
|
||||||
|
prismlauncher
|
||||||
|
unstable.signal-desktop
|
||||||
|
freecad
|
||||||
|
tor-browser
|
||||||
|
wireshark
|
||||||
|
monero-gui
|
||||||
|
moonlight-qt
|
||||||
|
nvtopPackages.nvidia
|
||||||
|
vscodium
|
||||||
|
dconf-editor
|
||||||
|
via
|
||||||
|
kdePackages.kdenlive
|
||||||
|
easyeffects
|
||||||
|
element-desktop
|
||||||
|
chirp
|
||||||
|
scrcpy
|
||||||
|
|
||||||
|
# AI?
|
||||||
|
claude-code
|
||||||
|
|
||||||
|
# games
|
||||||
|
heroic
|
||||||
|
lutris
|
||||||
|
cataclysm-dda
|
||||||
|
runelite
|
||||||
|
zeroad
|
||||||
|
unciv
|
||||||
|
endless-sky
|
||||||
|
wesnoth
|
||||||
|
mindustry
|
||||||
|
openrct2
|
||||||
|
openttd
|
||||||
|
xonotic
|
||||||
|
osu-lazer-bin
|
||||||
|
#ufoai
|
||||||
|
#inputs.nix-citizen.packages.${system}.rsi-launcher
|
||||||
|
|
||||||
|
# game utils
|
||||||
|
mangohud
|
||||||
|
umu-launcher
|
||||||
|
|
||||||
|
# emu
|
||||||
|
ryubing
|
||||||
|
xemu
|
||||||
|
xenia-canary
|
||||||
|
#retroarch-full
|
||||||
|
rpcs3
|
||||||
|
dolphin-emu
|
||||||
|
cemu
|
||||||
|
|
||||||
|
# backup
|
||||||
|
keepassxc
|
||||||
|
jdk
|
||||||
|
];
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
corefonts
|
||||||
|
fira-mono
|
||||||
|
];
|
||||||
|
fonts.fontconfig = {
|
||||||
|
antialias = true;
|
||||||
|
cache32Bit = true;
|
||||||
|
hinting.enable = true;
|
||||||
|
hinting.autohint = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.sunshine = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
capSysAdmin = true;
|
||||||
|
openFirewall = true;
|
||||||
|
package = pkgs.sunshine.override {
|
||||||
|
cudaSupport = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
adb.enable = true;
|
||||||
|
|
||||||
|
localsend = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
coolercontrol = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
gamescope = {
|
||||||
|
enable = true;
|
||||||
|
capSysNice = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
gamescopeSession.enable = true;
|
||||||
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||||
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||||
|
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||||
|
};
|
||||||
|
|
||||||
|
gamemode.enable = true;
|
||||||
|
|
||||||
|
dconf = {
|
||||||
|
enable = true;
|
||||||
|
profiles.user.databases = [{
|
||||||
|
lockAll = true; # prevents overriding
|
||||||
|
settings = {
|
||||||
|
"org/gnome/shell" = {
|
||||||
|
favorite-apps = [
|
||||||
|
"org.gnome.Nautilus.desktop"
|
||||||
|
"brave-browser.desktop"
|
||||||
|
"proton-mail.desktop"
|
||||||
|
"obsidian.desktop"
|
||||||
|
"signal.desktop"
|
||||||
|
"element-desktop.desktop"
|
||||||
|
"steam.desktop"
|
||||||
|
"org.gnome.Settings.desktop"
|
||||||
|
"org.gnome.Console.desktop"
|
||||||
|
];
|
||||||
|
enabled-extensions = [
|
||||||
|
pkgs.gnomeExtensions.appindicator.extensionUuid
|
||||||
|
pkgs.gnomeExtensions.blur-my-shell.extensionUuid
|
||||||
|
pkgs.gnomeExtensions.caffeine.extensionUuid
|
||||||
|
pkgs.gnomeExtensions.dash-to-dock.extensionUuid
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/calendar" = {
|
||||||
|
show-weekdate = true;
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
clock-show-weekday = true;
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
document-font-name = "Noto Sans 11";
|
||||||
|
enable-hot-corners = false;
|
||||||
|
font-name = "Noto Sans 11";
|
||||||
|
gtk-theme = "Adwaita-dark";
|
||||||
|
monospace-font-name = "Fira Mono 12";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/peripherals/mouse" = {
|
||||||
|
accel-profile = "flat";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
|
button-layout = ":minimize,maximize,close";
|
||||||
|
};
|
||||||
|
"org/gnome/nautilus/list-view" = {
|
||||||
|
default-zoom-level = "small";
|
||||||
|
};
|
||||||
|
"org/gnome/nautilus/preferences" = {
|
||||||
|
default-folder-viewer = "list-view";
|
||||||
|
};
|
||||||
|
"org/gnome/shell/extensions/dash-to-dock" = {
|
||||||
|
click-action = "minimize-or-previews";
|
||||||
|
dock-fixed = true;
|
||||||
|
multi-monitor = true;
|
||||||
|
show-mounts = false;
|
||||||
|
show-show-apps-button = true;
|
||||||
|
apply-custom-theme = true;
|
||||||
|
};
|
||||||
|
"org/gnome/shell/keybindings" = {
|
||||||
|
show-screenshot-ui = ["<Shift><Super>s"];
|
||||||
|
};
|
||||||
|
#org.gnome.desktop.input-sources sources [('xkb', 'us'), ('xkb', 'dz+ar')]
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/mnt/media" = {
|
||||||
|
device = "//192.168.0.30/media";
|
||||||
|
fsType = "cifs";
|
||||||
|
options = let
|
||||||
|
# this line prevents hanging on network split
|
||||||
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||||
|
|
||||||
|
in ["${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000"];
|
||||||
|
};
|
||||||
|
fileSystems."/mnt/services" = {
|
||||||
|
device = "//192.168.0.30/services";
|
||||||
|
fsType = "cifs";
|
||||||
|
options = let
|
||||||
|
# this line prevents hanging on network split
|
||||||
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||||
|
|
||||||
|
in ["${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000"];
|
||||||
|
};
|
||||||
|
fileSystems."/mnt/data" = {
|
||||||
|
device = "//192.168.0.30/data";
|
||||||
|
fsType = "cifs";
|
||||||
|
options = let
|
||||||
|
# this line prevents hanging on network split
|
||||||
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
||||||
|
|
||||||
|
in ["${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000"];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.virt-manager.enable = true;
|
||||||
|
users.groups.libvirtd.members = ["admin"];
|
||||||
|
virtualisation.libvirtd = {
|
||||||
|
enable = true;
|
||||||
|
qemu.swtpm.enable = true;
|
||||||
|
};
|
||||||
|
virtualisation.spiceUSBRedirection.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")
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
}
|
||||||
459
flake.lock
generated
Normal file
459
flake.lock
generated
Normal file
@ -0,0 +1,459 @@
|
|||||||
|
{
|
||||||
|
"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": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1745494811,
|
||||||
|
"narHash": "sha256-YZCh2o9Ua1n9uCvrvi5pRxtuVNml8X2a03qIFfRKpFs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "abfad3d2958c9e6300a883bd443512c55dfeb1be",
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-25.11",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-cachyos-kernel": {
|
||||||
|
"inputs": {
|
||||||
|
"cachyos-kernel": "cachyos-kernel",
|
||||||
|
"cachyos-kernel-patches": "cachyos-kernel-patches",
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770055712,
|
||||||
|
"narHash": "sha256-VpbF4JDFPSW2crh0tP5EiegnuTkj3fACs0SLWDhlfPM=",
|
||||||
|
"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",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-hardware": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769302137,
|
||||||
|
"narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1754028485,
|
||||||
|
"narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
|
||||||
|
"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",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-25.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"agenix": "agenix",
|
||||||
|
"home-manager": "home-manager_2",
|
||||||
|
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||||
|
"nix-citizen": "nix-citizen",
|
||||||
|
"nixos-hardware": "nixos-hardware",
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
|
"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",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
58
flake.nix
Normal file
58
flake.nix
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
description = "A very basic flake";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||||
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
nixos-hardware.url = "github:nixos/nixos-hardware/master";
|
||||||
|
home-manager.url = "github:nix-community/home-manager/release-25.11";
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{ self, nixpkgs, home-manager, ... }@inputs:
|
||||||
|
{
|
||||||
|
nixosConfigurations.desktop = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {inherit inputs;};
|
||||||
|
#inherit system;
|
||||||
|
modules = [
|
||||||
|
./config/common.nix
|
||||||
|
./config/desktop.nix
|
||||||
|
./hosts/desktop/hardware.nix
|
||||||
|
./hosts/desktop/settings.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.admin = {
|
||||||
|
imports = [
|
||||||
|
./home/common.nix
|
||||||
|
./home/desktop.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixosConfigurations.nixos-server = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {inherit inputs;};
|
||||||
|
modules = [
|
||||||
|
./config/common.nix
|
||||||
|
./hosts/server/hardware.nix
|
||||||
|
./hosts/server/settings.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.admin = {
|
||||||
|
imports = [
|
||||||
|
./home/common.nix
|
||||||
|
./home/podman.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
77
home/common.nix
Normal file
77
home/common.nix
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
{ config, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.sessionVariables = {
|
||||||
|
EDITOR = "nvim";
|
||||||
|
VISUAL = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
|
||||||
|
neovim = {
|
||||||
|
enable = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
extraConfig = ''
|
||||||
|
set nocompatible
|
||||||
|
syntax on
|
||||||
|
|
||||||
|
set fileformat=unix
|
||||||
|
set encoding=utf8
|
||||||
|
set number relativenumber
|
||||||
|
set wrap
|
||||||
|
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set softtabstop=4
|
||||||
|
set smarttab
|
||||||
|
set autoindent
|
||||||
|
set colorcolumn=80
|
||||||
|
highlight ColorColumn ctermbg=8
|
||||||
|
|
||||||
|
set clipboard=unnamed,unnamedplus
|
||||||
|
set list listchars=tab:>-,trail:_,extends:>,precedes:<,nbsp:~
|
||||||
|
set showbreak=>
|
||||||
|
|
||||||
|
let mapleader=" "
|
||||||
|
|
||||||
|
"# disable macro mode
|
||||||
|
map q <Nop>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
tmux = {
|
||||||
|
enable = true;
|
||||||
|
historyLimit = 10000;
|
||||||
|
mouse = true;
|
||||||
|
extraConfig = ''
|
||||||
|
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
dotDir = "${config.xdg.configHome}/zsh";
|
||||||
|
#enableCompletions = true;
|
||||||
|
#autosuggestions.enable = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [ "git" ];
|
||||||
|
theme = "daveverwer";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
settings.user.Name = "Faris";
|
||||||
|
settings.user.email = "faris@mektem.com";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
55
home/desktop.nix
Normal file
55
home/desktop.nix
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{ 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
|
||||||
|
xdg.configFile."gtk-3.0/bookmarks" = {
|
||||||
|
force = true;
|
||||||
|
text = ''
|
||||||
|
file:/// root
|
||||||
|
file:///mnt/data data
|
||||||
|
file:///mnt/media media
|
||||||
|
file:///mnt/services services
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Don't touch
|
||||||
|
home.stateVersion = "24.11";
|
||||||
|
}
|
||||||
1127
home/podman.nix
Normal file
1127
home/podman.nix
Normal file
File diff suppressed because it is too large
Load Diff
47
hosts/desktop/hardware.nix
Normal file
47
hosts/desktop/hardware.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "nvidia-uvm" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/bd28421d-7ec4-4b23-964d-c07a6f351e1f";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."luks-e3a81f8e-3ae9-494b-a329-a6f860b10e34".device = "/dev/disk/by-uuid/e3a81f8e-3ae9-494b-a329-a6f860b10e34";
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/D47C-5FCE";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/be22d9db-283a-4dd9-93d5-1006e392724b"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
fileSystems."/run/media/admin/08cabc7a-9a6e-4c21-8a07-6663af77b705" =
|
||||||
|
{ device = "/dev/disk/by-uuid/08cabc7a-9a6e-4c21-8a07-6663af77b705";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp42s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
72
hosts/desktop/settings.nix
Normal file
72
hosts/desktop/settings.nix
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
};
|
||||||
|
services.displayManager.gdm.enable = false;
|
||||||
|
services.displayManager.sddm.enable = true;
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.luks.devices."luks-cbf20b12-90f7-4fbb-95d3-1320eece4d89".device = "/dev/disk/by-uuid/cbf20b12-90f7-4fbb-95d3-1320eece4d89";
|
||||||
|
kernelParams = [
|
||||||
|
"nvidia_drm.modeset=1"
|
||||||
|
"nvidia_drm.fbdev=1"
|
||||||
|
"nvidia.NVreg_PreserveVideoMemoryAllocations=1"
|
||||||
|
"module_blacklist=amdgpu"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "nixos-desktop";
|
||||||
|
interfaces.enp42s0 = {
|
||||||
|
wakeOnLan.enable = true;
|
||||||
|
ipv4.addresses = [
|
||||||
|
{
|
||||||
|
address = "192.168.30.40";
|
||||||
|
prefixLength = 24;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
defaultGateway = "192.168.30.1";
|
||||||
|
nameservers = [ "192.168.0.1" "1.1.1.1" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
powerManagement.enable = true;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
open = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
|
};
|
||||||
|
|
||||||
|
# this fixes the sleep/wake issue
|
||||||
|
# systemd.services."systemd-suspend" = {
|
||||||
|
# serviceConfig = {
|
||||||
|
# Environment = ''"SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false"'';
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# fixes hardware accel on nvidia open
|
||||||
|
hardware.graphics.extraPackages = [
|
||||||
|
pkgs.nvidia-vaapi-driver
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.variables = {
|
||||||
|
NVD_BACKEND = "direct";
|
||||||
|
LIBVA_DRIVER_NAME = "nvidia";
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
}
|
||||||
40
hosts/laptop/settings.nix
Normal file
40
hosts/laptop/settings.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
|
||||||
|
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";
|
||||||
|
}
|
||||||
22
hosts/server-nut/settings.nix
Normal file
22
hosts/server-nut/settings.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
hostName = "nixos-server-nut";
|
||||||
|
hostId = "d5a2ce61";
|
||||||
|
firewall.enable = false;
|
||||||
|
interfaces.ens18 = {
|
||||||
|
ipv4.addresses = [
|
||||||
|
{
|
||||||
|
address = "192.168.0.20";
|
||||||
|
prefixLength = 24;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
defaultGateway = "192.168.0.1";
|
||||||
|
nameservers = [ "192.168.0.1" "1.1.1.1" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.admin.linger = true;
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
}
|
||||||
40
hosts/server/hardware.nix
Normal file
40
hosts/server/hardware.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "mpt3sas" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/b9cc7972-36ae-4cb4-a6f4-e342eaca679e";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/542D-865C";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/1032bbd9-0124-419f-a696-a977755aaf17"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
392
hosts/server/settings.nix
Normal file
392
hosts/server/settings.nix
Normal file
@ -0,0 +1,392 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
#boot.loader.limine.biosDevice = "/dev/vda";
|
||||||
|
#boot.loader.efi.efiSysMountPoint = "/boot";
|
||||||
|
|
||||||
|
systemd.services.podman-network-vlan50 = {
|
||||||
|
description = "Create podman vlan50 network";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
before = [ "podman-nginx.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
script = ''
|
||||||
|
if ! ${pkgs.podman}/bin/podman network exists vlan50; then
|
||||||
|
${pkgs.podman}/bin/podman network create \
|
||||||
|
--driver macvlan \
|
||||||
|
--opt parent=vlan50 \
|
||||||
|
--subnet 192.168.50.0/24 \
|
||||||
|
--gateway 192.168.50.1 \
|
||||||
|
vlan50
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
vlans = {
|
||||||
|
vlan50 = {
|
||||||
|
id = 50;
|
||||||
|
interface = "enp7s0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
hostName = "nixos-server";
|
||||||
|
hostId = "bbe3b289";
|
||||||
|
firewall.enable = false;
|
||||||
|
interfaces.vlan50 = {
|
||||||
|
ipv4.addresses = [
|
||||||
|
{
|
||||||
|
address = "192.168.50.30";
|
||||||
|
prefixLength = 24;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
interfaces.enp7s0 = {
|
||||||
|
ipv4.addresses = [
|
||||||
|
{
|
||||||
|
address = "192.168.0.30";
|
||||||
|
prefixLength = 24;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
defaultGateway = "192.168.0.1";
|
||||||
|
nameservers = [ "192.168.0.1" "1.1.1.1" ];
|
||||||
|
};
|
||||||
|
users.users.admin.linger = true;
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true; # only needed if you run 32-bit apps
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
mesa.drivers
|
||||||
|
libva
|
||||||
|
libva-utils # provides vainfo
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"net.ipv4.ip_unprivileged_port_start" = 0;
|
||||||
|
"net.ipv4.conf.all.src_valid_mark" = 1;
|
||||||
|
"net.ipv4.conf.all.forwarding" = 1;
|
||||||
|
"net.ipv4.ip_forward" = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman = {
|
||||||
|
enable = true;
|
||||||
|
autoPrune.enable = true;
|
||||||
|
autoPrune.flags = [ "--all" ];
|
||||||
|
# Create a `docker` alias for podman, to use it as a drop-in replacement
|
||||||
|
dockerCompat = true;
|
||||||
|
# Required for containers under podman-compose to be able to talk to each other.
|
||||||
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.restic.backups.backup = {
|
||||||
|
initialize = true;
|
||||||
|
environmentFile = "/pool/services/secrets/restic/environmentFile";
|
||||||
|
repositoryFile = "/pool/services/secrets/restic/repositoryFile";
|
||||||
|
passwordFile = "/pool/services/secrets/restic/passwordFile";
|
||||||
|
|
||||||
|
paths = [
|
||||||
|
"/pool/services"
|
||||||
|
"/pool/data"
|
||||||
|
];
|
||||||
|
|
||||||
|
exclude = [
|
||||||
|
"/pool/services/cctv"
|
||||||
|
];
|
||||||
|
|
||||||
|
pruneOpts = [
|
||||||
|
"--keep-daily 7"
|
||||||
|
"--keep-weekly 5"
|
||||||
|
"--keep-monthly 12"
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
# systemd.timers."prune-podman" = {
|
||||||
|
# wantedBy = [ "timers.target" ];
|
||||||
|
# timerConfig = {
|
||||||
|
# OnCalendar = "weekly";
|
||||||
|
# Persistent = true;
|
||||||
|
# Unit = "podman-prune.service";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# systemd.services."prune-podman" = {
|
||||||
|
# script = ''
|
||||||
|
# set -eu
|
||||||
|
# ${pkgs.podman}/bin/podman system prune -af
|
||||||
|
# '';
|
||||||
|
# serviceConfig = {
|
||||||
|
# Type = "oneshot";
|
||||||
|
# User = "admin";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# give permissions for zigbee USB transceiver
|
||||||
|
system.activationScripts.script.text = ''chmod o+rw /dev/ttyACM0'';
|
||||||
|
|
||||||
|
boot.supportedFilesystems = [ "zfs" ];
|
||||||
|
boot.zfs.forceImportRoot = false;
|
||||||
|
boot.zfs.extraPools = [ "pool" ];
|
||||||
|
|
||||||
|
services.zfs.autoScrub = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
services.zfs.autoSnapshot.enable = true;
|
||||||
|
|
||||||
|
services.smartd = {
|
||||||
|
enable = true;
|
||||||
|
notifications = {
|
||||||
|
mail.enable = true;
|
||||||
|
mail.recipient = "faris@mektem.com";
|
||||||
|
};
|
||||||
|
#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 = {
|
||||||
|
enableMail = true;
|
||||||
|
settings = {
|
||||||
|
ZED_EMAIL_ADDR = [ "faris@mektem.com" ];
|
||||||
|
ZED_EMAIL_PROG = "/etc/zfs/zed-notify.sh"; # Or ssmtp
|
||||||
|
ZED_EMAIL_OPTS = "";
|
||||||
|
ZED_NOTIFY_INTERVAL_SECS = 3600;
|
||||||
|
ZED_NOTIFY_VERBOSE = true; # Set to false to only get alerts on degradation
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.samba = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
"server min protocol" = "SMB2_10";
|
||||||
|
"workgroup" = "WORKGROUP";
|
||||||
|
"server string" = "smbnix";
|
||||||
|
"netbios name" = "smbnix";
|
||||||
|
"security" = "user";
|
||||||
|
"hosts allow" = "192.168.0. 192.168.30. 192.168.40.10 127.0.0.1 localhost";
|
||||||
|
"hosts deny" = "0.0.0.0/0";
|
||||||
|
"guest account" = "nobody";
|
||||||
|
"map to guest" = "never";
|
||||||
|
};
|
||||||
|
"data" = {
|
||||||
|
"path" = "/pool/data";
|
||||||
|
"browseable" = "yes";
|
||||||
|
"read only" = "no";
|
||||||
|
"guest ok" = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
"media" = {
|
||||||
|
"path" = "/pool/media";
|
||||||
|
"browseable" = "yes";
|
||||||
|
"read only" = "no";
|
||||||
|
"guest ok" = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
"services" = {
|
||||||
|
"path" = "/pool/services";
|
||||||
|
"browseable" = "yes";
|
||||||
|
"read only" = "no";
|
||||||
|
"guest ok" = "no";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
caddy = {
|
||||||
|
image = "docker.io/caddy";
|
||||||
|
autoStart = true;
|
||||||
|
#autoUpdate = "registry";
|
||||||
|
networks = [ "vlan50" ];
|
||||||
|
environmentFiles = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/services/podman/caddy/conf:/etc/caddy"
|
||||||
|
"/pool/services/podman/caddy/site:/srv"
|
||||||
|
"/pool/services/podman/caddy/data:/data"
|
||||||
|
"/pool/services/podman/caddy/config:/config"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--ip=192.168.50.31"
|
||||||
|
];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
gitea = {
|
||||||
|
image = "docker.gitea.com/gitea:1.23.7";
|
||||||
|
autoStart = true;
|
||||||
|
#autoUpdate = "registry";
|
||||||
|
networks = [ "vlan50" ];
|
||||||
|
environmentFiles = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
"/pool/services/secrets/gitea"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/services/podman/gitea:/data"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--ip=192.168.50.32"
|
||||||
|
];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
# 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 = {
|
||||||
|
image = "ghcr.io/element-hq/synapse";
|
||||||
|
autoStart = true;
|
||||||
|
#autoUpdate = "registry";
|
||||||
|
networks = [ "vlan50" ];
|
||||||
|
environmentFiles = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
"/pool/services/secrets/synapse"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/services/podman/synapse:/data"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--ip=192.168.50.33"
|
||||||
|
];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
nginx = {
|
||||||
|
image = "docker.io/nginx:latest";
|
||||||
|
autoStart = true;
|
||||||
|
#autoUpdate = "registry";
|
||||||
|
networks = [ "vlan50" ];
|
||||||
|
environmentFiles = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
"/pool/services/secrets/nginx"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/services/podman/nginx/nginx.conf:/etc/nginx/nginx.conf:ro"
|
||||||
|
"/pool/services/podman/hugo/src/mektem.com/public:/usr/share/nginx/html"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--ip=192.168.50.34"
|
||||||
|
];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
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 = {
|
||||||
|
image = "docker.io/privatebin/nginx-fpm-alpine:latest";
|
||||||
|
autoStart = true;
|
||||||
|
#autoUpdate = "registry";
|
||||||
|
networks = [ "vlan50" ];
|
||||||
|
environmentFiles = [
|
||||||
|
"/pool/services/secrets/default"
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/pool/media/privatebin:/srv/data"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--ip=192.168.50.36"
|
||||||
|
];
|
||||||
|
# extraConfig = {
|
||||||
|
# Service = {
|
||||||
|
# TimeoutStartSec = 900;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
}
|
||||||
2
update-desktop.sh
Executable file
2
update-desktop.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
nix flake update
|
||||||
|
sudo nixos-rebuild switch --flake .#desktop
|
||||||
Loading…
x
Reference in New Issue
Block a user