The Sync Service is available as a Docker image from the following repository:
rg.nl-ams.scw.cloud/sendent-public/sendent-sync:latest
You can quickly get started by using our custom-made Docker Compose file, which deploys the following two containers:
The synchronization service itself
A PostgreSQL database
1.1 Preparations
Make sure you have the Sendent Synchroniser app for Nextcloud installed.
Download and install the Sendent Synchroniser app from Nextcloud here: https://apps.nextcloud.com/apps/sendentsynchroniser
Login as an administrator, go to apps and search for ‘Sendent Synchronizer’ and enable the app.
1.1.1 Creating your volumes
You can create volumes in your Docker installation to access the database files or modify settings of the Sync Service without needing to redeploy using Docker Compose. The volumes you can create are listed below:
sendentsynchronisersettings: Can be mapped to access the appsettings.json file.
sendentsynchroniserdb: Can be mapped to access database files (useful for backup purposes, for example).
To specify where the volumes need to be mapped on your server's disk, you can use the following commands:
docker volume create --driver local \
--opt type=none \
--opt device=/<path to the desired directory> \
--opt o=bind sendentsynchronisersettings
docker volume create --driver local \
--opt type=none \
--opt device=/<path to the desired directory> \
--opt o=bind sendentsynchroniserdb
After successfully creating the volumes, you can proceed to the next section.
1.1.2 Preparing your docker-compose file
We provide an example docker-compose.yml file that you can edit to match your specifications. If everything is correctly configured, you can use the following command on your Docker machine to deploy the Sync Service, including the database service:
docker-compose up
You can check the status of the deployment using this command:
docker compose ls
1.1.3 Remarks
The settings you provide in the docker-compose.yml file will always take precedence over the appsettings.json file, which is exposed using the sendentsynchronisersettings volume.
The settings in the docker-compose.yml file are optional unless you don't provide a correct appsettings.json file in the volume-mapped directory for the sendentsynchronisersettings volume.
docker-compose.yml
version: '3.4'
services:
sendent.synchronisation.service:
image: rg.nl-ams.scw.cloud/sendent-public/sendent-sync:latest
build:
context: .
dockerfile: Dockerfile
depends_on:
sendent.synchronisation.db:
condition: service_healthy
restart: on-failure
environment:
- Service__NextcloudBaseUrl=
- Service__NextcloudServiceUsername=
- Service__NextcloudServicePassword=
- Service__MicrosoftTenantId=
- Service__MicrosoftAppId=
- Service__MicrosoftClientSecret=
- Service__ExchangeType=1
- Service__ExchangeOnPremUrl=https://outlook.office365.com/EWS/Exchange.asmx
- Service__ExchangeOnPremDomain=
- Service__ExchangeOnPremUsername=
- Service__ExchangeOnPremPassword=
- Service__SharedSecret=
- Service__OsVersion=Sendent-Sync
- Service__DatabaseEncryptionKey=
- Service__IntervalRefreshInMinutes=1
- Service__MaxParallelProcessingUsers=5
- Service__BatchLimit=60
- Service__ForceRefreshCredentialsUsersStartUp=false
- ConnectionStrings__DatabaseConnectionString=Host=sendent.synchronisation.db;Port=5432;Username=pguser;Password=pguser;Database=pgdb
sendent.synchronisation.db:
image: postgres
volumes:
- sendentsynchroniserdb:/var/lib/postgresql/data
expose:
- "5432"
environment:
POSTGRES_USER: pguser
POSTGRES_PASSWORD: pguser
POSTGRES_DB: pgdb
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pguser -d pgdb"]
interval: 10s
timeout: 5s
retries: 5
volumes:
sendentsynchroniserdb:
external: true