more migration stuff

This commit is contained in:
Danilo Reyes 2025-10-12 20:24:42 -06:00
parent 30cff89a50
commit 0f7e28abd0
8 changed files with 101 additions and 92 deletions

View File

@ -5,7 +5,7 @@
../../config/base.nix ../../config/base.nix
../../config/stylix.nix ../../config/stylix.nix
]; ];
my = import ./toggles.nix // { my = import ./toggles.nix { inherit inputs; } // {
nix.cores = 3; nix.cores = 3;
nix.maxJobs = 8; nix.maxJobs = 8;
users.nixremote.enable = true; users.nixremote.enable = true;

View File

@ -1,16 +1,6 @@
{ inputs }:
let let
mkEnabled = name: { inherit (inputs.self.lib) mkEnabled mkEnabledWithProxy enableList;
inherit name;
value.enable = true;
};
mkEnabledWithProxy = name: {
inherit name;
value = {
enable = true;
enableProxy = true;
};
};
enableList = func: list: list |> map func |> builtins.listToAttrs;
in in
{ {
emacs.enable = true; emacs.enable = true;

View File

@ -10,7 +10,7 @@
../../config/base.nix ../../config/base.nix
../../config/stylix.nix ../../config/stylix.nix
]; ];
my = import ./toggles.nix { inherit config; } // { my = import ./toggles.nix { inherit config inputs; } // {
nix.cores = 6; nix.cores = 6;
users.nixremote.enable = true; users.nixremote.enable = true;
users.nixremote.authorizedKeys = [ users.nixremote.authorizedKeys = [

View File

@ -1,17 +1,7 @@
{ config }: { config, inputs }:
let let
mkEnabled = name: { inherit (inputs.self.lib) mkEnabled enableList;
inherit name; mkEnabledIp = inputs.self.lib.mkEnabledIp config.my.ips.wg-server;
value.enable = true;
};
mkEnabledIp = name: {
inherit name;
value = {
enable = true;
ip = config.my.ips.wg-server;
};
};
enableList = func: list: list |> map func |> builtins.listToAttrs;
in in
{ {
mainServer = "server"; mainServer = "server";

View File

@ -22,7 +22,7 @@ in
../../config/stylix.nix ../../config/stylix.nix
../../environments/gnome.nix ../../environments/gnome.nix
]; ];
my = import ./toggles.nix // { my = import ./toggles.nix { inherit inputs; } // {
nix.cores = 8; nix.cores = 8;
nix.maxJobs = 8; nix.maxJobs = 8;
users.nixremote.enable = true; users.nixremote.enable = true;

View File

@ -1,9 +1,6 @@
{ inputs }:
let let
mkEnabled = name: { inherit (inputs.self.lib) mkEnabled enableList;
inherit name;
value.enable = true;
};
enableList = func: list: list |> map func |> builtins.listToAttrs;
in in
{ {
stylix.enable = true; stylix.enable = true;

View File

@ -105,39 +105,45 @@ in
enableProxy = lib.mkEnableOption "nginx reverse proxy for services"; enableProxy = lib.mkEnableOption "nginx reverse proxy for services";
}; };
config = { config = {
assertions = [ assertions =
# PostgreSQL dependency assertions
inputs.self.lib.mkPostgresDependencies config [
{ {
assertion = config.my.servers.nextcloud.enable -> config.my.servers.postgres.enable; service = "nextcloud";
message = "Nextcloud requires PostgreSQL to be enabled"; name = "Nextcloud";
} }
{ {
assertion = config.my.servers.vaultwarden.enable -> config.my.servers.postgres.enable; service = "vaultwarden";
message = "Vaultwarden requires PostgreSQL to be enabled"; name = "Vaultwarden";
} }
{ {
assertion = config.my.servers.firefly-iii.enable -> config.my.servers.postgres.enable; service = "firefly-iii";
message = "Firefly III requires PostgreSQL to be enabled"; name = "Firefly III";
} }
{ {
assertion = config.my.servers.mealie.enable -> config.my.servers.postgres.enable; service = "mealie";
message = "Mealie requires PostgreSQL to be enabled"; name = "Mealie";
} }
{ {
assertion = config.my.servers.shiori.enable -> config.my.servers.postgres.enable; service = "shiori";
message = "Shiori requires PostgreSQL to be enabled"; name = "Shiori";
} }
{ {
assertion = config.my.servers.ryot.enable -> config.my.servers.postgres.enable; service = "ryot";
message = "Ryot requires PostgreSQL to be enabled"; name = "Ryot";
} }
{ {
assertion = config.my.servers.synapse.enable -> config.my.servers.postgres.enable; service = "synapse";
message = "Matrix Synapse requires PostgreSQL to be enabled"; name = "Matrix Synapse";
} }
{ {
assertion = config.my.servers.gitea.enable -> config.my.servers.postgres.enable; service = "gitea";
message = "Gitea requires PostgreSQL to be enabled"; name = "Gitea";
} }
]
++
# Other assertions
[
{ {
assertion = assertion =
config.my.enableProxy config.my.enableProxy

View File

@ -171,6 +171,32 @@ in
|> lib.attrValues |> lib.attrValues
|> map (srv: srv.port) |> map (srv: srv.port)
); );
mkEnabled = name: {
inherit name;
value.enable = true;
};
mkEnabledWithProxy = name: {
inherit name;
value = {
enable = true;
enableProxy = true;
};
};
mkEnabledIp = ip: name: {
inherit name;
value = {
enable = true;
inherit ip;
};
};
enableList = func: list: list |> map func |> builtins.listToAttrs;
mkPostgresDependency = config: serviceName: displayName: {
assertion = config.my.servers.${serviceName}.enable -> config.my.servers.postgres.enable;
message = "${displayName} requires PostgreSQL to be enabled";
};
mkPostgresDependencies =
config: serviceMap:
serviceMap |> map (entry: inputs.self.lib.mkPostgresDependency config entry.service entry.name);
}; };
}; };
} }