Self-Hosting Overview
AlertifyPro is fully open to self-host. The backend is written in Go, the frontend in Next.js, and the system runs on PostgreSQL and Redis.
Architecture
┌────────────────────────────────────┐
│ AlertifyPro Stack │
│ │
Browser ─────────→│ Frontend (Next.js, :3000) │
│ ↕ HTTP │
│ API Server (Go Chi, :3001) │
│ ↕ │
│ PostgreSQL (alertify_pro DB) │
│ ↕ │
│ Redis │
│ │
│ Scheduler (Go, polls every 10s) │
│ ↓ writes check results │
│ Notification Worker (Go) │
│ ↓ dispatches Slack/email/SMS/etc │
└────────────────────────────────────┘
Components
| Component | Path | Role |
|---|---|---|
| API Server | cmd/api-server | REST API + WebSocket |
| Scheduler | cmd/scheduler | Runs service checks every N seconds |
| Alert Engine | cmd/alert-engine | Evaluates alert rules |
| Notification Worker | cmd/notification-worker | Sends Slack, email, PagerDuty, SMS |
| Frontend | frontend/ | Next.js dashboard UI |
| Database | PostgreSQL | alertify_pro database |
| Cache/Queue | Redis | Job queue and caching |
System requirements
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4 cores |
| RAM | 2 GB | 4 GB |
| PostgreSQL | 15+ | 15+ |
| Redis | 7+ | 7+ |
| Go | 1.22+ | Latest |
| Node.js | 18+ (for frontend) | 20+ |
Deployment guides
- Docker Compose → — Quickest way to get running
- Kubernetes → — For larger, scalable deployments
- Environment Variables → — Full configuration reference
- Upgrading → — How to safely update
Database
AlertifyPro uses PostgreSQL with SQL queries generated by sqlc. Schema and migration files are in backend/db/.
# Initialize the database schema
make db-init
# Or with a specific connection string
make db-init DB_URL=postgres://user:pass@host:5432/alertify_pro?sslmode=disable
Language / tech stack
| Layer | Technology |
|---|---|
| Backend | Go 1.22, Chi router, sqlc, pgx |
| Frontend | Next.js 14, TypeScript, Tailwind CSS |
| Database | PostgreSQL 15 |
| Queue | Redis 7 |
| Auth | JWT (HS256), bcrypt for passwords, AES-256-GCM for stored credentials |