(Answer required) Configuring the .env File

The Nextcloud Exchange Connector is entirely configuration-driven. This reference guide explains every parameter available to customize the synchronization behavior, performance limits, and connectivity of your application.

Warning: Strict File Naming

Your configuration file must be named exactly “.env” (an empty filename with an .env extension). Naming the file settings.env or anything else will cause the application to fail to read the configuration.

Warning: Escaping Special Characters in Docker

When configuring passwords, connection strings, or secrets in your .env file, be aware of Docker's character constraints. Specifically, the dollar sign $) is reserved for variable interpolation. If your actual password contains a literal $, you must escape it by doubling the character (e.g., a password of Pa$word must be written as Pa$$word in the .env file).

Failure to escape this will cause Docker to drop the character, resulting in severe authentication errors.

Tip: This configuration guide is extensive. To quickly find a specific parameter from your .env file, use your browser's search function (Ctrl + F or Cmd + F) and enter the variable name.

Configuration Strategy: Minimal vs. Full

To simplify deployments, it is recommended to build your .env file based on your needs:

Configuration Reference

Service Configuration

These settings control the core behavior, identification, and scheduling of the synchronization instances.

Parameter

Meaning & Usage

Example

Applies To

Service__IsPrimary

Meaning: Dictates if this instance is the primary synchronization coordinator.


Usage: Exactly one instance must be set to true. All secondary replicas or workers must be false.

true

Docker, Binary

Service__DeploymentType

Meaning: Specifies the hosting method.


Usage: Set to 0 for Docker or 1 for Binary deployments.

0

Docker, Binary

Service__AspNetCoreUrl

Meaning: The internal port and URL for the application.

Usage: Must be unique for every instance running on the same host to prevent port collisions.

http://localhost:5001

Binary

Service__DefaultWorkerName

Meaning: The unique identifier for the instance.

Usage: Used in logs and database tracking to identify which worker processed a task.

"SendentWorker-1"

Docker, Binary

Service__BatchLimit

Meaning: Maximum number of elements per EWS request.


Usage: Prevents overloading the Exchange server with excessively large single payloads.

50

Docker, Binary

Service__WorkerIntervalSeconds

Meaning: The sleep interval between global application runs.


Usage: Determines how often the application checks the database for new users to process.

120

Docker, Binary

Service__SyncIntervalInSeconds

Meaning: The standard cooldown delay before a specific user is scheduled for their next sync.


Usage: Prevents continuous looping on the same user.

60

Docker, Binary

Service__CriticalSyncIntervalInSeconds

Meaning: The retry delay for users whose synchronization failed.


Usage: Gives the system time to recover before retrying a broken sync.

100

Docker, Binary

Service__BatchSaveSize

Meaning: Database transaction chunk size.


Usage: Maximum number of objects saved to the database in a single transaction.

100

Docker, Binary

Service__StartWeekend

Meaning: Defines the day that marks the start of the weekend.

Usage: Used in calendar logic (1 = Monday, 6 = Saturday, 7 = Sunday).

6

Docker, Binary

Service__SyncMode

Meaning: Declares which data entities are synchronized.


Usage: Bitwise value (1=Calendars, 2=Contacts, 4=Tasks). Sum them up to combine (e.g., 3 for Calendars + Contacts).

1

Docker, Binary

Service__SyncType

Meaning: Level of detail for synchronization.


Usage: Set to 0 for Full sync (all data), or 1 for Sensitive sync (hides confidential details). — TO CHECK WITH LUC WHAT IS SENSITIVE

1

Docker, Binary

Database Configuration

These settings connect the application to your storage backend.

Parameter

Meaning & Usage

Example

Applies To

DatabaseConfiguration__DatabaseType

Meaning: Selects the database provider.


Usage: 0=Postgres, 1=SqlServer, 2=MariaDB, 3=MySql.

0

Docker, Binary

DatabaseConfiguration__DatabaseEncryptionKey

Meaning: Secret key for encrypting sensitive data.


Usage: Used to encrypt Nextcloud app-tokens stored in the database.

YourSuperSecretKey123!

Docker, Binary

DatabaseConfiguration__ConnectionString

Meaning: The connection string to reach the database.


Usage: Format strictly depends on your chosen database provider.

Host=postgres_db;Port=5432;...

Docker, Binary

Nextcloud Configuration

