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.pubHow 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.