Installation
Deploy Ender on your own server for production use.
Don't want to self-host? Try Ender Cloud — free plan available, paid plans from $0.99/month.
Requirements
- Linux server (Ubuntu 22.04+ recommended)
- Docker and Docker Compose v2
- At least 1GB RAM, 10GB disk
- Domain name with SSL certificate
Docker Compose (Recommended)
1. Create docker-compose.yml
Create a new directory and add a docker-compose.yml file:
docker-compose.yml
services:
backend:
image: ghcr.io/ender-sms/backend:latest
environment:
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/ender
- SECRET_KEY=${SECRET_KEY}
- DOMAIN=${DOMAIN}
ports:
- "8000:8000"
depends_on:
- db
frontend:
image: ghcr.io/ender-sms/frontend:latest
environment:
- VITE_API_URL=https://${DOMAIN}
ports:
- "5173:80"
db:
image: postgres:17
environment:
- POSTGRES_DB=ender
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data: 2. Configure environment
Create a .env file in the same directory:
.env
# Required
SECRET_KEY=your-32-character-secret-key
POSTGRES_PASSWORD=your-database-password
DOMAIN=sms.yourdomain.com 3. Start the services
docker compose up -d 4. Register your account
Open the dashboard at http://localhost:5173 (or your domain) and create your account. The first registered user becomes the admin.
Reverse Proxy Setup
See Nginx Reverse Proxy for SSL termination and proxy configuration.
Environment Variables
| Variable | Description | Default |
|---|---|---|
SECRET_KEY | JWT signing key (required) | - |
DATABASE_URL | PostgreSQL connection string | postgres://... |
DOMAIN | Your domain name | localhost |
CORS_ORIGINS | Allowed CORS origins | * |
Updates
To update to the latest version:
docker compose pull
docker compose up -d Next steps
- Android App - Set up your first device
- Nginx Guide - Configure SSL
- Docker Guide - Advanced configuration