These settings connect the application to the Nextcloud frontend.

Warning: Shared Secret Mismatch

Your Service__NextcloudConfiguration__SharedSecret value must exactly match the shared secret generated in the Sendent Sync app within your Nextcloud web interface.

Parameter

Meaning & Usage

Example

Applies To

Service__NextcloudConfiguration__NextcloudBaseUrl

Meaning: The Base URL of your Nextcloud instance.


Usage: Must include the protocol (http/https).

https://cloud.example.com/

Docker, Binary

Service__NextcloudConfiguration__NextcloudServiceUsername

Meaning: Username of the Nextcloud service account.


Usage: Used to authenticate API calls to Nextcloud.

serviceAdmin

Docker, Binary

Service__NextcloudConfiguration__NextcloudServicePassword

Meaning: Password of the Nextcloud service account.


Usage: Plaintext password or app-password for the admin.

SecurePass123

Docker, Binary

Service__NextcloudConfiguration__SharedSecret

Meaning: Cryptographic shared secret.


Usage: Used to securely transfer user consent tokens from Nextcloud to the connector.

"my_secure_secret"

Docker, Binary

Exchange Server Configuration

These settings define how the application authenticates and connects to Microsoft Exchange.

Warning: Avoid Raw Exchange Credentials

We strongly discourage using the Service__ExchangeConfiguration__ExchangeAdminRaw parameter. Escaping quotes and slashes within the .env file breaks the parser. Always use the ExchangeAdminFile approach.

Parameter

Meaning & Usage

Example

Applies To

Service__ExchangeConfiguration__ExchangeType

Meaning: Selects the Exchange environment architecture.


Usage: 1=Cloud (M365), 2=OnPremKerberos, 3=OnPremBasicAuth, 4=OnPremADFS.

1

Docker, Binary

Service__ExchangeConfiguration__ExchangeOnPremUrl

Meaning: The EWS endpoint URL.


Usage: Required for all Exchange connections to process Web Services calls.

https://exchange.example.com/EWS/Exchange.asmx

Docker, Binary

Service__ExchangeConfiguration__ExchangeOnPremDomain

Meaning: The domain name for Exchange.


Usage: Required for OnPrem Kerberos and BasicAuth types.

domain_test

Docker, Binary

Service__ExchangeConfiguration__ExchangeOnPremAdfsAuthorityUrl

Meaning: The ADFS authority URL.


Usage: Required only if using the OnPremADFS connection type.

https://adfs.example.com/adfs

Docker, Binary

Service__ExchangeConfiguration__ExchangeTenantId

Meaning: Microsoft Tenant ID.

Usage: Required only if using Cloud (M365) connection type.

xxxx-xxxx-xxxx-xxxx

Docker, Binary

Service__ExchangeConfiguration__ExchangeAdminFile

Meaning: Path to your JSON file containing Exchange service accounts.


Usage: You can point to subfolders (e.g., prod/admins.json) to easily switch environments.

admins.json

prod/admins.json

test/admins.json

Docker, Binary

Concurrency Configuration

These settings control the application's throughput and scaling behavior.

Parameter

Meaning & Usage

Example

Applies To

Service__ConcurrencyConfiguration__MaxParallelProcessingUsers

Meaning: Global limit of concurrent users processed per instance.


Usage: Prevents a single worker node from running out of RAM.

10

Docker, Binary

Service__ConcurrencyConfiguration__MaxUsersPerAdmin

Meaning: Maximum users processed concurrently by a single Exchange service account.


Usage: Prevents Microsoft Exchange from throttling your connections.

10

Docker, Binary

Secondary_Replicas_Amount

Meaning: The number of secondary containers to deploy automatically.


Usage: Scales your synchronization power. Ignored in Binary deployments.

2

Docker

Specific Synchronization Configurations

Parameter

Meaning & Usage

Example

Applies To

Service__FullSyncConfiguration__ProcessAttachments

Meaning: Allows or disallows processing of attachments.


Usage: Applicable only when Service__SyncType=0 (Full Sync).

true

Docker, Binary

Service__SensitiveSyncConfiguration__SensitiveTitle

Meaning: Custom title applied to events in Exchange.


Usage: Hides meeting details when Service__SyncType=1 (Sensitive Sync).

"Busy"

Docker, Binary

