nixos/hosts/marauder/default.nix

218 lines
4 KiB
Nix
Executable file

{ pkgs, phps, agenix, ... }:
let
fortune = pkgs.writeShellScript "cgi" ''
echo "Content-type: text/html"
echo ""
${pkgs.fortune}/bin/fortune
'';
ffcheck = pkgs.writeShellScriptBin "ffcheck" ''
${pkgs.ffmpeg}/bin/ffmpeg -v error -stats -hide_banner -i "$1" -c copy -f null -
'';
in {
imports = [ ./backup.nix ];
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
environment.variables.VISUAL = "code --wait";
age.identityPaths = [ "/home/nettika/.ssh/id_ed25519" ];
networking = {
hostName = "marauder";
firewall.enable = false;
};
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/648c6539-892c-40d7-8b07-23fe760df02a";
fsType = "ext4";
};
"/boot" = {
device = "/dev/disk/by-uuid/1D62-C30E";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
};
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
initrd = {
systemd.enable = true;
availableKernelModules =
[ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
};
kernelModules = [ "kvm-amd" ];
kernelParams = [ "amd_pstate=active" ];
};
hardware = {
enableRedistributableFirmware = true;
cpu.amd.updateMicrocode = true;
graphics = {
enable = true;
enable32Bit = true;
extraPackages = [ pkgs.vaapiVdpau ];
};
nvidia = {
open = true;
prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
amdgpuBusId = "PCI:05:00:0";
nvidiaBusId = "PCI:01:00:0";
};
};
};
environment.systemPackages = with pkgs; [
# Chat clients
discord
slack
element-desktop
telegram-desktop
signal-desktop
# Browsers
firefox
filezilla
# Creative
inkscape
gimp
krita
openscad-unstable
bambu-studio
# Multimedia
vlc
ffmpeg
ffcheck
aonsoku
# Code Editors
vscode
arduino-ide
# Dev Tools
nixd
nixfmt-classic
nixpkgs-fmt
pyenv
rustup
electron
# Languages
gcc
kotlin
nodejs
php
# Command line
htop
jq
# Misc
obsidian
intiface-central
prismlauncher
blender
mullvad-vpn
qbittorrent
system-config-printer
agenix.packages.x86_64-linux.default
];
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
programs.direnv.enable = true;
programs.ssh.extraConfig = ''
Host quasar
HostName consortium.chat
IdentityFile ~/.ssh/LightsailDefaultKey-us-west-2.pem
Host monolith
HostName 10.243.210.154
Host apogee
HostName 46.226.107.209
'';
services.mysql = {
enable = true;
package = pkgs.mariadb;
};
services.httpd = {
enable = true;
enablePHP = true;
phpPackage = phps.packages.x86_64-linux.php80;
extraConfig = ''
ScriptAlias /fortune ${fortune}/bin/fortune
'';
virtualHosts."localhost" = {
documentRoot = "/var/www";
locations."/".index = "index.html index.php";
};
};
programs.nix-ld.enable = true;
services.xserver = {
enable = true;
videoDrivers = [ "nvidia" ];
desktopManager = {
cinnamon.enable = true;
xterm.enable = false;
};
};
services.printing.enable = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
services.displayManager.defaultSession = "cinnamon";
services.power-profiles-daemon.enable = false;
services.tlp.enable = true;
services.fstrim.enable = true;
services.zerotierone = {
enable = true;
joinNetworks = [ "8056c2e21c0b1a53" ];
};
services.mullvad-vpn = {
enable = true;
package = pkgs.mullvad-vpn; # Include GUI
};
promptSymbol = "💜";
time.timeZone = "America/Los_Angeles";
system.stateVersion = "24.05";
}