mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 17:17:22 +01:00
WIP share configuraton between nixos / homemanager
This commit is contained in:
parent
641a0cd84d
commit
302c488569
166 changed files with 1029 additions and 1031 deletions
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.amdcpu = lib.mkEnableOption "is this a host with amd cpu";
|
||||
config = lib.mkIf config.swarselsystems.profiles.amdcpu {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.amdcpu = lib.mkEnableOption "is this a host with amd cpu";
|
||||
config = lib.mkIf config.swarselprofiles.amdcpu {
|
||||
swarselmodules = {
|
||||
optional = {
|
||||
amdcpu = lib.mkDefault true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.amdgpu = lib.mkEnableOption "is this a host with amd gpu";
|
||||
config = lib.mkIf config.swarselsystems.profiles.amdgpu {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.amdgpu = lib.mkEnableOption "is this a host with amd gpu";
|
||||
config = lib.mkIf config.swarselprofiles.amdgpu {
|
||||
swarselmodules = {
|
||||
optional = {
|
||||
amdgpu = lib.mkDefault true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.btrfs = lib.mkEnableOption "is this a host using btrfs";
|
||||
config = lib.mkIf config.swarselsystems.profiles.btrfs {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.btrfs = lib.mkEnableOption "is this a host using btrfs";
|
||||
config = lib.mkIf config.swarselprofiles.btrfs {
|
||||
swarselmodules = {
|
||||
optional = {
|
||||
btrfs = lib.mkDefault true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host";
|
||||
config = lib.mkIf config.swarselsystems.profiles.chaostheatre {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host";
|
||||
config = lib.mkIf config.swarselprofiles.chaostheatre {
|
||||
swarselmodules = {
|
||||
packages = lib.mkDefault true;
|
||||
general = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,17 @@
|
|||
{ lib, config, ... }:
|
||||
{ lib, config, minimal, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.framework = lib.mkEnableOption "is this a framework brand host";
|
||||
config = lib.mkIf config.swarselsystems.profiles.framework {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.framework = lib.mkEnableOption "is this a framework brand host";
|
||||
config = lib.mkIf config.swarselprofiles.framework {
|
||||
swarselmodules = {
|
||||
optional = {
|
||||
framework = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
home-manager.users."${config.swarselsystems.mainUser}" = {
|
||||
swarselprofiles = {
|
||||
framework = lib.mkIf (!minimal) true;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.hibernation = lib.mkEnableOption "is this a host using hibernation";
|
||||
config = lib.mkIf config.swarselsystems.profiles.hibernation {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.hibernation = lib.mkEnableOption "is this a host using hibernation";
|
||||
config = lib.mkIf config.swarselprofiles.hibernation {
|
||||
swarselmodules = {
|
||||
optional = {
|
||||
hibernation = lib.mkDefault true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,47 +1,45 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.server.local = lib.mkEnableOption "is this a local server";
|
||||
config = lib.mkIf config.swarselsystems.profiles.server.local {
|
||||
swarselsystems = {
|
||||
modules = {
|
||||
options.swarselprofiles.server.local = lib.mkEnableOption "is this a local server";
|
||||
config = lib.mkIf config.swarselprofiles.server.local {
|
||||
swarselmodules = {
|
||||
general = lib.mkDefault true;
|
||||
pii = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
xserver = lib.mkDefault true;
|
||||
time = lib.mkDefault true;
|
||||
users = lib.mkDefault true;
|
||||
sops = lib.mkDefault true;
|
||||
server = {
|
||||
general = lib.mkDefault true;
|
||||
pii = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
xserver = lib.mkDefault true;
|
||||
time = lib.mkDefault true;
|
||||
users = lib.mkDefault true;
|
||||
sops = lib.mkDefault true;
|
||||
server = {
|
||||
general = lib.mkDefault true;
|
||||
packages = lib.mkDefault true;
|
||||
nfs = lib.mkDefault true;
|
||||
nginx = lib.mkDefault true;
|
||||
ssh = lib.mkDefault true;
|
||||
kavita = lib.mkDefault true;
|
||||
restic = lib.mkDefault true;
|
||||
jellyfin = lib.mkDefault true;
|
||||
navidrome = lib.mkDefault true;
|
||||
spotifyd = lib.mkDefault true;
|
||||
mpd = lib.mkDefault true;
|
||||
postgresql = 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;
|
||||
grafana = lib.mkDefault true;
|
||||
emacs = lib.mkDefault true;
|
||||
freshrss = lib.mkDefault true;
|
||||
jenkins = lib.mkDefault false;
|
||||
kanidm = lib.mkDefault true;
|
||||
firefly-iii = lib.mkDefault true;
|
||||
koillection = lib.mkDefault true;
|
||||
radicale = lib.mkDefault true;
|
||||
atuin = lib.mkDefault true;
|
||||
forgejo = lib.mkDefault true;
|
||||
ankisync = lib.mkDefault true;
|
||||
};
|
||||
packages = lib.mkDefault true;
|
||||
nfs = lib.mkDefault true;
|
||||
nginx = lib.mkDefault true;
|
||||
ssh = lib.mkDefault true;
|
||||
kavita = lib.mkDefault true;
|
||||
restic = lib.mkDefault true;
|
||||
jellyfin = lib.mkDefault true;
|
||||
navidrome = lib.mkDefault true;
|
||||
spotifyd = lib.mkDefault true;
|
||||
mpd = lib.mkDefault true;
|
||||
postgresql = 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;
|
||||
grafana = lib.mkDefault true;
|
||||
emacs = lib.mkDefault true;
|
||||
freshrss = lib.mkDefault true;
|
||||
jenkins = lib.mkDefault false;
|
||||
kanidm = lib.mkDefault true;
|
||||
firefly-iii = lib.mkDefault true;
|
||||
koillection = lib.mkDefault true;
|
||||
radicale = lib.mkDefault true;
|
||||
atuin = lib.mkDefault true;
|
||||
forgejo = lib.mkDefault true;
|
||||
ankisync = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.minimal = lib.mkEnableOption "declare this a minimal host";
|
||||
config = lib.mkIf config.swarselsystems.profiles.minimal {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.minimal = lib.mkEnableOption "declare this a minimal host";
|
||||
config = lib.mkIf config.swarselprofiles.minimal {
|
||||
swarselmodules = {
|
||||
general = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
xserver = lib.mkDefault true;
|
||||
|
|
|
|||
|
|
@ -1,27 +1,25 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.server.moonside = lib.mkEnableOption "is this a moonside server";
|
||||
config = lib.mkIf config.swarselsystems.profiles.server.moonside {
|
||||
swarselsystems = {
|
||||
modules = {
|
||||
options.swarselprofiles.server.moonside = lib.mkEnableOption "is this a moonside server";
|
||||
config = lib.mkIf config.swarselprofiles.server.moonside {
|
||||
swarselmodules = {
|
||||
general = lib.mkDefault true;
|
||||
pii = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
xserver = lib.mkDefault true;
|
||||
time = lib.mkDefault true;
|
||||
users = lib.mkDefault true;
|
||||
impermanence = lib.mkDefault true;
|
||||
sops = lib.mkDefault true;
|
||||
server = {
|
||||
general = lib.mkDefault true;
|
||||
pii = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
xserver = lib.mkDefault true;
|
||||
time = lib.mkDefault true;
|
||||
users = lib.mkDefault true;
|
||||
impermanence = lib.mkDefault true;
|
||||
sops = lib.mkDefault true;
|
||||
server = {
|
||||
general = lib.mkDefault true;
|
||||
packages = lib.mkDefault true;
|
||||
nginx = lib.mkDefault true;
|
||||
ssh = lib.mkDefault true;
|
||||
oauth2-proxy = lib.mkDefault true;
|
||||
croc = lib.mkDefault true;
|
||||
microbin = lib.mkDefault true;
|
||||
shlink = lib.mkDefault true;
|
||||
};
|
||||
packages = lib.mkDefault true;
|
||||
nginx = lib.mkDefault true;
|
||||
ssh = lib.mkDefault true;
|
||||
oauth2-proxy = lib.mkDefault true;
|
||||
croc = lib.mkDefault true;
|
||||
microbin = lib.mkDefault true;
|
||||
shlink = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{ lib, config, minimal, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.personal = lib.mkEnableOption "is this a personal host";
|
||||
config = lib.mkIf config.swarselsystems.profiles.personal {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host";
|
||||
config = lib.mkIf config.swarselprofiles.personal {
|
||||
swarselmodules = {
|
||||
packages = lib.mkDefault true;
|
||||
pii = lib.mkDefault true;
|
||||
general = lib.mkDefault true;
|
||||
|
|
@ -55,6 +55,11 @@
|
|||
ssh = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
home-manager.users."${config.swarselsystems.mainUser}" = {
|
||||
swarselprofiles = {
|
||||
personal = lib.mkIf (!minimal) true;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.reduced = lib.mkEnableOption "is this a reduced personal host";
|
||||
config = lib.mkIf config.swarselsystems.profiles.reduced {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.reduced = lib.mkEnableOption "is this a reduced personal host";
|
||||
config = lib.mkIf config.swarselprofiles.reduced {
|
||||
swarselmodules = {
|
||||
packages = lib.mkDefault true;
|
||||
pii = lib.mkDefault true;
|
||||
general = lib.mkDefault true;
|
||||
|
|
|
|||
|
|
@ -1,25 +1,23 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.server.syncserver = lib.mkEnableOption "is this a oci syncserver server";
|
||||
config = lib.mkIf config.swarselsystems.profiles.server.syncserver {
|
||||
swarselsystems = {
|
||||
modules = {
|
||||
options.swarselprofiles.server.syncserver = lib.mkEnableOption "is this a oci syncserver server";
|
||||
config = lib.mkIf config.swarselprofiles.server.syncserver {
|
||||
swarselmodules = {
|
||||
general = lib.mkDefault true;
|
||||
nix-ld = lib.mkDefault true;
|
||||
pii = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
xserver = lib.mkDefault true;
|
||||
time = lib.mkDefault true;
|
||||
users = lib.mkDefault true;
|
||||
sops = lib.mkDefault true;
|
||||
server = {
|
||||
general = lib.mkDefault true;
|
||||
nix-ld = lib.mkDefault true;
|
||||
pii = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
xserver = lib.mkDefault true;
|
||||
time = lib.mkDefault true;
|
||||
users = lib.mkDefault true;
|
||||
sops = lib.mkDefault true;
|
||||
server = {
|
||||
general = lib.mkDefault true;
|
||||
packages = lib.mkDefault true;
|
||||
nginx = lib.mkDefault true;
|
||||
ssh = lib.mkDefault true;
|
||||
forgejo = lib.mkDefault false;
|
||||
ankisync = lib.mkDefault false;
|
||||
};
|
||||
packages = lib.mkDefault true;
|
||||
nginx = lib.mkDefault true;
|
||||
ssh = lib.mkDefault true;
|
||||
forgejo = lib.mkDefault false;
|
||||
ankisync = lib.mkDefault false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.toto = lib.mkEnableOption "is this a toto (setup) host";
|
||||
config = lib.mkIf config.swarselsystems.profiles.toto {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.toto = lib.mkEnableOption "is this a toto (setup) host";
|
||||
config = lib.mkIf config.swarselprofiles.toto {
|
||||
swarselmodules = {
|
||||
general = lib.mkDefault true;
|
||||
packages = lib.mkDefault true;
|
||||
home-manager = lib.mkDefault true;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,17 @@
|
|||
{ lib, config, ... }:
|
||||
{ lib, config, minimal, ... }:
|
||||
{
|
||||
options.swarselsystems.profiles.work = lib.mkEnableOption "is this a work host";
|
||||
config = lib.mkIf config.swarselsystems.profiles.work {
|
||||
swarselsystems.modules = {
|
||||
options.swarselprofiles.work = lib.mkEnableOption "is this a work host";
|
||||
config = lib.mkIf config.swarselprofiles.work {
|
||||
swarselmodules = {
|
||||
optional = {
|
||||
work = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
home-manager.users."${config.swarselsystems.mainUser}" = {
|
||||
swarselprofiles = {
|
||||
work = lib.mkIf (!minimal) true;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue