Documentation Index
Fetch the complete documentation index at: https://docs.safaridesk.io/llms.txt
Use this file to discover all available pages before exploring further.
SafariDesk Self-Hosted Architecture
Overview
SafariDesk supports two deployment models:1. Cloud Version
- Multi-tenant SaaS platform
- Hosted and managed by SafariDesk
- Billing handled internally via Stripe
- Shared infrastructure across organizations
2. Self-Hosted Enterprise Version
- Single-tenant deployment
- Installed on customer-owned infrastructure
- Enterprise license required
- License validation performed through SafariDesk License Proxy
- Multi-tenancy disabled
Self-Hosted Deployment Model
Each self-hosted deployment represents a single organization. One deployment contains:- One frontend instance
- One backend API instance
- One PostgreSQL database
- One Redis instance
- One Nginx reverse proxy
- One uploads storage volume
Infrastructure Requirements
Minimum requirements:- Linux host with Docker and Docker Compose (Ubuntu 22.04+ recommended)
- Docker
- Docker Compose Plugin
- 4 GB RAM minimum
- 20 GB SSD storage
- Ports 80 and 443 available
- 8 GB RAM
- 4 CPU cores
- Domain with SSL
- macOS with Docker Desktop
- Windows with Docker Desktop
Deployment Architecture
Internet ↓ Nginx Reverse Proxy ├── Frontend ├── Backend API └── Uploads Backend Services ├── PostgreSQL ├── Redis └── License ValidationUpload Storage
Uploads are stored using a shared Docker volume. Backend writes uploads to:/srv/uploads
/api/uploads/*
Licensing Requirements
Self-hosted enterprise deployments require:- SafariDesk license key
- Stable instance ID
- License proxy connectivity
- Customer enters license key
- SafariDesk calls license proxy
- License proxy validates against Keygen
- Enterprise features enabled based on entitlements
Enterprise Features
Feature access is controlled through license entitlements. Supported entitlement codes:advanced_reportssla_automationai_assistantwhite_labelcustom_domains
multi_tenancy
License Validation Endpoint
POST/v1/licenses/validate
Headers:
Authorization: Bearer LICENSE_KEY
Request body:
instance_iddeployment_type=self_hostededition=enterpriseversionhostname
LICENSE_RESPONSE_SIGNING_SECRET.

