152 lines
4.1 KiB
Plaintext
152 lines
4.1 KiB
Plaintext
---
|
|
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)
|