Initial push of Plunk Next
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
---
|
||||
title: Self-Hosting Introduction
|
||||
description: Deploy Plunk on your own infrastructure
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Plunk is fully open-source and can be self-hosted on your own infrastructure. This gives you complete control over your data, email delivery, and infrastructure costs.
|
||||
|
||||
## Requirements
|
||||
|
||||
### System Requirements
|
||||
|
||||
- **Node.js**: Version 20 or higher
|
||||
- **PostgreSQL**: Version 14 or higher
|
||||
- **Redis**: Version 6 or higher
|
||||
- **Docker** (recommended): For easy deployment
|
||||
|
||||
### AWS Services
|
||||
|
||||
- **AWS SES** (Required): For email sending
|
||||
- **AWS S3** (Optional): For asset storage (Minio is included by default)
|
||||
|
||||
### Minimum Server Specs
|
||||
|
||||
For small to medium usage (up to 100K contacts):
|
||||
- **CPU**: 1-2 cores
|
||||
- **RAM**: 2GB
|
||||
- **Storage**: 10GB (grows with contact data)
|
||||
|
||||
For larger scale (1M+ contacts):
|
||||
- **CPU**: 2-4 cores
|
||||
- **RAM**: 4GB
|
||||
- **Storage**: 50GB+
|
||||
|
||||
## Architecture Components
|
||||
|
||||
Plunk uses a containerized architecture with the following components:
|
||||
|
||||
### 1. Plunk Application Container
|
||||
Single container running all application services (API, Worker, Web, Landing, Wiki) with nginx reverse proxy for subdomain-based routing.
|
||||
|
||||
**Resources**: 1GB RAM, 1 CPU core (can scale up as needed)
|
||||
|
||||
**Services included**:
|
||||
- **API Server**: Express.js application handling HTTP requests
|
||||
- **Worker Process**: BullMQ worker processing background jobs
|
||||
- **Web Dashboard**: Next.js application for the UI
|
||||
- **Landing Page**: Marketing website
|
||||
- **Documentation**: Wiki/docs site
|
||||
- **SMTP Relay**: Email relay server (ports 465, 587)
|
||||
|
||||
**Note**: Services can be run separately by setting the `SERVICE` environment variable (`api`, `worker`, `web`, `landing`, `wiki`, or `all`).
|
||||
|
||||
### 2. PostgreSQL Database
|
||||
Stores all data (contacts, campaigns, workflows, etc.).
|
||||
|
||||
**Resources**: 512MB-1GB RAM, SSD storage recommended
|
||||
|
||||
### 3. Redis
|
||||
Queue system for background jobs (BullMQ).
|
||||
|
||||
**Resources**: 256MB-512MB RAM
|
||||
|
||||
### 4. Minio (S3-compatible Storage)
|
||||
Object storage for file uploads and assets.
|
||||
|
||||
**Resources**: 256MB-512MB RAM, storage for uploaded files
|
||||
|
||||
## Deployment Options
|
||||
|
||||
### Docker Compose (Recommended)
|
||||
|
||||
Easiest way to get started. Includes all services pre-configured.
|
||||
|
||||
[View Docker Guide](/self-hosting/docker)
|
||||
|
||||
### Kubernetes
|
||||
|
||||
For production deployments at scale.
|
||||
|
||||
### Manual Deployment
|
||||
|
||||
Deploy each component separately on your infrastructure.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Clone the repository
|
||||
2. Copy `.env.self-host.example` to `.env`
|
||||
3. Configure environment variables (see [Environment Variables](/self-hosting/environment-variables))
|
||||
4. Run `docker compose up -d`
|
||||
5. Access dashboard at `http://app.localhost` (or your configured domain)
|
||||
|
||||
## What's Included
|
||||
|
||||
- ✅ Full API server
|
||||
- ✅ Worker process
|
||||
- ✅ Web dashboard
|
||||
- ✅ PostgreSQL database
|
||||
- ✅ Redis queue
|
||||
- ✅ All features (campaigns, workflows, segments)
|
||||
- ✅ No feature limitations
|
||||
- ✅ No phone-home telemetry
|
||||
|
||||
## What's Not Included
|
||||
|
||||
- ❌ Managed infrastructure
|
||||
- ❌ Automatic updates
|
||||
- ❌ Support (community only)
|
||||
- ❌ SLA guarantees
|
||||
|
||||
## Cost Considerations
|
||||
|
||||
### AWS SES Costs
|
||||
|
||||
- First 62,000 emails/month: **FREE** (when sent from EC2)
|
||||
- Additional emails: **$0.10 per 1,000 emails**
|
||||
|
||||
### Infrastructure Costs
|
||||
|
||||
**All-in-One VPS** (recommended for small to medium usage):
|
||||
- **Single VPS**: $5-12/month (2GB RAM, services like DigitalOcean, Hetzner, Vultr)
|
||||
- Runs all containers (Plunk, PostgreSQL, Redis, Minio)
|
||||
- **AWS SES**: $0-10/month (depends on volume)
|
||||
- **Storage**: Included in VPS
|
||||
|
||||
**Total**: ~$5-20/month for self-hosting
|
||||
|
||||
**Managed Services** (for larger scale or production):
|
||||
- **VPS**: $10-20/month (4GB RAM for Plunk application)
|
||||
- **Managed PostgreSQL**: $10-15/month (512MB-1GB)
|
||||
- **Managed Redis**: $5-10/month (256MB-512MB)
|
||||
- **AWS SES**: $10-50/month (depends on volume)
|
||||
- **AWS S3**: $1-5/month (if not using Minio)
|
||||
|
||||
**Total**: ~$35-100/month for production with managed services
|
||||
|
||||
## Support
|
||||
|
||||
### Community Support
|
||||
|
||||
- GitHub Issues
|
||||
- Community Forum
|
||||
- Documentation
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [Deploy with Docker](/self-hosting/docker)
|
||||
- [Configure environment variables](/self-hosting/environment-variables)
|
||||
- [Set up database](/self-hosting/database-setup)
|
||||
- [Configure email delivery](/self-hosting/email-setup)
|
||||
Reference in New Issue
Block a user