Skip to main content

Service Configuration

Last updated: May 29, 2026Latest Frontend Version: 2.16.20
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

Almost all services require the following sections. The configuration is virtually identical across services.

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
mongodbSectionSee mongodb
http.hostStringInterface to bind the HTTP server to
http.portPortPort for the HTTP server
allowed-originsArrStringAllowed CORS origins. Empty list permits all origins.
vm.internal-networksArrNETInternal network ranges for VM communication
validation.request-jsonon, offValidate incoming JSON request bodies
validation.response-jsonon, offValidate 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 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 will cause premature connection drops.


ticrypt-file-manager

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

ParameterTypeRequiredDefaultDescription
mongodbSectionSee 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 future-proofs the tiCrypt instance against header format changes.


ticrypt-storage

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

ParameterTypeRequiredDescription
pathStringAbsolute 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
interfaceStringInterface/domain to listen on
portsArrPortsPorts 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. You must listen only on the domain used for proxying. Listening on the wrong interface can open 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
driversSectionLog 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

The only parameter you should typically adjust is max-buffered-lines, and only if you observe performance degradation from log writes.

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

Do not modify the main-file-logger configuration without careful consideration. Incorrect settings can result in a non-functioning logging system.


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-lockerSectionSee 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