home-lab/machines/sleeper-service/configuration.nix
Geir O. Jerstad 47c2961033 Refactor emacs configuration and clean up lab-tool project
- Reorganized emacs configuration with profiles in modules/development/emacs.nix
- Updated machine configurations to use new emacs module structure
- Cleaned up lab-tool project by removing archive, research, testing, and utils directories
- Streamlined lab-tool to focus on core deployment functionality with deploy-rs
- Added DEVELOPMENT.md documentation for lab-tool

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-03 17:45:34 +02:00

118 lines
2.9 KiB
Nix

{
config,
lib,
pkgs,
inputs,
unstable,
...
}: {
imports = [
./hardware-configuration.nix
# Security modules
../../modules/security/ssh-keys.nix
# Network configuration
./network-sleeper-service.nix
../../modules/network/extraHosts.nix
# Services
./nfs.nix
./services/transmission.nix
# Development (minimal for server)
../../modules/development/emacs.nix
# User modules - server only needs sma user
../../modules/users/sma.nix
];
# Boot configuration with ZFS support
boot.loader.grub = {
enable = true;
zfsSupport = true;
efiSupport = true;
efiInstallAsRemovable = true;
mirroredBoots = [
{
devices = ["nodev"];
path = "/boot";
}
];
};
boot.supportedFilesystems = ["zfs"];
boot.loader.grub.memtest86.enable = true;
# Add nomodeset for graphics compatibility
boot.kernelParams = ["nomodeset"];
# ZFS services for file server
services.zfs = {
autoScrub.enable = true;
trim.enable = true;
};
# Emacs server configuration (minimal)
services.emacs-profiles = {
enable = true;
profile = "nox";
enableDaemon = false; # Don't run daemon on server
user = "sma";
};
# Enable ZFS auto-mounting since we're using ZFS native mountpoints
# systemd.services.zfs-mount.enable = lib.mkForce false;
# Disable graphics for server use - comment out NVIDIA config for now
# hardware.graphics = {
# enable = true;
# };
# hardware.nvidia = {
# modesetting.enable = true;
# open = false;
# package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
# };
# Comment out NVIDIA kernel modules for now
# boot.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ];
# Comment out NVIDIA utilities for now
# environment.systemPackages = with pkgs; [
# config.boot.kernelPackages.nvidiaPackages.legacy_470
# ];
# Create mount directories early in boot process
# systemd.tmpfiles.rules = [
# "d /mnt/storage 0755 root root -"
# "d /mnt/storage/media 0755 root root -"
# ];
# Network configuration - using working setup from old config
# networking.hostName = "sleeper-service";
# services.tailscale.enable = true;
# networking.networkmanager.enable = true;
# networking.hostId = "8425e349";
# Time and locale
time.timeZone = "Europe/Oslo";
i18n.defaultLocale = "en_US.UTF-8";
# Console configuration
console = {
font = "Lat2-Terminus16";
keyMap = "no";
};
# Enable unfree packages
nixpkgs.config.allowUnfree = true;
# nixpkgs.config.nvidia.acceptLicense = true; # Commented out for now
programs.zsh.enable = true;
# Enable SSH
services.openssh.enable = true;
# Firewall configuration - disable for simplicity like old config
# networking.firewall.enable = false;
# DO NOT CHANGE - maintains data compatibility
system.stateVersion = "23.11";
}