Service__SensitiveSyncConfiguration__SensitiveCategory

Meaning: Custom category tag applied to events.


Usage: Categorizes events originating from Nextcloud in the user's Exchange calendar.

"Nextcloud Sync"

Docker, Binary

Logging & Monitoring Configuration

These settings control how and where the application outputs health and debug data.

Warning: Grafana Security

If you choose to enable Grafana logging (Service__LoggingConfiguration__LogsOutput includes value 8), be aware that the Grafana web interface is designed to run securely within the local host machine only.

It is intentionally not exposed or forwarded to external networks.

Parameter

Meaning & Usage

Example

Applies To

Serilog__MinimumLevel__Default

Meaning: The global log verbosity level.


Usage: Acceptable values are Information, Debug, Warning, Error. Default is Information. Change to Debug only if requested by Sendent Support.

Information

Docker, Binary

Service__LoggingConfiguration__LogsOutput

Meaning: Determines where logs are stored (Bitwise).


Usage: 1=Console, 2=Database, 4=File, 8=Grafana. Combine by summing (e.g., 5 = Console + File).

5

Docker, Binary

Service__LoggingConfiguration__LogDirectoryPath

Meaning: Name of the folder where file logs are saved.


Usage: A directory will be automatically created with this name.

SendentLogs

Docker, Binary

Service__LoggingConfiguration__LogFileSizeLimit

Meaning: Maximum size of a single log file.


Usage: Expressed in Megabytes (MB). Controls log rotation.

50

Docker, Binary

Service__LoggingConfiguration__LogFileAmountLimit

Meaning: Maximum number of log files to retain.


Usage: Older files are automatically deleted to save disk space.

20

Docker, Binary

Service__LoggingConfiguration__LokiInternalUrl

Meaning: Internal URL used to push logs to Loki.


Usage: Required only if Grafana log output is enabled.

http://loki:3100

Docker

GRAFANA_USER / GRAFANA_PASSWORD

Meaning: Custom administrator credentials for Grafana.


Usage: Used to log into the Grafana UI.

SuperAdmin

Docker

Example Configurations

Minimal Config for Docker deployment (Single Instance)

# Service Configuration
Service__StartWeekend=6
# Synchronization Modes: None(0), Calendars(1), Contacts(2), Tasks(4)
# You can combine modes, just place sum of necessary numbers in this property
Service__SyncMode=1
# Synchronization Types: Full(0), Sensitive(1)
Service__SyncType=0
 
# Database Configuration
# Allowed Database types: Postgres(0), SqlServer(1), MariaDB(2), MySql(3)
DatabaseConfiguration__DatabaseType=2
DatabaseConfiguration__DatabaseEncryptionKey=YourSuperSecretKey123!
DatabaseConfiguration__ConnectionString=Server=maria_db;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
 
# Postgres Example: Host=postgres_db;Port=5432;Database=SendentDB;Username=postgres;Password=YourStrong!Pass123
# SqlServer Example: Server=mssql_db;Database=SendentDB;User Id=sa;Password=YourStrong!Pass123;Encrypt=False;
# MariaDB Example: Server=maria_db;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
# MySql Example: Server=mysql_db;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
 
# Nextcloud Configuration
Service__NextcloudConfiguration__NextcloudBaseUrl=your-nextcloud-base-url
Service__NextcloudConfiguration__NextcloudServiceUsername=your-nextcloud-admin
Service__NextcloudConfiguration__NextcloudServicePassword=your-nextcloud-password
Service__NextcloudConfiguration__SharedSecret=your-shared-secret
 
# Exchange Configuration
# Allowed Exchange Types: Cloud(1), OnPremKerberos(2), OnPremBasicAuth(3), OnPremADFS(4)
Service__ExchangeConfiguration__ExchangeType=1
Service__ExchangeConfiguration__ExchangeOnPremUrl=https://outlook.office365.com/EWS/Exchange.asmx
Service__ExchangeConfiguration__ExchangeOnPremDomain=your-domain
Service__ExchangeConfiguration__ExchangeOnPremAdfsAuthorityUrl=your-adfs-authority-url
Service__ExchangeConfiguration__ExchangeTenantId=yor-exchange-tenant-id
 
