···11+# Edit this configuration file to define what should be installed on
22+# your system. Help is available in the configuration.nix(5) man page
33+# and in the NixOS manual (accessible by running ‘nixos-help’).
44+55+{ pkgs, ... }:
66+77+{
88+ imports =
99+ [ # Include the results of the hardware scan.
1010+ ./hardware-configuration.nix
1111+ ../common/common.nix
1212+ ];
1313+1414+1515+ boot.initrd.luks.devices."luks-ee306bda-c450-4a56-b4fe-537899e38e0d".device = "/dev/disk/by-uuid/ee306bda-c450-4a56-b4fe-537899e38e0d";
1616+ networking.hostName = "framework16"; # Define your hostname.
1717+ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
1818+1919+ # Configure network proxy if necessary
2020+ # networking.proxy.default = "http://user:password@proxy:port/";
2121+ # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
2222+2323+2424+ # Enable touchpad support (enabled default in most desktopManager).
2525+ # services.xserver.libinput.enable = true;
2626+2727+ # List packages installed in system profile. To search, run:
2828+ # $ nix search wget
2929+ environment.systemPackages = with pkgs; [
3030+ # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
3131+ # wget
3232+ ];
3333+3434+ # Some programs need SUID wrappers, can be configured further or are
3535+ # started in user sessions.
3636+ # programs.mtr.enable = true;
3737+ # programs.gnupg.agent = {
3838+ # enable = true;
3939+ # enableSSHSupport = true;
4040+ # };
4141+4242+ # List services that you want to enable:
4343+4444+ # Enable the OpenSSH daemon.
4545+ # services.openssh.enable = true;
4646+4747+ # Open ports in the firewall.
4848+ networking.firewall.allowedTCPPorts = [
4949+ 3000
5050+ ];
5151+ networking.firewall.allowedUDPPorts = [
5252+ 3000
5353+ ];
5454+ # Or disable the firewall altogether.
5555+ # networking.firewall.enable = false;
5656+5757+ # This value determines the NixOS release from which the default
5858+ # settings for stateful data, like file locations and database versions
5959+ # on your system were taken. It‘s perfectly fine and recommended to leave
6060+ # this value at the release version of the first install of this system.
6161+ # Before changing this value read the documentation for this option
6262+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
6363+ system.stateVersion = "25.05"; # Did you read the comment?
6464+6565+}
+42
hosts/framework16/hardware-configuration.nix
···11+# Do not modify this file! It was generated by ‘nixos-generate-config’
22+# and may be overwritten by future invocations. Please make changes
33+# to /etc/nixos/configuration.nix instead.
44+{ config, lib, pkgs, modulesPath, ... }:
55+66+{
77+ imports =
88+ [ (modulesPath + "/installer/scan/not-detected.nix")
99+ ];
1010+1111+ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ];
1212+ boot.initrd.kernelModules = [ ];
1313+ boot.kernelModules = [ "kvm-amd" ];
1414+ boot.extraModulePackages = [ ];
1515+1616+ fileSystems."/" =
1717+ { device = "/dev/disk/by-uuid/2c281977-7c4d-40a4-af72-ec7dddeae913";
1818+ fsType = "ext4";
1919+ };
2020+2121+ boot.initrd.luks.devices."luks-17e0181f-d40d-4d21-a014-0b75154e9668".device = "/dev/disk/by-uuid/17e0181f-d40d-4d21-a014-0b75154e9668";
2222+2323+ fileSystems."/boot" =
2424+ { device = "/dev/disk/by-uuid/D830-50AC";
2525+ fsType = "vfat";
2626+ options = [ "fmask=0077" "dmask=0077" ];
2727+ };
2828+2929+ swapDevices =
3030+ [ { device = "/dev/disk/by-uuid/06b535a2-5695-450b-84a3-f759474d0b04"; }
3131+ ];
3232+3333+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
3434+ # (the default) this is the recommended approach. When using systemd-networkd it's
3535+ # still possible to use this option, but it's recommended to use it in conjunction
3636+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
3737+ networking.useDHCP = lib.mkDefault true;
3838+ # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
3939+4040+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
4141+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
4242+}
+154
hosts/mira/configuration.nix
···11+{
22+ pkgs,
33+ ...
44+}:
55+66+{
77+ imports = [
88+ # Include the results of the hardware scan.
99+ ./hardware-configuration.nix
1010+ ../common/common.nix
1111+ ];
1212+1313+1414+1515+1616+ networking.hostName = "mira"; # Define your hostname.
1717+ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
1818+1919+ # Configure network proxy if necessary
2020+ # networking.proxy.default = "http://user:password@proxy:port/";
2121+ # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
2222+2323+2424+ services.openssh = {
2525+ enable = true;
2626+ ports = [ 5431 ];
2727+ settings = {
2828+ PasswordAuthentication = false;
2929+ KbdInteractiveAuthentication = false;
3030+ PermitRootLogin = "no";
3131+ AllowUsers = [ "sean" ];
3232+ };
3333+ };
3434+3535+3636+ users.users.sean.openssh.authorizedKeys.keys = [
3737+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCIqgZ7kedxo+mOW7YG73Vp3zel3h180y3GKvHtRsXfGlpIIvRDy7pgCBQ4AGXYD4y78URQmFohYSAPqCPOPaWcU2un3XG9KvCzEsHmsbskPonitUmCiKvrKkb6oW4jCBtd7AEtBn+AiajAQFtPZ7NN2Df3AmTypvR6Irg7R+nxnfc9NTIHmGvxSDyWcbb4pguL20sctUSqGL6xGh8q/bqhdOThSimM+z9bEUNxK/5rPhwkNniMrp4pJcUrUiAh5/4DiRFG6KT+oeg+/myoz/Z1sPvAs7u/8JDQI4RshRD8Hu0oTkRBN6Hxj478q2SXbeBUZlD6IdjP3RhGpmSecoDdtWqKbpuV3eVRtQtba3KL86GBeV/bugaOdJ1Aud+1SOFJreAAuvxzMMKT+cdQZk6oOPP148DA/No+mDm/2S43lcdCXh79wA6YRAmKQ8jmZxTCtPutrvuZK1rguvvUlEoG/vhdNHh7eDa4Td07V6bjCRPUl8qk/e4M0E3pwsTlZc="
3838+ ];
3939+4040+ programs.steam = {
4141+ enable = true;
4242+ };
4343+4444+ # List services that you want to enable:
4545+ nixarr = {
4646+ enable = true;
4747+ mediaDir = "/mnt/storage1/nixarr/media";
4848+ vpn = {
4949+ enable = true;
5050+ wgConf = "/mnt/storage1/nixarr/wireguard.conf";
5151+ };
5252+5353+ jellyfin = {
5454+ enable = true;
5555+ openFirewall = true;
5656+ };
5757+5858+ transmission = {
5959+ enable = true;
6060+ vpn.enable = true;
6161+ };
6262+ sabnzbd = {
6363+ enable = true;
6464+ vpn.enable = true;
6565+ openFirewall = true;
6666+ };
6767+6868+ prowlarr.enable = true;
6969+ radarr.enable = true;
7070+ sonarr.enable = true;
7171+ jellyseerr = {
7272+ enable = true;
7373+ openFirewall = true;
7474+ };
7575+7676+ recyclarr = {
7777+ enable = true;
7878+ configuration = {
7979+ sonarr = {
8080+ series = {
8181+ base_url = "http://localhost:8989";
8282+ api_key = "!env_var SONARR_API_KEY";
8383+ quality_definition = {
8484+ type = "series";
8585+ };
8686+ delete_old_custom_formats = true;
8787+ custom_formats = [
8888+ {
8989+ trash_ids = [
9090+ "85c61753df5da1fb2aab6f2a47426b09" # BR-DISK
9191+ "9c11cd3f07101cdba90a2d81cf0e56b4" # LQ
9292+ ];
9393+ assign_scores_to = [
9494+ {
9595+ name = "WEB-DL (1080p)";
9696+ score = -10000;
9797+ }
9898+ ];
9999+ }
100100+ ];
101101+ };
102102+ };
103103+ radarr = {
104104+ movies = {
105105+ base_url = "http://localhost:7878";
106106+ api_key = "!env_var RADARR_API_KEY";
107107+ quality_definition = {
108108+ type = "movie";
109109+ };
110110+ delete_old_custom_formats = true;
111111+ custom_formats = [
112112+ {
113113+ trash_ids = [
114114+ "570bc9ebecd92723d2d21500f4be314c" # Remaster
115115+ "eca37840c13c6ef2dd0262b141a5482f" # 4K Remaster
116116+ ];
117117+ assign_scores_to = [
118118+ {
119119+ name = "HD Bluray + WEB";
120120+ score = 25;
121121+ }
122122+ ];
123123+ }
124124+ ];
125125+ };
126126+ };
127127+ };
128128+ };
129129+ };
130130+131131+ # Enable the OpenSSH daemon.
132132+ # services.openssh.enable = true;
133133+134134+ # Open ports in the firewall.
135135+ networking.firewall.allowedTCPPorts = [
136136+ 8096
137137+ 5055
138138+ 3000
139139+ ];
140140+ networking.firewall.allowedUDPPorts = [
141141+ 8096
142142+ 5055
143143+ 3000
144144+ ];
145145+146146+ # This value determines the NixOS release from which the default
147147+ # settings for stateful data, like file locations and database versions
148148+ # on your system were taken. It‘s perfectly fine and recommended to leave
149149+ # this value at the release version of the first install of this system.
150150+ # Before changing this value read the documentation for this option
151151+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
152152+ system.stateVersion = "25.05"; # Did you read the comment?
153153+154154+}