From 29bb434e1e23191af63180dbe7df912a33e41bea Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sat, 9 May 2026 13:16:24 +0000 Subject: [PATCH] ig-poster: 69e395f2 + sync IMMICH_PG_* via ESO for CLIP scoring; postiz publish-notify n8n workflow --- stacks/actualbudget/.terraform.lock.hcl | 8 +++ stacks/actualbudget/factory/main.tf | 37 +++++++---- stacks/actualbudget/providers.tf | 4 ++ stacks/affine/.terraform.lock.hcl | 8 +++ stacks/affine/providers.tf | 4 ++ stacks/changedetection/.terraform.lock.hcl | 8 +++ stacks/changedetection/main.tf | 4 +- stacks/changedetection/providers.tf | 4 ++ stacks/claude-memory/backend.tf | 2 +- stacks/claude-memory/providers.tf | 4 ++ stacks/dawarich/.terraform.lock.hcl | 8 +++ stacks/dawarich/providers.tf | 4 ++ stacks/f1-stream/.terraform.lock.hcl | 8 +++ stacks/f1-stream/backend.tf | 2 +- stacks/f1-stream/providers.tf | 4 ++ stacks/forgejo/.terraform.lock.hcl | 8 +++ stacks/forgejo/backend.tf | 2 +- stacks/forgejo/providers.tf | 4 ++ stacks/freedify/.terraform.lock.hcl | 8 +++ stacks/freedify/backend.tf | 2 +- stacks/freedify/providers.tf | 4 ++ stacks/grampsweb/.terraform.lock.hcl | 25 +++----- stacks/grampsweb/providers.tf | 4 ++ stacks/immich/.terraform.lock.hcl | 8 +++ stacks/immich/backend.tf | 2 +- stacks/immich/providers.tf | 4 ++ .../modules/instagram-poster/main.tf | 20 ++++++ stacks/instagram-poster/terragrunt.hcl | 2 +- stacks/kms/backend.tf | 2 +- stacks/kms/providers.tf | 4 ++ stacks/n8n/.terraform.lock.hcl | 49 +++----------- stacks/n8n/backend.tf | 2 +- stacks/n8n/providers.tf | 4 ++ stacks/n8n/workflows/instagram-discover.json | 62 ++++++++++++++---- .../workflows/instagram-postiz-publish.json | 64 +++++++++++++++++++ stacks/nextcloud/.terraform.lock.hcl | 8 +++ stacks/nextcloud/backend.tf | 2 +- stacks/nextcloud/providers.tf | 4 ++ stacks/onlyoffice/.terraform.lock.hcl | 8 +++ stacks/onlyoffice/providers.tf | 4 ++ stacks/openclaw/.terraform.lock.hcl | 8 +++ stacks/openclaw/backend.tf | 2 +- stacks/openclaw/providers.tf | 4 ++ stacks/paperless-ngx/.terraform.lock.hcl | 8 +++ stacks/paperless-ngx/backend.tf | 2 +- stacks/paperless-ngx/providers.tf | 4 ++ .../real-estate-crawler/.terraform.lock.hcl | 8 +++ stacks/real-estate-crawler/providers.tf | 4 ++ stacks/servarr/.terraform.lock.hcl | 8 +++ stacks/servarr/providers.tf | 4 ++ stacks/tor-proxy/.terraform.lock.hcl | 25 +++----- stacks/tor-proxy/providers.tf | 4 ++ stacks/trading-bot/providers.tf | 4 ++ stacks/tuya-bridge/.terraform.lock.hcl | 8 +++ stacks/tuya-bridge/providers.tf | 4 ++ stacks/wealthfolio/.terraform.lock.hcl | 8 +++ stacks/wealthfolio/backend.tf | 2 +- stacks/wealthfolio/providers.tf | 4 ++ stacks/woodpecker/backend.tf | 2 +- stacks/woodpecker/providers.tf | 4 ++ 60 files changed, 419 insertions(+), 113 deletions(-) create mode 100644 stacks/n8n/workflows/instagram-postiz-publish.json diff --git a/stacks/actualbudget/.terraform.lock.hcl b/stacks/actualbudget/.terraform.lock.hcl index e8910be1..7959dc66 100644 --- a/stacks/actualbudget/.terraform.lock.hcl +++ b/stacks/actualbudget/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/actualbudget/factory/main.tf b/stacks/actualbudget/factory/main.tf index 820f3117..af80e962 100644 --- a/stacks/actualbudget/factory/main.tf +++ b/stacks/actualbudget/factory/main.tf @@ -33,6 +33,10 @@ variable "homepage_annotations" { type = map(string) default = {} } +variable "storage_size" { + type = string + default = "1Gi" +} resource "kubernetes_persistent_volume_claim" "data_encrypted" { wait_until_bound = false @@ -50,7 +54,7 @@ resource "kubernetes_persistent_volume_claim" "data_encrypted" { storage_class_name = "proxmox-lvm-encrypted" resources { requests = { - storage = "1Gi" + storage = var.storage_size } } } @@ -261,7 +265,7 @@ resource "kubernetes_cron_job_v1" "bank-sync" { metadata {} spec { backoff_limit = 1 - ttl_seconds_after_finished = 300 + ttl_seconds_after_finished = 86400 template { metadata {} spec { @@ -287,23 +291,28 @@ resource "kubernetes_cron_job_v1" "bank-sync" { LAST_SUCCESS=$END else SUCCESS=0 - LAST_SUCCESS=0 echo "Bank sync failed with HTTP $HTTP_CODE:" cat /tmp/response.txt echo "" fi - cat <New Immich candidate',\n '',\n '' + assetId + '',\n '',\n 'File: ' + filename\n];\nif (dateStr) lines.push('Taken: ' + dateStr);\nif (location) lines.push('Where: ' + location);\nlines.push('');\nlines.push('Approve to enqueue for posting, reject to mark seen.');\n\nreturn [{ json: { asset_id: assetId, caption: lines.join('\\n') } }];" + }, + "id": "build-caption", + "name": "Build caption + asset id", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [1410, 300], + "notes": "Compose the caption from Immich metadata. HTML parse_mode is used downstream." }, { "parameters": { "method": "POST", - "url": "={{ $env.INSTAGRAM_POSTER_INTERNAL_URL }}/deliver/{{ $json.new_items }}", + "url": "=https://api.telegram.org/bot{{ $env.TELEGRAM_BOT_TOKEN }}/sendPhoto", "sendHeaders": true, "headerParameters": { "parameters": [ {"name": "Content-Type", "value": "application/json"} ] }, - "sendBody": false, - "options": {"timeout": 120000} + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={{ JSON.stringify({ chat_id: $env.TELEGRAM_CHAT_ID, photo: $env.PUBLIC_INSTAGRAM_POSTER_URL + '/image/' + $json.asset_id, caption: $json.caption, parse_mode: 'HTML', reply_markup: { inline_keyboard: [[ { text: 'Approve', callback_data: 'approve:' + $json.asset_id }, { text: 'Reject', callback_data: 'reject:' + $json.asset_id } ]] } }) }}", + "options": {"timeout": 30000} }, - "id": "deliver", - "name": "Deliver via Telegram + tag posted", + "id": "telegram-send-photo", + "name": "Telegram sendPhoto with buttons", "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, - "position": [1190, 300], - "notes": "Single-shot endpoint: instagram-poster fetches the original from Immich, converts HEIC->JPEG full-quality, multipart-uploads to Telegram chat, then tags the asset 'posted' in Immich and flips queue row to posted. Telegram URL-fetch fails through Cloudflare for >5MB files, so we push bytes directly from inside the cluster." + "position": [1630, 300], + "notes": "Telegram needs a public URL for the photo (it fetches the image from outside the cluster). callback_data uses the action:asset_id format consumed by instagram-approval." } ], "connections": { "Every 30 minutes": {"main": [[{"node": "Scan Immich for new candidates", "type": "main", "index": 0}]]}, "Scan Immich for new candidates": {"main": [[{"node": "Split new_items array", "type": "main", "index": 0}]]}, "Split new_items array": {"main": [[{"node": "Loop one at a time", "type": "main", "index": 0}]]}, - "Loop one at a time": {"main": [[{"node": "Deliver via Telegram + tag posted", "type": "main", "index": 0}]]}, - "Deliver via Telegram + tag posted": {"main": [[{"node": "Loop one at a time", "type": "main", "index": 0}]]} + "Loop one at a time": {"main": [[{"node": "Fetch Immich asset metadata", "type": "main", "index": 0}]]}, + "Fetch Immich asset metadata": {"main": [[{"node": "Build caption + asset id", "type": "main", "index": 0}]]}, + "Build caption + asset id": {"main": [[{"node": "Telegram sendPhoto with buttons", "type": "main", "index": 0}]]}, + "Telegram sendPhoto with buttons": {"main": [[{"node": "Loop one at a time", "type": "main", "index": 0}]]} }, "settings": {"executionOrder": "v1", "saveExecutionProgress": false, "saveManualExecutions": true}, "staticData": null, diff --git a/stacks/n8n/workflows/instagram-postiz-publish.json b/stacks/n8n/workflows/instagram-postiz-publish.json new file mode 100644 index 00000000..0aaa8043 --- /dev/null +++ b/stacks/n8n/workflows/instagram-postiz-publish.json @@ -0,0 +1,64 @@ +{ + "name": "Postiz Publish Notify", + "active": true, + "id": "9c1b3d76-4e2a-4f8b-b1d5-2a9c4e3d7f01", + "versionId": "9c1b3d76-4e2a-4f8b-b1d5-2a9c4e3d7f01", + "nodes": [ + { + "parameters": { + "httpMethod": "POST", + "path": "postiz-publish", + "responseMode": "onReceived", + "options": {} + }, + "id": "postiz-webhook", + "name": "Postiz webhook (publish)", + "type": "n8n-nodes-base.webhook", + "typeVersion": 2, + "position": [250, 300], + "webhookId": "9c1b3d76-postiz-publish", + "notes": "Postiz fires this webhook AFTER a successful publish (post.workflow.v1.0.2.js -> sendWebhooks). Body = full post JSON. Register URL in Postiz UI → Settings → Webhooks → https://n8n.viktorbarzin.me/webhook/postiz-publish" + }, + { + "parameters": { + "jsCode": "// Postiz webhook payload is the full post object.\nconst raw = $input.first().json;\nconst body = raw.body || raw;\nconst integ = body.integration || {};\nconst providerName = integ.name || 'unknown';\nconst providerIdentifier = integ.providerIdentifier || 'unknown';\nconst content = (body.content || '').slice(0, 200);\nconst releaseURL = body.releaseURL || '';\nconst publishDate = body.publishDate || '';\nconst state = body.state || '';\nconst integrationPicture = integ.picture || '';\n\nconst when = publishDate ? new Date(publishDate).toLocaleString('en-GB', { timeZone: 'Europe/Sofia' }) : 'just now';\n\nconst lines = [\n '📤 Posted to ' + providerName + ' (' + providerIdentifier + ')',\n '',\n];\nif (releaseURL) lines.push('View on Instagram');\nif (content) lines.push('', '' + content + '');\nlines.push('', 'state=' + state + ' · published ' + when);\n\nreturn [{ json: {\n text: lines.join('\\n'),\n release_url: releaseURL,\n post_id: body.id,\n integration_id: integ.id,\n}}];" + }, + "id": "format-message", + "name": "Format Telegram message", + "type": "n8n-nodes-base.code", + "typeVersion": 2, + "position": [500, 300], + "notes": "Build the HTML-formatted Telegram message from Postiz's post JSON. Defensive for missing fields — Postiz only fires on success, but webhooks elsewhere might send partial data." + }, + { + "parameters": { + "method": "POST", + "url": "=https://api.telegram.org/bot{{ $env.TELEGRAM_BOT_TOKEN }}/sendMessage", + "sendHeaders": true, + "headerParameters": { + "parameters": [ + {"name": "Content-Type", "value": "application/json"} + ] + }, + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={{ JSON.stringify({ chat_id: $env.TELEGRAM_CHAT_ID, text: $json.text, parse_mode: 'HTML', disable_web_page_preview: false }) }}", + "options": {"timeout": 30000} + }, + "id": "telegram-notify", + "name": "Telegram sendMessage", + "type": "n8n-nodes-base.httpRequest", + "typeVersion": 4.2, + "position": [750, 300], + "notes": "Send the formatted notification to the user's Telegram chat. parse_mode=HTML so the link is clickable; preview enabled so the IG card renders inline." + } + ], + "connections": { + "Postiz webhook (publish)": {"main": [[{"node": "Format Telegram message", "type": "main", "index": 0}]]}, + "Format Telegram message": {"main": [[{"node": "Telegram sendMessage", "type": "main", "index": 0}]]} + }, + "settings": {"executionOrder": "v1", "saveExecutionProgress": false, "saveManualExecutions": true}, + "staticData": null, + "meta": {"templateCredsSetupCompleted": false}, + "pinData": {} +} diff --git a/stacks/nextcloud/.terraform.lock.hcl b/stacks/nextcloud/.terraform.lock.hcl index a1ca7484..fabbc047 100644 --- a/stacks/nextcloud/.terraform.lock.hcl +++ b/stacks/nextcloud/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/nextcloud/backend.tf b/stacks/nextcloud/backend.tf index c50b44ed..29ef17e8 100644 --- a/stacks/nextcloud/backend.tf +++ b/stacks/nextcloud/backend.tf @@ -1,7 +1,7 @@ # Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa terraform { backend "pg" { - conn_str = "postgres://terraform_state:SBlzGxotNUN6HH9d0S-m@10.0.20.200:5432/terraform_state?sslmode=disable" + conn_str = "postgres://terraform_state:tOvxJ-7fxdWq0p3jKeYB@10.0.20.200:5432/terraform_state?sslmode=disable" schema_name = "nextcloud" } } diff --git a/stacks/nextcloud/providers.tf b/stacks/nextcloud/providers.tf index b337a2e9..012af700 100644 --- a/stacks/nextcloud/providers.tf +++ b/stacks/nextcloud/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/onlyoffice/.terraform.lock.hcl b/stacks/onlyoffice/.terraform.lock.hcl index a1ca7484..fabbc047 100644 --- a/stacks/onlyoffice/.terraform.lock.hcl +++ b/stacks/onlyoffice/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/onlyoffice/providers.tf b/stacks/onlyoffice/providers.tf index b337a2e9..012af700 100644 --- a/stacks/onlyoffice/providers.tf +++ b/stacks/onlyoffice/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/openclaw/.terraform.lock.hcl b/stacks/openclaw/.terraform.lock.hcl index e8910be1..7959dc66 100644 --- a/stacks/openclaw/.terraform.lock.hcl +++ b/stacks/openclaw/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/openclaw/backend.tf b/stacks/openclaw/backend.tf index 1917b23c..cf2466d5 100644 --- a/stacks/openclaw/backend.tf +++ b/stacks/openclaw/backend.tf @@ -1,7 +1,7 @@ # Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa terraform { backend "pg" { - conn_str = "postgres://terraform_state:SBlzGxotNUN6HH9d0S-m@10.0.20.200:5432/terraform_state?sslmode=disable" + conn_str = "postgres://terraform_state:ts7DGcKmTTY-5ujz4mhh@10.0.20.200:5432/terraform_state?sslmode=disable" schema_name = "openclaw" } } diff --git a/stacks/openclaw/providers.tf b/stacks/openclaw/providers.tf index b337a2e9..012af700 100644 --- a/stacks/openclaw/providers.tf +++ b/stacks/openclaw/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/paperless-ngx/.terraform.lock.hcl b/stacks/paperless-ngx/.terraform.lock.hcl index a1ca7484..fabbc047 100644 --- a/stacks/paperless-ngx/.terraform.lock.hcl +++ b/stacks/paperless-ngx/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/paperless-ngx/backend.tf b/stacks/paperless-ngx/backend.tf index 3c2bfe0f..39c4b450 100644 --- a/stacks/paperless-ngx/backend.tf +++ b/stacks/paperless-ngx/backend.tf @@ -1,7 +1,7 @@ # Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa terraform { backend "pg" { - conn_str = "postgres://terraform_state:SBlzGxotNUN6HH9d0S-m@10.0.20.200:5432/terraform_state?sslmode=disable" + conn_str = "postgres://terraform_state:tOvxJ-7fxdWq0p3jKeYB@10.0.20.200:5432/terraform_state?sslmode=disable" schema_name = "paperless-ngx" } } diff --git a/stacks/paperless-ngx/providers.tf b/stacks/paperless-ngx/providers.tf index b337a2e9..012af700 100644 --- a/stacks/paperless-ngx/providers.tf +++ b/stacks/paperless-ngx/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/real-estate-crawler/.terraform.lock.hcl b/stacks/real-estate-crawler/.terraform.lock.hcl index a1ca7484..fabbc047 100644 --- a/stacks/real-estate-crawler/.terraform.lock.hcl +++ b/stacks/real-estate-crawler/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/real-estate-crawler/providers.tf b/stacks/real-estate-crawler/providers.tf index b337a2e9..012af700 100644 --- a/stacks/real-estate-crawler/providers.tf +++ b/stacks/real-estate-crawler/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/servarr/.terraform.lock.hcl b/stacks/servarr/.terraform.lock.hcl index 28f49a2e..9af9dda5 100644 --- a/stacks/servarr/.terraform.lock.hcl +++ b/stacks/servarr/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/servarr/providers.tf b/stacks/servarr/providers.tf index b337a2e9..012af700 100644 --- a/stacks/servarr/providers.tf +++ b/stacks/servarr/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/tor-proxy/.terraform.lock.hcl b/stacks/tor-proxy/.terraform.lock.hcl index 5b74a7af..fabbc047 100644 --- a/stacks/tor-proxy/.terraform.lock.hcl +++ b/stacks/tor-proxy/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ @@ -45,22 +53,9 @@ provider "registry.terraform.io/hashicorp/helm" { } provider "registry.terraform.io/hashicorp/kubernetes" { - version = "3.0.1" + version = "3.1.0" hashes = [ - "h1:P0c8knzZnouTNFIRij8IS7+pqd0OKaFDYX0j4GRsiqo=", - "h1:vyHdH0p6bf9xp1NPePObAJkXTJb/I09FQQmmevTzZe0=", - "zh:02d55b0b2238fd17ffa12d5464593864e80f402b90b31f6e1bd02249b9727281", - "zh:20b93a51bfeed82682b3c12f09bac3031f5bdb4977c47c97a042e4df4fb2f9ba", - "zh:6e14486ecfaee38c09ccf33d4fdaf791409f90795c1b66e026c226fad8bc03c7", - "zh:8d0656ff422df94575668e32c310980193fccb1c28117e5c78dd2d4050a760a6", - "zh:9795119b30ec0c1baa99a79abace56ac850b6e6fbce60e7f6067792f6eb4b5f4", - "zh:b388c87acc40f6bd9620f4e23f01f3c7b41d9b88a68d5255dec0a72f0bdec249", - "zh:b59abd0a980649c2f97f172392f080eaeb18e486b603f83bf95f5d93aeccc090", - "zh:ba6e3060fddf4a022087d8f09e38aa0001c705f21170c2ded3d1c26c12f70d97", - "zh:c12626d044b1d5501cf95ca78cbe507c13ad1dd9f12d4736df66eb8e5f336eb8", - "zh:c55203240d50f4cdeb3df1e1760630d677679f5b1a6ffd9eba23662a4ad05119", - "zh:ea206a5a32d6e0d6e32f1849ad703da9a28355d9c516282a8458b5cf1502b2a1", - "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + "h1:oodIAuFMikXNmEtil5MQgP4dfSctUBYQiGJfjbsF3NY=", ] } diff --git a/stacks/tor-proxy/providers.tf b/stacks/tor-proxy/providers.tf index b337a2e9..012af700 100644 --- a/stacks/tor-proxy/providers.tf +++ b/stacks/tor-proxy/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/trading-bot/providers.tf b/stacks/trading-bot/providers.tf index b337a2e9..012af700 100644 --- a/stacks/trading-bot/providers.tf +++ b/stacks/trading-bot/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/tuya-bridge/.terraform.lock.hcl b/stacks/tuya-bridge/.terraform.lock.hcl index a1ca7484..fabbc047 100644 --- a/stacks/tuya-bridge/.terraform.lock.hcl +++ b/stacks/tuya-bridge/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/tuya-bridge/providers.tf b/stacks/tuya-bridge/providers.tf index b337a2e9..012af700 100644 --- a/stacks/tuya-bridge/providers.tf +++ b/stacks/tuya-bridge/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/wealthfolio/.terraform.lock.hcl b/stacks/wealthfolio/.terraform.lock.hcl index e8910be1..7959dc66 100644 --- a/stacks/wealthfolio/.terraform.lock.hcl +++ b/stacks/wealthfolio/.terraform.lock.hcl @@ -24,6 +24,14 @@ provider "registry.terraform.io/cloudflare/cloudflare" { ] } +provider "registry.terraform.io/goauthentik/authentik" { + version = "2024.12.1" + constraints = "~> 2024.10" + hashes = [ + "h1:roBMd+gi+TGgikH/bMzEI8JfvJiMAQWt+8FmokCrQIs=", + ] +} + provider "registry.terraform.io/hashicorp/helm" { version = "3.1.1" hashes = [ diff --git a/stacks/wealthfolio/backend.tf b/stacks/wealthfolio/backend.tf index 6997cce7..9437cd59 100644 --- a/stacks/wealthfolio/backend.tf +++ b/stacks/wealthfolio/backend.tf @@ -1,7 +1,7 @@ # Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa terraform { backend "pg" { - conn_str = "postgres://terraform_state:SBlzGxotNUN6HH9d0S-m@10.0.20.200:5432/terraform_state?sslmode=disable" + conn_str = "postgres://terraform_state:ts7DGcKmTTY-5ujz4mhh@10.0.20.200:5432/terraform_state?sslmode=disable" schema_name = "wealthfolio" } } diff --git a/stacks/wealthfolio/providers.tf b/stacks/wealthfolio/providers.tf index b337a2e9..012af700 100644 --- a/stacks/wealthfolio/providers.tf +++ b/stacks/wealthfolio/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } } diff --git a/stacks/woodpecker/backend.tf b/stacks/woodpecker/backend.tf index ab70f55e..3ac715a4 100644 --- a/stacks/woodpecker/backend.tf +++ b/stacks/woodpecker/backend.tf @@ -1,7 +1,7 @@ # Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa terraform { backend "pg" { - conn_str = "postgres://terraform_state:SBlzGxotNUN6HH9d0S-m@10.0.20.200:5432/terraform_state?sslmode=disable" + conn_str = "postgres://terraform_state:ts7DGcKmTTY-5ujz4mhh@10.0.20.200:5432/terraform_state?sslmode=disable" schema_name = "woodpecker" } } diff --git a/stacks/woodpecker/providers.tf b/stacks/woodpecker/providers.tf index b337a2e9..012af700 100644 --- a/stacks/woodpecker/providers.tf +++ b/stacks/woodpecker/providers.tf @@ -9,6 +9,10 @@ terraform { source = "cloudflare/cloudflare" version = "~> 4" } + authentik = { + source = "goauthentik/authentik" + version = "~> 2024.10" + } } }