7 Commits

Author SHA1 Message Date
Yury Kossakovsky
463258fb06 feat: add pgvector support to postgresql
switch postgres image to pgvector/pgvector for vector
similarity search capabilities
2026-03-15 20:15:05 -06:00
Yury Kossakovsky
e8a8a5a511 fix: complete uptime kuma integration gaps
add missing readme service url, update preview image tracking,
and release changelog as v1.4.0
2026-03-15 20:10:37 -06:00
Yury Kossakovsky
944e0465bd Merge pull request #51 from kossakovsky/feature/add-uptime-kuma
feat: add Uptime Kuma uptime monitoring service
2026-03-13 18:30:25 -06:00
Yury Kossakovsky
a6a3c2cb05 fix: add proxy-env inheritance and healthcheck proxy bypass to uptime kuma 2026-03-13 18:09:52 -06:00
Yury Kossakovsky
5859fc9d25 fix: add missing healthcheck start_period and standardize wording 2026-03-13 18:02:48 -06:00
Yury Kossakovsky
c33998043f fix: correct 15 errors in uptime kuma service integration
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
2026-03-13 17:58:13 -06:00
Yury Kossakovsky
52845d1ed9 feat: add uptime kuma uptime monitoring service 2026-03-12 20:30:00 -06:00
10 changed files with 66 additions and 3 deletions

View File

@@ -183,6 +183,7 @@ SEARXNG_HOSTNAME=searxng.yourdomain.com
SUPABASE_HOSTNAME=supabase.yourdomain.com SUPABASE_HOSTNAME=supabase.yourdomain.com
WAHA_HOSTNAME=waha.yourdomain.com WAHA_HOSTNAME=waha.yourdomain.com
WEAVIATE_HOSTNAME=weaviate.yourdomain.com WEAVIATE_HOSTNAME=weaviate.yourdomain.com
UPTIME_KUMA_HOSTNAME=uptime-kuma.yourdomain.com
WEBUI_HOSTNAME=webui.yourdomain.com WEBUI_HOSTNAME=webui.yourdomain.com
WELCOME_HOSTNAME=welcome.yourdomain.com WELCOME_HOSTNAME=welcome.yourdomain.com
@@ -446,7 +447,7 @@ GOST_UPSTREAM_PROXY=
# Internal services bypass list (prevents internal Docker traffic from going through 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 # 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 # Functions - Configuration for Functions

View File

@@ -2,6 +2,12 @@
## [Unreleased] ## [Unreleased]
## [1.4.0] - 2026-03-15
### Added
- **Uptime Kuma** - Self-hosted uptime monitoring with 90+ notification services
- **pgvector** - Switch PostgreSQL image to `pgvector/pgvector` for vector similarity search support
## [1.3.3] - 2026-02-27 ## [1.3.3] - 2026-02-27
### Fixed ### Fixed

View File

