lerko 9e5bb74c5c feat(tui): expose HTTP method and accepted status codes in monitor form
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.
2026-05-15 15:42:51 -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%