Docker Deployment

Deploy Ender using Docker Compose.

docker-compose.yml

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:

Environment variables

Create a .env file:

.env
SECRET_KEY=your-32-character-secret-key
POSTGRES_PASSWORD=your-database-password
DOMAIN=sms.yourdomain.com

Start services

docker compose up -d

View logs

docker compose logs -f backend

Update

docker compose pull
docker compose up -d

Related