Skip to content

feat: add Uptime Kuma uptime monitoring service#51

Merged
kossakovsky merged 4 commits into
developfrom
feature/add-uptime-kuma
Mar 14, 2026
Merged

feat: add Uptime Kuma uptime monitoring service#51
kossakovsky merged 4 commits into
developfrom
feature/add-uptime-kuma

Conversation

@kossakovsky

@kossakovsky kossakovsky commented Mar 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add Uptime Kuma self-hosted uptime monitoring with 90+ notification services
  • Includes Docker Compose service, Caddy reverse proxy, wizard integration, welcome page, and final report
  • Fix 15 integration errors (healthcheck port, logging, TLS, hostname typo, volume config, profile names, etc.)

Test plan

  • Verify docker compose -p localai config --quiet passes
  • Run installation wizard and confirm Uptime Kuma appears with correct profile name
  • Start stack with uptime-kuma profile and verify container is healthy
  • Confirm Caddy proxies traffic to Uptime Kuma via configured hostname
  • Check welcome page shows Uptime Kuma with correct hostname
  • Verify final report displays Uptime Kuma info when profile is active

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added Uptime Kuma as an optional monitoring service for tracking uptime across your infrastructure with support for 90+ notification services.
    • Integrated Uptime Kuma into the setup wizard for easy enablement during deployment.
    • Added routing configuration and documentation for the new monitoring solution.

fix healthcheck port (3000→3001), add missing logging config,
add UPTIME_KUMA_HOSTNAME to caddy env, add import service_tls
in caddyfile, fix hostname typo in .env.example, add uptime-kuma
to GOST_NO_PROXY, fix profile name in wizard/final report, fix
env var in welcome page generator, add missing trailing comma in
app.js, move changelog to Added section, declare volume in
top-level section, fix container name in caddyfile, fix volume
mount path, fix broken markdown link in README
@coderabbitai

coderabbitai Bot commented Mar 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ceb62fd5-4557-4dcc-bf3e-4219904d5a73

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Integration of Uptime Kuma, a self-hosted uptime monitoring solution, into the deployment stack. Changes span configuration files, docker-compose service definition, setup scripts, and frontend metadata to register and expose the service alongside existing tools.

Changes

Cohort / File(s) Summary
Configuration & Deployment
.env.example, Caddyfile, docker-compose.yml
Added Uptime Kuma hostname environment variable, Caddy reverse proxy configuration for port 3001, new service definition with health checks, and persistent volume (uptime_kuma_data). Service includes WebSocket origin check bypass and default logging.
Documentation
README.md, CHANGELOG.md
Updated tools list and changelog to document Uptime Kuma as a new included monitoring solution with 90+ notification services.
Setup & Wizard Scripts
scripts/04_wizard.sh, scripts/07_final_report.sh, scripts/generate_welcome_page.sh
Registered uptime-kuma service in wizard selections, added conditional credential reporting in final setup report, and included service in generated welcome page configuration with hostname and first-login account creation note.
Frontend Service Registry
welcome/app.js
Added uptime-kuma entry to SERVICE_METADATA with display name, description, icon (UK), green color scheme, monitoring category, and documentation link.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 Hop along, Uptime Kuma's here to stay,
Monitoring services throughout the day,
With docker compose and reverse proxy flows,
A green dashboard where everyone goes,
Nine files aligned in perfect harmony! 🌿

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: add Uptime Kuma uptime monitoring service' clearly and specifically describes the main change: adding a new service for uptime monitoring.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/add-uptime-kuma
📝 Coding Plan
  • Generate coding plan for human review comments

Comment @coderabbitai help to get the list of available commands and usage tips.

@kossakovsky

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Mar 14, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
.env.example (1)

186-186: Address dotenv-linter key ordering warning.

