Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ SEARXNG_HOSTNAME=searxng.yourdomain.com
SUPABASE_HOSTNAME=supabase.yourdomain.com
WAHA_HOSTNAME=waha.yourdomain.com
WEAVIATE_HOSTNAME=weaviate.yourdomain.com
UPTIME_KUMA_HOSTNAME=uptime-kuma.yourdomain.com
WEBUI_HOSTNAME=webui.yourdomain.com
WELCOME_HOSTNAME=welcome.yourdomain.com

Expand Down Expand Up @@ -446,7 +447,7 @@ GOST_UPSTREAM_PROXY=

# Internal services bypass list (prevents internal Docker traffic from going through proxy)
# Includes: Docker internal networks (172.16-31.*, 10.*), Docker DNS (127.0.0.11), and all service hostnames
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,db,studio,kong,auth,rest,realtime,storage,imgproxy,meta,functions,analytics,vector,supavisor,gost,uptime-kuma,api.telegram.org,telegram.org,t.me,core.telegram.org

############
# Functions - Configuration for Functions
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## [Unreleased]

### Added
- **Uptime Kuma** - Self-hosted uptime monitoring with 90+ notification services

## [1.3.3] - 2026-02-27

### Fixed
Expand Down
6 changes: 6 additions & 0 deletions Caddyfile
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ import /etc/caddy/addons/tls-snippet.conf
reverse_proxy temporal-ui:8080
}

# Uptime Kuma
{$UPTIME_KUMA_HOSTNAME} {
import service_tls
reverse_proxy uptime-kuma:3001
}

# Databasus
{$DATABASUS_HOSTNAME} {
import service_tls
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ The installer also makes the following powerful open-source tools **available fo

✅ [**Supabase**](https://supabase.com/) - An open-source alternative to Firebase, providing database storage, user authentication, and more. It's a popular choice for AI applications.

✅ [**Uptime Kuma**](https://github.com/louislam/uptime-kuma) - Self-hosted uptime monitoring tool with notifications

✅ [**WAHA**](https://waha.devlike.pro/) - WhatsApp HTTP API (REST API) that you can configure in a click! 3 engines: WEBJS (browser based), NOWEB (websocket nodejs), GOWS (websocket go).

✅ [**Weaviate**](https://weaviate.io/) - An open-source AI-native vector database with a focus on scalability and ease of use. It can be used for RAG, hybrid search, and more.
Expand Down
20 changes: 20 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ volumes:
ragflow_redis_data:
temporal_elasticsearch_data:
valkey-data:
uptime_kuma_data:
weaviate_data:

# Shared logging configuration for services
Expand Down Expand Up @@ -380,6 +381,7 @@ services:
SEARXNG_PASSWORD_HASH: ${SEARXNG_PASSWORD_HASH}
SEARXNG_USERNAME: ${SEARXNG_USERNAME}
SUPABASE_HOSTNAME: ${SUPABASE_HOSTNAME}
UPTIME_KUMA_HOSTNAME: ${UPTIME_KUMA_HOSTNAME}
WAHA_HOSTNAME: ${WAHA_HOSTNAME}
WEAVIATE_HOSTNAME: ${WEAVIATE_HOSTNAME}
WEBUI_HOSTNAME: ${WEBUI_HOSTNAME}
Expand Down Expand Up @@ -1276,3 +1278,21 @@ services:
timeout: 10s
retries: 5
start_period: 30s

uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
profiles: ["uptime-kuma"]
restart: unless-stopped
logging: *default-logging
environment:
<<: *proxy-env
UPTIME_KUMA_WS_ORIGIN_CHECK: bypass
volumes:
Comment on lines +1288 to +1291

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.

- uptime_kuma_data:/app/data
healthcheck:
test: ["CMD-SHELL", "http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= wget -qO- http://localhost:3001/ || exit 1"]
interval: 30s
timeout: 10s
retries: 5
Comment on lines +1293 to +1297

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

start_period: 30s
1 change: 1 addition & 0 deletions scripts/04_wizard.sh
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ base_services_data=(
"ragflow" "RAGFlow (Deep document understanding RAG engine)"
"searxng" "SearXNG (Private Metasearch Engine)"
"supabase" "Supabase (Backend as a Service)"
"uptime-kuma" "Uptime Kuma (Uptime Monitoring)"
"waha" "WAHA – WhatsApp HTTP API (NOWEB engine)"
"weaviate" "Weaviate (Vector Database with API Key Auth)"
)
Expand Down
3 changes: 3 additions & 0 deletions scripts/07_final_report.sh
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,9 @@ fi
if is_profile_active "postiz"; then
echo -e " ${GREEN}*${NC} ${WHITE}Postiz${NC}: Create your account on first login"
fi
if is_profile_active "uptime-kuma"; then
echo -e " ${GREEN}*${NC} ${WHITE}Uptime Kuma${NC}: Create your account on first login"
fi
if is_profile_active "gost"; then
echo -e " ${GREEN}*${NC} ${WHITE}Gost Proxy${NC}: Routing AI traffic through external proxy"
fi
Expand Down
10 changes: 10 additions & 0 deletions scripts/generate_welcome_page.sh
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,16 @@ if is_profile_active "postiz"; then
}")
fi

# Uptime Kuma
if is_profile_active "uptime-kuma"; then
SERVICES_ARRAY+=(" \"uptime-kuma\": {
\"hostname\": \"$(json_escape "$UPTIME_KUMA_HOSTNAME")\",
\"credentials\": {
\"note\": \"Create account on first login\"
}
}")
fi

# WAHA
if is_profile_active "waha"; then
SERVICES_ARRAY+=(" \"waha\": {
Expand Down
8 changes: 8 additions & 0 deletions welcome/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,14 @@
category: 'tools',
docsUrl: 'https://docs.python.org'
},
'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': {
name: 'Cloudflare Tunnel',
description: 'Zero-Trust Network Access',
Expand Down