Self-hosted deployment
Run Tenelix on your own infrastructure as a Docker stack.
Self-hosted Tenelix runs as a Docker Compose stack on customer infrastructure. Same image as our cloud — only environment variables differ.
What you provide
- A Linux server (or VM) with Docker installed
- PostgreSQL 16 instance (Docker or managed)
- Redis 7 instance (Docker or managed)
- A domain name and TLS certificate
- Optional: MinIO or S3-compatible object store
What we ship
tenelix-selfhosted/
├── docker-compose.yml # App + nginx + redis + postgres
├── docker-compose.prod.yml # Production overrides
├── .env.example # Pre-configured for self-hosted
├── nginx/
│ └── default.conf # PHP-FPM upstream, static assets
└── docs/
└── SELF_HOSTED_GUIDE.md # Customer-facing setup guide
Key environment variables
APP_ENV=production
APP_URL=https://emr.customerclinic.com
TENANCY_MODE=enterprise
DB_HOST=tenelix-db
DB_DATABASE=tenelix_cloud
DB_USERNAME=tenelix
DB_PASSWORD=<customer-set>
# File storage — MinIO instead of AWS S3
FILESYSTEM_DISK=s3
AWS_ENDPOINT=http://tenelix-minio:9000
AWS_BUCKET=tenelix-files
AWS_USE_PATH_STYLE_ENDPOINT=true
The AWS_ENDPOINT is the only material difference between cloud and
self-hosted deployment. Pointing it at the customer's MinIO instance
keeps file storage local.
Updates
Self-hosted customers receive:
- Quarterly security update channel
- Optional remote upgrade assistance
- Backup and DR runbooks shipped with the stack
Enterprise contracts include a named success engineer who coordinates upgrades.