c24bb7a0d40738078e6b193488b716eafc44cbff
Huh forms need all message types (timers, resize, etc.) not just KeyMsg to function. Restructured Update to delegate all messages to huh when in form state. Fixed selected row style to be visually distinct from header (white text on darker bg). Moved click zone from narrow ID cell to wider Name cell for better click targets.
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.