Install on Another Platform
Cortex 2.0 and later require a read-write connection to a Cortex-specific data store. Synapse Software does not support having Cortex and any archive in the same database. They should always be two separate databases.
See the Connection Strings page for configuration details.
This page covers running Cortex outside of IIS or Docker. If IIS or containers are an option for your environment, use those paths instead - they are better documented and more commonly tested.
Prerequisites
- A reverse proxy or load balancer to handle inbound web traffic (nginx, AWS ALB, Azure App Gateway, Kubernetes ingress, etc.). Configuring this is outside the scope of this document.
- A machine capable of running a .NET 10 application (Windows, Linux, or Mac)
- Your database restored to a Microsoft SQL Server instance with Full-Text Indexing installed
Step 1 - Download Cortex
Download the appropriate build for your system from:
https://releases.synapsesoftware.com/
Available builds:
- win-x64 - Self-contained Windows build. No .NET runtime required.
- linux-x64 - Self-contained Linux build. No .NET runtime required.
- net9 - Runtime-dependent build for any OS. Requires .NET 9 installed on the host.
Step 2 - Run the Application
Extract the appropriate build and run the binary:
- Windows:
Cortex.exe - Linux / Mac:
./Cortex
For production, run Cortex behind a reverse proxy rather than exposing it directly. Options include:
- nginx or Apache as a reverse proxy
- A container orchestrator (Amazon ECS, Azure Container Apps, Kubernetes)
- IIS (see the IIS installation guide if you go this route)
Step 3 - Configure Cortex
Two configuration methods are available.
Environment Variables
Best suited for container-based or automated deployments:
Licensing__CompanyName(orLicensing:CompanyNameon Windows) - the company name associated with your licenseLicensing__LicenseCode(orLicensing:LicenseCodeon Windows) - your license code (format:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX)
Configuration File
Edit appsettings.json in the Cortex directory:
{
"ConnectionStrings": {
"Cherwell": "READ (WRITE OPTIONAL) CONNECTION STRING FOR CHERWELL DATA",
"Cortex": "READ/WRITE CONNECTION STRING FOR CORTEX DATA"
},
"Licensing": {
"CompanyName": "YOUR COMPANY NAME HERE",
"LicenseCode": "YOUR LICENSE CODE"
},
"Authentication": {
"Type": "none"
}
}
After saving the file, restart the application to apply the changes.
If you do not have a Cortex license, the application will run with search results limited to 10 records.
For connection string details, see: Connection Strings
For authentication configuration, see: Authentication
Next Steps
HTTPS / SSL
If you are using SAML for authentication, HTTPS is required (or at minimum strongly recommended). If you add HTTPS after configuring SAML, you will need to update your SAML configuration to match.
Configuring HTTPS is highly recommended for any production deployment. How you do this depends on your environment - common options include a certificate installed directly in IIS, a certificate from an internal or external CA, or HTTPS termination at a reverse proxy in front of Cortex.
Your infrastructure team will be the best resource for this. We can offer guidance if we are familiar with your specific setup.
Authentication
In most cases, we recommend starting with Authentication:Type set to none to confirm your database connection is working before introducing additional variables.
Authentication:Type none is not suitable for production. Once you have confirmed connectivity, configure your preferred authentication method:
Leaving authentication set to none means all data is accessible to anyone who can reach the server. This mode is intended solely for initial setup and verification.
Troubleshooting
If Cortex does not load after installation, see: