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. It's the same application we run in our own cloud, configured through environment variables.

What you provide

  • A Linux server (or VM) with Docker installed
  • PostgreSQL 18 instance (Docker or managed)
  • A domain name (Caddy obtains and renews the TLS certificate for you)
  • Optional: an S3-compatible object store — files default to a local volume

What we ship

tenelix-selfhosted/
├── docker-compose.yml         # App + Caddy + postgres
├── docker-compose.prod.yml    # Production overrides
├── .env.example               # Pre-configured for self-hosted
├── Caddyfile                  # Reverse proxy + automatic TLS
└── docs/
    └── SELF_HOSTED_GUIDE.md   # Customer-facing setup guide

Key environment variables

APP_ENV=production
APP_URL=https://emr.customerclinic.com
DEPLOYMENT_MODE=self_hosted

DB_HOST=tenelix-db
DB_DATABASE=tenelix
DB_USERNAME=tenelix
DB_PASSWORD=<customer-set>

# File storage defaults to a local volume on your server.
FILESYSTEM_DISK=local

Cache, queue, and sessions run on the database — the same as our cloud — so there is no Redis to operate. Files live on a local volume by default; point FILESYSTEM_DISK at an S3-compatible store only if you want one. Caddy terminates TLS on your domain automatically.

Updates

Self-hosted customers receive:

  • A security update channel
  • Optional remote upgrade assistance
  • Backup and DR runbooks included with the stack

Enterprise contracts include a named success engineer who coordinates upgrades.