Skip to main content

Docker Installation

Sync-in can be installed using the official Sync-in Docker image.

This official image is designed to be used in docker compose setup.

πŸ“‹ Requirements​

βš™οΈ Minimum Hardware Requirements​

  • RAM: 4 GB
  • CPU: 2 cores/vCPU
  • Disk Space: 2 GB

🐳 Docker​

This setup relies on Docker Compose files using the x-include extension.
You need:

  • Docker Engine version 24 or higher
  • Docker Compose version 2.20 or higher

βœ… You can check your installed versions with:

docker --version
docker compose version

πŸ”— If Docker is not installed, follow the official Docker installation guide.

πŸ“¦ Setup Files​

To get the files from the Sync-in Docker repository on GitHub, use one of the following methods:

  • curl and unzip:
    curl -L -o sync-in-docker.zip \
    https://github.com/Sync-in/docker/archive/refs/heads/main.zip && \
    unzip sync-in-docker.zip
  • or git:
    git clone https://github.com/Sync-in/docker.git sync-in-docker

You should have the following file structure in the sync-in-docker directory:

β”œβ”€β”€ config
β”‚ β”œβ”€β”€ nginx
β”‚ β”‚ β”œβ”€β”€ docker-compose.nginx.yaml
β”‚ β”‚ └── nginx.conf
β”‚ β”œβ”€β”€ onlyoffice
β”‚ β”‚ └── docker-compose.onlyoffice.yaml
β”‚ └── sync-in-desktop-releases
β”‚ └── docker-compose.sync-in-desktop-releases.yaml
β”‚ └── update.sh
β”œβ”€β”€ docker-compose.yaml
└── environment.yaml

πŸš€ QuickStart​

1. Default secrets​

Move into the Docker Compose directory:

cd sync-in-docker

Before starting the server, make sure to replace the default secrets for security purposes.

Edit the environment.yaml file and update the values as follows:

auth:
token:
access:
secret: changeAccessWithStrongSecret
refresh:
secret: changeRefreshWithStrongSecret
mysql:
# Use the MySQL root password as defined in docker-compose.yaml
url: mysql://root:MySQLRootPassword@mariadb:3306/sync_in

Then, edit the docker-compose.yaml file and make sure the MySQL root password matches:

services:
mariadb:
environment:
MYSQL_ROOT_PASSWORD: MySQLRootPassword
security

Use long, randomly generated strings for secrets to ensure proper security.

2. Launch the Sync-in server​

To define your own administrator credentials on first launch, use:

INIT_ADMIN_LOGIN='user' INIT_ADMIN_PASSWORD='password' docker compose up -d

Replace user and password with your preferred login and password for the initial admin account.

If you omit these variables and run:

docker compose up -d

The server will use the default administrator credentials:

  • Login: sync-in
  • Password: sync-in
warning

Important: For security reasons, it’s strongly recommended to change both the default login and password immediately after your first login.

info

To check the container status, use: docker compose ps

3. Access the web interface​

Once the server is running, open your browser and navigate to:

http://localhost:8080

Log in using the administrator credentials you configured in step 2.

πŸ› οΈ Configuration​

Nginx​

In a production setup, a reverse proxy helps ensure secure and efficient access to your Sync-in instance.

The official Nginx Docker image is used, and a Sync-in-specific Nginx configuration is included in this repository.

To enable it, edit the docker-compose.yaml file and uncomment the following lines at the top of the file:

include:
- ./config/nginx/docker-compose.nginx.yaml

To configure HTTPS, edit the file ./config/nginx/nginx.conf and add your SSL certificate settings.

info

docker compose up -d to apply

Nginx is now enabled on port 80, making Sync-in accessible via http://localhost.

OnlyOffice (optional)​

⚠️ To enable OnlyOffice integration with Sync-in, make sure the Nginx configuration is set up first.

To enable the container, edit the docker-compose.yaml file and uncomment the following lines at the top of the file:

include:
- ./config/nginx/docker-compose.nginx.yaml
- ./config/onlyoffice/docker-compose.onlyoffice.yaml

Update the environment.yaml configuration file to activate the integration:

applications:
files:
onlyoffice:
# enable integration
enabled: true
# use the same secret as in docker-compose.yaml
secret: onlyOfficeSecret

Replace the default secret above with a strong value, and ensure it matches the one in ./config/onlyoffice/docker-compose.onlyoffice.yaml:

services:
onlyoffice:
environment:
- JWT_SECRET=onlyOfficeSecret
info

docker compose up -d && docker compose restart sync_in to apply

Sync-in and OnlyOffice run in Docker containers and communicate through Nginx.
It is essential to access the interface using either the server’s IP address or a properly configured domain name.

warning

Accessing Sync-in via http://localhost or http://127.0.0.1 will not allow OnlyOffice to function properly β€” documents won't be viewable or editable.

Clients repository (optional)​

If desktop applications do not have internet access, the Sync-in server can act as a local repository for desktop client releases.
This allows users to download the applications directly from their account and benefit from automatic updates.

To enable it, edit the docker-compose.yaml file and uncomment the following lines at the top of the file:

include:
- ./config/sync-in-desktop-releases/docker-compose.sync-in-desktop-releases.yaml

Then, in the environment.yaml file, add the appStore section under applications/files path:

applications:
files:
appStore:
repository: local

To enable this feature or update the releases, you need to run the following commands:

chmod +x ./config/sync-in-desktop-releases/update.sh
./config/sync-in-desktop-releases/update.sh