Skip to main content
id: docker-install

Preconditions

  • Docker & Docker Compose installed (Docker Engine >= 20.x, Compose v2+)
  • Domain name pointed to your host (for TLS)
  • Optional: reverse proxy (Traefik / Nginx) to manage TLS and virtual hosts
  • sitecopilot app container
  • mysql container (MySQL 8.x)
  • redis container
  • Reverse proxy (Traefik) for TLS

Example docker-compose.yml


version: '3.8'

services:

mysql:

image: mysql:8.0

environment:

MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

MYSQL_DATABASE: ${MYSQL_DATABASE}

MYSQL_USER: ${MYSQL_USER}

MYSQL_PASSWORD: ${MYSQL_PASSWORD}

volumes:

- db_data:/var/lib/mysql

restart: unless-stopped

  

redis:

image: redis:6-alpine

command: ["redis-server","--appendonly","yes"]

volumes:

- redis_data:/data

restart: unless-stopped

  

sitecopilot:

image: sitecopilot/sitecopilot:latest

depends_on:

- mysql

- redis

env_file: .env

ports:

- "8080:8080"

volumes:

- uploads:/app/uploads

restart: unless-stopped

  

volumes:

db_data:

redis_data:

uploads:

Adjust image tag to a pinned version for production (e.g., sitecopilot/sitecopilot:2025.09.1).

How to start


# create .env (see docker-config page for variables)

docker compose up -d

# view logs

docker compose logs -f sitecopilot

Health checks & readiness

  • Ensure sitecopilot logs show successful DB and Redis connection and migrations applied.
  • The app listens on port 8080 by default; route through your reverse proxy for TLS on 443.