tutorial

Monitoring Gitea with Vigilmon: Root Path, API Health, Web UI & SSL Certificate Alerts

How to monitor Gitea self-hosted Git service with Vigilmon — root path availability, API health endpoint, web UI checks, and SSL certificate alerts to keep your team's code repository online.

Gitea is the lightweight, self-hosted Git service that thousands of engineering teams use to store their source code, review pull requests, manage CI/CD pipelines, and track issues — all without depending on a third-party platform. Unlike a simple file share, Gitea is a live Go application backed by a database that handles authentication, webhook delivery, repository cloning, and continuous integration triggers in real time. When Gitea goes down, your team can't push code, open pull requests, trigger deployments, or access the repositories that drive your entire development workflow. Vigilmon gives you external visibility into Gitea's root path, API health endpoint, web UI availability, and SSL certificate so you're notified the moment your Git server becomes unreachable.

What You'll Build

  • An HTTP monitor for Gitea web UI availability
  • A liveness check on the Gitea API health endpoint (/api/v1/version)
  • SSL certificate monitoring for your Gitea domain

Prerequisites

  • A running Gitea instance with a public or network-reachable domain
  • HTTPS configured via a reverse proxy (e.g., https://git.example.com)
  • A free account at vigilmon.online

Step 1: Verify Gitea Web UI Availability

Gitea serves its dashboard from the root path. A successful response confirms the Go application is running, the database connection is healthy, and the reverse proxy is routing traffic correctly:

curl -I https://git.example.com
# Expected: HTTP/2 200

The root path returns either the Gitea dashboard (for logged-in users) or the explore/login page. Either a 200 response confirms the application is serving traffic. This is your primary availability signal — if it fails, no one on your team can access the web interface or perform any Git operations through HTTPS.


Step 2: Create a Vigilmon HTTP Monitor for Web UI Availability

  1. Log in to VigilmonAdd Monitor → HTTP.
  2. URL: https://git.example.com.
  3. Check interval: 60 seconds.
  4. Response timeout: 10 seconds.
  5. Expected status: 200.
  6. Keyword: Gitea.
  7. Label: Gitea Web UI.
  8. Click Save.

This monitor catches:

  • Gitea Go process crashes or container restarts
  • Database connection failures that prevent Gitea from serving requests
  • Reverse proxy misconfigurations that prevent traffic from reaching the application
  • Out-of-memory kills that terminate the Gitea process
  • Configuration errors after upgrades that prevent the application from starting

When this monitor fires, your team loses web access to all repositories — pull request reviews, issue tracking, release management, and the web-based code browser become unavailable.


Step 3: Monitor the Gitea API Health Endpoint

Gitea exposes a versioned REST API at /api/v1/version. This endpoint returns a JSON response with the current Gitea version and is unauthenticated by default, making it an ideal health check endpoint:

curl https://git.example.com/api/v1/version
# Expected: HTTP 200 with JSON body

A typical response:

{"version":"1.21.0"}

This response confirms that the Go application is running, the API router is functional, and the application has completed its initialization sequence (including database migrations).

  1. Add Monitor → HTTP.
  2. URL: https://git.example.com/api/v1/version.
  3. Check interval: 2 minutes.
  4. Expected status: 200.
  5. Keyword: version.
  6. Label: Gitea API Health.
  7. Click Save.

Why monitor the API separately? The web UI and the API share the same Go process, but a failure at the API level (database query timeout, migration error) can occur while the root path still returns cached content. Monitoring both gives you two independent signals and helps isolate whether a problem is in the frontend layer or the application backend.


Step 4: Monitor SSL Certificates

Gitea is your team's central Git server — every push, clone, and CI trigger depends on HTTPS working correctly. An expired SSL certificate:

  • Blocks all HTTPS git clone, git push, and git pull operations with TLS errors
  • Prevents CI/CD pipelines from triggering webhooks and accessing the API
  • Breaks all web-based code review and pull request workflows
  • Disrupts any integrations (deployment tools, bots, scanners) that communicate with the Gitea API
  1. Add Monitor → SSL Certificate.
  2. Domain: git.example.com.
  3. Alert when expiry is within: 30 days.
  4. Alert again: 14 days, 7 days, 3 days, 1 day.
  5. Click Save.

A lapsed certificate on your Git server is especially disruptive because it breaks every developer's local Git tooling simultaneously — git push starts failing for the entire team at once, and the error message (SSL certificate problem: certificate has expired) is not always immediately obvious to developers who haven't encountered it before.


Step 5: Configure Alerting

In Vigilmon under Settings → Notifications, configure your alert channels:

| Monitor | Trigger | Action | |---|---|---| | Web UI | Non-200 or keyword missing | Check Gitea container/process; inspect application logs; verify database connectivity | | API Health | Non-200 or keyword missing | Check Gitea API layer; confirm database migrations completed; inspect /var/log/gitea | | SSL certificate | < 30 days to expiry | Renew certificate; verify Let's Encrypt/ACME auto-renewal is running |

Alert after: 2 consecutive failures for HTTP monitors. Gitea is a stable Go application — a second consecutive failure reliably indicates a real outage rather than a transient network blip.


Common Gitea Failure Modes and What Vigilmon Catches

| Scenario | Vigilmon monitor | |---|---| | Gitea process crash | Web UI and API monitors fire; alert within 60 s | | Database connection failure | Application fails to serve requests; both monitors fire | | Database migration failure after upgrade | Gitea exits or enters degraded state; API monitor fires first | | Reverse proxy misconfiguration | Web UI fires; application container may remain healthy | | Disk full (repository storage) | Write operations fail; new pushes error; application may still serve reads | | Out-of-memory kill | Go process terminated; all monitors fire simultaneously | | SSL certificate expires | SSL monitor alerts at 30 days; git push breaks for all developers | | Gitea configuration error after upgrade | Application fails to start; all HTTP monitors fire | | Webhook delivery queue overload | Application slows; timeouts may cause non-200 responses | | DNS misconfiguration | All monitors fire simultaneously |


Your Git server is the foundation of your entire development workflow — every code change, deployment, and release flows through it. Vigilmon watches Gitea's web UI, API health endpoint, and SSL certificate so you're alerted within 60 seconds of any failure, before your team discovers it by getting Connection refused errors on their next git push.

Start monitoring Gitea in under 5 minutes — register free at vigilmon.online.

Monitor your app with Vigilmon

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

Start free →