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
andunzip
: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
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
Important: For security reasons, itβs strongly recommended to change both the default login and password immediately after your first login.
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.
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
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.
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