# Fill in your administrator's credentials in the property below using necessary template for filling in
# Cloud: "[{\"AppId\":\"AppId1\", \"ClientSecret\":\"Secret1\"}, {\"AppId\":\"AppId1\", \"ClientSecret\":\"Secret1\"}]"
# OnPrem(Kerberos/BasicAuth): "[{\"User\":\"Admin1\", \"Pass\":\"Password1\"}, {\"User\":\"Admin2\", \"Pass\":\"Password2\"}]"
# OnPremADFS: "[{\"ClientId\":\"ClientId1\", \"ClientSecret\":\"Secret1\" }, {\"ClientId\":\"ClientId2\", \"ClientSecret\":\"Secret2\"}]"
# or configure and use json files
# Default: simple file admins.json in exchangeAdmins folder
# Custom Example:
# Service__ExchangeConfiguration__ExchangeAdminFile=administrators/myAdmins/myAdmin.json
 
# Service__ExchangeConfiguration__ExchangeAdminRaw="[{\"AppId\":\"your-app-id\", \"ClientSecret\":\"your-client-Secret\"}]"
# Service__ExchangeConfiguration__ExchangeAdminFile=
# Service__ExchangeConfiguration__ExchangeAdminRaw=
# Service__ExchangeConfiguration__ExchangeAdminFile=administrators/myAdmins/myAdmin.json
Service__ExchangeConfiguration__ExchangeAdminRaw=
Service__ExchangeConfiguration__ExchangeAdminFile=
 
# Full Synchronization Configuration
Service__FullSyncConfiguration__ProcessAttachments=true
 
# Sensitive Synchronization Configuration
Service__SensitiveSyncConfiguration__SensitiveTitle="Busy"
Service__SensitiveSyncConfiguration__SensitiveCategory="Nextcloud Sync"
 
# Logging (Serilog & Loki)
# Change global Log level: Information, Debug
Serilog__MinimumLevel__Default=Information
#Change Logs output: None(0), Console(1), Database(2), File(4), Grafana(8)
# You can combine outputs, just place sum of necessary numbers in this property
Service__LoggingConfiguration__LogsOutput=3
Service__LoggingConfiguration__LogDirectoryPath=
# For Limiting log's file size in MB
Service__LoggingConfiguration__LogFileSizeLimit=50
# For Limiting amount of log files
Service__LoggingConfiguration__LogFileAmountLimit=20
Service__LoggingConfiguration__LokiInternalUrl=http://loki:3100
 
# Grafana Configuration
GRAFANA_USER="YourAdminLogin"
GRAFANA_PASSWORD="YourAdminPassword"

Full Config for Docker deployment (Multi-Instance)

# Service Configuration
Service__IsPrimary=true
# Deployment Types: Docker(0), Binary(1)
Service__DeploymentType=0
Service__DefaultWorkerName="SendentWorker"
Service__BatchLimit=50
Service__WorkerIntervalSeconds=60
Service__SyncIntervalInSeconds=60
Service__CriticalSyncIntervalInSeconds=100
Service__BatchSaveSize=100
Service__StartWeekend=6
# Synchronization Modes: None(0), Calendars(1), Contacts(2), Tasks(4)
# You can combine modes, just place sum of necessary numbers in this property
Service__SyncMode=1
# Synchronization Types: Full(0), Sensitive(1)
Service__SyncType=0
 
# Database Configuration
# Allowed Database types: Postgres(0), SqlServer(1), MariaDB(2), MySql(3)
DatabaseConfiguration__DatabaseType=2
DatabaseConfiguration__DatabaseEncryptionKey=YourSuperSecretKey123!
DatabaseConfiguration__ConnectionString=Server=maria_db;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
 
# Postgres Example: Host=postgres_db;Port=5432;Database=SendentDB;Username=postgres;Password=YourStrong!Pass123
# SqlServer Example: Server=mssql_db;Database=SendentDB;User Id=sa;Password=YourStrong!Pass123;Encrypt=False;
# MariaDB Example: Server=maria_db;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
# MySql Example: Server=mysql_db;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
 
# Nextcloud Configuration
Service__NextcloudConfiguration__NextcloudBaseUrl=your-nextcloud-base-url
Service__NextcloudConfiguration__NextcloudServiceUsername=your-nextcloud-admin
Service__NextcloudConfiguration__NextcloudServicePassword=your-nextcloud-password
Service__NextcloudConfiguration__SharedSecret=your-shared-secret
 
