FileBrowser is a lightweight, self-hosted web-based file manager that turns any directory into a personal cloud storage interface. You get a clean UI for browsing, uploading, sharing, and editing files — no subscription, no data sent to third parties, no vendor lock-in. It's a single Go binary with a SQLite database for users and settings. That simplicity is a feature, but it also means there's nothing else watching it. If the FileBrowser process crashes, its SQLite database becomes corrupted, or your reverse proxy misconfigures, users hit an error page with no one to tell you. Vigilmon gives you external uptime monitoring that watches FileBrowser from outside your server and alerts you before your users notice.
What You'll Build
- A Vigilmon HTTP monitor on FileBrowser's
/healthendpoint - A keyword assertion to confirm the UI is rendering correctly
- SSL certificate alerts if FileBrowser runs behind Nginx or Caddy
- A heartbeat check to confirm the file access service stays available
Prerequisites
- A running FileBrowser instance accessible over HTTPS (recommended: reverse proxy with Caddy or Nginx)
- A free account at vigilmon.online
Step 1: Locate FileBrowser's Health Endpoint
FileBrowser exposes a health check endpoint at /health. It returns 200 OK with a plain-text body when the server is up and the SQLite database is accessible.
curl https://your-filebrowser-domain.com/health
A healthy FileBrowser returns:
OK
If the FileBrowser process is running but the SQLite database is locked or missing, the /health endpoint returns a non-200 error. If the process has crashed, the connection is refused.
TLS setup: FileBrowser binds to
:8080by default. Put Caddy in front for automatic HTTPS:files.yourdomain.com { reverse_proxy localhost:8080 }
Step 2: Create an HTTP Monitor
- Log in to Vigilmon → Add Monitor → HTTP.
- URL:
https://your-filebrowser-domain.com/health. - Check interval: 60 seconds.
- Response timeout: 10 seconds.
- Expected status:
200. - Click Save.
Vigilmon starts probing FileBrowser's health endpoint from an external location every 60 seconds. You'll get alerted within 60–120 seconds of any outage.
Step 3: Add a Keyword Assertion
A 200 response from /health confirms the HTTP server responded, but confirming FileBrowser is genuinely healthy means verifying the response body.
In the same monitor, add a keyword check:
- Keyword:
OK - Keyword must be present: yes
This catches edge cases where a reverse proxy returns a 200 page with error content (e.g., an Nginx 502 page that has been misconfigured to return 200). If FileBrowser returns anything other than OK, the keyword check fails and you get alerted.
Step 4: Monitor the Web UI (Optional but Recommended)
The /health endpoint verifies backend health, but it doesn't confirm the web UI is serving correctly. Add a second monitor to catch frontend rendering failures:
- Add Monitor → HTTP.
- URL:
https://your-filebrowser-domain.com/(the root path). - Expected status:
200. - Keyword:
FileBrowser(appears in the page title of the login screen). - Click Save.
This catches cases where FileBrowser is partially broken — the API is responding but static assets (JS, CSS) aren't being served, resulting in a broken login page.
Step 5: SSL Certificate Alerts
FileBrowser is typically accessed over HTTPS via a reverse proxy. Expired certificates lock out all users silently — the browser shows a certificate error and users assume the service is down.
Vigilmon checks SSL certificate expiry automatically on every HTTPS monitor. To configure thresholds:
- Open your HTTP monitor → SSL Certificate.
- Alert when expires in less than: 14 days.
- Add a second alert at 30 days for advance notice.
If you're using Caddy or Let's Encrypt with auto-renewal, a 14-day alert is an early warning that renewal has silently failed.
Step 6: Heartbeat Monitor for Availability Confirmation
A heartbeat monitor confirms that FileBrowser is not just up but actively accessible to the infrastructure that depends on it. This is especially useful if FileBrowser backs automated scripts (e.g., backup jobs that write files via the API).
- Add Monitor → Heartbeat in Vigilmon.
- Copy the generated heartbeat URL.
- Add a cron job on your server to ping the heartbeat periodically:
# /etc/cron.d/filebrowser-heartbeat
*/5 * * * * root curl -fsS -X POST https://vigilmon.online/api/heartbeat/YOUR-HEARTBEAT-ID
- Set the grace period to 10 minutes.
If FileBrowser's process crashes and systemd fails to restart it, the heartbeat stops pinging and Vigilmon alerts you within 10 minutes.
Step 7: Keep FileBrowser Running with systemd
Pair Vigilmon monitoring with a systemd service for automatic restarts:
# /etc/systemd/system/filebrowser.service
[Unit]
Description=FileBrowser
After=network.target
[Service]
Type=simple
User=filebrowser
WorkingDirectory=/opt/filebrowser
ExecStart=/usr/local/bin/filebrowser -r /srv/files -d /opt/filebrowser/filebrowser.db
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl enable --now filebrowser
Step 8: Configure Alerting
In Vigilmon under Settings → Notifications:
| Trigger | Recommended action |
|---|---|
| /health returns non-200 | Email + Slack; check journalctl -u filebrowser |
| Keyword OK missing | Email; SQLite may be locked or corrupted |
| Web UI keyword FileBrowser missing | Email; static asset serving broken |
| SSL certificate < 14 days | Email; verify Caddy auto-renewal or run certbot renew |
| Heartbeat missed | Email; SSH in and check systemd service status |
Alert after: 1 consecutive failure. FileBrowser is a stable single-process server; false positives are rare.
What Vigilmon Catches That FileBrowser Logs Miss
| Scenario | FileBrowser logs | Vigilmon |
|---|---|---|
| Process OOM-killed by the kernel | Kernel log only | HTTP monitor fires within 60–120 s |
| SQLite database locked | Error in log | /health returns non-200; monitor fires |
| Reverse proxy cert expires | Not logged by FileBrowser | SSL monitor alerts 14 days early |
| VPS network unreachable from internet | Logs inaccessible | External Vigilmon probe still running |
| Cron backup job can't reach FileBrowser API | Only in cron output | Heartbeat misses, Vigilmon alerts |
FileBrowser's appeal is its zero-dependency simplicity — but that same simplicity means there's no built-in alerting. Vigilmon fills that gap with an external eye that never goes down when your server does.
Start monitoring FileBrowser in under 5 minutes — register free at vigilmon.online.