Deploy SplitQuest in your private environment with complete control over your data and documents
Keep your sensitive documents and data within your own infrastructure. SplitQuest On-Premise ensures that your information never leaves your servers, providing maximum security and compliance.
Deploy SplitQuest exactly how you need it. Configure databases, storage, authentication, and integrations to match your organization's requirements and existing infrastructure.
Get the full power of SplitQuest's document processing capabilities running on your own hardware. Scale processing power based on your workload and performance requirements.
Enable your team to work together on document processing tasks with built-in user management, role-based permissions, and collaborative workflows - all within your secure environment.
Select your server platform for platform-specific installation instructions:
Supported Distributions: Ubuntu 22.04+, CentOS 7+, RHEL 8+, Debian 10+, Amazon Linux 2
Why Linux: Native Docker support, better resource efficiency, robust security, and enterprise-grade stability.
Supported Versions: Windows Server 2019+, Windows 10/11 Pro (for development)
Requirements: Docker Desktop with WSL2 backend, Windows Subsystem for Linux 2 (WSL2)
Supported Versions: macOS 10.15+ (Catalina and later), both Intel and Apple Silicon (M1/M2/M3)
Requirements: Docker Desktop for Mac, Xcode Command Line Tools
# Install / Reinstall Docker (Ubuntu / Debian) sudo apt-get remove -y docker docker-engine docker.io containerd runc || true sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y ca-certificates curl gnupg lsb-release sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \"$(. /etc/os-release && echo \"$VERSION_CODENAME\")\" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Add current user to docker group (idempotent) if ! groups $USER | grep -q docker; then sudo gpasswd -a $USER docker fi # Activate new group in current shell (may require re-login in some cases) newgrp docker <<'EOF' echo "Docker group activated in subshell" EOF # Final update & verification sudo apt-get update -y docker --version docker compose version || docker compose --version # Notes for other distributions: # RHEL / CentOS / Rocky / Alma: # sudo yum remove docker docker-client docker-client-latest docker-common docker-latest \ # docker-latest-logrotate docker-logrotate docker-engine || true # sudo yum install -y yum-utils # sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # sudo systemctl enable --now docker # sudo usermod -aG docker $USER # Amazon Linux 2: # sudo amazon-linux-extras enable docker # sudo yum clean metadata # sudo yum install -y docker # sudo systemctl enable --now docker # sudo usermod -aG docker $USER
# Run in PowerShell as Administrator (Windows Server included) wsl --install # or for older versions dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # Restart computer, then set WSL2 as default wsl --set-default-version 2 # Install a Linux distribution (Ubuntu recommended) wsl --install -d Ubuntu
# Download from: https://docker.com/products/docker-desktop # IMPORTANT: During installation, select "Use WSL 2 instead of Hyper-V" # After installation, go to Docker Desktop > Settings > Resources > WSL Integration # Enable integration with your Ubuntu/Linux distribution # Verify installation in WSL2 terminal (NOT PowerShell): # Open Ubuntu from Start Menu or type: wsl docker --version docker compose --version # Test Docker works in WSL2 docker run hello-world
# In Terminal: xcode-select --install # Verify installation: xcode-select -p
# Download from: https://docker.com/products/docker-desktop # Or install via Homebrew: brew install --cask docker # Start Docker Desktop from Applications # Verify installation: docker --version docker compose --version
# In Docker Desktop > Settings > Resources: # CPU: Allocate 2+ cores # Memory: Allocate 4GB+ RAM # Disk: Ensure 10GB+ available
Minimum: 2 cores (64-bit)
Recommended: 4+ cores
Production: 8+ cores
Minimum: 4GB RAM
Recommended: 8GB RAM
Production: 16GB+ RAM
Application: 5GB
Documents: 10GB+
Total: 20GB+ recommended
# Check Docker installation docker --version docker compose --version # Verify system resources df -h # Check disk space (need 20GB+) free -h # Check available memory (need 4GB+) nproc # Check CPU cores (need 2+) # Test Docker is working docker run hello-world # Check port availability sudo netstat -tulpn | grep -E ':80|:443' # or sudo ss -tulpn | grep -E ':80|:443'
# In PowerShell or WSL2 terminal: # Check WSL2 status wsl --list --verbose # Should show WSL2 as version 2 # Check Docker installation (in WSL2 terminal) docker --version docker compose --version # Verify system resources Get-ComputerInfo | Select-Object TotalPhysicalMemory Get-WmiObject -Class Win32_LogicalDisk | Select-Object Size,FreeSpace # Test Docker is working docker run hello-world # Check port availability (in PowerShell as Admin) netstat -an | findstr ":80 :443"
# Check Docker installation docker --version docker compose --version # Verify system resources df -h # Check disk space (need 20GB+) sysctl hw.memsize # Check total memory sysctl hw.ncpu # Check CPU cores # Check Xcode Command Line Tools xcode-select -p # Test Docker is working docker run hello-world # Check port availability sudo lsof -i :80 sudo lsof -i :443 # Check Docker Desktop resource allocation # Go to Docker Desktop > Settings > Resources
This command downloads the install script and automatically downloads/extracts the SplitQuest package:
curl -fsSL https://splitquest-onprem-releases.s3.amazonaws.com/onprem/install.sh | bash
# Download package and checksum wget https://splitquest-onprem-releases.s3.amazonaws.com/onprem/splitquest-onprem-latest.tar.gz wget https://splitquest-onprem-releases.s3.amazonaws.com/onprem/splitquest-onprem-latest.tar.gz.sha256 # Verify integrity (important for security) sha256sum -c splitquest-onprem-latest.tar.gz.sha256 # Extract if verification passes tar -xzf splitquest-onprem-latest.tar.gz cd splitquest-onprem-v*/
Open WSL2 terminal (Ubuntu, Debian) and run:
curl -fsSL https://splitquest-onprem-releases.s3.amazonaws.com/onprem/install.sh | bash
Step 1: Download in PowerShell:
# Download to Windows Downloads folder Invoke-WebRequest -Uri "https://splitquest-onprem-releases.s3.amazonaws.com/onprem/splitquest-onprem-latest.tar.gz" -OutFile "$env:USERPROFILE\Downloads\splitquest-onprem-latest.tar.gz"
Step 2: Extract in WSL2 terminal:
# Copy from Windows to WSL2 and extract cp /mnt/c/Users/$USER/Downloads/splitquest-onprem-latest.tar.gz . tar -xzf splitquest-onprem-latest.tar.gz cd splitquest-onprem-v*/
Download directly in WSL2 terminal:
# Download and extract in WSL2 wget https://splitquest-onprem-releases.s3.amazonaws.com/onprem/splitquest-onprem-latest.tar.gz tar -xzf splitquest-onprem-latest.tar.gz cd splitquest-onprem-v*/
This command downloads the install script and automatically downloads/extracts the SplitQuest package:
curl -fsSL https://splitquest-onprem-releases.s3.amazonaws.com/onprem/install.sh | bash
Using curl with verification:
# Download and extract in one step curl -fsSL https://splitquest-onprem-releases.s3.amazonaws.com/onprem/splitquest-onprem-latest.tar.gz | tar -xz cd splitquest-onprem-v*/
# Download with curl curl -O https://splitquest-onprem-releases.s3.amazonaws.com/onprem/splitquest-onprem-latest.tar.gz curl -O https://splitquest-onprem-releases.s3.amazonaws.com/onprem/splitquest-onprem-latest.tar.gz.sha256 # Verify integrity (optional but recommended) shasum -a 256 -c splitquest-onprem-latest.tar.gz.sha256 # Extract tar -xzf splitquest-onprem-latest.tar.gz cd splitquest-onprem-v*/
install.sh
, setup-ssl.sh
, and .env.template
.
Configure your deployment by editing the .env
file with your specific settings:
# Copy the template to create your configuration cp .env.template .env # Edit the configuration file nano .env # or use your preferred editor
# Your SplitQuest license key (required) LICENSE_KEY=YOUR_LICENSE_KEY_HERE
# MySQL Database Configuration MYSQL_DATABASE=splitquest_onprem MYSQL_USER=splitquest MYSQL_PASSWORD=your_secure_mysql_password_here MYSQL_HOST=mysql MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=your_secure_root_password_here
Important: Change the default passwords to secure, unique values for production use.
Choose between local storage (recommended for on-premise) or S3-compatible storage:
# Local Storage (Recommended for on-premise) STORAGE_TYPE=local LOCAL_STORAGE_PATH=/app/storage MAX_FILE_SIZE_MB=1000 STORAGE_CLEANUP_ENABLED=true STORAGE_CLEANUP_DAYS=30
# S3 Storage Configuration STORAGE_TYPE=s3 AWS_BUCKET_NAME=your-s3-bucket-name AWS_ACCESS_KEY=your-s3-access-key AWS_SECRET_KEY=your-s3-secret-key AWS_REGION=us-east-1
# Django Secret Key (generate a unique one for production) DJANGO_SECRET_KEY=your-long-random-secret-key-here # Internal encryption key (auto-generated if not set) ENCRYPTION_KEY=auto-generated-on-startup # Allowed hosts (use * for on-premise flexibility) ALLOWED_HOSTS=*
Generate secure keys using: python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
# Custom domain (optional) - leave blank for IP/hostname access DOMAIN= # Email for Let's Encrypt SSL (required if using custom domain) LETSENCRYPT_EMAIL= # Use staging certificates for testing (true/false) LETSENCRYPT_STAGING=false
./setup-ssl.sh
.
Once your .env
file is configured, run the main installer:
# Make script executable and run chmod +x install.sh ./install.sh
# In WSL2 terminal (Ubuntu/Debian): cd splitquest-onprem-v*/ chmod +x install.sh ./install.sh
# In Terminal: cd splitquest-onprem-v*/ chmod +x install.sh ./install.sh
You'll see output similar to:
================================================================== SplitQuest On-Premise Installation Version 1.0.1 ================================================================== ℹ️ Checking configuration file... ✓ Configuration file validated successfully ℹ️ Domain: ℹ️ Email: ℹ️ Performing pre-flight checks... ✓ Docker is installed ✓ Docker Compose is installed ✓ Docker daemon is running ✓ Sufficient disk space available ✓ Memory check completed ℹ️ Starting SplitQuest services with Docker Compose... ✓ Services started successfully ℹ️ Waiting for services to be ready... ✓ All services are ready ================================================================== 🎉 SplitQuest On-Premise Installation Complete! 🎉 ================================================================== ✓ Application is running at: http://localhost ✓ All services are healthy and ready ✓ You can now access the SplitQuest web interface Next Steps: • Access the application at http://localhost • Optional: Set up SSL/HTTPS with ./setup-ssl.sh • Check logs: docker compose -f docker-compose.onprem.yml logs
Access SplitQuest via web browser:
http://localhost
http://your-server-ip
http://your-domain.com
Common management commands:
# Check service status docker compose -f docker-compose.onprem.yml ps # View logs docker compose -f docker-compose.onprem.yml logs -f # Restart services docker compose -f docker-compose.onprem.yml restart # Stop services docker compose -f docker-compose.onprem.yml down
.env
fileUse staging certificates to test your setup without hitting rate limits.
./setup-ssl.sh --staging
Use real Let's Encrypt certificates for production deployment.
./setup-ssl.sh --production
Use staging certificates to test your setup without hitting rate limits.
# In WSL2 terminal: cd splitquest-onprem-v*/ chmod +x setup-ssl.sh ./setup-ssl.sh --staging
Use real Let's Encrypt certificates for production deployment.
# In WSL2 terminal: cd splitquest-onprem-v*/ chmod +x setup-ssl.sh ./setup-ssl.sh --production
Use staging certificates to test your setup without hitting rate limits.
# In Terminal: cd splitquest-onprem-v*/ chmod +x setup-ssl.sh ./setup-ssl.sh --staging
Use real Let's Encrypt certificates for production deployment.
# In Terminal: cd splitquest-onprem-v*/ chmod +x setup-ssl.sh ./setup-ssl.sh --production
https://your-domain.com
http://your-domain.com
For optimal performance, we recommend:
Verification commands:
# Check system resources df -h # Should show 10GB+ available free -h # Should show 4GB+ available docker --version # Should be 20.10+ docker compose --version # Should be 2.0+
Yes, but ONLY through WSL2! SplitQuest On-Premise does not support direct Windows Server installation. You must use WSL2 (Windows Subsystem for Linux) for all Windows deployments.
wsl --install -d Ubuntu
Yes! SplitQuest On-Premise runs excellently on macOS using Docker Desktop for Mac. Requirements:
xcode-select --install
Platform performance ranking for SplitQuest On-Premise:
Native Docker support, optimal resource efficiency, enterprise stability, best for production deployments.
Great for development and testing, excellent performance on Apple Silicon, easy setup and management.
Requires WSL2 - No direct Windows Server support. Runs well through WSL2, slightly higher resource overhead due to virtualization layer.
After installation, verify everything is working:
# Check if containers are running (should show all services as 'Up') docker compose -f docker-compose.onprem.yml ps # View application logs (should show successful startup) docker compose -f docker-compose.onprem.yml logs splitquest_web | tail -20 # Test web interface (should return HTTP 200) curl -I http://localhost/health # Test database connectivity docker compose -f docker-compose.onprem.yml exec mysql mysql -u splitquest -p splitquest_onprem -e "SELECT 1;"
Expected results:
If issues occur: Check the installation logs with docker compose -f docker-compose.onprem.yml logs
To obtain an on-premise license:
.env
fileYes! We offer a 30-day trial license for evaluation purposes. Contact our sales team to request a trial license. The trial includes:
When your license expires:
We recommend setting up license renewal alerts in your calendar.
SplitQuest On-Premise uses MySQL as the database, which is pre-configured in the Docker deployment. The MySQL database is automatically set up when you run the installation script.
# MySQL Database Configuration in .env MYSQL_DATABASE=splitquest_onprem MYSQL_USER=splitquest MYSQL_PASSWORD=your_secure_mysql_password_here MYSQL_HOST=mysql MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=your_secure_root_password_here
Why MySQL?
.env
file to secure, unique values before deploying to production.
SplitQuest provides automated SSL/HTTPS setup using Let's Encrypt certificates. To configure HTTPS:
.env
file:
# In your .env file DOMAIN=your-domain.com [email protected] LETSENCRYPT_STAGING=false # Set to true for testing
./setup-ssl.sh --production
The script will automatically:
./setup-ssl.sh --staging
to avoid Let's Encrypt rate limits.
Yes! Configure custom storage paths in your .env
file:
# Storage Configuration in .env STORAGE_TYPE=local LOCAL_STORAGE_PATH=/custom/path/to/storage # Maximum file size in MB MAX_FILE_SIZE_MB=1000 # Storage cleanup settings STORAGE_CLEANUP_ENABLED=true STORAGE_CLEANUP_DAYS=30
Alternative: S3 Storage
# S3 Storage Configuration in .env STORAGE_TYPE=s3 AWS_BUCKET_NAME=your-bucket-name AWS_ACCESS_KEY=your-access-key AWS_SECRET_KEY=your-secret-key AWS_REGION=us-east-1
Follow this troubleshooting checklist:
docker --version && docker compose --version
cat .env | grep -E "LICENSE_KEY|MYSQL_PASSWORD" | head -2
netstat -tulpn | grep -E ":80|:443|:3306"
docker compose -f docker-compose.onprem.yml logs --tail=50
df -h && free -h
./install.sh
again - it includes validation and will show specific errors.Permission issues vary by platform. Here are platform-specific solutions:
For Linux systems:
sudo usermod -aG docker $USER
groups | grep docker
For Windows with WSL2:
sudo usermod -aG docker $USER
wsl --shutdown
(in PowerShell)
For macOS systems:
docker ps
Platform-specific Docker troubleshooting steps:
Linux Docker troubleshooting:
# Check Docker service status sudo systemctl status docker # Start Docker if not running sudo systemctl start docker sudo systemctl enable docker # Check Docker daemon logs sudo journalctl -fu docker # Verify Docker installation docker version docker info # Check available resources df -h free -h
Windows WSL2 + Docker troubleshooting:
# Check WSL2 status (in PowerShell) wsl --list --verbose # Ensure WSL2 integration is enabled in Docker Desktop # Docker Desktop > Settings > Resources > WSL Integration # Check Docker in WSL2 terminal docker version docker info # Restart Docker Desktop if needed # Right-click Docker Desktop > Restart # Check WSL2 resources wsl --shutdown # Then restart WSL2 terminal
macOS Docker troubleshooting:
# Check Docker Desktop status docker version docker info # Restart Docker Desktop # Docker Desktop > Troubleshoot > Restart # Check resource allocation # Docker Desktop > Settings > Resources # Ensure 4GB+ RAM, 2+ CPU cores allocated # Check Docker Desktop logs # Docker Desktop > Troubleshoot > Get support # Clear Docker cache if needed docker system prune -a
Create regular backups of your SplitQuest data:
docker compose -f docker-compose.onprem.yml exec mysql mysqldump -u splitquest -p splitquest_onprem > backup-$(date +%Y%m%d).sql
tar -czf documents-backup-$(date +%Y%m%d).tar.gz ./data/documents/ ./data/uploads/
cp .env config-backup-$(date +%Y%m%d).env
#!/bin/bash
DATE=$(date +%Y%m%d)
docker compose -f docker-compose.onprem.yml exec mysql mysqldump -u splitquest -p splitquest_onprem > backup-$DATE.sql
tar -czf splitquest-backup-$DATE.tar.gz .env docker-compose.onprem.yml ./data/ backup-$DATE.sql
Tip: Set up automated backups using cron jobs for regular data protection. Store backups in a separate location from your SplitQuest installation.
Need help with your installation? Our team is here to assist you.
© 2025 SplitQuest On-Premise. All rights reserved.