Fajita
Open-source uptime monitoring that verifies failures before waking you up.
Monitor websites, APIs, SSL certificates, and cron jobs. Fajita verifies trouble before it alerts you.
Why Fajita?
Most uptime tools alert on the first failed ping. A blip on the network, a slow deploy, a single timeout, and your team is awake for nothing.
Single failed check → alert → interruption → site was fine
Fajita runs a verification step before escalating:
Failed check → verify → confirm → alert only when warranted
Fajita verifies failures before escalating them, reducing alerts caused by transient network or endpoint issues. It does not eliminate false positives entirely, but it cuts noise where a single flaky check would otherwise page you.
How verification works
- A scheduled check runs against your monitor target.
- If the check fails or crosses a threshold, Fajita queues verification instead of alerting immediately.
- Repeat checks confirm whether the failure is real.
- Only confirmed failures open incidents and send alerts.
- Recovery closes the incident and notifies subscribers when appropriate.
See docs/architecture/MONITORING.md for the full execution model.
Features
- Website monitoring with HTTP status, latency, and content assertions
- API monitoring with headers, methods, and JSON/body assertions
- SSL certificate monitoring with expiry warnings
- Cron / heartbeat monitoring for jobs that must check in on schedule
- Failure verification before incidents and alerts
- Incident lifecycle with timeline, status updates, and recovery
- Public status pages with components and incident history
- Email alerts via SMTP or Resend
- Slack, Discord, and signed webhooks
- Maintenance windows to suppress expected downtime
- Team workspaces with roles and audit history
- Data export for your organization
Quick start
Requirements: Docker, Docker Compose, Node.js 22+, a Clerk application you control
git clone https://github.com/fajita-io/fajita.git cd fajita cp .env.example .env # Set FAJITA_DEPLOYMENT_MODE=self_hosted, Clerk keys, CRON_SECRET, MONITOR_SECRET_KEYRING docker compose up -d npm run selfhost:doctor
Open http://localhost:3000, sign in, create a monitor.
Full guide: docs/self-hosting/QUICKSTART.md
Architecture
Web app → Scheduler → Workers → Verification → Incident engine → Notifications → Status page
| Component | Role |
|---|---|
| Next.js web app | UI, API routes, heartbeat ingestion |
| PostgreSQL | Product state, scheduler leases, incidents |
| PostgREST | Supabase-compatible API layer |
| Go monitor worker | Checks, verification drain, heartbeat miss detection |
| Alert worker | Slack, Discord, webhooks, email delivery |
Details: docs/architecture/OVERVIEW.md
Self-hosting vs Fajita Cloud
Same core monitoring system. Different operational burden.
| Capability | Self-hosted | Fajita Cloud |
|---|---|---|
| Monitoring | Yes | Yes |
| Failure verification | Yes | Yes |
| Status pages | Yes | Yes |
| Slack / Discord / webhooks | Yes | Yes |
| Email alerts | SMTP or your Resend | Managed |
| Infrastructure | You operate | Fajita operates |
| Backups | You | Managed |
| Updates | You | Managed |
| Worker operations | You | Managed |
Full comparison: docs/SELF_HOSTED_VS_CLOUD.md
Prefer not to maintain it yourself? Fajita Cloud gives you the same core monitoring experience without managing workers, databases, backups, mail, or upgrades.
Screenshots
![]() |
![]() |
![]() |
![]() |
Documentation
| Topic | Link |
|---|---|
| Documentation index | docs/README.md |
| Self-hosting | docs/self-hosting/ |
| Configuration | docs/self-hosting/CONFIGURATION.md |
| Upgrades | docs/self-hosting/UPGRADING.md |
| Troubleshooting | docs/self-hosting/TROUBLESHOOTING.md |
Contributing
Contributions are welcome. Read CONTRIBUTING.md before opening a pull request.
- Development setup: docs/contributing/DEVELOPMENT.md
- Design expectations: docs/contributing/DESIGN.md
- Security disclosure: SECURITY.md
Security
Report vulnerabilities privately per SECURITY.md. Do not file public issues for exploitable problems.
Self-hosters: docs/self-hosting/SECURITY.md
Roadmap
See ROADMAP.md for current priorities. No fixed dates; we ship what makes Fajita more reliable and easier to operate.
License
Licensed under AGPL-3.0. Network-facing deployments must comply with AGPL source-sharing requirements.
The Fajita name, logo, and fajita.io are trademarks. See TRADEMARKS.md.
Fajita is an open-source project created and maintained by Accomplish Labs. See GOVERNANCE.md.
Star the repo
If Fajita is useful to you, starring the repository helps more developers discover it.




