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