Skip to content

Multi-Tenancy

mise-server supports multi-tenant deployments where each tenant gets isolated auth, ACL, and hosted packages via subdomain routing.

Configuration

toml
[settings]
hosted_domain = "mise.pub"
bash
export MISE_SERVER_HOSTED_DOMAIN=mise.pub

How It Works

When hosted_domain is set, requests to {tenant}.mise.pub are scoped to that tenant:

  • Each tenant has its own users, ACL rules, and hosted packages
  • Cache (upstream proxied packages) is shared across tenants
  • Admin API calls are scoped per tenant via /admin/tenants/{tenant}/

Tenant-Scoped Admin API

bash
# List users for tenant "acme"
curl http://admin.mise.pub/admin/tenants/acme/users

# Create ACL rule for tenant "acme"
curl -X POST http://admin.mise.pub/admin/tenants/acme/acl \
  -H "Content-Type: application/json" \
  -d '{"user": "ci", "pattern": "npm/**", "permission": "write"}'

Single-Tenant Mode

When hosted_domain is not set, mise-server runs in single-tenant mode with no subdomain routing.

Licensed under FSL-1.1-ALv2. Maintained by @jdx.