SousLeSens configuration#
SouslesensVocables configuration is stored on the config directory.
(under ${DATA_ROOT_DIR}/souslesens/vocables if deployed with docker).
mainConfig.json#
The mainConfig.json contain all the souslesensVocables configuration.
souslesensUrl: the public URL of SousLeSens, with protocol and port.souslesensUrlForVirtuoso: the URL of SousLeSens, from Virtuoso. It’s used to pull RDF data from the SousLeSens server.listenPort: The listen port of SousLeSens.serverUrl:theme: the UI theme of SousLeSensselector: Display a selector to choose the UI themedefaultTheme: Set the fallback theme
auth: The authentication mechanisme. Can belocal,keycloak,auth0,databaseordisabledauth0: Ifauthis set toauth0, the auth0 configuration.domain: theauth0domainclientID: Auth0 clientIDclientSecret: Auth0 clientSecretscope: Auth0 scope. Set it toopenid email profileapi: Auth0 API configurationclientID: Auth0 API clientIDclientSecret: Auth0 API clientSecret
keycloak: Ifauthis set tokeycloak, the KeyCloak configurationrealm: The KeyCloak realmpublicClient:trueif the client is publicclientID: The KeyCloak clientIDclientSecret: The KeyCloak clientSecretauthServerURL: The public URL of the KeyCloak server
authenticationDatabase: Ifauthisdatabase, The database configurationuser: The database userpassword: The database passwordhost: The database hostport: The database portdatabase: The database nametable: The database table that contains the usersloginColumn: The column on the table that contains the logingroupsColumn: The column on the table that contains the groups
sentryDnsNode: The sentry DSN for the serversentryDnsJsFront: The sentry DSN for the clientslsPyApi: sls-py-api configurationenabled:trueif sls-py-api is enabledurl: The url of sls-py-api (with protocol and port)
sparql_server: The SPARQL server configuration (Virtuoso)url: The url of the SPARQL server, with protocol and port and pathuser: Virtuoso userpassword: Virtuoso password
Elasticsearch: The Elasticsearch server configurationCompatibility: Only Elasticsearch 8.x is supported. Elasticsearch 7 and earlier versions are not compatible.
url: The ElasticSearch URL, with protocol and portuser: The ElasticSearch userpassword: The ElasticSearch passwordskipSslVerify: Set tofalseto skip SSL verify (with self-signed certs)other_servers: List of other ElasticSearch nodessearchChunkSize: Size of chunk for the indices search
Note: Elasticsearch 8 enables security (SSL/TLS + authentication) by default. For development environments, you can disable it by setting
xpack.security.enabled: falsein your docker-compose configuration.jowlServer:enabled:trueif the JOWL server is enabledurl: The JOWL URL, with protocol and port
llm: The LLM provider configuration used by AI features.provider: Active provider. Supported values:anthropic,openrouter,ollama.<provider>: Provider-specific settings. The section name must matchprovider.
wiki: The wiki configurationurl: The wiki URL, with protocol and port
logs: The logger configuration for the serverdirectory: The path to the directory where the log files are storeduseFileLogger: Set tofalseto disable the file logger and the writing on the filesystemuseSymlink: Set tofalseto disable the creation of symlinks in the logs directory. Useful for the operating system which have a hard time to manage them.
userData: The configuration of the userData file management systemlocation: the system used to store the file content (fileordatabase)maximumFileSize: the maximum file content size allowed in the database (in bytes)
LLM provider configuration#
The AI integration is configured in config/mainConfig.json under the llm section. SLS reads and
validates this section at startup from model/config.js, then bin/AI/llmClient.js selects the
adapter matching llm.provider.
Only one provider is active at a time:
{
"llm": {
"provider": "anthropic",
"anthropic": {
"apiKey": "sk-ant-api03-...",
"defaultModel": "claude-sonnet-4-6",
"maxTokens": 1024,
"rateLimitTPM": 28000
}
}
}
Supported providers:
Provider |
Required settings |
Optional settings |
|---|---|---|
|
|
|
|
|
|
|
|
|
Defaults are defined in model/config.js. ollama.baseUrl defaults to http://localhost:11434.
API key encryption#
LLM API keys can be stored encrypted in mainConfig.json. The server decrypts values prefixed with
enc:v1: when SLS_SECRET_KEY is set.
To print an encrypted key:
$env:SLS_SECRET_KEY = "my-passphrase"
node bin/AI/encryptKey.js sk-ant-api03-...
To encrypt the current llm.<provider>.apiKey in place:
$env:SLS_SECRET_KEY = "my-passphrase"
node bin/AI/encryptKey.js --in-place
The same SLS_SECRET_KEY must be available when the SLS server starts.