UPTIME_KUMA_HOSTNAME triggers an UnorderedKey warning. If dotenv-linter is enforced in CI, reorder this key to match the project’s expected key order.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.env.example at line 186, The UnorderedKey warning is caused by the
UPTIME_KUMA_HOSTNAME entry being out of the project's expected .env key order;
fix it by moving the UPTIME_KUMA_HOSTNAME key to the correct position (i.e.,
grouped with other UPTIME_* variables or into the alphabetical order used by
this .env file) so dotenv-linter no longer reports UnorderedKey for
UPTIME_KUMA_HOSTNAME.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docker-compose.yml`:
- Around line 1288-1290: The Uptime Kuma service environment block is missing
the shared proxy inheritance; update the service's environment (the block
containing UPTIME_KUMA_WS_ORIGIN_CHECK) to include the YAML merge key to inherit
the proxy anchor (<<: *proxy-env) so that outbound checks/notifications use the
same GOST proxy settings as other HTTP services.
- Around line 1292-1296: Update the healthcheck.test entry so the wget probe
runs with proxy variables cleared: modify the healthcheck block
(healthcheck.test) that currently runs "wget -qO- http://localhost:3001/ || exit
1" to prefix the command by clearing http_proxy, https_proxy, HTTP_PROXY and
HTTPS_PROXY before invoking wget (so the probe ignores any container-level proxy
settings and cannot be mistakenly routed through a proxy).

---

Nitpick comments:
In @.env.example:
- Line 186: The UnorderedKey warning is caused by the UPTIME_KUMA_HOSTNAME entry
being out of the project's expected .env key order; fix it by moving the
UPTIME_KUMA_HOSTNAME key to the correct position (i.e., grouped with other
UPTIME_* variables or into the alphabetical order used by this .env file) so
dotenv-linter no longer reports UnorderedKey for UPTIME_KUMA_HOSTNAME.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a661c8ab-3567-473e-b6ab-054b326229dd

📥 Commits

Reviewing files that changed from the base of the PR and between 277466f and c339980.

📒 Files selected for processing (9)
  • .env.example
  • CHANGELOG.md
  • Caddyfile
  • README.md
  • docker-compose.yml
  • scripts/04_wizard.sh
  • scripts/07_final_report.sh
  • scripts/generate_welcome_page.sh
  • welcome/app.js

Comment thread docker-compose.yml
Comment on lines +1288 to +1290
environment:
UPTIME_KUMA_WS_ORIGIN_CHECK: bypass
volumes:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add shared proxy env inheritance to Uptime Kuma service.

At Line 1288, the service environment should inherit *proxy-env so outbound checks/notifications follow the same proxy behavior as other HTTP-integrating services.

Suggested patch
   environment:
+    <<: *proxy-env
     UPTIME_KUMA_WS_ORIGIN_CHECK: bypass

As per coding guidelines **/*docker-compose*.yml: "Services making outbound HTTP requests must use shared proxy anchor <<: *proxy-env to inherit GOST proxy settings".

📝 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.

Suggested change
environment:
UPTIME_KUMA_WS_ORIGIN_CHECK: bypass
volumes:
environment:
<<: *proxy-env
UPTIME_KUMA_WS_ORIGIN_CHECK: bypass
volumes:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docker-compose.yml` around lines 1288 - 1290, The Uptime Kuma service
environment block is missing the shared proxy inheritance; update the service's
environment (the block containing UPTIME_KUMA_WS_ORIGIN_CHECK) to include the
YAML merge key to inherit the proxy anchor (<<: *proxy-env) so that outbound
checks/notifications use the same GOST proxy settings as other HTTP services.

Comment thread docker-compose.yml
Comment on lines +1292 to +1296
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:3001/ || exit 1"]
interval: 30s
timeout: 10s
retries: 5

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Healthcheck must explicitly bypass proxy variables.

At Line 1293, the healthcheck command should clear proxy env vars to avoid false health failures in proxied environments.

Suggested patch
-      test: ["CMD-SHELL", "wget -qO- http://localhost:3001/ || exit 1"]
+      test: ["CMD-SHELL", "http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= wget -qO- http://localhost:3001/ || exit 1"]

As per coding guidelines **/*docker-compose*.yml: "Healthchecks must bypass proxy by clearing proxy environment variables: http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY=".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docker-compose.yml` around lines 1292 - 1296, Update the healthcheck.test
entry so the wget probe runs with proxy variables cleared: modify the
healthcheck block (healthcheck.test) that currently runs "wget -qO-
http://localhost:3001/ || exit 1" to prefix the command by clearing http_proxy,
https_proxy, HTTP_PROXY and HTTPS_PROXY before invoking wget (so the probe
ignores any container-level proxy settings and cannot be mistakenly routed
through a proxy).

@kossakovsky kossakovsky self-assigned this Mar 14, 2026
@kossakovsky kossakovsky merged commit 944e046 into develop Mar 14, 2026
1 check passed
@kossakovsky kossakovsky deleted the feature/add-uptime-kuma branch March 16, 2026 01:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant