Files
kuma-strapper/docker-compose.yml
Debian 1fd29e449f
All checks were successful
Build and Push Container / build (push) Successful in 1m4s
Add local SQLite database and sync with Uptime Kuma
Features:
- SQLite database to track monitors and hosts locally
- Uses Uptime Kuma tags to mark monitors as managed by Kuma Strapper
- Sync on startup, before each scan, and on-demand via API
- Shows existing monitors when re-scanning a host

New files:
- backend/services/database.py - SQLite database service
- backend/services/sync.py - Sync service for Uptime Kuma reconciliation

API endpoints:
- POST /api/sync - Full sync with Uptime Kuma
- POST /api/sync/host/<hostname> - Sync specific host
- GET /api/hosts - List tracked hosts
- GET /api/hosts/<hostname>/monitors - Get monitors for host
- GET /api/monitors/tracked - Get all tracked monitors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 09:10:26 +00:00

33 lines
1.0 KiB
YAML

services:
kuma-strapper:
build:
context: .
dockerfile: Dockerfile
container_name: kuma-strapper
ports:
- "5000:5000"
environment:
# Required: Base64-encoded SSH private key
- SSH_PRIVATE_KEY=${SSH_PRIVATE_KEY}
# Required: Uptime Kuma instance URL
- UPTIME_KUMA_URL=${UPTIME_KUMA_URL:-http://localhost:3001}
# Required: Uptime Kuma API token
- UPTIME_KUMA_API_KEY=${UPTIME_KUMA_API_KEY}
# Required: Claude/Anthropic API key
- CLAUDE_API_KEY=${CLAUDE_API_KEY}
# Optional: Enable dev mode on startup (default: false)
- DEV_MODE=${DEV_MODE:-false}
# Optional: Enable debug mode
- DEBUG=${DEBUG:-false}
# Database path (inside container)
- DATABASE_PATH=/app/data/kuma_strapper.db
volumes:
- ./data:/app/data
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5000/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s