From 10acdcd5a293bc0d3f94d3bfd776b59d984a8d81 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sat, 7 Mar 2026 17:42:05 +0000 Subject: [PATCH] [ci skip] add widgets for audiobookshelf, changedetection, prowlarr, headscale Wire homepage_credentials through servarr parent stack for prowlarr. Fix paperless-ngx widget to use internal service URL. --- stacks/audiobookshelf/main.tf | 7 +++++++ stacks/changedetection/main.tf | 7 +++++++ stacks/paperless-ngx/main.tf | 2 +- stacks/platform/main.tf | 1 + stacks/platform/modules/headscale/main.tf | 8 ++++++++ stacks/servarr/main.tf | 13 +++++++++---- stacks/servarr/prowlarr/main.tf | 7 +++++++ 7 files changed, 40 insertions(+), 5 deletions(-) diff --git a/stacks/audiobookshelf/main.tf b/stacks/audiobookshelf/main.tf index 3f361430..7a4765b8 100644 --- a/stacks/audiobookshelf/main.tf +++ b/stacks/audiobookshelf/main.tf @@ -3,6 +3,10 @@ variable "tls_secret_name" { sensitive = true } variable "nfs_server" { type = string } +variable "homepage_credentials" { + type = map(any) + sensitive = true +} resource "kubernetes_namespace" "audiobookshelf" { @@ -200,5 +204,8 @@ module "ingress" { "gethomepage.dev/icon" = "audiobookshelf.png" "gethomepage.dev/group" = "Media & Entertainment" "gethomepage.dev/pod-selector" = "" + "gethomepage.dev/widget.type" = "audiobookshelf" + "gethomepage.dev/widget.url" = "http://audiobookshelf.audiobookshelf.svc.cluster.local" + "gethomepage.dev/widget.key" = var.homepage_credentials["audiobookshelf"]["token"] } } diff --git a/stacks/changedetection/main.tf b/stacks/changedetection/main.tf index a2630443..5c9568ae 100644 --- a/stacks/changedetection/main.tf +++ b/stacks/changedetection/main.tf @@ -3,6 +3,10 @@ variable "tls_secret_name" { sensitive = true } variable "nfs_server" { type = string } +variable "homepage_credentials" { + type = map(any) + sensitive = true +} resource "kubernetes_namespace" "changedetection" { @@ -167,5 +171,8 @@ module "ingress" { "gethomepage.dev/icon" = "changedetection-io.png" "gethomepage.dev/group" = "Automation" "gethomepage.dev/pod-selector" = "" + "gethomepage.dev/widget.type" = "changedetectionio" + "gethomepage.dev/widget.url" = "http://changedetection.changedetection.svc.cluster.local:5000" + "gethomepage.dev/widget.key" = var.homepage_credentials["changedetection"]["api_key"] } } diff --git a/stacks/paperless-ngx/main.tf b/stacks/paperless-ngx/main.tf index fd56d58a..31ba9171 100644 --- a/stacks/paperless-ngx/main.tf +++ b/stacks/paperless-ngx/main.tf @@ -190,7 +190,7 @@ module "ingress" { "gethomepage.dev/icon" : "paperless-ngx.png" "gethomepage.dev/name" = "Paperless-ngx" "gethomepage.dev/widget.type" = "paperlessngx" - "gethomepage.dev/widget.url" = "https://pdf.viktorbarzin.me" + "gethomepage.dev/widget.url" = "http://paperless-ngx.paperless-ngx.svc.cluster.local" # "gethomepage.dev/widget.token" = var.homepage_token "gethomepage.dev/widget.username" = var.homepage_credentials["paperless-ngx"]["username"] "gethomepage.dev/widget.password" = var.homepage_credentials["paperless-ngx"]["password"] diff --git a/stacks/platform/main.tf b/stacks/platform/main.tf index 40e649bd..9da650fd 100644 --- a/stacks/platform/main.tf +++ b/stacks/platform/main.tf @@ -287,6 +287,7 @@ module "headscale" { nfs_server = var.nfs_server headscale_config = var.headscale_config headscale_acl = var.headscale_acl + homepage_token = try(var.homepage_credentials["headscale"]["api_key"], "") tier = local.tiers.core } diff --git a/stacks/platform/modules/headscale/main.tf b/stacks/platform/modules/headscale/main.tf index a48e60af..f0f7c4bd 100644 --- a/stacks/platform/modules/headscale/main.tf +++ b/stacks/platform/modules/headscale/main.tf @@ -4,6 +4,11 @@ variable "tier" { type = string } variable "headscale_config" {} variable "headscale_acl" {} variable "nfs_server" { type = string } +variable "homepage_token" { + type = string + default = "" + sensitive = true +} resource "kubernetes_namespace" "headscale" { metadata { @@ -258,6 +263,9 @@ module "ingress" { "gethomepage.dev/icon" = "headscale.png" "gethomepage.dev/group" = "Identity & Security" "gethomepage.dev/pod-selector" = "" + "gethomepage.dev/widget.type" = "headscale" + "gethomepage.dev/widget.url" = "http://headscale.headscale.svc.cluster.local:8080" + "gethomepage.dev/widget.key" = var.homepage_token } } diff --git a/stacks/servarr/main.tf b/stacks/servarr/main.tf index 4ed827de..ad04c7b2 100644 --- a/stacks/servarr/main.tf +++ b/stacks/servarr/main.tf @@ -4,6 +4,10 @@ variable "tls_secret_name" { } variable "aiostreams_database_connection_string" { type = string } variable "nfs_server" { type = string } +variable "homepage_credentials" { + type = map(any) + sensitive = true +} resource "kubernetes_namespace" "servarr" { @@ -29,10 +33,11 @@ module "tls_secret" { # } module "prowlarr" { - source = "./prowlarr" - tls_secret_name = var.tls_secret_name - tier = local.tiers.aux - nfs_server = var.nfs_server + source = "./prowlarr" + tls_secret_name = var.tls_secret_name + tier = local.tiers.aux + nfs_server = var.nfs_server + homepage_credentials = var.homepage_credentials } module "qbittorrent" { diff --git a/stacks/servarr/prowlarr/main.tf b/stacks/servarr/prowlarr/main.tf index 28e52e47..c8148f37 100644 --- a/stacks/servarr/prowlarr/main.tf +++ b/stacks/servarr/prowlarr/main.tf @@ -1,6 +1,10 @@ variable "tls_secret_name" {} variable "tier" { type = string } variable "nfs_server" { type = string } +variable "homepage_credentials" { + type = map(any) + sensitive = true +} module "nfs_data" { @@ -129,5 +133,8 @@ module "ingress" { "gethomepage.dev/icon" = "prowlarr.png" "gethomepage.dev/group" = "Media & Entertainment" "gethomepage.dev/pod-selector" = "" + "gethomepage.dev/widget.type" = "prowlarr" + "gethomepage.dev/widget.url" = "http://prowlarr.servarr.svc.cluster.local" + "gethomepage.dev/widget.key" = var.homepage_credentials["prowlarr"]["api_key"] } }