45 lines
1.3 KiB
Nix
45 lines
1.3 KiB
Nix
{ lib, ... }:
|
|
let
|
|
inherit (lib) mkEnableOption mkOption types;
|
|
|
|
commonOptions = {
|
|
enable = mkEnableOption "docker";
|
|
};
|
|
in
|
|
{
|
|
options = {
|
|
valhalla = {
|
|
programs.docker = commonOptions;
|
|
|
|
users = mkOption {
|
|
type = types.attrsOf (types.submodule (
|
|
{ ... }: {
|
|
options = {
|
|
programs.docker = commonOptions;
|
|
};
|
|
}
|
|
));
|
|
};
|
|
|
|
linux = {
|
|
programs = {
|
|
docker = {
|
|
services = {
|
|
anki-sync.enable = mkEnableOption "Anki Sync server";
|
|
drone.enable = mkEnableOption "drone server";
|
|
forgejo.enable = mkEnableOption "Forgejo server";
|
|
jellyfin.enable = mkEnableOption "Jellyfin media server";
|
|
minecraft.enable = mkEnableOption "Minecraft server";
|
|
nextcloud.enable = mkEnableOption "Nextcloud server";
|
|
teamspeak.enable = mkEnableOption "TeamSpeak server";
|
|
terraria.enable = mkEnableOption "Terraria server";
|
|
trackmania.enable = mkEnableOption "TrackMania server";
|
|
vaultwarden.enable = mkEnableOption "Vaultwarden server";
|
|
woodpecker.enable = mkEnableOption "Woodpecker CI server";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|