refactor: [WIP] add hm and server profiles

This commit is contained in:
Leon Schwarzäugl 2025-04-03 00:20:26 +02:00
parent bd95ef4c9b
commit 9034735f84
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
38 changed files with 2559 additions and 2178 deletions

View file

@ -1,5 +1,7 @@
{ lib, ... }:
let
moduleNames = lib.swarselsystems.readNix "profiles/home";
profileNames = lib.swarselsystems.readNix "profiles/home";
in
lib.swarselsystems.mkProfiles moduleNames "home"
{
imports = lib.swarselsystems.mkImports profileNames "profiles/home";
}

View file

@ -0,0 +1,36 @@
{ lib, config, ... }:
{
options.swarselsystems.profiles.personal = lib.mkEnableOption "is this a personal host";
config = lib.mkIf config.swarselsystems.profiles.personal {
swarselsystems.modules = {
packages = lib.mkDefault true;
ownpackages = lib.mkDefault true;
general = lib.mkDefault true;
nixgl = lib.mkDefault true;
sops = lib.mkDefault true;
yubikey = lib.mkDefault true;
ssh = lib.mkDefault true;
stylix = lib.mkDefault true;
desktop = lib.mkDefault true;
symlink = lib.mkDefault true;
env = lib.mkDefault true;
programs = lib.mkDefault true;
nix-index = lib.mkDefault true;
direnv = lib.mkDefault true;
eza = lib.mkDefault true;
git = lib.mkDefault true;
fuzzel = lib.mkDefault true;
starship = lib.mkDefault true;
kitty = lib.mkDefault true;
zsh = lib.mkDefault true;
zellij = lib.mkDefault true;
tmux = lib.mkDefault true;
mail = lib.mkDefault true;
emacs = lib.mkDefault true;
waybar = lib.mkDefault true;
firefox = lib.mkDefault true;
gnome-keyring = lib.mkDefault true;
};
};
}

View file

@ -1,5 +1,7 @@
{ lib, ... }:
let
moduleNames = lib.swarselsystems.readNix "profiles/nixos";
profileNames = lib.swarselsystems.readNix "profiles/nixos";
in
lib.swarselsystems.mkProfiles moduleNames "nixos"
{
imports = lib.swarselsystems.mkImports profileNames "profiles/nixos";
}

View file

@ -0,0 +1,37 @@
{ lib, config, ... }:
{
options.swarselsystems.profiles.server.local = lib.mkEnableOption "is this a local server";
config = lib.mkIf config.swarselsystems.profiles.server.local {
swarselsystems = {
# common modules
modules = {
nix-ld = lib.mkDefault true;
home-manager = lib.mkDefault true;
home-managerExtra = lib.mkDefault true;
xserver = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
time = lib.mkDefault true;
users = lib.mkDefault true;
};
# server modules
# server = {
# kavita = lib.mkDefault true;
# jellyfin = lib.mkDefault true;
# navidrome = lib.mkDefault true;
# spotifyd = lib.mkDefault true;
# mpd = lib.mkDefault true;
# matrix = lib.mkDefault true;
# nextcloud = lib.mkDefault true;
# immich = lib.mkDefault true;
# paperless = lib.mkDefault true;
# transmission = lib.mkDefault true;
# syncthing = lib.mkDefault true;
# monitoring = lib.mkDefault true;
# emacs = lib.mkDefault true;
# freshrss = lib.mkDefault true;
# };
};
};
}

View file

@ -1,8 +1,8 @@
{ lib, config, ... }:
{
options.swarselsystems.profiles.personalz = lib.mkEnableOption "is this a personal host";
config = lib.mkIf config.swarselsystems.profiles.personalz {
config.swarselsystems.modules = {
options.swarselsystems.profiles.personal = lib.mkEnableOption "is this a personal host";
config = lib.mkIf config.swarselsystems.profiles.personal {
swarselsystems.modules = {
packages = lib.mkDefault true;
general = lib.mkDefault true;
home-manager = lib.mkDefault true;

View file

@ -0,0 +1,25 @@
{ lib, config, ... }:
{
options.swarselsystems.profiles.server.sync = lib.mkEnableOption "is this a oci sync server";
config = lib.mkIf config.swarselsystems.profiles.server.sync {
swarselsystems = {
# common modules
modules = {
nix-ld = lib.mkDefault true;
home-manager = lib.mkDefault true;
home-managerExtra = lib.mkDefault true;
xserver = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
time = lib.mkDefault true;
users = lib.mkDefault true;
};
# server modules
# server = {
# forgejo = lib.mkDefault true;
# ankisync = lib.mkDefault true;
# };
};
};
}