Skip to main content

Service Configuration

Last updated: July 31, 2026Latest Frontend Version: 2.17.4
Configuration Files

All configuration files use HOCON format and are located in /etc/ticrypt/. Each service has its own .conf file named after the service (e.g., ticrypt-rest.conf).

Each of the ten services has its own configuration file and options. Two services have more complex configuration and are documented on their own pages:

  • ticrypt-auth: Authentication, sessions, MFA, key escrow
  • ticrypt-vm: Realms, cost functions, hardware profiles

Value Typesโ€‹

TypeExampleDescription
String"an example"String value
Booltrue, falseBoolean value
Int42Whole number value
Port22Number between 0 and 65535
Range"5000-5010"Range of ports
Duration1 minute, 3 daysDuration with unit of measure
Size16 MiB, 3 GBFile size with unit of measure
ArrPort[5000, 5002, 5005]Array of port values
ArrString["a", "b", "c"]Array of string values
ArrNET[172.24.0.0/16]Array of IP network CIDR ranges

Shared Sectionsโ€‹

All services require the following sections. The configuration is identical across services unless noted otherwise.

mongodb Sectionโ€‹

All tiCrypt services use MongoDB as their database. Each service has its own database with its own connection settings. See MongoDB Configuration for additional detail.

ParameterTypeRequiredDescription
databaseStringMongoDB database name
hostnameStringMongoDB server hostname
portPortMongoDB server port
userStringMongoDB username
passwordStringMongoDB password

Alternatively, use a single uri parameter:

uri = "mongodb://user:password@localhost:27017/${database}"
warning

Do not specify both uri and individual connection parameters. Use one method or the other.

ticrypt.auth Sectionโ€‹

All services must know how to contact the ticrypt-auth supervisor service:

ParameterTypeRequiredDescription
hostnameStringHostname where ticrypt-auth is running
portPortPort on which ticrypt-auth listens

Akka Parametersโ€‹

Services use the Akka framework for inter-service communication. Two parameters control the Akka TCP transport:

ParameterDescription
akka.remote.netty.tcp.hostnameInterface to listen on. Use 127.0.0.1 if all services run on a single server.
akka.remote.netty.tcp.portListening port. Keep the default for each service to avoid port collisions.

ticrypt-restโ€‹

Parameters for the ticrypt.rest section in ticrypt-rest.conf:

ParameterTypeRequiredDescription
mongodbSectionโœ…See mongodb
http.hostStringInterface to bind the HTTP server to
http.portPortPort for the HTTP server
allowed-originsArrStringAllowed CORS origins. An empty list permits all origins.
vm.internal-networksArrNETโœ…Internal network ranges for VM communication
validation.request-jsonon, offโœ…Validate incoming JSON request bodies
validation.response-jsonon, offโœ…Validate outgoing JSON response bodies
session.search-raw-headerBoolEnable raw header search for session cookies. Turn on if sessions fail due to cookie parsing issues.

akka.http.server Sectionโ€‹

HTTP server parameters for ticrypt-rest:

ParameterTypeDefaultDescription
parsing.max-content-lengthSize16 MiBMaximum request body size
request-timeoutDurationMaximum duration for a single request
idle-timeoutDurationMaximum idle time before closing the connection
pipelining-limitIntMaximum concurrent pipelined requests
tip

parsing.max-content-length must be at least 50% larger than the file chunk size. The default 16 MiB is recommended.

warning

idle-timeout must be longer than request-timeout. Setting them equal or reversed causes premature connection drops.


ticrypt-file-managerโ€‹

Parameters for the ticrypt.filemanager section in ticrypt-file-manager.conf:

ParameterTypeRequiredDefaultDescription
mongodbSectionโœ…See mongodb
chunk-sizeSize8 GiBSize of file storage chunks
max-header-sizeInt64Maximum header size in bytes
akka.remote.netty.tcp.hostnameSee Akka
akka.remote.netty.tcp.portSee Akka
warning

