Files
eyduh f407ca5800 gotta install alejandra and make omp use it cuz these flake-wide bouts
of reformatting are getting a bit silly...
also added devenv and latest touchosc
2026-09-23 01:37:49 +02:00

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 = { ... }: { };
};
};
}