104 lines
4.1 KiB
Nix
Executable File
104 lines
4.1 KiB
Nix
Executable File
{
|
|
inputs,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
inputs.clan-core.flakeModules.default
|
|
./inventory/instances
|
|
./templates
|
|
];
|
|
|
|
clan = {
|
|
meta.name = "eyduhverse";
|
|
meta.domain = "clouds.eyduh";
|
|
|
|
inventory.machines = import ./inventory/machines.nix;
|
|
|
|
# clan modules must belong to one of:
|
|
# [ "Audio" "AudioVideo" "Desktop" "Development" "Education" "Game"
|
|
# "Graphics" "Network" "Office" "Science" "Settings" "Social"
|
|
# "System" "Uncategorized" "Utility" "Video" ]
|
|
|
|
# virtualHosts: public hostname → { port, proxyWebsockets } exported by services
|
|
# and consumed by @eyduh/clan-proxy to build nginx upstreams with ACME TLS.
|
|
# Clan-internal hostnames go in endpoints.hosts (consumed by dm-dns and pki).
|
|
exportInterfaces.virtualHosts = { lib, ... }: {
|
|
freeformType = lib.types.attrsOf lib.types.anything;
|
|
};
|
|
|
|
# endpoints: clan-internal hostnames → { hosts: [str] }
|
|
# consumed by dm-dns (publish AAAA records) and pki (issue clan CA certs).
|
|
exportInterfaces.endpoints = { lib, ... }: {
|
|
freeformType = lib.types.attrsOf lib.types.anything;
|
|
};
|
|
|
|
# auth: provider-agnostic identity exports (auth.users / auth.client /
|
|
# auth.varsGenerator) consumed by an IdP service (authelia, future kanidm).
|
|
exportInterfaces.auth = { lib, ... }: {
|
|
freeformType = lib.types.attrsOf lib.types.anything;
|
|
};
|
|
|
|
modules = {
|
|
"@DavHau/nix-cache" = import ./clanServices/nix-cache;
|
|
"@eyduh/clan-proxy" = import ./clanServices/proxy;
|
|
"@eyduh/adastra-landing" = import ./clanServices/adastra;
|
|
"@eyduh/plasma" = import ./clanServices/plasma;
|
|
"@eyduh/comms" = import ./clanServices/comms;
|
|
# "@eyduh/sharkey" = import ./clanServices/sharkey; # test broken (settings.url renamed) — fix post-proxmox migration
|
|
"@eyduh/searx" = import ./clanServices/searx { inherit inputs; };
|
|
"@eyduh/disk-encryption" = import ./clanServices/disk-encryption;
|
|
"@eyduh/pixelfed" = import ./clanServices/pixelfed;
|
|
"@eyduh/nextcloud" = import ./clanServices/nextcloud;
|
|
"@eyduh/jellyfin" = import ./clanServices/jellyfin;
|
|
"@eyduh/arr" = import ./clanServices/arr;
|
|
"@eyduh/blocky" = import ./clanServices/blocky;
|
|
"@eyduh/hc4-oled" = import ./clanServices/hc4-oled;
|
|
"@eyduh/portable-router" = import ./clanServices/portable-router;
|
|
"@eyduh/odoo" = import ./clanServices/odoo;
|
|
"@eyduh/odoo-mcp" = inputs.odoo-mcp.clanModules.odoo-mcp;
|
|
"@eyduh/continuwuity" = import ./clanServices/continuwuity { inherit inputs; };
|
|
"@eyduh/ontime" = import ./clanServices/ontime { inherit inputs; };
|
|
"@eyduh/opencrow" = import ./clanServices/opencrow { inherit inputs; };
|
|
"@eyduh/clan-rag" = inputs.clan-rag-flm.clanModules.clan-rag;
|
|
# "@eyduh/formbricks" = import ./clanServices/formbricks;
|
|
# "@eyduh/misskey" = import ./clanServices/misskey;
|
|
# "@eyduh/creative-studio" = import ./clanServices/creative-studio.nix;
|
|
"@eyduh/headscale" = import ./clanServices/headscale;
|
|
};
|
|
|
|
# Uncomment to inject overlays into every machine's nixpkgs.
|
|
# pkgsForSystem = system: import inputs.nixpkgs {
|
|
# inherit system;
|
|
# overlays = [
|
|
# inputs.nix-amd-ai.overlays.default
|
|
# inputs.affinity-nix.overlays.default
|
|
# (final: prev: {
|
|
# unstable = import inputs.nixpkgs-unstable {
|
|
# system = final.system;
|
|
# config.allowUnfreePredicate = prev.config.allowUnfreePredicate;
|
|
# };
|
|
# })
|
|
# ];
|
|
# config.allowUnfreePredicate = pkg:
|
|
# builtins.elem (lib.getName pkg) [
|
|
# "steam" "steam-unwrapped" "input-fonts" "xkcd-font"
|
|
# ];
|
|
# };
|
|
|
|
machines = {
|
|
arcus = { ... }: { };
|
|
volutus = { ... }: { nixpkgs.config.allowUnfree = true; };
|
|
cirrus = { ... }: { };
|
|
mist = { ... }: { };
|
|
lenticularis = { ... }: { nixpkgs.hostPlatform.system = "aarch64-linux"; };
|
|
scud = { ... }: { nixpkgs.hostPlatform.system = "aarch64-linux"; };
|
|
velum = { ... }: { nixpkgs.hostPlatform.system = "aarch64-linux"; };
|
|
cumulonimbus = { ... }: { };
|
|
|
|
starling = { ... }: { };
|
|
};
|
|
};
|
|
}
|