diff --git a/core/test/docker-compose.yml b/core/test/docker-compose.yml index ce9d0f0..05c4f95 100644 --- a/core/test/docker-compose.yml +++ b/core/test/docker-compose.yml @@ -2,7 +2,7 @@ services: update-test: image: nginx:1.28.1 container_name: update-test - profiles: ["core","all","test"] + profiles: ["test"] healthcheck: test: ["CMD", "curl", "-f", "http://localhost"] # returns 0 if Nginx is up interval: 5s @@ -11,14 +11,14 @@ services: start_period: 2s docker-update-exporter-test: - profiles: ["core","all","test"] + profiles: ["test"] build: context: ${PROJECT_ROOT}/core/test container_name: docker-update-exporter-test stdin_open: true tty: true - depends_on: - - docker-socket-proxy +# depends_on: +# - docker-socket-proxy environment: DOCKER_HOST: tcp://docker-socket-proxy:2375 volumes: diff --git a/infrastructure/terraform/docker/.terraform.lock.hcl b/infrastructure/terraform/docker/.terraform.lock.hcl index a11a96b..57bc928 100644 --- a/infrastructure/terraform/docker/.terraform.lock.hcl +++ b/infrastructure/terraform/docker/.terraform.lock.hcl @@ -2,22 +2,23 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/kreuzwerker/docker" { - version = "3.9.0" - constraints = "~> 3.0" + version = "3.0.2" + constraints = "3.0.2" hashes = [ - "h1:EAdNh5KgGPJT5jm848MRIfNfHUVJeTBdKKcFLax5g38=", - "zh:0ead8281830e9b9496651282235d9a139ba1b1b6ff79e395eb8c78658dc446b9", - "zh:0f17d37d8d3872df3fb75c68b5272e0c981343f53b506a9675b4405191edd3ef", - "zh:11d50b37323874427c6d2a08b737d3c7707c8301fdd236c94485cf2828d0b14b", - "zh:32f6f9b847446054e2db3d72886ef2f1d1aa51a6d0dac42340b07dad18e3f28f", - "zh:5ea5c67668b5dcbda560dc6104b788a9bfc974d52f02f7886889b77cc0e5d248", - "zh:5fb19a0b07edc344cd3ddeeb9cfb3d183089deb7a6a94a7b22a583aa1712596b", - "zh:602a7ece444e2a142ec5245abb98e7a1a990a68afae2df63b6c85ec084f0c5d7", - "zh:693dce278524ad8a6d6c9dd7a01bcd63bb85189639198f8d0b044ab0e5099401", - "zh:72e9911568103576c6a78fa38841cfd45eeb88ad22a2c649eb140a377a5b3c26", - "zh:956b62b6857cbb467b50158601f01b1203daa34cbd447dcc7f044c327e878b68", - "zh:9d372bac0d4479868b34485fb4966ba7bb525938f818b6a625f4977004ea83f9", - "zh:e06658a51427f9f53dbdb06263406fc1bc56d1a4fb5e7eb660d7cdfc22f596bd", - "zh:eee38dadf672b946419af25160eae7c03fc2afbb14f39f2f1d2a7404d647e2f7", + "h1:cT2ccWOtlfKYBUE60/v2/4Q6Stk1KYTNnhxSck+VPlU=", + "zh:15b0a2b2b563d8d40f62f83057d91acb02cd0096f207488d8b4298a59203d64f", + "zh:23d919de139f7cd5ebfd2ff1b94e6d9913f0977fcfc2ca02e1573be53e269f95", + "zh:38081b3fe317c7e9555b2aaad325ad3fa516a886d2dfa8605ae6a809c1072138", + "zh:4a9c5065b178082f79ad8160243369c185214d874ff5048556d48d3edd03c4da", + "zh:5438ef6afe057945f28bce43d76c4401254073de01a774760169ac1058830ac2", + "zh:60b7fadc287166e5c9873dfe53a7976d98244979e0ab66428ea0dea1ebf33e06", + "zh:61c5ec1cb94e4c4a4fb1e4a24576d5f39a955f09afb17dab982de62b70a9bdd1", + "zh:a38fe9016ace5f911ab00c88e64b156ebbbbfb72a51a44da3c13d442cd214710", + "zh:c2c4d2b1fd9ebb291c57f524b3bf9d0994ff3e815c0cd9c9bcb87166dc687005", + "zh:d567bb8ce483ab2cf0602e07eae57027a1a53994aba470fa76095912a505533d", + "zh:e83bf05ab6a19dd8c43547ce9a8a511f8c331a124d11ac64687c764ab9d5a792", + "zh:e90c934b5cd65516fbcc454c89a150bfa726e7cf1fe749790c7480bbeb19d387", + "zh:f05f167d2eaf913045d8e7b88c13757e3cf595dd5cd333057fdafc7c4b7fed62", + "zh:fcc9c1cea5ce85e8bcb593862e699a881bd36dffd29e2e367f82d15368659c3d", ] } diff --git a/infrastructure/terraform/docker/main.tf b/infrastructure/terraform/docker/main.tf index ad60c96..9a01732 100644 --- a/infrastructure/terraform/docker/main.tf +++ b/infrastructure/terraform/docker/main.tf @@ -15,3 +15,12 @@ # # Add additional arguments based on `terraform state show` output. # # Keep values aligned with the live container so plan is a no-op. # } +#resource "docker_container" "searxng-webapp" { +# name = "searxng-webapp" +# image = "searxng/searxng" +#} + +#import { +# to = docker_container.searxng-webapp +# id = "5e755fc8478a3d088be12a1bb26df78e2f1990c56e1f7671f0cbf9761330092b" +#} diff --git a/infrastructure/terraform/docker/searxng-webapp.tf b/infrastructure/terraform/docker/searxng-webapp.tf new file mode 100644 index 0000000..beb1fed --- /dev/null +++ b/infrastructure/terraform/docker/searxng-webapp.tf @@ -0,0 +1,54 @@ +# ----------------------------------------------------------------------------- +# AUTO-GENERATED BY reconcile_from_plan.sh +# Generated: 2026-04-14T10:53:00Z +# Source: terraform plan -generate-config-out +# Review carefully before apply. +# ----------------------------------------------------------------------------- + +# __generated__ by Terraform +# Please review these resources and move them into your main configuration files. + +# __generated__ by Terraform from "5e755fc8478a3d088be12a1bb26df78e2f1990c56e1f7671f0cbf9761330092b" +resource "docker_container" "searxng-webapp" { + entrypoint = ["/usr/local/searxng/entrypoint.sh"] + hostname = "searxng.lan.ddnsgeek.com" + image = "sha256:6a9a175cd122c005abe2dc15d7cbfcd5109619e9dcccb511c34be244e10f49bc" + must_run = true + name = "searxng-webapp" + network_mode = "core_traefik" + read_only = true + restart = "always" + tmpfs = { + "/run" = "" + "/tmp" = "" + "/var" = "" + } + wait = false + wait_timeout = 60 + working_dir = "/usr/local/searxng" + healthcheck { + interval = "20s" + retries = 8 + start_period = "30s" + test = ["CMD-SHELL", "python3 -c \"import urllib.request,sys; r=urllib.request.urlopen('http://127.0.0.1:8080/', timeout=3); sys.exit(0 if 200<=r.status<400 else 1)\""] + timeout = "5s" + } + mounts { + read_only = false + source = "2255bde19ed136d348d29ada3d274eb3dbcb8aede13b246bbc9bac19fa38b37d" + target = "/var/cache/searxng" + type = "volume" + } + mounts { + read_only = false + source = "e7a1475c1265b7d1c15f7c4da10e93461f6f1bcf50fe8030131a6398509e2e48" + target = "/etc/searxng" + type = "volume" + } + + lifecycle { + ignore_changes = [ + env, + ] + } +} diff --git a/infrastructure/terraform/docker/variables.tf b/infrastructure/terraform/docker/variables.tf index 3fc5dde..900c173 100644 --- a/infrastructure/terraform/docker/variables.tf +++ b/infrastructure/terraform/docker/variables.tf @@ -7,5 +7,5 @@ variable "docker_host" { variable "managed_container_names" { description = "Human-maintained list of containers intentionally tracked in Terraform docs/outputs." type = list(string) - default = [] + default = ["searxng-webapp"] } diff --git a/infrastructure/terraform/proxmox/.terraform.lock.hcl b/infrastructure/terraform/proxmox/.terraform.lock.hcl new file mode 100644 index 0000000..d81c0d3 --- /dev/null +++ b/infrastructure/terraform/proxmox/.terraform.lock.hcl @@ -0,0 +1,25 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/bpg/proxmox" { + version = "0.68.0" + constraints = "0.68.0" + hashes = [ + "h1:4Q+bUZoRz7o2ij/oPS3SsAy1D2CDdIMasegk+ll7oho=", + "zh:012f3fce033a7921335576edba0f2d2dad7dcaec2e5ed3b68ced692845131656", + "zh:1853ddbaef049b14e738bf8531a2c8e45d9ac409676a7f7f997d40ae794db783", + "zh:2a284f49f95bfe022f8b5bfed6ae56df5577f590ff26ae12322767f23e3b6c50", + "zh:491a7d5a3cf47fc3016213ca047fcf20288200901f5c0195314c32925fcd36c0", + "zh:4a198ab0b40b02a35955156d9a195c76a22f92d4078195ce94316b793d0d58d4", + "zh:63f0e62c5805b48893f9a106ed11e628f1a3bc3d34360a2bb31a88cfcc2051dd", + "zh:64cdc6a3bdd56e2285a2d65a17d87ee284fcdbbe69246baed4aeaf465a955007", + "zh:6721eaaa4998795c0caed3225aa2bc8ff796a6de86114431194b9770f98e2600", + "zh:79ef8a813d1b3d5ef69f2a00a3160fde9ca65c541db42c998c69db6dea66558f", + "zh:96aa2d4a6cdac17dcccbb76a1ef0afc15052c3f13fa3bb0f3f44b385272405d4", + "zh:9e1e18b04f228d671e1653294828021e672dab6635a309e72b2da4ba3b9f07e9", + "zh:a91b69c6df914f8f0504d0f0d25af6a870b79befe6ae11d39a1bd8b879871084", + "zh:bc618ee4f85b8c5db0e1494d207d2a6170ca08dad5ce9844866550a94dd56bea", + "zh:ea85f7e5dbbe768e2e15e0cafacee1c94e319d04c1835db1984a6ce79674c8e4", + "zh:f26e0763dbe6a6b2195c94b44696f2110f7f55433dc142839be16b9697fa5597", + ] +} diff --git a/infrastructure/terraform/proxmox/docker.tf b/infrastructure/terraform/proxmox/docker.tf new file mode 100644 index 0000000..f9cce11 --- /dev/null +++ b/infrastructure/terraform/proxmox/docker.tf @@ -0,0 +1,76 @@ +# proxmox_virtual_environment_vm.docker: +resource "proxmox_virtual_environment_vm" "docker" { + name = "docker" + node_name = "pve" + scsi_hardware = "virtio-scsi-single" + vm_id = 103 + + agent { + enabled = true + timeout = "15m" + trim = false + } + + cpu { + cores = 4 + numa = false + sockets = 1 + type = "host" + units = 1024 + } + + disk { + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "scsi0" + iothread = false + path_in_datastore = "vm-103-disk-0" + replicate = true + size = 120 + ssd = false + } + disk { + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "scsi1" + iothread = false + path_in_datastore = "vm-103-disk-1" + replicate = true + size = 250 + ssd = false + } + + memory { + dedicated = 8192 + floating = 4096 + keep_hugepages = false + shared = 0 + } + + network_device { + bridge = "vmbr0" + disconnected = false + enabled = true + firewall = true + } + + operating_system { + type = "l26" + } + + lifecycle { + ignore_changes = [ + vga, + keyboard_layout, + tablet_device, + agent, + ] + } + +} diff --git a/infrastructure/terraform/proxmox/main.tf b/infrastructure/terraform/proxmox/main.tf index 9089e92..3d150dd 100644 --- a/infrastructure/terraform/proxmox/main.tf +++ b/infrastructure/terraform/proxmox/main.tf @@ -1,14 +1,51 @@ -# Proxmox scaffold only. +# Proxmox import-first workflow # +# 1) Add one minimal resource block for one existing VM. +# 2) Add an import block for that VM using the provider's required import ID format. +# 3) Run: +# terraform init +# terraform plan +# or: +# ../scripts/reconcile_from_plan.sh -- -var-file=terraform.tfvars +# 4) Review generated config carefully. +# 5) Move only the useful arguments into a hand-maintained .tf file. +# 6) Repeat until `terraform plan` is a no-op. + # IMPORTANT: -# - Resource blocks are intentionally omitted for now. -# - Before adding resources, confirm: -# 1) provider resource schemas, -# 2) exact import ID formats, -# 3) non-destructive reconciliation strategy for existing VMs. +# - Start with exactly ONE existing VM. +# - Do not apply until plan is clean. +# - Confirm the provider's exact import ID format before running import/plan. +# - Do not import your whole environment at once. + +# Example placeholder for one existing VM +#resource "proxmox_virtual_environment_vm" "server-nixos" { +# name = "server-nixos" +# node_name = "pve" +#} + +# Example import block +# REPLACE the id below with the exact import ID format required by your provider. +# This is provider-specific and must be confirmed before use. # -# Suggested future workflow mirrors docker/: -# - Define one resource for an existing object. -# - Import it. -# - Use `terraform state show` to reconcile config. -# - Proceed incrementally. +# Commonly this will involve the Proxmox node name and VM ID in some form. +# +import { + to = proxmox_virtual_environment_vm.nix-cache + id = "pve/105" +} +import { + to = proxmox_virtual_environment_vm.server-nixos + id = "pve/104" +} +import { + to = proxmox_virtual_environment_vm.pihole + id = "pve/108" +} +import { + to = proxmox_virtual_environment_vm.pbs + id = "pve/106" +} +import { + to = proxmox_virtual_environment_vm.docker + id = "pve/103" +} diff --git a/infrastructure/terraform/proxmox/nix-cache.tf b/infrastructure/terraform/proxmox/nix-cache.tf new file mode 100644 index 0000000..faa4bbf --- /dev/null +++ b/infrastructure/terraform/proxmox/nix-cache.tf @@ -0,0 +1,63 @@ +# proxmox_virtual_environment_vm.nix-cache: +resource "proxmox_virtual_environment_vm" "nix-cache" { + name = "nix-cache" + node_name = "pve" + scsi_hardware = "virtio-scsi-single" + vm_id = 105 + + agent { + enabled = true + timeout = "15m" + trim = false + } + + cpu { + cores = 2 + numa = false + sockets = 1 + type = "x86-64-v2-AES" + units = 1024 + } + + disk { + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "scsi0" + iothread = false + path_in_datastore = "vm-105-disk-0" + replicate = true + size = 100 + ssd = false + } + + memory { + dedicated = 2048 + floating = 0 + keep_hugepages = false + shared = 0 + } + + network_device { + bridge = "vmbr0" + disconnected = false + enabled = true + firewall = true + } + + operating_system { + type = "l26" + } + lifecycle { + ignore_changes = [ + vga, + keyboard_layout, + tablet_device, + agent, + ] + } + +} + diff --git a/infrastructure/terraform/proxmox/pbs.tf b/infrastructure/terraform/proxmox/pbs.tf new file mode 100644 index 0000000..c2ffa4f --- /dev/null +++ b/infrastructure/terraform/proxmox/pbs.tf @@ -0,0 +1,72 @@ +# __generated__ by Terraform +# Please review these resources and move them into your main configuration files. + +# __generated__ by Terraform +resource "proxmox_virtual_environment_vm" "pbs" { + name = "pbs" + node_name = "pve" + scsi_hardware = "virtio-scsi-single" + vm_id = 106 + agent { + enabled = true + timeout = "15m" + trim = false + } + cpu { + cores = 4 + numa = false + sockets = 1 + type = "x86-64-v2-AES" + units = 1024 + } + disk { + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "scsi0" + iothread = false + path_in_datastore = "vm-106-disk-0" + replicate = true + size = 100 + ssd = false + } + disk { + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "scsi1" + iothread = false + path_in_datastore = "vm-106-disk-1" + replicate = true + size = 700 + ssd = false + } + memory { + dedicated = 8192 + floating = 4096 + keep_hugepages = false + shared = 0 + } + network_device { + bridge = "vmbr0" + disconnected = false + enabled = true + firewall = true + } + operating_system { + type = "l26" + } + lifecycle { + ignore_changes = [ + vga, + keyboard_layout, + tablet_device, + agent, + ] + } + +} diff --git a/infrastructure/terraform/proxmox/pihole.tf b/infrastructure/terraform/proxmox/pihole.tf new file mode 100644 index 0000000..c96aca5 --- /dev/null +++ b/infrastructure/terraform/proxmox/pihole.tf @@ -0,0 +1,63 @@ +# proxmox_virtual_environment_vm.pihole: +resource "proxmox_virtual_environment_vm" "pihole" { + name = "pihole" + node_name = "pve" + scsi_hardware = "virtio-scsi-single" + vm_id = 108 + + agent { + enabled = true + timeout = "15m" + trim = false + } + + cpu { + cores = 2 + numa = false + sockets = 1 + type = "x86-64-v2-AES" + units = 1024 + } + + disk { + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "sata0" + iothread = false + path_in_datastore = "vm-108-disk-0" + replicate = true + size = 32 + ssd = false + } + + memory { + dedicated = 2048 + floating = 0 + keep_hugepages = false + shared = 0 + } + + network_device { + bridge = "vmbr0" + disconnected = false + enabled = true + firewall = true + } + + operating_system { + type = "l26" + } + + lifecycle { + ignore_changes = [ + vga, + keyboard_layout, + tablet_device, + agent, + ] + } + +} diff --git a/infrastructure/terraform/proxmox/providers.tf b/infrastructure/terraform/proxmox/providers.tf index 1b8e1e1..a168755 100644 --- a/infrastructure/terraform/proxmox/providers.tf +++ b/infrastructure/terraform/proxmox/providers.tf @@ -4,8 +4,8 @@ provider "proxmox" { endpoint = var.proxmox_endpoint insecure = var.proxmox_insecure - username = var.proxmox_username - password = var.proxmox_password + # username = var.proxmox_username + # password = var.proxmox_password - api_token = var.proxmox_api_token + api_token = "${var.proxmox_api_token_id}=${var.proxmox_api_token_secret}" } diff --git a/infrastructure/terraform/proxmox/server-nixos.tf b/infrastructure/terraform/proxmox/server-nixos.tf new file mode 100644 index 0000000..746369f --- /dev/null +++ b/infrastructure/terraform/proxmox/server-nixos.tf @@ -0,0 +1,88 @@ +# __generated__ by Terraform +# Please review these resources and move them into your main configuration files. + +# __generated__ by Terraform +resource "proxmox_virtual_environment_vm" "server-nixos" { + name = "server-nixos" + node_name = "pve" + scsi_hardware = "virtio-scsi-single" + vm_id = 104 + agent { + enabled = true + timeout = "15m" + trim = false + } + cpu { + cores = 4 + numa = false + sockets = 1 + type = "x86-64-v2-AES" + units = 1024 + } + disk { + aio = "io_uring" + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "scsi0" + iothread = false + path_in_datastore = "vm-104-disk-0" + replicate = true + size = 32 + ssd = false + } + disk { + aio = "io_uring" + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "scsi1" + iothread = false + path_in_datastore = "vm-104-disk-1" + replicate = true + size = 200 + ssd = false + } + disk { + aio = "io_uring" + backup = true + cache = "none" + datastore_id = "local-lvm" + discard = "ignore" + file_format = "raw" + interface = "scsi2" + iothread = false + path_in_datastore = "vm-104-disk-2" + replicate = true + size = 200 + ssd = false + } + memory { + dedicated = 4096 + floating = 2048 + keep_hugepages = false + shared = 0 + } + network_device { + bridge = "vmbr0" + disconnected = false + enabled = true + firewall = true + } + operating_system { + type = "l26" + } + lifecycle { + ignore_changes = [ + vga, + keyboard_layout, + tablet_device, + agent, + ] + } + +} diff --git a/infrastructure/terraform/proxmox/variables.tf b/infrastructure/terraform/proxmox/variables.tf index dc78e7e..f91b19a 100644 --- a/infrastructure/terraform/proxmox/variables.tf +++ b/infrastructure/terraform/proxmox/variables.tf @@ -10,20 +10,26 @@ variable "proxmox_insecure" { default = false } -variable "proxmox_username" { - description = "Username for password-based auth (placeholder; optional if token auth is used)." - type = string - default = "" -} +#variable "proxmox_username" { +# description = "Username for password-based auth (placeholder; optional if token auth is used)." +# type = string +# default = "" +#} -variable "proxmox_password" { - description = "Password for password-based auth (placeholder; optional if token auth is used)." +#variable "proxmox_password" { +# description = "Password for password-based auth (placeholder; optional if token auth is used)." +# type = string +# default = "" +# sensitive = true +#} + +variable "proxmox_api_token_id" { type = string - default = "" + description = "Proxmox API token ID, e.g. terraform@pve!tf" sensitive = true } -variable "proxmox_api_token" { +variable "proxmox_api_token_secret" { description = "API token for token-based auth (placeholder; optional if username/password is used)." type = string default = "" diff --git a/monitoring/docker-socket-proxy/docker-compose.yml b/monitoring/docker-socket-proxy/docker-compose.yml index 2cbc462..5bb4982 100644 --- a/monitoring/docker-socket-proxy/docker-compose.yml +++ b/monitoring/docker-socket-proxy/docker-compose.yml @@ -1,6 +1,6 @@ services: docker-socket-proxy: - profiles: ["monitoring","all","docker-socket-proxy", "core", "traefik", "prometheus", "test"] + profiles: ["monitoring","all","docker-socket-proxy", "core", "traefik", "prometheus"] image: tecnativa/docker-socket-proxy:latest container_name: docker-socket-proxy hostname: docker-socket-proxy diff --git a/monitoring/node-red/data/context/00b02bbd01c91485/flow.json b/monitoring/node-red/data/context/00b02bbd01c91485/flow.json index effadaa..2e883c9 100644 --- a/monitoring/node-red/data/context/00b02bbd01c91485/flow.json +++ b/monitoring/node-red/data/context/00b02bbd01c91485/flow.json @@ -1,10 +1,3 @@ { - "dockerUpdateAttempts": { - "nextcloud-redis|redis:latest|docker": { - "time": 1776150342324, - "status": "test_failed", - "failedAt": 1776150408748, - "notified": true - } - } + "dockerUpdateAttempts": {} } \ No newline at end of file diff --git a/monitoring/node-red/data/update-events.ndjson b/monitoring/node-red/data/update-events.ndjson index ea910f4..b6eff66 100644 --- a/monitoring/node-red/data/update-events.ndjson +++ b/monitoring/node-red/data/update-events.ndjson @@ -155,3 +155,290 @@ {"ts":"2026-04-14T07:36:47.627Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} {"ts":"2026-04-14T07:40:51.544Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} {"ts":"2026-04-14T07:41:47.538Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:35:51.628Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:36:47.488Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:40:51.502Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:41:47.413Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:45:51.560Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:46:47.499Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:50:51.537Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:51:47.494Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:55:51.594Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T10:56:47.565Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:01:01.763Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:01:54.859Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:05:51.596Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:06:47.566Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:10:51.565Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:11:47.456Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:15:51.472Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:16:47.879Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:20:51.537Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:21:47.564Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:25:51.637Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:26:47.433Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:30:51.528Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:31:47.465Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:35:51.549Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:36:47.462Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:40:51.546Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:41:47.437Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:45:51.531Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:46:47.390Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:50:51.546Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:51:47.483Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:55:51.592Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T11:56:47.458Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:00:51.525Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:01:47.531Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:05:51.579Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:06:47.427Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:10:51.579Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:11:47.446Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:15:51.528Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:16:47.460Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:20:51.588Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:21:47.536Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:25:51.597Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:26:47.447Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:30:51.560Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:31:47.478Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:35:51.536Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:36:47.454Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:40:51.560Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:41:47.468Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:45:51.807Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:46:47.803Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:50:51.581Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:51:47.529Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:55:51.533Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T12:56:47.461Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:00:51.675Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:01:47.911Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:05:51.526Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:06:47.941Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:10:51.535Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:11:47.450Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:15:51.578Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:16:47.468Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:20:51.736Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:21:47.477Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:25:51.549Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:26:47.487Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:30:51.521Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:31:47.415Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:35:51.564Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:36:47.548Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:40:51.563Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:41:47.448Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:45:51.540Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:46:47.422Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:50:51.591Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:51:47.462Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:55:51.763Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T13:56:47.489Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:00:52.083Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:01:48.283Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:05:52.030Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:06:48.221Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:10:52.039Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:11:48.289Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:15:51.578Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:16:47.446Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:20:51.576Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:21:47.443Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:25:51.507Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:26:47.404Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:30:51.544Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:31:47.472Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:35:51.555Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:36:47.472Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:40:51.548Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:41:47.515Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:45:51.543Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:46:47.468Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:50:51.565Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:51:47.461Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:55:51.618Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T14:56:47.507Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:00:51.615Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:01:47.437Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:05:51.546Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:06:47.501Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:10:51.528Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:11:47.451Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:15:51.983Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:16:47.892Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:20:51.480Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:21:47.345Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:25:51.552Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:26:47.435Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:30:51.674Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:31:47.526Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:35:51.542Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:36:47.422Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:40:51.594Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:41:47.507Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:45:51.542Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:46:47.501Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:50:51.565Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:51:47.441Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:55:51.588Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T15:56:47.427Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:00:51.565Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:01:47.444Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:05:51.675Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:06:47.559Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:10:51.651Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:11:47.492Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:15:51.587Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:16:47.445Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:20:51.604Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:21:47.569Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:25:51.578Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:26:47.487Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:30:51.609Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:31:47.515Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:35:51.507Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:36:47.448Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:40:51.556Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:41:47.487Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:45:51.596Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:46:47.437Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:50:51.592Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:51:47.492Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:55:51.655Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T16:56:47.484Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:00:51.746Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:01:47.778Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:05:51.560Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:06:47.485Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:10:51.600Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:11:47.434Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:15:51.578Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:16:47.416Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:20:51.597Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:21:47.516Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:25:51.910Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:26:47.734Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:30:51.572Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:31:47.432Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:35:51.767Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:36:47.810Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:40:51.588Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:41:47.521Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:45:51.709Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:46:47.854Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:50:51.720Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:51:47.652Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:55:51.596Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T17:56:47.477Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:00:51.613Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:01:47.464Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:05:51.606Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:06:47.526Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:10:51.664Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:11:47.553Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:15:51.534Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:16:47.442Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:20:51.595Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:21:47.447Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:25:51.600Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:26:47.467Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:30:51.608Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:31:47.465Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:35:51.638Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:36:48.003Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:40:51.584Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:41:47.521Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:45:51.585Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:46:47.496Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:50:51.682Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:51:47.651Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:55:51.542Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T18:56:47.476Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:00:51.635Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:01:47.730Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:05:51.556Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:06:47.497Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:10:51.560Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:11:47.470Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:15:51.550Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:16:47.426Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:20:51.554Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:21:47.473Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:25:51.616Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:26:47.998Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:30:51.584Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:31:47.499Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:35:51.591Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:36:47.465Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:40:51.580Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:41:47.419Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:45:51.738Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:46:48.231Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:50:51.585Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:51:47.554Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:55:52.004Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T19:56:47.614Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:00:51.557Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:01:48.036Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:05:51.612Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:06:47.534Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:10:51.558Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:11:47.411Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:15:51.596Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:16:47.542Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:20:51.614Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:21:47.439Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:25:51.557Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:26:47.435Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:30:51.600Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:31:47.526Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:35:51.603Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:36:47.473Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:40:51.554Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:41:47.443Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:45:51.617Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:46:47.507Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:50:51.573Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:51:47.514Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:55:51.611Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T20:56:47.491Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:00:51.692Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:01:47.580Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:05:51.750Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:06:47.974Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:10:51.675Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:11:47.590Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:15:51.666Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:16:47.557Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:20:51.633Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:21:47.522Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:25:51.668Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:26:47.828Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:28:29.097Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:29:24.810Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:29:28.971Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:33:29.156Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:34:25.049Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:38:29.178Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:39:24.976Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:40:29.198Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:41:24.871Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:45:29.318Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:46:25.370Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:50:29.226Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:51:25.260Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:55:29.161Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-14T21:56:25.104Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-15T12:35:22.769Z","flow":"docker-updates","event":"completed","container":"searxng-webapp","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-15T12:36:18.957Z","flow":"docker-updates","event":"completed","container":"prometheus","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-16T07:06:27.862Z","flow":"docker-updates","event":"completed","container":"passbolt-db","project":"unknown","host":"docker","status":"failed","success":0,"failed":1,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-16T07:06:27.862Z","flow":"docker-updates","event":"completed","container":"passbolt-db","project":"unknown","host":"docker","status":"locked","success":0,"failed":1,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-16T07:06:28.709Z","flow":"docker-updates","event":"completed","container":"nextcloud-db","project":"unknown","host":"docker","status":"failed","success":0,"failed":1,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-16T07:06:28.709Z","flow":"docker-updates","event":"completed","container":"nextcloud-db","project":"unknown","host":"docker","status":"locked","success":0,"failed":1,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-16T07:06:40.038Z","flow":"docker-updates","event":"completed","container":"traefik","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} +{"ts":"2026-04-17T07:05:12.795Z","flow":"docker-updates","event":"completed","container":"traefik","project":"unknown","host":"raspi","status":"failed","success":0,"failed":1,"duration_ms":0,"code":1,"error":""} +{"ts":"2026-04-17T07:05:12.795Z","flow":"docker-updates","event":"completed","container":"traefik","project":"unknown","host":"raspi","status":"locked","success":0,"failed":1,"duration_ms":0,"code":1,"error":""} +{"ts":"2026-04-17T19:11:29.490Z","flow":"docker-updates","event":"completed","container":"traefik","project":"unknown","host":"docker","status":"success","success":1,"failed":0,"duration_ms":0,"code":0,"error":""} diff --git a/monitoring/prometheus/prometheus.yml b/monitoring/prometheus/prometheus.yml index c769360..528de70 100644 --- a/monitoring/prometheus/prometheus.yml +++ b/monitoring/prometheus/prometheus.yml @@ -109,6 +109,11 @@ scrape_configs: - kuma.lan.ddnsgeek.com labels: role: raspberrypi + tls_config: +# ca_file: /prometheus/clients-ca.crt + cert_file: /prometheus/office-pc.crt + key_file: /prometheus/office-pc.key +# server_name: kuma.lan.ddnsgeek.com # ========================= # Proxmox Storage Exporters diff --git a/update-containers.log b/update-containers.log index 1dff8f0..438066b 100644 --- a/update-containers.log +++ b/update-containers.log @@ -1,13 +1,13 @@ -08:07:03 INFO: === Update started: 2026-04-14 08:07:03 === -08:07:03 WARNING: Skipping traefik (directory does not exist) -08:07:03 WARNING: Skipping nextcloud (directory does not exist) -08:07:03 WARNING: Skipping passbolt (directory does not exist) -08:07:03 WARNING: Skipping searxng (directory does not exist) -08:07:03 WARNING: Skipping gitea (directory does not exist) -08:07:03 WARNING: Skipping gotify (directory does not exist) -08:07:03 WARNING: Skipping grafana (directory does not exist) -08:07:03 WARNING: Skipping gramps (directory does not exist) -08:07:03 WARNING: Skipping portainer (directory does not exist) -08:07:03 WARNING: Skipping prometheus (directory does not exist) -08:07:03 WARNING: Skipping uptime-kuma (directory does not exist) -08:07:03 INFO: Pruning unused containers, images, networks, and volumes... +22:10:52 INFO: === Update started: 2026-04-20 22:10:52 === +22:10:52 WARNING: Skipping traefik (directory does not exist) +22:10:52 WARNING: Skipping nextcloud (directory does not exist) +22:10:52 WARNING: Skipping passbolt (directory does not exist) +22:10:52 WARNING: Skipping searxng (directory does not exist) +22:10:52 WARNING: Skipping gitea (directory does not exist) +22:10:52 WARNING: Skipping gotify (directory does not exist) +22:10:52 WARNING: Skipping grafana (directory does not exist) +22:10:52 WARNING: Skipping gramps (directory does not exist) +22:10:52 WARNING: Skipping portainer (directory does not exist) +22:10:52 WARNING: Skipping prometheus (directory does not exist) +22:10:52 WARNING: Skipping uptime-kuma (directory does not exist) +22:10:52 INFO: Pruning unused containers, images, networks, and volumes...