# Exchange Configuration
# Allowed Exchange Types: Cloud(1), OnPremKerberos(2), OnPremBasicAuth(3), OnPremADFS(4)
Service__ExchangeConfiguration__ExchangeType=1
Service__ExchangeConfiguration__ExchangeOnPremUrl=https://outlook.office365.com/EWS/Exchange.asmx
Service__ExchangeConfiguration__ExchangeOnPremDomain=your-domain
Service__ExchangeConfiguration__ExchangeOnPremAdfsAuthorityUrl=your-adfs-authority-url
Service__ExchangeConfiguration__ExchangeTenantId=yor-exchange-tenant-id
 
# Fill in your administrator's credentials in the property below using necessary template for filling in
# Cloud: "[{\"AppId\":\"AppId1\", \"ClientSecret\":\"Secret1\"}, {\"AppId\":\"AppId1\", \"ClientSecret\":\"Secret1\"}]"
# OnPrem(Kerberos/BasicAuth): "[{\"User\":\"Admin1\", \"Pass\":\"Password1\"}, {\"User\":\"Admin2\", \"Pass\":\"Password2\"}]"
# OnPremADFS: "[{\"ClientId\":\"ClientId1\", \"ClientSecret\":\"Secret1\" }, {\"ClientId\":\"ClientId2\", \"ClientSecret\":\"Secret2\"}]"
# or configure and use json files
# Default: simple file admins.json in exchangeAdmins folder
# Custom Example:
# Service__ExchangeConfiguration__ExchangeAdminFile=administrators/myAdmins/myAdmin.json
 
# Service__ExchangeConfiguration__ExchangeAdminRaw="[{\"AppId\":\"your-app-id\", \"ClientSecret\":\"your-client-Secret\"}]"
# Service__ExchangeConfiguration__ExchangeAdminFile=
# Service__ExchangeConfiguration__ExchangeAdminRaw=
# Service__ExchangeConfiguration__ExchangeAdminFile=administrators/myAdmins/myAdmin.json
Service__ExchangeConfiguration__ExchangeAdminRaw=
Service__ExchangeConfiguration__ExchangeAdminFile=
 
# Concurrency Configuration
Service__ConcurrencyConfiguration__MaxParallelProcessingUsers=100
Service__ConcurrencyConfiguration__MaxUsersPerAdmin=100
Secondary_Replicas_Amount=2
 
# Full Synchronization Configuration
Service__FullSyncConfiguration__ProcessAttachments=true
 
# Sensitive Synchronization Configuration
Service__SensitiveSyncConfiguration__SensitiveTitle="Busy"
Service__SensitiveSyncConfiguration__SensitiveCategory="Nextcloud Sync"
 
# Logging (Serilog & Loki)
# Change global Log level: Information, Debug
Serilog__MinimumLevel__Default=Information
#Change Logs output: None(0), Console(1), Database(2), File(4), Grafana(8)
# You can combine outputs, just place sum of necessary numbers in this property
Service__LoggingConfiguration__LogsOutput=5
Service__LoggingConfiguration__LogDirectoryPath=
# For Limiting log's file size in MB
Service__LoggingConfiguration__LogFileSizeLimit=50
# For Limiting amount of log files
Service__LoggingConfiguration__LogFileAmountLimit=20
Service__LoggingConfiguration__LokiInternalUrl=http://loki:3100
 
# Grafana Configuration
GRAFANA_USER="YourAdminLogin"
GRAFANA_PASSWORD="YourAdminPassword"

Minimal Config for Binary deployment (Single Instance)

# Service Configuration
Service__IsPrimary=true
# Deployment Types: Docker(0), Binary(1)
Service__DeploymentType=1
Service__AspNetCoreUrl="http://localhost:5001"
Service__DefaultWorkerName="SendentWorker-1"
Service__StartWeekend=6
# Synchronization Modes: None(0), Calendars(1), Contacts(2), Tasks(4)
# You can combine modes, just place sum of necessary numbers in this property
Service__SyncMode=1
# Synchronization Types: Full(0), Sensitive(1)
Service__SyncType=0
 
# Database Configuration
# Allowed Database types: Postgres(0), SqlServer(1), MariaDB(2), MySql(3)
DatabaseConfiguration__DatabaseType=2
DatabaseConfiguration__DatabaseEncryptionKey=YourSuperSecretKey123!
DatabaseConfiguration__ConnectionString=Server=localhost;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
 
