License, multiple domains, one CMS instance

I’m using Kirby as headless solution only and wondered, how the licensing model applies here.

So, I have a Kirby installation which I pull content from via kql/rest api. The website that consumes the content is translated into 3 languages, and those 3 languages are server by the same server, but I have domain redirections. Means, instead of having languages served under the /de, /fr and /en paths, they have separate domains (but it’s the same website).

Does that now mean because I’m using domains instead of subdomains/language paths, I have to get 3 licences, even though there is only one Kirby installation? Do you consider 1 licence key per one entity that belongs together or really per domain?

And the answer is “yes”, how will I register with the 3 licences?

Bonus question: I have multiple environments under those domains. Every domain has also a testing/staging environment. Will the licensing server understand that these are not separate websites but test instances?

No, language variations of the same website do not need their own licenses even if they run under different domains-

A “Website” is a single Kirby project that is defined by its domain name and root directory (e.g. or ). Each (sub)domain and root directory is a separate Website, even if the projects are related in any way. If the same Kirby multi-language installation spans multiple domains, these domains count as the same Website.

You can only register one domain, but I think if you put the license file into the config folder, it should get reflected on staging/testing. Not 100% sure.

The explanation by @pixelijn is correct. You will only need one license for all language versions and testing sites.

However you will need to register your license for each domain as Kirby will only consider the license valid if the domain matches. Make sure to use different config dirs, otherwise the license files will overwrite each other.

The license for one domain will automatically count for the staging and test subdomains though.

Alternative: Only use one of the domains for Panel access, then you only need to register the license for that domain. The Kirby core itself won‘t check the license.


Thanks, both of you. Marked @lukasbestle answer as it references all information to the previous answer and adds clarification on top.

What’s the best way to use different config directories for one license? I’m new to Kirby, and I have a local, a staging, and a production. Would like to use one license for all of them.

Are the staging and production sites on different servers? In this case you have two different folders anyway. You only need to make sure not to sync the site/config/.license file between the servers.

We recommend not to register your local instance. Kirby works as normal without the license, it just displays the license banner in the Panel.

I most of the time did it also exactly like that: Not registering local and staging instances and then only registering the production instance. In other cases I already registered the staging instance (to not confuse my clients) and then the production instance with the same key again (everything via Kirby UI), even though both are on different servers, but I thought from domain naming it might be obvious enough in case somebody is going to check/verify that.

Yep, our license server allows a few registrations of the same key for exactly such cases of staging sites etc. As long as it’s the same site, this is perfectly fine according to our license terms.

I may have made a mistake because I licensed my Local, thinking the license would transfer. How do i unlicense it?
Thanks for the info on the directory.

You don’t need to unlicense the local site, just register again on the production site.

So, I typed in the license on prod, and for 2 seconds it said “thanks for supporting…” and then it changed back to “This is an unregistered demo” — I don’t understand why it’s happening.

Is the site/config directory writable by your web server? Kirby stores the license in the file site/config/.license.

1 Like

Thanks! Will take a look.

Okay, here are the permissions that are currently set:

Also, I may need to change more because now even basic changes to fields in the CMS aren’t sticking, just reverting back as soon as I change them.

Here’s a video also of changing one field on prod, and it not sticking…

Which user is the owner of these files and directories? And which user runs your web server/PHP daemon? The files with the permissions 644 can only be written to by the owner.

1 Like

What kind of interface are you using here? Is it possible to see (and change) file/folder ownerships as well? 644 and 755 mean that the files and the folder is writable only by the owner (the first digit in permissions). Same group and others have only read access. Hence it would be important to know who is the owner and how you could change that.

1 Like

It’s a web interface from my host, Siteground. Do you know if those are the appropriate ownerships for the CMS? I’m still having the issue of changes not sticking.

I’ll check!

So far, you did not reveal the ownerships to us, so nobody can tell.

1 Like