Tenelix
Documentation

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.