Changing max-header-size from the default of 64 bytes is not recommended. The default accommodates future changes to the header format.


ticrypt-storageโ€‹

Parameters for the ticrypt.storage section in ticrypt-storage.conf:

ParameterTypeRequiredDescription
pathStringโœ…Absolute path to the file storage directory
idle-timeDurationHow long to wait before closing an idle connection
idle-checkDurationHow often to check for idle connections
akka.remote.netty.tcp.hostnameSee Akka
akka.remote.netty.tcp.portSee Akka

ticrypt-proxyโ€‹

Parameters for the ticrypt.proxy section in ticrypt-proxy.conf:

ParameterTypeRequiredDescription
interfaceStringโœ…Interface/domain to listen on
portsArrPortโœ…Ports to use for proxying (supports ranges, e.g., ["6000-6010"])
proxy-ttlDurationHow long to wait for a proxy connection
akka.remote.netty.tcp.hostnameSee Akka
akka.remote.netty.tcp.portSee Akka
Security

The interface parameter is critical. Listen only on the domain used for proxying. Listening on the wrong interface can introduce security vulnerabilities.

note

The ports specified by ports must be open in the firewall for external access. Coordinate firewall rules with this setting.


ticrypt-loggerโ€‹

Parameters for the ticrypt.logger section in ticrypt-logger.conf:

ParameterTypeRequiredDescription
driversSectionโœ…Log output drivers. See Drivers.
rotate-logon, offEnable log rotation
rotate-log-frequencyDurationHow often to rotate logs
rotate-log-suffix-formatStringLog rotation suffix format (Joda DateTimeFormat)
rotate-log-suffix-timezoneStringTimezone for log rotation suffix (default: UTC)
max-buffered-linesIntMaximum log lines to buffer in memory
akka.remote.netty.tcp.hostnameSee Akka
akka.remote.netty.tcp.portSee Akka
tip

In most deployments, max-buffered-lines is the only parameter that needs tuning. Increase it if log writes cause measurable I/O latency.

Log Driversโ€‹

The drivers section defines where logs are written. A typical setup uses two drivers:

drivers {
main-file-logger {
main = true
immutable = true
type = "file"
log-file = "/var/log/ticrypt/ticrypt-secure-log.log"
}
tcp-logger {
immutable = false
main = false
type = "tcp"
host = "localhost"
port = 25000
send-timeout = 30s
retry-timeout = 5s
}
}
DriverPurpose
main-file-loggerMaster copy of the log, stored locally. The immutable = true flag produces append-only output.
tcp-loggerForwards logs to a remote receiver (typically tiCrypt Audit) via TCP.
warning

Changing immutable to false disables append-only protection. Changing main to false removes the primary log output. Either change can result in unrecoverable audit gaps.


ticrypt-statsโ€‹

Parameters for the ticrypt.stats section in ticrypt-stats.conf:

ParameterDescription
akka.remote.netty.tcp.hostnameSee Akka
akka.remote.netty.tcp.portSee Akka

ticrypt-notificationsโ€‹

Parameters for the ticrypt.notifications section in ticrypt-notifications.conf:

ParameterDescription
akka.remote.netty.tcp.hostnameSee Akka
akka.remote.netty.tcp.portSee Akka

ticrypt-maintenanceโ€‹

Parameters for the ticrypt.maintenance section in ticrypt-maintenance.conf:

ParameterTypeRequiredDescription
account-lockerSectionโœ…See Account Locker
akka.remote.netty.tcp.hostnameSee Akka
akka.remote.netty.tcp.portSee Akka

Account Lockerโ€‹

Automatically locks user accounts after a period of inactivity.

ParameterTypeDescription
enabledBoolEnable automatic account locking
frequencyDurationHow often to scan for inactive accounts
time-before-account-oldDurationHow long an account must be inactive before it is locked