lerko 5a8e016183 feat(tui): enhanced dashboard with lipgloss tables, huh forms, mouse support, and animations
Split monolithic tui.go into per-tab view files. Added sparkline history
tracking, color-coded latency/uptime, rounded bordered tables, Dracula-themed
huh forms with conditional groups, BubbleZone mouse click support for tabs
and rows, and Harmonica spring-physics pulse indicator. Includes --demo flag
for seeding test data.
2026-05-14 15:28:04 -04:00

Go-Upkeep

Go Version License Docker

Go-Upkeep is a self-hosted infrastructure monitor with a retro-futuristic TUI accessible via SSH. It supports High Availability, Push Monitoring, and Alerting.


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

  1. Start the stack: docker compose up -d
  2. Attach to the container: docker attach go-upkeep
  3. Inside the TUI:
    • Press [Tab] to select the Users tab.
    • Press [n] to create a user.
    • Enter your username and paste your public key (cat ~/.ssh/id_ed25519.pub).
    • Press [Enter] to save.
  4. 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.

S
Description
Live uptime monitoring dashboard for your terminal. SSH-accessible. HTTP, ping, TCP, DNS, push checks with alerts, clustering, and Prometheus metrics.
Readme MIT 2.2 MiB
2026.05.6 Latest
2026-05-30 23:34:56 +00:00
Languages
Go 99.7%
Dockerfile 0.3%