# Postgres Example: Host=localhost;Port=5432;Database=SendentDB;Username=postgres;Password=YourStrong!Pass123
# SqlServer Example: Server=localhost;Database=SendentDB;User Id=sa;Password=YourStrong!Pass123;Encrypt=False;
# MariaDB Example: Server=localhost;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
# MySql Example: Server=localhost;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
 
# Nextcloud Configuration
Service__NextcloudConfiguration__NextcloudBaseUrl=your-nextcloud-base-url
Service__NextcloudConfiguration__NextcloudServiceUsername=your-nextcloud-admin
Service__NextcloudConfiguration__NextcloudServicePassword=your-nextcloud-password
Service__NextcloudConfiguration__SharedSecret=your-shared-secret
 
# Exchange Configuration
# Allowed Exchange Types: Cloud(1), OnPremKerberos(2), OnPremBasicAuth(3), OnPremADFS(4)
Service__ExchangeConfiguration__ExchangeType=1
Service__ExchangeConfiguration__ExchangeOnPremUrl=your-exchange-on-prem-url
Service__ExchangeConfiguration__ExchangeOnPremDomain=your-domain
Service__ExchangeConfiguration__ExchangeOnPremAdfsAuthorityUrl=your-adfs-authority-url
Service__ExchangeConfiguration__ExchangeTenantId=yor-exchange-tenant-id
 
# Fill in your administrator's credentials in the property below using necessary template for filling in
# Cloud: "[{\"AppId\":\"AppId1\", \"ClientSecret\":\"Secret1\"}, {\"AppId\":\"AppId1\", \"ClientSecret\":\"Secret1\"}]"
# OnPrem(Kerberos/BasicAuth): "[{\"User\":\"Admin1\", \"Pass\":\"Password1\"}, {\"User\":\"Admin2\", \"Pass\":\"Password2\"}]"
# OnPremADFS: "[{\"ClientId\":\"ClientId1\", \"ClientSecret\":\"Secret1\" }, {\"ClientId\":\"ClientId2\", \"ClientSecret\":\"Secret2\"}]"
# or configure and use json files
# Default: simple file admins.json in exchangeAdmins folder
# Custom Example:
# Service__ExchangeConfiguration__ExchangeAdminFile=administrators/myAdmins/myAdmin.json
 
# Service__ExchangeConfiguration__ExchangeAdminRaw="[{\"AppId\":\"your-app-id\", \"ClientSecret\":\"your-client-Secret\"}]"
# Service__ExchangeConfiguration__ExchangeAdminFile=
# Service__ExchangeConfiguration__ExchangeAdminRaw=
# Service__ExchangeConfiguration__ExchangeAdminFile=administrators/myAdmins/myAdmin.json
Service__ExchangeConfiguration__ExchangeAdminRaw=
Service__ExchangeConfiguration__ExchangeAdminFile=
 
# Full Synchronization Configuration
Service__FullSyncConfiguration__ProcessAttachments=true
 
# Sensitive Synchronization Configuration
Service__SensitiveSyncConfiguration__SensitiveTitle="Busy"
Service__SensitiveSyncConfiguration__SensitiveCategory="Nextcloud Sync"
 
# Logging (Serilog)
# Change global Log level: Information, Debug
Serilog__MinimumLevel__Default=Information
#Change Logs output: None(0), Console(1), Database(2), File(4), Grafana(8)
# You can combine outputs, just place sum of necessary numbers in this property
Service__LoggingConfiguration__LogsOutput=3
Service__LoggingConfiguration__LogDirectoryPath=
# For Limiting log's file size in MB
Service__LoggingConfiguration__LogFileSizeLimit=50
# For Limiting amount of log files
Service__LoggingConfiguration__LogFileAmountLimit=20

Full Config for Binary deployment (Multi-Instance)

# Service Configuration
Service__IsPrimary=true
# Deployment Types: Docker(0), Binary(1)
Service__DeploymentType=1
Service__AspNetCoreUrl="http://localhost:5001"
Service__DefaultWorkerName="SendentWorker-1"
Service__BatchLimit=50
Service__WorkerIntervalSeconds=60
Service__SyncIntervalInSeconds=60
Service__CriticalSyncIntervalInSeconds=100
Service__BatchSaveSize=100
Service__StartWeekend=6
# Synchronization Modes: None(0), Calendars(1), Contacts(2), Tasks(4)
# You can combine modes, just place sum of necessary numbers in this property
Service__SyncMode=1
# Synchronization Types: Full(0), Sensitive(1)
Service__SyncType=0
 
