feat(modules): add server archetype

feat: WIP add "absolutesolver" system and "cyn" user *wink wink*
refactor: clean up some comments and remove empty lines
This commit is contained in:
Jo 2024-09-18 21:21:48 +02:00
parent 0c1476ce83
commit 57d067d501
10 changed files with 111 additions and 29 deletions

View file

@ -0,0 +1,20 @@
{
lib,
pkgs,
inputs,
namespace,
...
}: with lib; with lib.${namespace};
{
# Declare user packages.
home.packages = with pkgs; [
### Runtimes
nodejs_22
bun
### Tools
git
];
home.stateVersion = "24.05";
}

View file

@ -7,7 +7,7 @@
...
}: with lib; with lib.${namespace};
let
cfg = config.${namespace}.apps.zed-editor;
cfg = config.${namespace}.apps.development.zed-editor;
zed-fhs = pkgs.buildFHSUserEnv {
name = "zed";

View file

@ -0,0 +1,5 @@
{
...
}: {
# Todo: implement example service structure which should be re-usable for any future services.
}

View file

@ -1,16 +1,4 @@
{
lib,
pkgs,
inputs,
namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal".
system,
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
format, # A normalized name for the home target (eg. `home`).
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
host, # The host name for this home.
config,
...
}: {
catppuccin = {

View file

@ -1,16 +1,4 @@
{
lib,
pkgs,
inputs,
namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal".
system,
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
format, # A normalized name for the home target (eg. `home`).
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
host, # The host name for this home.
config,
...
}: {
gtk = {

View file

@ -0,0 +1,33 @@
{
lib,
pkgs,
namespace,
config,
...
}: with lib; with lib.${namespace};
let
cfg = config.${namespace}.archetypes.server;
in {
options.${namespace}.archetypes.server = { enable = mkEnableOption "Enable the server archetype for your current system"; };
config = mkIf cfg.enable {
# Enable modules
puzzlevision = {
common = {
nix = {
enable = true;
use-lix = true;
};
grub.enable = true;
networking.enable = true;
kernel.enable = true;
shell.enable = true;
hardware.enable = true;
locale.enable = true;
};
};
};
# Enable SSH for remote login
services.openssh.enable = true;
}

View file

@ -12,7 +12,6 @@ in {
config = mkIf cfg.enable {
hardware.sensor.iio.enable = true; # Enable iio-sensor for automatic screen rotation and similar features.
hardware.flipperzero.enable = true; # Enable support for the flipperzero device.
};
}

View file

@ -0,0 +1,50 @@
{
lib,
pkgs,
inputs,
namespace,
config,
...
}:
with lib;
with lib.${namespace};
{
imports = [
./hardware-configuration.nix
inputs.hardware.nixosModules.common-pc-laptop
inputs.hardware.nixosModules.common-cpu-intel
inputs.hardware.nixosModules.common-pc-laptop-ssd
];
# Set hostname
# Todo: move to common/networking module
networking.hostName = "absolutesolver";
# Set timezone.
time.timeZone = "Europe/Berlin";
# Enable docker
virtualisation.docker.enable = true;
# Set system Type
puzzlevision.archetypes.server.enable = true;
# Configure users.
snowfallorg.users.jo.admin = true;
users.users.jo.isNormalUser = true;
users.users.jo.extraGroups = [ "dialout" "docker" ];
# Configure home-manager
home-manager = {
backupFileExtension = "homeManagerBackup";
};
# Provide users with some sane default packages.
environment.systemPackages = with pkgs; [
### General
nano
vim
];
system.stateVersion = "24.05";
}

View file

@ -51,13 +51,12 @@ with lib.${namespace};
# Configure users.
snowfallorg.users.jo.admin = true;
users.users.jo.isNormalUser = true;
users.users.jo.extraGroups = [ "dialout" "docker" ];
# Configure home-manager
home-manager = {
backupFileExtension = "homeManagerBackupFile";
backupFileExtension = "homeManagerBackup";
};
# Provide users with some sane default packages.