tutorial

Monitoring OneDev with Vigilmon

OneDev is a self-hosted Git server with built-in CI/CD — but when it goes down you lose code hosting, pipelines, and issue tracking at once. Here's how to monitor OneDev's web UI, SSH port, CI job runner, and health endpoint with Vigilmon.

OneDev is a self-hosted Git server that bundles CI/CD pipelines, issue tracking, and code review into a single application. When OneDev goes offline, you lose everything at once — commits can't be pushed, pipelines stall, and your team can't review code. Vigilmon gives you continuous uptime monitoring for OneDev's web interface, SSH access port, and CI pipeline runner so you know the moment anything breaks.

What You'll Set Up

  • HTTP uptime monitor for the OneDev web UI (port 6610 or reverse-proxy URL)
  • TCP port monitor for Git-over-SSH access
  • Cron heartbeat monitor for the CI job runner
  • SSL certificate expiry alerts for your OneDev domain

Prerequisites

  • OneDev 10.0+ installed and running (default port 6610)
  • A free Vigilmon account

Step 1: Monitor the OneDev Web UI

OneDev serves its web interface on port 6610 by default, or on port 80/443 if you've placed it behind a reverse proxy. Add a Vigilmon monitor for the main interface:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your OneDev URL:
    • Direct: http://your-server:6610
    • Behind reverse proxy: https://git.yourdomain.com
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

OneDev returns a 200 from the root path when the application is running. If the Java process crashes or the embedded Jetty server fails to bind, this check will immediately alert you.


Step 2: Probe the OneDev Health Endpoint

OneDev exposes server metrics and status information at a well-known path. Add a dedicated health check monitor pointing to the OneDev status page:

  1. Click Add MonitorHTTP / HTTPS.
  2. Enter the URL: http://your-server:6610/~server (or https://git.yourdomain.com/~server).
  3. Set Expected HTTP status to 200.
  4. Set Expected response body contains to OneDev to verify the page is actually rendering application content.
  5. Set Check interval to 1 minute.
  6. Click Save.

This endpoint loads the server information page, which only renders successfully when OneDev's application context is fully initialized. A 200 here means the JVM is running, the database connection pool is active, and the Jetty server is accepting requests.


Step 3: Monitor Git-over-SSH Access

OneDev supports Git operations over SSH on port 22 (or a custom SSH port you configure in Administration → Server Settings → SSH port). SSH access going down means developers can't push or pull code — even if the web UI is responsive.

  1. Click Add MonitorTCP Port.
  2. Enter your server hostname.
  3. Set Port to 22 (or your custom SSH port).
  4. Set Check interval to 5 minutes.
  5. Click Save.

To find your configured SSH port in OneDev:

Administration → Server Settings → SSH port

The default is 22 but many installations use 2222 to avoid conflicts with the system SSH daemon. Check your OneDev admin panel and monitor the correct port.


Step 4: Monitor HTTP Git Access

OneDev also serves Git repositories over HTTP/HTTPS using the same port as the web UI. You can verify Git HTTP access is working by probing a known repository's info endpoint:

  1. Click Add MonitorHTTP / HTTPS.
  2. Enter a URL in the format:
    https://git.yourdomain.com/your-org/your-repo/info/refs?service=git-upload-pack
    
  3. Set Expected HTTP status to 401 (OneDev returns 401 for unauthenticated Git HTTP requests, which proves the Git HTTP backend is alive).
  4. Set Check interval to 5 minutes.
  5. Click Save.

A 401 response from this endpoint confirms that OneDev's Git HTTP backend is active and handling protocol negotiation. A 502 or connection timeout means the backend is down even if the web UI appears responsive.


Step 5: Cron Heartbeat for the CI Job Runner

OneDev's built-in CI/CD job runner executes pipeline jobs defined in .onedev-buildspec.yml. The runner is an internal component of the OneDev process — it doesn't expose its own HTTP port — so monitor it indirectly using a heartbeat from a scheduled pipeline.

Create a lightweight "watchdog" pipeline in one of your OneDev repositories. Add a .onedev-buildspec.yml file (or add a job to an existing one):

version: 37
jobs:
- name: Vigilmon Heartbeat
  steps:
  - !CommandStep
    name: ping
    runInContainer: false
    commands:
    - curl -fs https://vigilmon.online/heartbeat/YOUR_HEARTBEAT_ID
  triggers:
  - !ScheduleTrigger
    cronExpression: 0 * * * *
  retryCondition: never
  maxRetries: 0
  retryDelay: 30
  timeout: 120

Then in Vigilmon:

  1. Click Add MonitorCron Heartbeat.
  2. Set the expected ping interval to 65 minutes (slightly longer than the 60-minute schedule to allow for startup lag).
  3. Copy the heartbeat URL and paste it into the curl command above.
  4. Click Save.

If the CI job runner stalls, crashes, or the schedule fails to trigger, Vigilmon alerts after 65 minutes without a ping.


Step 6: SSL Certificate Alerts

If OneDev is behind a reverse proxy (nginx, Caddy, or Traefik) with HTTPS, monitor the certificate expiry:

  1. Open the HTTP/HTTPS monitor you created in Step 1.
  2. Enable Monitor SSL certificate.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

For a Caddy reverse proxy configuration:

git.yourdomain.com {
    reverse_proxy localhost:6610
}

Caddy handles automatic Let's Encrypt renewal, but renewal can fail if port 80 is firewalled or DNS is misconfigured. A 21-day SSL alert gives you enough time to diagnose and fix renewal failures before the certificate expires and Git clients start refusing connections.


Step 7: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add your preferred channel: Slack, email, or webhook.
  2. Set Consecutive failures before alert to 2 on the web UI monitor — OneDev can take up to 30 seconds to restart if it auto-recovers from a transient error.
  3. Set the SSH TCP monitor to alert after 1 failure — SSH port drops are rarely transient.

Summary

| Monitor | Target | What It Catches | |---|---|---| | Web UI | http://your-server:6610 | Application crash, Jetty failure | | Health page | /~server | Incomplete startup, DB connection loss | | SSH port | TCP :22 | SSH daemon down, firewall change | | Git HTTP | /repo/info/refs | Git HTTP backend failure | | CI heartbeat | Heartbeat URL | Job runner stall, schedule failure | | SSL certificate | HTTPS domain | Let's Encrypt renewal failure |

OneDev consolidates your entire development workflow into one process — which means a single crash affects code hosting, CI/CD, and issue tracking simultaneously. With Vigilmon watching the web UI, SSH port, CI runner heartbeat, and SSL certificate, you'll catch failures before your team does.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →