# Deploy v8 with Docker

Syncplify Server! is available as a Docker image on Docker Hub. This page covers how to deploy and operate it using Docker Compose.

#### Prerequisites

- Docker Engine 24.0 or later
- Docker Compose v2 (the `docker compose` plugin, not the legacy `docker-compose`)
- The host must not already use ports 21, 22, 990, 6443, or 6444 for other services

#### Deploying with Docker Compose

Create a `docker-compose.yml` file on your Docker host with the following content:

```yaml
services:
  syncplify-server:
    image: syncplify/ss:latest
    container_name: syncplify-server
    restart: unless-stopped
    environment:
      # Activates the in-process worker supervisor (replaces systemd).
      # Do NOT remove or change this variable.
      - SS_CONTAINER_MODE=1
    ports:
      - "22:22"
      - "21:21"
      - "990:990"
      - "6443:6443"
      - "6444:6444"
      - "44388:44388"
    volumes:
      - /opt/Syncplify/Server/data:/opt/Syncplify/Server/data
      - /opt/Syncplify/Server/log:/opt/Syncplify/Server/log
      # Add one volume mount for each directory you want the SFTP/FTP server
      # to be able to use as a home or root directory for your users.
      # Example:
      - /var/sftpdata:/var/sftpdata
      # Access to the host machine ID is required for licensing.
      - /etc/machine-id:/etc/machine-id:ro
```

<p class="callout warning">IMPORTANT: Any host directory that you intend to use as a virtual site root, user home, or shared folder **must be mounted into the container**. The container cannot access host paths that are not explicitly listed under `volumes`. Add one entry per directory, keeping the host path and container path identical (e.g. `- /var/sftpdata:/var/sftpdata`). You can use any path that suits your environment.</p>

Then follow the steps below.

#### 1. Create persistent directories

```
sudo mkdir -p /opt/Syncplify/Server/data /opt/Syncplify/Server/log /var/sftpdata
```

All configuration, the license file, virtual-site definitions, and the internal database are stored under `/opt/Syncplify/Server/data`. Logs are written to `/opt/Syncplify/Server/log`. Both directories survive container restarts and upgrades.

#### 2. Pull the image and start

```
docker compose pull
docker compose up -d
```

On the first start the container initializes a clean installation automatically.

#### 3. Complete initial setup

Open a browser and navigate to: `https://your-docker-host:6443/init/setup`

Follow the on-screen setup wizard to create your first administrator account, configure your license, and set up virtual sites.

<p class="callout warning">IMPORTANT: During initial setup, the setup wizard is accessible to any client that can reach port 6443. Ensure this port is not publicly reachable until setup is complete. You can restrict access temporarily using host firewall rules or Docker network policies.</p>

A more detailed explanation is available in [our official manual/documentation](https://docs.syncplify.com/v8/docs/setup/docker.html).