{ 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"; }; }; }; }; }; }; }