feat: add Uptime Kuma uptime monitoring service#50
Conversation
📝 WalkthroughWalkthroughThis PR integrates Uptime Kuma, a self-hosted uptime monitoring service, across the infrastructure stack by adding configuration files, Docker service definitions, shell scripts for setup and reporting, and frontend metadata. Total of 48 lines added with no deletions. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
Comment |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 12
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.env.example:
- Line 186: Fix the typo in the environment variable name by renaming
UPTIME_KUMA_HOSTNME to UPTIME_KUMA_HOSTNAME in the .env.example so components
that read UPTIME_KUMA_HOSTNAME will work; ensure the variable uses the required
`_HOSTNAME` suffix and update any references or documentation that might mirror
the misspelling.
- Line 186: The .env.example is missing the new service name in the internal
no-proxy list: update the GOST_NO_PROXY variable to include the new container
name "uptime-kuma" (matching the introduced UPTIME_KUMA_HOSTNME entry) so
intra-stack traffic is bypassed by the proxy; locate the GOST_NO_PROXY
definition in .env.example and append "uptime-kuma" to the comma/space-separated
list following the existing formatting/conventions.
In `@Caddyfile`:
- Around line 110-113: The Caddy site block for Uptime Kuma is missing the
shared TLS import and points to an incorrect upstream; update the block that
matches {$UPTIME_KUMA_HOSTNAME} to include "import service_tls" as the first
line and change the reverse_proxy target from "uptimekuma:3001" to the correct
container hostname (ensure it matches the service name used in docker-compose),
and also add UPTIME_KUMA_HOSTNAME to the caddy service environment in
docker-compose.yml so the host matcher resolves at runtime.
In `@CHANGELOG.md`:
- Around line 5-7: Move the "Uptime Kuma - Self-hosted uptime monitoring with
90+ notification services" changelog entry out of the "### Fixed" section into
the "### Added" section under the "[Unreleased]" heading; specifically locate
the line containing "Uptime Kuma" and cut it from the "### Fixed" block and
paste it into the "### Added" block so the entry is categorized as a new
capability rather than a fix.
In `@docker-compose.yml`:
- Around line 1285-1286: The Uptime Kuma service’s environment block only sets
UPTIME_KUMA_WS_ORIGIN_CHECK and does not inherit the shared proxy variables;
update the service's environment section to include the YAML anchor inheritance
by adding <<: *proxy-env alongside the existing UPTIME_KUMA_WS_ORIGIN_CHECK so
the container uses the shared proxy settings for outbound HTTP calls (reference
the environment block and the UPTIME_KUMA_WS_ORIGIN_CHECK key and the *proxy-env
anchor).
- Around line 1289-1293: Update the healthcheck test to hit the service port
used by Caddy (:3001) and clear proxy environment variables before invoking
wget; replace the current test array in the healthcheck block with a CMD-SHELL
command that unsets http_proxy/https_proxy/HTTP_PROXY/HTTPS_PROXY (e.g. via env
-u ...) and then runs wget -qO- http://localhost:3001/ || exit 1 so the probe
bypasses any proxy and targets the correct upstream.
- Around line 1287-1288: The compose file references the named volume
uptime_kuma_data under the service volumes section but does not declare it at
the top-level; add a top-level volumes entry named uptime_kuma_data (e.g., under
the top-level "volumes:" block) so docker-compose validation/start succeeds and
the service's volume mapping "- uptime_kuma_data:/app/database" is resolved.
In `@README.md`:
- Around line 115-116: The Markdown link for the Uptime Kuma entry is missing
the closing “)” so the description is being included in the URL; fix the line
containing the link text "[**Uptime Kuma**]" by moving the closing parenthesis
to immediately after the URL (https://github.com/louislam/uptime-kuma) and place
the descriptive text "- Self-hosted uptime monitoring tool with notifications"
outside the link so it reads: [**Uptime
Kuma**](https://github.com/louislam/uptime-kuma) - Self-hosted uptime monitoring
tool with notifications.
In `@scripts/04_wizard.sh`:
- Line 70: The wizard uses the wrong service identifier string "uptimekuma"
which doesn't match the compose profile id "uptime-kuma"; update the mapping
entry in scripts/04_wizard.sh so the left-hand key equals the exact profile id
"uptime-kuma" (i.e., replace "uptimekuma" with "uptime-kuma") so that the
service selection toggles the correct compose profile in the profiles:
["uptime-kuma"] check.
In `@scripts/07_final_report.sh`:
- Around line 106-108: The profile check uses the wrong profile id: change the
call to is_profile_active from "uptime_kuma" to "uptime-kuma" so it matches the
compose profile; update the string passed to is_profile_active (the call near
the Uptime Kuma echo block) to "uptime-kuma" and keep the echo message as-is.
In `@scripts/generate_welcome_page.sh`:
- Around line 357-365: The Uptime Kuma block in scripts/generate_welcome_page.sh
uses the wrong environment variable name UPTIMEKUMA_HOSTNAME; update the
template to use the correct UPTIME_KUMA_HOSTNAME so the generated SERVICES_ARRAY
entry contains the real hostname. Locate the block that appends to
SERVICES_ARRAY for "uptime-kuma" and replace references to UPTIMEKUMA_HOSTNAME
with UPTIME_KUMA_HOSTNAME (preserve the json_escape call and surrounding
structure) so the welcome URL is populated correctly.
In `@welcome/app.js`:
- Around line 430-431: The SERVICE_METADATA object has a missing comma after the
'uptime-kuma' entry which causes a JavaScript syntax error; edit the
SERVICE_METADATA definition to insert a trailing comma after the closing brace
for the 'uptime-kuma' object so the next property 'cloudflare-tunnel' is a valid
sibling entry, then run a quick lint/parse to confirm the object literal parses
correctly.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 4ee05443-f192-4186-ab26-1205584a3a55
📒 Files selected for processing (9)
.env.exampleCHANGELOG.mdCaddyfileREADME.mddocker-compose.ymlscripts/04_wizard.shscripts/07_final_report.shscripts/generate_welcome_page.shwelcome/app.js
| SUPABASE_HOSTNAME=supabase.yourdomain.com | ||
| WAHA_HOSTNAME=waha.yourdomain.com | ||
| WEAVIATE_HOSTNAME=weaviate.yourdomain.com | ||
| UPTIME_KUMA_HOSTNME=uptime-kuma.yourdomain.com |
There was a problem hiding this comment.
Correct the hostname variable typo (HOSTNME → HOSTNAME).
UPTIME_KUMA_HOSTNME won’t be read by components using UPTIME_KUMA_HOSTNAME, so host routing/config will break.
Suggested fix
-UPTIME_KUMA_HOSTNME=uptime-kuma.yourdomain.com
+UPTIME_KUMA_HOSTNAME=uptime-kuma.yourdomain.comAs per coding guidelines, all service hostnames must end with _HOSTNAME suffix.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| UPTIME_KUMA_HOSTNME=uptime-kuma.yourdomain.com | |
| UPTIME_KUMA_HOSTNAME=uptime-kuma.yourdomain.com |
🧰 Tools
🪛 dotenv-linter (4.0.0)
[warning] 186-186: [UnorderedKey] The UPTIME_KUMA_HOSTNME key should go before the USER_DOMAIN_NAME key
(UnorderedKey)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.env.example at line 186, Fix the typo in the environment variable name by
renaming UPTIME_KUMA_HOSTNME to UPTIME_KUMA_HOSTNAME in the .env.example so
components that read UPTIME_KUMA_HOSTNAME will work; ensure the variable uses
the required `_HOSTNAME` suffix and update any references or documentation that
might mirror the misspelling.
Add uptime-kuma to GOST_NO_PROXY.
Since this PR introduces a new service container, it must be added to the internal bypass list to avoid proxying intra-stack traffic.
Suggested fix
-GOST_NO_PROXY=localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.local,appsmith,postgres,postgres:5432,redis,redis:6379,caddy,ollama,neo4j,qdrant,weaviate,clickhouse,minio,searxng,crawl4ai,gotenberg,langfuse-web,langfuse-worker,flowise,n8n,n8n-import,n8n-worker-1,n8n-worker-2,n8n-worker-3,n8n-worker-4,n8n-worker-5,n8n-worker-6,n8n-worker-7,n8n-worker-8,n8n-worker-9,n8n-worker-10,n8n-runner-1,n8n-runner-2,n8n-runner-3,n8n-runner-4,n8n-runner-5,n8n-runner-6,n8n-runner-7,n8n-runner-8,n8n-runner-9,n8n-runner-10,letta,lightrag,docling,postiz,temporal,temporal-ui,ragflow,ragflow-mysql,ragflow-minio,ragflow-redis,ragflow-elasticsearch,ragapp,open-webui,comfyui,waha,libretranslate,paddleocr,nocodb,db,studio,kong,auth,rest,realtime,storage,imgproxy,meta,functions,analytics,vector,supavisor,gost,api.telegram.org,telegram.org,t.me,core.telegram.org
+GOST_NO_PROXY=localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.local,appsmith,postgres,postgres:5432,redis,redis:6379,caddy,ollama,neo4j,qdrant,weaviate,clickhouse,minio,searxng,crawl4ai,gotenberg,langfuse-web,langfuse-worker,flowise,n8n,n8n-import,n8n-worker-1,n8n-worker-2,n8n-worker-3,n8n-worker-4,n8n-worker-5,n8n-worker-6,n8n-worker-7,n8n-worker-8,n8n-worker-9,n8n-worker-10,n8n-runner-1,n8n-runner-2,n8n-runner-3,n8n-runner-4,n8n-runner-5,n8n-runner-6,n8n-runner-7,n8n-runner-8,n8n-runner-9,n8n-runner-10,letta,lightrag,docling,postiz,temporal,temporal-ui,ragflow,ragflow-mysql,ragflow-minio,ragflow-redis,ragflow-elasticsearch,ragapp,open-webui,comfyui,waha,libretranslate,paddleocr,nocodb,uptime-kuma,db,studio,kong,auth,rest,realtime,storage,imgproxy,meta,functions,analytics,vector,supavisor,gost,api.telegram.org,telegram.org,t.me,core.telegram.orgAs per coding guidelines, all service container names must be listed in GOST_NO_PROXY in .env.example.
🧰 Tools
🪛 dotenv-linter (4.0.0)
[warning] 186-186: [UnorderedKey] The UPTIME_KUMA_HOSTNME key should go before the USER_DOMAIN_NAME key
(UnorderedKey)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.env.example at line 186, The .env.example is missing the new service name
in the internal no-proxy list: update the GOST_NO_PROXY variable to include the
new container name "uptime-kuma" (matching the introduced UPTIME_KUMA_HOSTNME
entry) so intra-stack traffic is bypassed by the proxy; locate the GOST_NO_PROXY
definition in .env.example and append "uptime-kuma" to the comma/space-separated
list following the existing formatting/conventions.
| # Uptime Kuma | ||
| {$UPTIME_KUMA_HOSTNAME} { | ||
| reverse_proxy uptimekuma:3001 | ||
| } |
There was a problem hiding this comment.
Fix Uptime Kuma Caddy block: missing TLS import and wrong upstream hostname.
This block currently skips the shared TLS snippet and proxies to a non-existent upstream name.
Suggested fix
# Uptime Kuma
{$UPTIME_KUMA_HOSTNAME} {
- reverse_proxy uptimekuma:3001
+ import service_tls
+ reverse_proxy uptime-kuma:3001
}Also ensure UPTIME_KUMA_HOSTNAME is passed into the caddy service environment in docker-compose.yml, otherwise this host matcher won’t resolve at runtime.
As per coding guidelines, all Caddyfile service blocks must use import service_tls for consistent TLS configuration.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Uptime Kuma | |
| {$UPTIME_KUMA_HOSTNAME} { | |
| reverse_proxy uptimekuma:3001 | |
| } | |
| # Uptime Kuma | |
| {$UPTIME_KUMA_HOSTNAME} { | |
| import service_tls | |
| reverse_proxy uptime-kuma:3001 | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Caddyfile` around lines 110 - 113, The Caddy site block for Uptime Kuma is
missing the shared TLS import and points to an incorrect upstream; update the
block that matches {$UPTIME_KUMA_HOSTNAME} to include "import service_tls" as
the first line and change the reverse_proxy target from "uptimekuma:3001" to the
correct container hostname (ensure it matches the service name used in
docker-compose), and also add UPTIME_KUMA_HOSTNAME to the caddy service
environment in docker-compose.yml so the host matcher resolves at runtime.
| ### Fixed | ||
| - **Uptime Kuma** - Self-hosted uptime monitoring with 90+ notification services | ||
|
|
There was a problem hiding this comment.
Move this entry from Fixed to Added.
Uptime Kuma is a new capability, so this should be documented under ### Added in [Unreleased].
As per coding guidelines, CHANGELOG entries should follow semantic categories (Added, Changed, Fixed).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CHANGELOG.md` around lines 5 - 7, Move the "Uptime Kuma - Self-hosted uptime
monitoring with 90+ notification services" changelog entry out of the "###
Fixed" section into the "### Added" section under the "[Unreleased]" heading;
specifically locate the line containing "Uptime Kuma" and cut it from the "###
Fixed" block and paste it into the "### Added" block so the entry is categorized
as a new capability rather than a fix.
| environment: | ||
| UPTIME_KUMA_WS_ORIGIN_CHECK: bypass |
There was a problem hiding this comment.
Inherit shared proxy env for outbound notifications.
Uptime Kuma performs outbound HTTP calls (webhooks/alerts), so it should inherit the shared proxy anchor like other outbound services.
Suggested fix
environment:
+ <<: *proxy-env
UPTIME_KUMA_WS_ORIGIN_CHECK: bypassAs per coding guidelines, services making outbound HTTP requests must use the shared proxy anchor <<: *proxy-env.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| environment: | |
| UPTIME_KUMA_WS_ORIGIN_CHECK: bypass | |
| environment: | |
| <<: *proxy-env | |
| UPTIME_KUMA_WS_ORIGIN_CHECK: bypass |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docker-compose.yml` around lines 1285 - 1286, The Uptime Kuma service’s
environment block only sets UPTIME_KUMA_WS_ORIGIN_CHECK and does not inherit the
shared proxy variables; update the service's environment section to include the
YAML anchor inheritance by adding <<: *proxy-env alongside the existing
UPTIME_KUMA_WS_ORIGIN_CHECK so the container uses the shared proxy settings for
outbound HTTP calls (reference the environment block and the
UPTIME_KUMA_WS_ORIGIN_CHECK key and the *proxy-env anchor).
| volumes: | ||
| - uptime_kuma_data:/app/database |
There was a problem hiding this comment.
Declare uptime_kuma_data in top-level volumes.
This service references a named volume that isn’t declared, which can fail compose validation/start.
Suggested fix
volumes:
appsmith_data:
+ uptime_kuma_data:
caddy-config:🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docker-compose.yml` around lines 1287 - 1288, The compose file references the
named volume uptime_kuma_data under the service volumes section but does not
declare it at the top-level; add a top-level volumes entry named
uptime_kuma_data (e.g., under the top-level "volumes:" block) so docker-compose
validation/start succeeds and the service's volume mapping "-
uptime_kuma_data:/app/database" is resolved.
| ✅ [**Uptime Kuma**](https://github.com/louislam/uptime-kuma - Self-hosted uptime monitoring tool with notifications | ||
|
|
There was a problem hiding this comment.
Fix malformed Markdown link for Uptime Kuma.
The link is missing the closing ) and currently swallows the description text into the URL.
Suggested fix
-✅ [**Uptime Kuma**](https://github.com/louislam/uptime-kuma - Self-hosted uptime monitoring tool with notifications
+✅ [**Uptime Kuma**](https://github.com/louislam/uptime-kuma) - Self-hosted uptime monitoring tool with notifications📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ✅ [**Uptime Kuma**](https://github.com/louislam/uptime-kuma - Self-hosted uptime monitoring tool with notifications | |
| ✅ [**Uptime Kuma**](https://github.com/louislam/uptime-kuma) - Self-hosted uptime monitoring tool with notifications |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@README.md` around lines 115 - 116, The Markdown link for the Uptime Kuma
entry is missing the closing “)” so the description is being included in the
URL; fix the line containing the link text "[**Uptime Kuma**]" by moving the
closing parenthesis to immediately after the URL
(https://github.com/louislam/uptime-kuma) and place the descriptive text "-
Self-hosted uptime monitoring tool with notifications" outside the link so it
reads: [**Uptime Kuma**](https://github.com/louislam/uptime-kuma) - Self-hosted
uptime monitoring tool with notifications.
| "ragflow" "RAGFlow (Deep document understanding RAG engine)" | ||
| "searxng" "SearXNG (Private Metasearch Engine)" | ||
| "supabase" "Supabase (Backend as a Service)" | ||
| "uptimekuma" "Uptime Kuma (Uptime Monitoring)" |
There was a problem hiding this comment.
Use the exact compose profile id in wizard (uptime-kuma).
uptimekuma won’t match profiles: ["uptime-kuma"], so the service selection won’t actually enable the container.
Suggested fix
- "uptimekuma" "Uptime Kuma (Uptime Monitoring)"
+ "uptime-kuma" "Uptime Kuma (Uptime Monitoring)"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "uptimekuma" "Uptime Kuma (Uptime Monitoring)" | |
| "uptime-kama" "Uptime Kuma (Uptime Monitoring)" |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/04_wizard.sh` at line 70, The wizard uses the wrong service
identifier string "uptimekuma" which doesn't match the compose profile id
"uptime-kuma"; update the mapping entry in scripts/04_wizard.sh so the left-hand
key equals the exact profile id "uptime-kuma" (i.e., replace "uptimekuma" with
"uptime-kuma") so that the service selection toggles the correct compose profile
in the profiles: ["uptime-kuma"] check.
| if is_profile_active "uptime_kuma"; then | ||
| echo -e " ${GREEN}*${NC} ${WHITE}Uptime Kuma${NC}: Register your account on first login" | ||
| fi |
There was a problem hiding this comment.
Profile name mismatch prevents Uptime Kuma guidance from showing.
The check uses uptime_kuma, but the profile introduced in compose is uptime-kuma.
Suggested fix
-if is_profile_active "uptime_kuma"; then
+if is_profile_active "uptime-kuma"; thenAs per coding guidelines, scripts should use is_profile_active "myservice" with the actual profile id.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/07_final_report.sh` around lines 106 - 108, The profile check uses
the wrong profile id: change the call to is_profile_active from "uptime_kuma" to
"uptime-kuma" so it matches the compose profile; update the string passed to
is_profile_active (the call near the Uptime Kuma echo block) to "uptime-kuma"
and keep the echo message as-is.
| # Uptime Kuma | ||
| if is_profile_active "uptime-kuma"; then | ||
| SERVICES_ARRAY+=(" \"uptime-kuma\": { | ||
| \"hostname\": \"$(json_escape "$UPTIMEKUMA_HOSTNAME")\", | ||
| \"credentials\": { | ||
| \"note\": \"Create account on first login\" | ||
| } | ||
| }") | ||
| fi |
There was a problem hiding this comment.
Use the correct env var for Uptime Kuma hostname.
UPTIMEKUMA_HOSTNAME doesn’t match the expected key pattern used elsewhere (UPTIME_KUMA_HOSTNAME), so the generated welcome URL will be blank/wrong.
Suggested fix
- \"hostname\": \"$(json_escape "$UPTIMEKUMA_HOSTNAME")\",
+ \"hostname\": \"$(json_escape "$UPTIME_KUMA_HOSTNAME")\",🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/generate_welcome_page.sh` around lines 357 - 365, The Uptime Kuma
block in scripts/generate_welcome_page.sh uses the wrong environment variable
name UPTIMEKUMA_HOSTNAME; update the template to use the correct
UPTIME_KUMA_HOSTNAME so the generated SERVICES_ARRAY entry contains the real
hostname. Locate the block that appends to SERVICES_ARRAY for "uptime-kuma" and
replace references to UPTIMEKUMA_HOSTNAME with UPTIME_KUMA_HOSTNAME (preserve
the json_escape call and surrounding structure) so the welcome URL is populated
correctly.
| } | ||
| 'cloudflare-tunnel': { |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify the exact missing-comma pattern between uptime-kuma and cloudflare-tunnel entries.
rg -nP -C2 "docsUrl:\s*'https://github.com/louislam/uptime-kuma'\s*\n\s*}\s*\n\s*'cloudflare-tunnel':\s*{" welcome/app.jsRepository: kossakovsky/n8n-install
Length of output: 49
🏁 Script executed:
# First, check if the file exists and find the SERVICE_METADATA object
fd -p welcome/app.jsRepository: kossakovsky/n8n-install
Length of output: 81
🏁 Script executed:
# Search for uptime-kuma entry to locate it precisely
rg -n "uptime-kuma" welcome/app.js -A 8 -B 2Repository: kossakovsky/n8n-install
Length of output: 785
🏁 Script executed:
# Also check the cloudflare-tunnel entry context
rg -n "cloudflare-tunnel" welcome/app.js -A 3 -B 3Repository: kossakovsky/n8n-install
Length of output: 351
Add a comma after the uptime-kuma entry to fix JavaScript syntax error.
Line 430 closes the uptime-kuma object, but line 431 immediately starts the next property without a comma separator. This breaks the SERVICE_METADATA object literal and prevents the script from parsing.
Proposed fix
'uptime-kuma': {
name: 'Uptime Kuma',
description: 'Uptime Monitoring Dashboard',
icon: 'UK',
color: 'bg-[`#5CDD8B`]',
category: 'monitoring',
docsUrl: 'https://github.com/louislam/uptime-kuma'
- }
+ },
'cloudflare-tunnel': {📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| } | |
| 'cloudflare-tunnel': { | |
| 'uptime-kuma': { | |
| name: 'Uptime Kuma', | |
| description: 'Uptime Monitoring Dashboard', | |
| icon: 'UK', | |
| color: 'bg-[`#5CDD8B`]', | |
| category: 'monitoring', | |
| docsUrl: 'https://github.com/louislam/uptime-kuma' | |
| }, | |
| 'cloudflare-tunnel': { |
🧰 Tools
🪛 Biome (2.4.6)
[error] 431-431: expected , but instead found 'cloudflare-tunnel'
(parse)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@welcome/app.js` around lines 430 - 431, The SERVICE_METADATA object has a
missing comma after the 'uptime-kuma' entry which causes a JavaScript syntax
error; edit the SERVICE_METADATA definition to insert a trailing comma after the
closing brace for the 'uptime-kuma' object so the next property
'cloudflare-tunnel' is a valid sibling entry, then run a quick lint/parse to
confirm the object literal parses correctly.
Code Review Benchmark Report — CodeRabbitPR: #50 — feat: add Uptime Kuma uptime monitoring service Results: 13 / 15 errors found
Detection by difficulty
Missed errors — analysisError #2 — Missing logging configurationThe service is missing Why missed: This is an implicit project convention (YAML anchor reuse), not a syntax or configuration error. Detecting it requires recognizing that every other service uses this anchor and inferring it as a requirement. Error #13 — Wrong volume mount path (
|
Summary
uptime-kumaprofile)Changes
docker-compose.yml: Add uptime-kuma service with healthcheck, volumeCaddyfile: Add reverse proxy block for Uptime Kuma.env.example: Add hostname variablescripts/04_wizard.sh: Add to service selection wizardscripts/generate_welcome_page.sh: Add to welcome dashboardwelcome/app.js: Add SERVICE_METADATA entryscripts/07_final_report.sh: Add post-install report outputREADME.md: Add to "What's Included" listCHANGELOG.md: Add changelog entryTest plan
docker compose -p localai config --quietpasses🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation