About
If you are interested, check out my other Docker images!
Features
- Run as non-root user
- Multi-platform image
- License server completely customizable via environment variables
- Registration data and configuration in a single directory
- msmtpd SMTP relay image to send emails
- Traefik as reverse proxy and creation/renewal of Let's Encrypt certificates (see this template)
Docker
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 (defaultUTC)PUID: JLS UID (default1000)PGID: JLS GID (default1000)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 behttporhttps(defaulthttps)JLS_PROXY_HOST: The host name of your proxy serverJLS_PROXY_PORT: The port number that the proxy server listens toJLS_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 (default0)JLS_SMTP_SERVER: SMTP server host to use for sending stats (stats disabled if empty)JLS_SMTP_PORT: SMTP server port (default25)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 emailsJLS_STATS_TOKEN: Enables an auth token for the stats API at/reportApi(HTTP POST)
Volumes
/data: Contains registration data and configuration
β οΈ Note that the volumes should be owned by the user/group with the specifiedPUIDandPGID. If you don't give the volume correct permissions, the container may not start.
Ports
8000: Jetbrains License Server HTTP port
Usage
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 -fCommand 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 \
crazymax/jetbrains-license-server:latestUpgrade
Recreate the container whenever I push an update:
docker-compose pull
docker-compose up -dNotes
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
Thanks again for your support, it is much appreciated!
License
MIT. See LICENSE for more details.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.

