Teampass is an open-source collaborative password manager built for teams that need to share operational credentials — server passwords, WiFi keys, API tokens, and database passwords — with granular role-based access control. Unlike personal password managers, Teampass is the single source of truth for your entire ops team's shared secrets. That makes its availability directly tied to your incident response capability: when an alert fires at 2 AM and your team needs the database password, Teampass being down is not just inconvenient — it's blocking. Vigilmon monitors Teampass availability, database connectivity through the login page, SSL certificate health (critical for any credential store), and vault accessibility via heartbeat checks so you know immediately if the team's password vault goes dark.
What You'll Set Up
- HTTP uptime monitor for the Teampass web application (port 80/443)
- Login page health check that validates both app and database connectivity
- API health check for teams using the Teampass REST API
- SSL certificate expiry alerts with a 30-day lead time (essential for credential stores)
- Cron heartbeat that confirms the vault is accessible and serving credentials
Prerequisites
- Teampass running on a LAMP or LEMP stack (Apache or nginx with PHP)
- Teampass accessible over HTTP or HTTPS from a monitoring vantage point
- A free Vigilmon account
Step 1: Monitor Teampass Web Application Availability
Teampass serves its web interface on port 80 (HTTP) or 443 (HTTPS). Add a Vigilmon HTTP monitor:
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter the URL:
https://your-teampass-host/(orhttp://if not yet on HTTPS — though see Step 4 on why HTTPS is essential for a credential store). - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Under Keyword check, enter
Teampassto confirm the application is running. - Click Save.
The request to / redirects to /index.php. A 200 response confirms the web server (Apache or nginx) and PHP are running. The keyword check for Teampass validates you're hitting the actual password manager and not a placeholder page.
Step 2: Monitor the Login Page for Database Health
The Teampass login page at /index.php requires a working MySQL/MariaDB connection to render the login form. PHP errors such as "Database connection failed" or a blank page appear when the database is unreachable — even while the web server returns HTTP 200. The login page keyword check is therefore a combined app + database health signal.
- Click Add Monitor → HTTP / HTTPS.
- Enter the URL:
https://your-teampass-host/index.php - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Under Keyword check, enter
Login(appears in the login button or form label when MySQL is connected and the form renders correctly). - Optionally add a Keyword (must be absent) check for
Database connectionto catch MySQL error messages that appear inline. - Click Save.
This monitor gives you three signals in one probe:
- 200 +
Loginkeyword present → Web server, PHP, and MySQL all healthy. - 200 +
Loginkeyword absent → PHP running but database error — MySQL is down. - Non-200 → Web server or PHP crashed.
Step 3: Monitor the Teampass API (If Enabled)
Teampass includes a REST API for programmatic credential retrieval. If your team uses the API for automation or integrations, add an API health monitor:
- Click Add Monitor → HTTP / HTTPS.
- Enter the URL:
https://your-teampass-host/api/index.php/authenticate - Set Method to
GET. - Set Expected HTTP status to
400or200— an unauthenticated request returns a structured error response when the API module is loaded and working. - Under Keyword check, enter
errorortokento confirm a JSON response is being returned (not a PHP error page). - Set Check interval to
5 minutes. - Click Save.
If the API returns a PHP fatal error or an HTTP 500 instead of a JSON error response, it indicates the API module is broken or misconfigured — even if the web UI appears functional.
If the Teampass API is not enabled in your configuration, skip this step and rely on the login page monitor from Step 2 as your primary app health signal.
Step 4: SSL Certificate Alerts — Critical for Credential Stores
SSL certificate monitoring is mandatory for Teampass. Unlike most web applications, Teampass transmits shared team credentials — server passwords, API keys, private certificates — over every session. An expired SSL certificate exposes password transmission to potential interception and, critically, causes modern browsers to block access entirely with a certificate error page. Your team cannot access credentials during an incident if the SSL cert has expired.
- Open the HTTPS monitor created in Step 1.
- Enable Monitor SSL certificate under the SSL section.
- Set Alert when certificate expires in less than
30 days. - Click Save.
Strongly recommended: Use a 30-day alert window for Teampass — longer than the typical 14-21 days used for general web applications. Certificate renewal failure on a credential store leaves your entire operations team locked out. A 30-day lead time gives your security team time to escalate if automated Let's Encrypt renewal fails.
If Teampass is deployed on a custom domain (e.g. vault.yourdomain.com), verify the certificate is issued for that domain and not just the host's bare IP.
Step 5: Heartbeat Monitoring for Vault Accessibility
Knowing the web server responds with 200 is good. Knowing the vault is actually accessible — that a session can be established and the folder tree loads — is better. Set up a Vigilmon heartbeat to confirm end-to-end vault accessibility on a schedule:
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set the expected ping interval to
70 minutes. - Copy the heartbeat URL:
https://vigilmon.online/heartbeat/YOUR_TOKEN
Then set up a scheduled health check script on your server:
#!/bin/bash
# Teampass vault availability heartbeat
set -euo pipefail
TEAMPASS_URL="https://your-teampass-host"
HEARTBEAT_URL="https://vigilmon.online/heartbeat/YOUR_TOKEN"
API_KEY="your-teampass-api-key" # Set in Teampass admin → API
# Authenticate via API and confirm a valid token is returned
RESPONSE=$(curl -s "${TEAMPASS_URL}/api/index.php/authenticate?login=${API_KEY}")
# Check that the response contains a session token (indicates DB + auth working)
if echo "${RESPONSE}" | grep -q '"key"'; then
curl -s "${HEARTBEAT_URL}"
else
echo "Teampass vault check failed: ${RESPONSE}" >&2
exit 1
fi
Add to cron for hourly execution:
30 * * * * /usr/local/bin/teampass_heartbeat.sh
If the API is not enabled or you prefer not to use an API key in a script, use the login page keyword check from Step 2 as your primary vault health signal — the heartbeat then confirms the monitoring chain itself is running rather than the vault content.
A missed heartbeat means the vault accessibility check failed — exactly when your team is likely to need it (during an incident that triggered the alert that sent them to Teampass in the first place).
Step 6: Configure Alert Channels and Escalation
- Go to Alert Channels in Vigilmon and add email, Slack, PagerDuty, or a webhook.
- Set Consecutive failures before alert to
1for all Teampass monitors — credential store downtime is always a priority incident, not something to de-noise. - Route Teampass alerts to your security team and on-call rotation separately — this is not just an ops issue, it's a security posture issue if the vault is inaccessible during an incident.
For the SSL certificate alert, add a second notification recipient beyond your standard on-call: your security officer or compliance team. Certificate expiry on a credential store is a security compliance event, not just a service degradation.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web app availability | https://host/ + keyword Teampass | Web server, PHP runtime down |
| Login page + DB | https://host/index.php + keyword Login | MySQL/MariaDB connection failure |
| API health | GET /api/index.php/authenticate | API module broken |
| SSL certificate | HTTPS cert (30-day alert) | Certificate expiry locking out team |
| Cron heartbeat | Hourly authenticated vault check | End-to-end vault inaccessibility |
Teampass is the infrastructure your team depends on when everything else is on fire — it needs to be the most reliably monitored service in your stack, not an afterthought. With Vigilmon watching the web interface, validating MySQL health through the login page keyword, monitoring the SSL certificate with a generous lead time, and confirming vault accessibility via hourly heartbeat, you have the assurance that when the pager goes off at 2 AM, the shared credentials your team needs are actually there.