# Database Configuration
# Allowed Database types: Postgres(0), SqlServer(1), MariaDB(2), MySql(3)
DatabaseConfiguration__DatabaseType=2
DatabaseConfiguration__DatabaseEncryptionKey=YourSuperSecretKey123!
DatabaseConfiguration__ConnectionString=Server=localhost;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
 
# Postgres Example: Host=localhost;Port=5432;Database=SendentDB;Username=postgres;Password=YourStrong!Pass123
# SqlServer Example: Server=localhost;Database=SendentDB;User Id=sa;Password=YourStrong!Pass123;Encrypt=False;
# MariaDB Example: Server=localhost;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
# MySql Example: Server=localhost;Port=3306;Database=SendentDB;Uid=root;Pwd=YourStrong!Pass123
 
# Nextcloud Configuration
Service__NextcloudConfiguration__NextcloudBaseUrl=your-nextcloud-base-url
Service__NextcloudConfiguration__NextcloudServiceUsername=your-nextcloud-admin
Service__NextcloudConfiguration__NextcloudServicePassword=your-nextcloud-password
Service__NextcloudConfiguration__SharedSecret=your-shared-secret
 
# Exchange Configuration
# Allowed Exchange Types: Cloud(1), OnPremKerberos(2), OnPremBasicAuth(3), OnPremADFS(4)
Service__ExchangeConfiguration__ExchangeType=1
Service__ExchangeConfiguration__ExchangeOnPremUrl=your-exchange-on-prem-url
Service__ExchangeConfiguration__ExchangeOnPremDomain=your-domain
Service__ExchangeConfiguration__ExchangeOnPremAdfsAuthorityUrl=your-adfs-authority-url
Service__ExchangeConfiguration__ExchangeTenantId=yor-exchange-tenant-id
 
# Admin credentials - use a JSON file (recommended) or inline JSON
# File path to admin credentials JSON (e.g., /app/settings/admins.json). See Demo files/admins.json.example
Service__ExchangeConfiguration__ExchangeAdminFile=
# Inline JSON fallback (used when ExchangeAdminFile is not set)
# Cloud Example: "[{\"AppId\":\"AppId1\", \"ClientSecret\":\"Secret1\"}, {\"AppId\":\"AppId2\", \"ClientSecret\":\"Secret2\"}]"
# OnPrem(Kerberos/BasicAuth) Example: "[{\"User\":\"Admin1\", \"Pass\":\"Password1\"}, {\"User\":\"Admin2\", \"Pass\":\"Password2\"}]"
# OnPremADFS Example: "[{\"ClientId\":\"ClientId1\", \"ClientSecret\":\"Secret1\"}, {\"ClientId\":\"ClientId2\", \"ClientSecret\":\"Secret2\"}]"
Service__ExchangeConfiguration__ExchangeAdminRaw="[{}]"
 
# Concurrency Configuration
Service__ConcurrencyConfiguration__MaxParallelProcessingUsers=1000
Service__ConcurrencyConfiguration__MaxUsersPerAdmin=100
 
# Full Synchronization Configuration
Service__FullSyncConfiguration__ProcessAttachments=true
 
# Sensitive Synchronization Configuration
Service__SensitiveSyncConfiguration__SensitiveTitle="Busy"
Service__SensitiveSyncConfiguration__SensitiveCategory="Nextcloud Sync"
 
# Logging (Serilog)
# Change global Log level: Information, Debug
Serilog__MinimumLevel__Default=Information
#Change Logs output: None(0), Console(1), Database(2), File(4), Grafana(8)
# You can combine outputs, just place sum of necessary numbers in this property
Service__LoggingConfiguration__LogsOutput=3
Service__LoggingConfiguration__LogDirectoryPath=
# For Limiting log's file size in MB
Service__LoggingConfiguration__LogFileSizeLimit=50
# For Limiting amount of log files
Service__LoggingConfiguration__LogFileAmountLimit=20

Next Step

Deploying via Docker (Single Instance)


Was this article helpful?