9e5bb74c5c636658b7e665d57e7a881418316212
DB fields existed but were never surfaced in the TUI. Adds an HTTP Settings form group with method select (7 methods) and accepted codes input, visible only for HTTP monitors.
Go-Upkeep
Go-Upkeep is a self-hosted infrastructure monitor with a retro-futuristic TUI accessible via SSH. It supports High Availability, Push Monitoring, and Alerting.
- 🌐 Full Documentation: goupkeep.org/docs
- 🐳 Docker Hub: rdgames1000/go-upkeep
🚀 Key Features
- SSH Dashboard: Zero-install client. Manage monitors via
ssh -p 23234 your-server. - Protocols:
- HTTP/S: Active polling with SSL certificate expiration tracking.
- PUSH: Heartbeat endpoints for cron jobs/backup scripts.
- High Availability: Leader/Follower clustering with automatic failover.
- Alerting: Native support for Discord, Slack, Email (SMTP), and Webhooks.
- Backends: SQLite (default) or PostgreSQL (production).
🛠️ Quick Start (Local Dev)
Option A: Native Go (Fastest)
go mod tidy
go run cmd/goupkeep/main.go
# Connect: ssh -p 23234 localhost
Option B: Docker Compose (Full Stack)
docker compose -f docker-compose.dev.yml up --build
📦 Production Deployment
For critical infrastructure, we recommend Docker Compose.
1. The Compose File
Create docker-compose.yml:
services:
monitor:
image: rdgames1000/go-upkeep:latest
container_name: go-upkeep
restart: unless-stopped
stdin_open: true # Required for initial setup console
tty: true
ports:
- "23234:23234" # SSH
- "8080:8080" # HTTP (Status Page & Push)
volumes:
- ./data:/data
- ./ssh_keys:/app/.ssh
environment:
- UPKEEP_DB_TYPE=sqlite
- UPKEEP_DB_DSN=/data/upkeep.db
- UPKEEP_STATUS_ENABLED=true
- UPKEEP_CLUSTER_SECRET=ChangeMeToSomethingSecure
2. Initial Setup (Identity Management)
Important: V2 stores SSH keys in the database. You must create the first user manually via the console.
- Start the stack:
docker compose up -d - Attach to the container:
docker attach go-upkeep - Inside the TUI:
- Press [Tab] to select the
Userstab. - Press [n] to create a user.
- Enter your username and paste your public key (
cat ~/.ssh/id_ed25519.pub). - Press [Enter] to save.
- Press [Tab] to select the
- Detach: Press Ctrl+P then Ctrl+Q.
3. Usage
Connect using your standard SSH client:
ssh -p 23234 your-server-ip
For advanced setups (Postgres, Clustering, Migration), please consult the Official Documentation.
📄 License
MIT License.