module "open-webui" { source = "../../modules/apps/open-webui" persistent_folder = local.persistent_folder fqdn = local.open_webui_fqdn llm_proxy = local.llm_proxy secret_key = var.webui_secret_key tag = "v0.9.2-slim" log_level = local.open_webui_log_level } module "samba" { source = "../../modules/apps/samba" shares = local.samba_shares } module "dns" { source = "../../modules/apps/coredns" forward_dns_servers = local.dns_nameservers override_hosts = local.override_hosts zones = local.zones } module "proxy" { source = "../../modules/utils/proxy" services = local.proxy_services streams = local.streams } module "nextcloud" { source = "../../modules/apps/nextcloud" fqdn = local.nextcloud_fqdn nextcloud_data = local.nextcloud_data app_config = local.nextcloud_config db_credentials_are_secrets = true tls_enabled = true issuer = local.internal_issuer } # module "comfyui_proxy" { # source = "../../modules/utils/wol_proxy" # upstream = local.comfyui_proxy # proxy_port = local.comfyui_proxy.port # namespace = "comfyui" # } module "prometheus" { source = "../../modules/utils/prometheus" cluster_name = "dev-01" persistent_folder = "${local.persistent_folder}/monitoring" config = local.prometheus_config rules = local.prometheus_rules alertmanager_config = local.alertmanager_config email_config = local.alertmanager_email_config telegram_config = { bot_token = var.telegram_bot_token chat_id = local.telegram_chat_id message = local.telegram_message } } module "grafana" { source = "../../modules/apps/grafana" persistent_folder = "${local.persistent_folder}/monitoring" fqdn = local.grafana_fqdn dashboard_folder = { System = "${path.module}/resources/grafana/system" Kubernetes = "${path.module}/resources/grafana/kubernetes" Security = "${path.module}/resources/grafana/security" GPU = "${path.module}/resources/grafana/gpu" LLM = "${path.module}/resources/grafana/llm" Windows = "${path.module}/resources/grafana/windows" } datasource_folder = "${path.module}/resources/grafana" } module "mstream" { source = "../../modules/apps/mstream" persistent_folder = local.persistent_folder music_folder = local.mstream_music_folder fqdn = local.mstream_fqdn } module "searxng" { source = "../../modules/apps/searxng" persistent_folder = local.searxng_folder fqdn = local.searxng_fqdn issuer = local.searxng_issuer tag = "2026.5.2-aefc3c316" secret_key = var.searxng_secret_key } module "vaultwarden" { source = "../../modules/apps/vaultwarden" persistent_folder = local.vaultwarden_folder fqdn = local.vaultwarden_fqdn issuer = local.vaultwarden_issuer tag = local.vaultwarden_version admin_token = var.vaultwarden_admin_token smtp_host = local.vaultwarden_smtp_host smtp_port = local.vaultwarden_smtp_port smtp_security = local.vaultwarden_smtp_security smtp_from = local.vaultwarden_smtp_from smtp_from_name = local.vaultwarden_smtp_from_name smtp_username = local.vaultwarden_smtp_username smtp_password = local.vaultwarden_smtp_password # We temporarily enable signup to create the first admin user, then we will disable it and rotate the admin token # signup_enabled = true # signup_verify = false }