{ config, lib, pkgs, inputs, ... }: { imports = []; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; networking.networkmanager.enable = true; networking.firewall.allowedTCPPorts = [22 42069]; services.openssh = { enable = true; ports = [22]; settings.X11Forwarding = true; }; systemd.services."gitea-runner-homelab".serviceConfig = { ReadWritePaths = [ "/servers/site" ]; DynamicUser = lib.mkForce false; User = lib.mkForce "gitea-runner"; }; environment.binsh = "${pkgs.bash}/bin/bash"; services.gitea-actions-runner.instances."homelab" = { enable = true; url = "https://git.jeremyjanella.com"; tokenFile = "/servers/gitea/runner-token"; name = "predator"; labels = [ "homelab:host" "nixos:host" "predator:host" ]; settings = { container.network = "host"; }; }; time.timeZone = "America/Toronto"; virtualisation.docker.enable = true; home-manager = { useGlobalPkgs = true; useUserPackages = true; backupFileExtension = "not-nix"; # Add this line users.jeremy = { pkgs, ... }: { home.stateVersion = "25.11"; programs.neovim = { # Configure nvim enable = true; extraConfig = '' set number relativenumber set tabstop=2 set softtabstop=2 set shiftwidth=2 set expandtab set cc=80 ''; }; }; }; users.users.jeremy = { isNormalUser = true; extraGroups = [ "wheel" "docker" "networkmanager" ]; shell = pkgs.bash; home = "/home/jeremy"; createHome = true; packages = with pkgs; [ nixfmt # nix file formatting direnv # develop projects in custom environments ]; }; users.users.gitea-runner = { isSystemUser = true; group = "gitea-runner"; }; users.groups.gitea-runner = {}; # Use https://search.nixos.org/ to find more packages (and options). environment.systemPackages = with pkgs; [ gcc htop neovim wget ncdu nmap git unzip bluez # Bluetooth support bluez-tools # Bluetooth tools polkit_gnome usbutils # for lsusb networkmanagerapplet wireguard-tools inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.typst # bleeding edge html exports for typst ]; environment.sessionVariables = { SUDO_EDITOR = "nvim"; }; hardware.bluetooth = { enable = true; powerOnBoot = true; }; system.stateVersion = "25.11"; }