Skip to main content
tiCrypt 2.17.11

Introduction

The tiCrypt server consists of two major components: the tiCrypt backend and the tiCrypt VM Controller service.

Deployment

The backend is installed via the Ansible playbook. See the Installation Guide for deployment instructions. This section covers post-deployment configuration only.

For a high-level overview of tiCrypt's security architecture, see the Security Architecture Whitepaper.

Backend Services​

The backend uses a modular architecture of 10 independent services. Each service communicates with other services via TCP connections (Akka framework), allowing distribution across multiple servers if needed.

ServiceDescription
ticrypt-authAuthentication, authorization, and user management. Supervises all other services.
ticrypt-restHTTP REST API gateway. Handles client requests and validates JSON payloads.
ticrypt-file-managerEncrypted file and directory operations with chunked storage.
ticrypt-batchSlurm batch job integration. Submits and tracks jobs against the Slurm controller.
ticrypt-vmVM lifecycle management, scheduling, cost functions, and realm coordination.
ticrypt-proxySecure connection proxy between clients and running VMs.
ticrypt-loggerCentralized logging with file and TCP output drivers.
ticrypt-statsSystem statistics and usage metrics collection.
ticrypt-notificationsUser and system notification delivery.
ticrypt-maintenanceAutomated maintenance tasks including inactive account locking.
Configuration Files

All service configuration files use HOCON format and are located in /etc/ticrypt/. Each service has its own file (e.g., ticrypt-auth.conf, ticrypt-vm.conf). See Service Configuration for shared sections that apply to all services.

Two services have extensive options and are documented on their own pages:

For token-based programmatic access to the backend, see the REST API reference.

Services Outside the Core Ten​

These ship and run alongside the backend but are not part of the ten services ticrypt-services.sh manages. Several sit deliberately outside the security perimeter. For every package in the repository, including these, see Components.

ServiceWhat it does
ticrypt-sftpSFTP data ingestion on port 2022, deployed outside the secure perimeter. Serves both administrator-provisioned SFTP and user-created Inbox access points. Needs a network path to ticrypt-rest and nothing else: it has no access to the internal network or compute nodes
ticrypt-mailboxWeb-based file submission for external collaborators, also outside the perimeter, with a one-way path to ticrypt-rest. Uploads are encrypted with the recipient's public key, so only they can decrypt them. Auto-locks on suspected impersonation or malicious file patterns. Requires its own Nginx virtual domain and TLS certificate
ticrypt-allowedlistControls VM outbound access to external licensing servers by manipulating iptables/ipset rules and DNS replies on the backend host. Unless a specific IP-and-port mapping is configured, all outgoing VM traffic stays blocked. Configuration requires Super-Admin authorization
ticrypt-host-controllerRuns on each compute node. Receives Global Slurm jobs and starts a secure VM for each allocated job, then notifies the backend so the VM can be handed to the VM Controller for provisioning. Maintains the local job-tracking database
ticrypt-host-managerBridges the Global Slurm scheduler and the tiCrypt backend for batch processing. Global Slurm allocates cluster-wide resources and enforces quotas but never sees job content; this component connects it to the Local Slurm instances that actually run jobs inside the enclave
ticrypt-driveimportSupports the External Drive Builder workflow: an administrator populates a drive outside tiCrypt, seals it with a manifest that encrypts it and binds mount rights to a named user, then imports it. Built for 5 TB and larger migrations
ticrypt-setupThe Ansible installer, and the only supported deployment method. See the Backend Installation Guide
tiAuditHosts the tiCrypt Audit interface, reporting engine, and query functionality
tiaudit-loggerListens on TCP port 25000 for log entries pushed from the backend and stores them in ClickHouse
tiaudit-log-uploaderBackfills historical audit logs into ClickHouse during initial deployment or recovery

VM Controller Service​

The VM Controller is an Nginx-based service that delivers signed controller scripts and guest agents to running VMs. It operates independently of the backend services listed above.