Uptime monitoring that runs inside your network.
Check private services, databases and cron jobs. Get alerted anywhere. Publish a status page.
External monitors only see what's on the internet. The agent runs next to your services, so it checks what they can't:
healthchecks:
- name: API
type: http
target: http://api.railway.internal:8080/health # private networking
- name: Database
type: postgres
target: ${DATABASE_URL} # logs in and runs a query
- name: Checkout
type: kubernetes
target: shop/deployment/checkout # all replicas ready
heartbeats:
- name: Nightly backup
cron: "0 3 * * *" # alerts when a run is missed or failsOne small Go binary with its own UI and database. Free, open source, no account needed.
docker run -d --name uptimy-agent -p 8080:8080 -v uptimy-agent:/data ghcr.io/uptimy/agentOpen http://localhost:8080 and sign in as admin with the password from docker logs uptimy-agent.
helm install uptimy-agent oci://ghcr.io/uptimy/charts/uptimy-agent -n monitoring --create-namespaceStep by step, with every variable: Deploy Uptimy Agent on Railway.
Or with Docker Compose.
- Healthchecks: HTTP, Postgres, MySQL, Redis, TCP, ping, DNS, TLS expiry and Kubernetes workloads
- Heartbeats for cron jobs, backups and workers: missed runs, failures and how long each run took
- Alerts by email, Slack, Teams, Discord, Telegram, ntfy, PagerDuty, webhooks and 30+ more, retried for up to an hour if a channel is down
- Status page on your own domain, with incidents, maintenance windows and badges
- Monitors as code in YAML, or from Kubernetes labels, alongside the ones you click together
- Light: a 9 MB image that idles at 8 MiB of memory (benchmark)
metadata:
labels:
upti.my/monitor: "true"Services, Ingresses, HTTPRoutes and workloads get a check within 30 seconds. CronJobs get a heartbeat that reads their Jobs, so they need no ping. See Kubernetes.
Deploy the template into your project, then Settings → Import from Railway: every service gets a check over private networking, databases included, and cron services become heartbeats. See Importing.
Upload kuma.db under Settings → Import from Uptime Kuma. Monitors, notifications and status page groups come over, and you review everything first. See Importing.
A monitor can't tell you it's down itself. Connect the agent to a free Uptimy account and Uptimy alerts you from outside when the agent stops checking in. Your monitors also show up there for status pages, SLA reports and on-call. The agent keeps working on its own either way. See Uptimy Cloud.
- Configuration: environment variables, monitors in YAML, users and two-factor sign-in
- Monitors: database checks, heartbeats and ping URLs, the agent's User-Agent
- Kubernetes: the Helm chart, auto-discovery and annotations
- Alerts: routing, retries, reminders and the webhook format
- Status page: maintenance, incidents and badges
- API and metrics: API tokens and Prometheus
- Importing: from Uptime Kuma and Railway
- Uptimy Cloud
- Railway template
- Questions and setup help: ask in Discord, in the #help forum with the Agent tag. Say which version you run (bottom of the sidebar, or
uptimy-agent --version) and how it's installed (Docker, Kubernetes or Railway). - Bugs and feature requests: GitHub issues.
- Security issues: report them privately, see SECURITY.md.
- Uptimy Cloud account or billing: support@upti.my.
make run # http://localhost:8080, sign in as admin / uptimy-dev
make testSee CONTRIBUTING.md and ARCHITECTURE.md. Report security issues privately (SECURITY.md).
