On-Premise installation
Licensing
Get a Carbone license and activate the Enterprise Edition on your servers
Community and Enterprise Edition
Carbone On-Premise always starts, with or without a license. Without one it runs the Community Edition: document generation works, but Enterprise features are disabled.
A license unlocks the Enterprise Edition and comes with support and updates.
See the feature-by-feature comparison to know exactly what each edition includes.
Get a license
To request a free 30-day trial:
- Create an account on account.carbone.io.
- Ask us in the chat and we activate it immediately.
- Download your license from your dashboard.
For a production license or any question on plans, talk to us.
How to provide the license
The license is a *.carbone-license file holding one signed token. You can either pass its content as a string or drop that file on disk. Both carry the same license, so pick whichever suits your deployment.
Option 1: pass the license as a string
Use this when the filesystem is read-only or ephemeral, or when secrets are injected by the platform. Set the license parameter to the content of the .carbone-license file:
export CARBONE_LICENSE="eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhY..."
./carbone webserver
With Docker, export the variable on the host and forward it with -e CARBONE_LICENSE, so the token stays out of the command line and out of the image:
export CARBONE_LICENSE="eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhY..."
docker run -t -i --rm -p 4000:4000 -e CARBONE_LICENSE carbone/carbone-ee:full-5.14.3
Never bake the token into an image or commit it to a repository. Each platform has its own secret store, and the deployment guides show how to wire it:
- Deploy with Docker: Docker secret mounted as a
.carbone-licensefile - Deploy on Kubernetes: the Helm chart stores it in a
Secretand injects it as an environment variable - Deploy on AWS ECS: AWS Secrets Manager referenced from the task definition
Option 2: put the file on disk
Copy the file into the license directory, which is the config folder of the workspace directory by default. Only the .carbone-license extension matters, the filename is free:
/var/www/carbone/
└── config/
├── config.json
└── acme-corp.carbone-licenseThe Docker image uses /app as workspace directory, so mount your folder into /app/config:
docker run -t -i --rm -p 4000:4000 --volume ./config:/app/config carbone/carbone-ee:full-5.14.3
To keep licenses somewhere else, point licenseDir to that directory:
export CARBONE_LICENSE_DIR=/etc/carbone/licenses
Which license is selected
- If the
licensestring is set, Carbone uses it and never reads the license directory. As with any parameter, the CLI option wins over the environment variable, which wins overconfig.json. - Otherwise Carbone lists the license directory, keeps the files ending with
.carbone-license, and loads the most recently created one. Sub-directories and any other file are ignored.
To renew a license, just drop the new file next to the old one: being the newest on disk, it is picked up at the next restart.
The selection uses the file creation date, not the filename nor the modification date. Copying an older license into the directory gives it a fresh creation date and makes it win. When in doubt, delete the obsolete files.
Check the loaded license
Carbone prints the license it loaded on startup:
LICENSE:
--------
- name : ACME Corp
- expired at : 2027-01-31T00:00:00.000Z
- address : 1 rue de la Paix, Paris
- email : admin@acme.corp
- plan : enterpriseWhen no valid license is found, Carbone still starts, in Community Edition: Enterprise features are disabled, the job balancer is forced off, and the reason is printed instead:
LICENSE:
--------
❌ No *.carbone-license files found in /app/config
❌ No license found in env. variable CARBONE_EE_LICENSE or CARBONE_LICENSE
⚠️ Only features of the Community Edition are enabledAn expired license does not always stop the Enterprise Edition: with the eternity plan, versions published before the expiration date keep running, only support and updates stop. A Invalid license. Check system clock. message means the machine clock is set earlier than the publication date of your Carbone version.