Latest Version Build Status Docker Stars Docker Pulls Code Quality
Support me on Patreon Donate Paypal

## About 🐳 [JetBrains License Server](https://www.jetbrains.com/help/license_server/getting_started.html) Docker image based on AdoptOpenJDK.
If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other 🐳 Docker images! 💡 Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) project! ## Features * License server completely customizable via environment variables * Registration data and configuration in a single directory * [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates ## 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 (default `UTC`) * `JLS_VIRTUAL_HOSTS` : [Virtual hosts](https://www.jetbrains.com/help/license_server/setting_host_and_port.html#d1010e63) where license server will be available (comma delimited for several hosts) * `JLS_CONTEXT` : [Context path](https://www.jetbrains.com/help/license_server/setting_host_and_port.html#d1010e63) used by the license server (default `/`) * `JLS_ACCESS_CONFIG` : JSON file to configure [user restrictions](https://www.jetbrains.com/help/license_server/configuring_user_restrictions.html) (default `/data/access-config.json`) * `JLS_STATS_RECIPIENTS` : [Reports recipients](https://www.jetbrains.com/help/license_server/detailed_server_usage_statistics.html#d461e40) email addresses for stats (comma delimited) * `JLS_REPORT_OUT_OF_LICENSE` : [Warn about lack of licenses](https://www.jetbrains.com/help/license_server/detailed_server_usage_statistics.html#d461e40) every hour following the percentage threshold (default `0`) * `JLS_SMTP_SERVER` : SMTP server host to use for sending [stats](https://www.jetbrains.com/help/license_server/detailed_server_usage_statistics.html) (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](https://www.jetbrains.com/help/license_server/detailed_server_usage_statistics.html#d461e40) for stats emails * `JLS_STATS_TOKEN` : Enables an auth token for the [stats API](https://www.jetbrains.com/help/license_server/detailed_server_usage_statistics.html#d461e312) at `/reportApi` (HTTP POST) ### Volumes * `/data` : Contains [registration data](https://www.jetbrains.com/help/license_server/migrate.html) and configuration > :warning: Note that the volume should be owned by uid `1000` and gid `1000`. If you don't give the volume correct permissions, the container may not start. ### Ports * `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](examples/compose) in `/var/jls/` on your host for example. Edit the compose and env files with your preferences and run the following commands : ```bash touch acme.json chmod 600 acme.json docker-compose up -d docker-compose logs -f ``` ### Command line You can also use the following minimal command : ```bash $ docker run -d -p 8000:8000 --name jetbrains_license_server \ -e TZ="Europe/Paris" \ -e JLS_VIRTUAL_HOSTS=jetbrains-license-server.example.com \ -v $(pwd)/data:/data \ crazymax/jetbrains-license-server:latest ``` ## Update Recreate the container whenever i push an update : ```bash docker-compose pull docker-compose up -d ``` ## Troubleshooting If you have any trouble using the license server, check the official [Troubleshooting page](https://www.jetbrains.com/help/license_server/troubleshooting.html) 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 :raised_hands:!
The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:
But we're not gonna lie to each other, I'd rather you buy me a beer or two :beers:! [![Support me on Patreon](.res/patreon.png)](https://www.patreon.com/crazymax) [![Paypal Donate](.res/paypal.png)](https://www.paypal.me/crazyws) ## License MIT. See `LICENSE` for more details.