Go to file
Sambo Chea 148519fb43 add heroku 2020-04-16 13:43:37 +07:00
.github Settings 2020-02-12 23:11:03 +01:00
.res Update README 2019-11-13 17:10:49 +01:00
examples Dedicated example for Traefik 2019-11-17 07:25:30 +01:00
.dockerignore Switch to GitHub Actions 2019-10-10 16:04:08 +02:00
.editorconfig TravisCI notif 2019-04-28 20:04:57 +02:00
.gitattributes Linguist 2019-03-20 00:16:35 +01:00
.gitignore Update ignore 2018-02-16 02:02:06 +01:00
CHANGELOG.md JetBrains License Server 22218 2020-02-04 18:36:29 +01:00
Dockerfile Switch to Open Container Specification labels as label-schema.org ones are deprecated 2020-04-07 19:58:43 +02:00
entrypoint.sh Fix timezone 2019-12-07 16:09:30 +01:00
heroku.yml add heroku 2020-04-16 13:43:37 +07:00
LICENSE JetBrains License Server 22218 2020-02-04 18:36:29 +01:00
README.md Proxy type defaults to https 2019-11-28 18:28:07 +01:00

Latest Version Build Status Docker Stars Docker Pulls Code Quality
Become a sponsor Donate Paypal


🐳 JetBrains License Server Docker image based on AdoptOpenJDK.
If you are interested, check out my other 🐳 Docker images!

💡 Want to be notified of new releases? Check out 🔔 Diun (Docker Image Update Notifier) project!


  • Run as non-root user
  • Multi-platform image
  • License server completely customizable via environment variables
  • Registration data and configuration in a single directory
  • Traefik as reverse proxy and creation/renewal of Let's Encrypt certificates (see this template)


Multi-platform image

Following platforms for this image are available:

$ docker run --rm mplatform/mquery crazymax/jetbrains-license-server:latest
Image: crazymax/jetbrains-license-server:latest
 * Manifest List: Yes
 * Supported platforms:
   - linux/amd64
   - linux/arm64
   - linux/ppc64le
   - linux/s390x

Environment variables

  • TZ: The timezone assigned to the container (default UTC)
  • PUID: JLS UID (default 1000)
  • PGID: JLS GID (default 1000)
  • JLS_VIRTUAL_HOSTS: Virtual hosts where license server will be available (comma delimited for several hosts)
  • JLS_CONTEXT: Context path used by the license server (default /)
  • JLS_PROXY_TYPE: Type of proxy to use. Can be http or https (default https)
  • JLS_PROXY_HOST: The host name of your proxy server
  • JLS_PROXY_PORT: The port number that the proxy server listens to
  • JLS_PROXY_USER: Username to connect to the proxy server (no auth if empty)
  • JLS_PROXY_PASSWORD: Password to connect to the proxy server (no auth if empty)
  • JLS_ACCESS_CONFIG: JSON file to configure user restrictions (default /data/access-config.json)
  • JLS_STATS_RECIPIENTS: Reports recipients email addresses for stats (comma delimited)
  • JLS_REPORT_OUT_OF_LICENSE: Warn about lack of licenses every hour following the percentage threshold (default 0)
  • JLS_SMTP_SERVER: SMTP server host to use for sending stats (stats disabled if empty)
  • JLS_SMTP_PORT: SMTP server port (default 25)
  • JLS_SMTP_USERNAME: SMTP username (auth disabled if empty)
  • JLS_SMTP_PASSWORD: SMTP password (auth disabled if empty)
  • JLS_STATS_FROM: From address for stats emails
  • JLS_STATS_TOKEN: Enables an auth token for the stats API at /reportApi (HTTP POST)


⚠️ Note that the volumes should be owned by the user/group with the specified PUID and PGID. If you don't give the volume correct permissions, the container may not start.


  • 8000: Jetbrains License Server HTTP port

Use this image

Docker Compose

Docker compose is the recommended way to run this image. Copy the content of folder examples/compose in /var/jls/ on your host for example. Edit the compose and env files with your preferences and run the following commands:

docker-compose up -d
docker-compose logs -f

Command line

You can also use the following minimal command:

$ docker run -d -p 8000:8000 --name jetbrains_license_server \
  -e TZ="Europe/Paris" \
  -e JLS_VIRTUAL_HOSTS=jls.example.com \
  -v $(pwd)/data:/data \


Recreate the container whenever I push an update:

docker-compose pull
docker-compose up -d


If you have any trouble using the license server, check the official Troubleshooting page of Jetbrains.

Error 403 Passed value of header "Host" is not allowed

If you've got the following message :

Passed value of header "Host" is not allowed. Please contact your license server administrator.

That's because the license server is running behind a reverse proxy. Please configure virtual hosts using the JLS_VIRTUAL_HOSTS variable.

How can I help ?

All kinds of contributions are welcome 🙌! The most basic way to show your support is to star 🌟 the project, or to raise issues 💬 You can also support this project by becoming a sponsor on GitHub 👏 or by making a Paypal donation to ensure this journey continues indefinitely! 🚀

Thanks again for your support, it is much appreciated! 🙏


MIT. See LICENSE for more details.