Files
nixos-conf/server-configuration.nix

111 lines
2.5 KiB
Nix

{ 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";
}