Theme
Docker deployment (v8)
Syncplify Server! is available as a Docker image on Docker Hub, as syncplify/ss. This page covers how to deploy it with Docker Compose; the manual page on Docker adds the day to day commands, backup and restore.
Prerequisites
- A Linux host (Docker on Windows is not supported yet).
- Docker Engine 24.0 or later.
- Docker Compose v2 (the
docker composeplugin, not the legacydocker-compose). - The host must not already use ports 21, 22, 990, 6443 or 6444 for other services, nor 44388 if you attach a Syncplify R2FS! storage node.
The compose file
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:roWARNING
Any host directory you intend to use as a virtual site root, a user home or a shared folder must be mounted into the container. The container cannot access host paths that are not listed under volumes. Add one entry per directory, keeping the host path and the container path identical (as in - /var/sftpdata:/var/sftpdata). Any path that suits your environment works.
The ports the compose file publishes:
| Host port | Container port | Purpose |
|---|---|---|
| 22 | 22 | SFTP |
| 21 | 21 | FTP control connection |
| 990 | 990 | Implicit FTPS |
| 6443 | 6443 | SuperAdmin and Admin UI, REST API and setup wizard (HTTPS) |
| 6444 | 6444 | WebClient (HTTPS) |
| 44388 | 44388 | Syncplify R2FS! storage nodes; remove the line if you do not use R2FS! |
If your host already uses port 22 for SSH, change the left side of the mapping (for example "2222:22") and tell your SFTP users to connect on the new port.
Then follow the steps below.
1. Create the persistent directories
bash
sudo mkdir -p /opt/Syncplify/Server/data /opt/Syncplify/Server/log /var/sftpdataAll configuration, the license file, the 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
bash
docker compose pull
docker compose up -dOn the first start the container initializes a clean installation automatically.
3. Complete the initial setup
Open a browser and go to https://your-docker-host:6443. Follow the setup wizard to create your first SuperAdmin account, activate your license and set up your virtual sites.
WARNING
During the initial setup, the wizard is reachable by any client that can reach port 6443. Make sure the port is not publicly reachable until the setup is complete; host firewall rules or Docker network policies can restrict it temporarily.
Updating a container
A node that runs in a container never updates itself: the image is the unit of update. The Updates page of the SuperAdmin UI only reports what the release channel offers. To update, deploy the newer image:
bash
docker compose pull
docker compose up -d --force-recreateThe data volume is untouched.