Editions & Licensing
import { Aside } from ‘@astrojs/starlight/components’;
Monibuca v6 enforces Editions (connection/room/cluster limits) and Licenses (commercial activation files) separately. Without a license file there is no trial time limit — the server runs indefinitely as the Free edition.
Editions
Section titled “Editions”Pre-built downloads are compiled as Free (edition-free). Build-time features can also target Professional or Enterprise; most users rely on the official binaries.
| Feature | Free | Professional | Enterprise |
|---|---|---|---|
| Max concurrent connections | 50 | 1,000 | Unlimited |
| Max rooms | 3 | 10 | Unlimited |
| Cluster deployment | ❌ | ❌ | ✅ |
| Protocols & plugins | All (excl. Cluster) | All (excl. Cluster) | All (incl. Cluster) |
When limits are exceeded, new connections or rooms are rejected and a log message references the active edition. The Admin System view shows the effective edition and quotas.
Running without a license file
Section titled “Running without a license file”At startup the process looks for activate_<username>.key in the working directory. If the file is missing, invalid, or fails local verification:
- The server runs as the Free edition with no runtime expiry
- There is no 30-day trial from build date
- The process does not exit solely because no key was found
Example log line:
WARN No activation key found. Running as free edition (max connections: 50, max rooms: 3, no runtime time limit). Place a valid activate_<user>.key file to unlock licensed features.vs. demo mode (--edition)
Section titled “vs. demo mode (--edition)”| Scenario | Time limit | Limits |
|---|---|---|
| No license (default) | No | Free |
--edition pro / --edition enterprise on a Free binary | Yes — shuts down after 30 minutes | Temporary Pro/Enterprise quotas |
| Valid license file | No (subject to license expiry dates) | As licensed |
Demo mode applies only when --edition requests a tier higher than the binary was built with. See Downloads for examples.
Commercial license (activation key)
Section titled “Commercial license (activation key)”Place the activation file in the process working directory (same directory as config.yaml):
activate_<username>.keyExample: user acme → activate_acme.key. The username inside the license must match the filename.
What is verified
Section titled “What is verified”After a successful activation, local checks run; some license types also use online verification (ACTIVATE_URL, default http://localhost:8088/verify):
- Validity window (
start/expire,YYYYMMDD) - Version pattern (
versionregex) - Machine binding (selected license types)
- Max concurrent streams (selected license types)
When a license becomes invalid
Section titled “When a license becomes invalid”If the license expires or periodic local verification fails at runtime:
- Limits fall back to Free edition; the server keeps running
- The process does not exit only because the license expired (unlike older trial behavior)
- Periodic license checks stop until you deploy a valid
.keyand restart
Failed online activation checks also degrade to Free instead of exiting the process.
Environment variables
Section titled “Environment variables”| Variable | Description |
|---|---|
ACTIVATE_URL | Online activation endpoint (default http://localhost:8088/verify) |
Licensed plugin lists may set *_ENABLE variables (e.g. CLUSTER_ENABLE) early at startup.
Building from source
Section titled “Building from source”Default cargo build enables the license feature. With no .key file, behavior matches the sections above (Free, no runtime cap).
To omit the license module entirely:
cargo build --no-default-features --features "static-plugins,edition-free,all-plugins,api-v6"(Adjust features as needed; do not include license.)
Pin edition at compile time with mutually exclusive features:
cargo build --features edition-free # defaultcargo build --features edition-procargo build --features edition-enterprise