diff --git a/provision/hosts/shivan/configuration.nix b/provision/hosts/shivan/configuration.nix new file mode 100644 index 00000000..2b1228b8 --- /dev/null +++ b/provision/hosts/shivan/configuration.nix @@ -0,0 +1,119 @@ +{ config, pkgs, user, lib, ... }: +{ + imports = [ + ./syncthing.nix + ]; + + nix = { + package = pkgs.nixFlakes; + extraOptions = "experimental-features = nix-command flakes"; + + settings.auto-optimise-store = true; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 7d"; + }; + }; + + # Add non-free packages + nixpkgs.config.allowUnfree = true; + nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" "openssl-1.1.1w" ]; + nixpkgs.overlays = import ../../lib/overlays.nix; + + # Use zen kernel + boot.kernelPackages = pkgs.linuxPackages_zen; + + # Hardware options + hardware.bluetooth.enable = true; + hardware.bluetooth.package = pkgs.bluez; + hardware.sensor.iio.enable = true; + hardware.opengl.enable = true; + hardware.opengl.driSupport = true; + hardware.opengl.driSupport32Bit = true; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Set networking options + networking.hostName = "shivan"; + networking.firewall.checkReversePath = "loose"; + networking.firewall.enable = false; + + # Set your time zone. + time.timeZone = "America/Los_Angeles"; + i18n.defaultLocale = "en_US.UTF-8"; + + # Add fonts + fonts.packages = with pkgs; [ + nerdfonts + ]; + + # Enable docker + virtualisation.docker.enable = true; + virtualisation.docker.storageDriver = "btrfs"; + + # Define user account. + users.users.${user} = { + isNormalUser = true; + extraGroups = [ "dialout" "wheel" "docker" "libvirtd" ]; # Enable ‘sudo’ for the user. + }; + + # Password-less root + security.sudo.extraRules = [{ + users = [ "${user}" ]; + commands = [{ + command = "ALL" ; + options= [ "NOPASSWD" ]; + }]; + }]; + + # List packages installed in system profile. + environment.systemPackages = with pkgs; [ + # One-off stable packages + distrobox + ] ++ [ + # One-off unstable packages + ]; + + # Enable modules + modules = { + desktop = { + sway.enable = true; + browser.enable = true; + }; + devel = { + engineering.enable = true; + notes.enable = true; + python.enable = true; + tooling.enable = true; + }; + gaming = { + steam.enable = false; + emulation.enable = false; + misc.enable = false; + }; + services = { + jellyfin.enable = false; + peripherals.enable = true; + samba-client.enable = true; + virt-manager.enable = false; + }; + system = { + secrets.enable = true; + ssh.enable = true; + terminal.enable = true; + wireguard-client = { + enable = false; + #privateKeyFile = "/run/secrets/wireguard/kestrel"; + #address = [ "192.168.3.3/24" ]; + #publicKey = "bd7bbZOngl/FTdBlnbIhgCLNf6yx5X8WjiRB7E1NEQQ="; + #endpoint = "66.218.43.87"; + }; + }; + }; + + # Did you read the comment? + system.stateVersion = "23.11"; +} diff --git a/provision/hosts/shivan/home-configuration.nix b/provision/hosts/shivan/home-configuration.nix new file mode 100644 index 00000000..6ab1009f --- /dev/null +++ b/provision/hosts/shivan/home-configuration.nix @@ -0,0 +1,32 @@ +{ config, pkgs, user, ... }: +{ + home.username = "${user}"; + home.homeDirectory = "/home/${user}"; + programs.home-manager.enable = true; + + # Setup direnv + programs.direnv = { + enable = true; + enableBashIntegration = true; + nix-direnv.enable = true; + }; + + # Setup git + programs.git = { + enable = true; + userName = "starr-dusT"; + userEmail = "starrtyler88@gmail.com"; + }; + + home.packages = with pkgs; [ + ]; + + # Enable home modules + modules = { + desktop = { + kitty.enable = true; + }; + }; + + home.stateVersion = "23.11"; +} diff --git a/provision/hosts/shivan/syncthing.nix b/provision/hosts/shivan/syncthing.nix new file mode 100644 index 00000000..c2a21c25 --- /dev/null +++ b/provision/hosts/shivan/syncthing.nix @@ -0,0 +1,21 @@ +{ config, lib, pkgs, user, ... }: +{ + networking.firewall.allowedTCPPorts = [ 8384 22000 ]; + networking.firewall.allowedUDPPorts = [ 22000 21027 ]; + + environment.systemPackages = with pkgs; [ syncthing ]; + + services.syncthing = { + enable = true; + user = "${user}"; + dataDir = "/home/${user}/.local/share/syncthing"; + configDir = "/home/${user}/.config/syncthing"; + guiAddress = "0.0.0.0:8384"; + overrideDevices = true; + overrideFolders = true; + settings.devices = { + }; + settings.folders = { + }; + }; +} diff --git a/resources/img/shivan.png b/resources/img/shivan.png new file mode 100644 index 00000000..2e44ed4e Binary files /dev/null and b/resources/img/shivan.png differ