@@ -107,6 +107,12 @@ import /etc/caddy/addons/tls-snippet.conf
reverse_proxy temporal-ui:8080 reverse_proxy temporal-ui:8080
} }
# Uptime Kuma
{$UPTIME_KUMA_HOSTNAME} {
import service_tls
reverse_proxy uptime-kuma:3001
}
# Databasus # Databasus
{$DATABASUS_HOSTNAME} { {$DATABASUS_HOSTNAME} {
import service_tls import service_tls

View File

@@ -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. ✅ [**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). ✅ [**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. ✅ [**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.
@@ -204,6 +206,7 @@ After successful installation, your services are up and running! Here's how to g
- **RAGFlow:** `ragflow.yourdomain.com` - **RAGFlow:** `ragflow.yourdomain.com`
- **SearXNG:** `searxng.yourdomain.com` - **SearXNG:** `searxng.yourdomain.com`
- **Supabase (Dashboard):** `supabase.yourdomain.com` - **Supabase (Dashboard):** `supabase.yourdomain.com`
- **Uptime Kuma:** `uptime-kuma.yourdomain.com` (Uptime monitoring dashboard)
- **WAHA:** `waha.yourdomain.com` (WhatsApp HTTP API; engines: WEBJS, NOWEB, GOWS) - **WAHA:** `waha.yourdomain.com` (WhatsApp HTTP API; engines: WEBJS, NOWEB, GOWS)
- **Weaviate:** `weaviate.yourdomain.com` - **Weaviate:** `weaviate.yourdomain.com`

View File

@@ -36,6 +36,7 @@ volumes:
ragflow_redis_data: ragflow_redis_data:
temporal_elasticsearch_data: temporal_elasticsearch_data:
valkey-data: valkey-data:
uptime_kuma_data:
weaviate_data: weaviate_data:
# Shared logging configuration for services # Shared logging configuration for services
@@ -380,6 +381,7 @@ services:
SEARXNG_PASSWORD_HASH: ${SEARXNG_PASSWORD_HASH} SEARXNG_PASSWORD_HASH: ${SEARXNG_PASSWORD_HASH}
SEARXNG_USERNAME: ${SEARXNG_USERNAME} SEARXNG_USERNAME: ${SEARXNG_USERNAME}
SUPABASE_HOSTNAME: ${SUPABASE_HOSTNAME} SUPABASE_HOSTNAME: ${SUPABASE_HOSTNAME}
UPTIME_KUMA_HOSTNAME: ${UPTIME_KUMA_HOSTNAME}
WAHA_HOSTNAME: ${WAHA_HOSTNAME} WAHA_HOSTNAME: ${WAHA_HOSTNAME}
WEAVIATE_HOSTNAME: ${WEAVIATE_HOSTNAME} WEAVIATE_HOSTNAME: ${WEAVIATE_HOSTNAME}
WEBUI_HOSTNAME: ${WEBUI_HOSTNAME} WEBUI_HOSTNAME: ${WEBUI_HOSTNAME}
@@ -542,7 +544,7 @@ services:
postgres: postgres:
container_name: postgres container_name: postgres
image: postgres:${POSTGRES_VERSION:-17} image: pgvector/pgvector:pg${POSTGRES_VERSION:-17}
restart: unless-stopped restart: unless-stopped
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"] test: ["CMD-SHELL", "pg_isready -U postgres"]
@@ -1276,3 +1278,21 @@ services:
timeout: 10s timeout: 10s
retries: 5 retries: 5
start_period: 30s 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:
- 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
start_period: 30s

View File

@@ -67,6 +67,7 @@ base_services_data=(
"ragflow" "RAGFlow (Deep document understanding RAG engine)" "ragflow" "RAGFlow (Deep document understanding RAG engine)"
"searxng" "SearXNG (Private Metasearch Engine)" "searxng" "SearXNG (Private Metasearch Engine)"
"supabase" "Supabase (Backend as a Service)" "supabase" "Supabase (Backend as a Service)"
"uptime-kuma" "Uptime Kuma (Uptime Monitoring)"
"waha" "WAHA WhatsApp HTTP API (NOWEB engine)" "waha" "WAHA WhatsApp HTTP API (NOWEB engine)"
"weaviate" "Weaviate (Vector Database with API Key Auth)" "weaviate" "Weaviate (Vector Database with API Key Auth)"
) )

View File

@@ -103,6 +103,9 @@ fi
if is_profile_active "postiz"; then if is_profile_active "postiz"; then
echo -e " ${GREEN}*${NC} ${WHITE}Postiz${NC}: Create your account on first login" echo -e " ${GREEN}*${NC} ${WHITE}Postiz${NC}: Create your account on first login"
fi 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 if is_profile_active "gost"; then
echo -e " ${GREEN}*${NC} ${WHITE}Gost Proxy${NC}: Routing AI traffic through external proxy" echo -e " ${GREEN}*${NC} ${WHITE}Gost Proxy${NC}: Routing AI traffic through external proxy"
fi fi

View File

@@ -354,6 +354,16 @@ if is_profile_active "postiz"; then
}") }")
fi 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 # WAHA
if is_profile_active "waha"; then if is_profile_active "waha"; then
SERVICES_ARRAY+=(" \"waha\": { SERVICES_ARRAY+=(" \"waha\": {

View File

@@ -72,7 +72,7 @@ echo ""
# Core services (always checked) # Core services (always checked)
log_subheader "Core Services" log_subheader "Core Services"
check_image_update "postgres" "postgres:${POSTGRES_VERSION:-17}-alpine" check_image_update "postgres" "pgvector/pgvector:pg${POSTGRES_VERSION:-17}"
check_image_update "redis" "valkey/valkey:8-alpine" check_image_update "redis" "valkey/valkey:8-alpine"
check_image_update "caddy" "caddy:2-alpine" check_image_update "caddy" "caddy:2-alpine"
@@ -139,6 +139,11 @@ if is_profile_active "appsmith"; then
check_image_update "appsmith" "appsmith/appsmith-ce:release" check_image_update "appsmith" "appsmith/appsmith-ce:release"
fi fi
if is_profile_active "uptime-kuma"; then
log_subheader "Uptime Kuma"
check_image_update "uptime-kuma" "louislam/uptime-kuma:2"
fi
# Summary # Summary
log_divider log_divider
echo "" echo ""

View File

@@ -420,6 +420,14 @@
category: 'tools', category: 'tools',
docsUrl: 'https://docs.python.org' 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': { 'cloudflare-tunnel': {
name: 'Cloudflare Tunnel', name: 'Cloudflare Tunnel',
description: 'Zero-Trust Network Access', description: 'Zero-Trust Network Access',