Convert Figma logo to code with AI

crazy-max logodocker-jetbrains-license-server

JetBrains License Server Docker image

1,539
359
1,539
1

Top Related Projects

IntelliJ IDEA Community Edition & IntelliJ Platform

48,780

The Kotlin Programming Language.

Quick Overview

The crazy-max/docker-jetbrains-license-server is a Docker image for running JetBrains License Server. It provides an easy way to deploy and manage a license server for JetBrains products in a containerized environment, simplifying the process of license management for teams and organizations using JetBrains tools.

Pros

  • Easy deployment and management of JetBrains License Server using Docker
  • Regular updates and maintenance by the project maintainer
  • Supports various architectures (amd64, arm64, armv7)
  • Includes health checks and automatic updates

Cons

  • Requires Docker knowledge for setup and maintenance
  • May have limitations compared to a native installation of the license server
  • Potential security concerns if not properly configured
  • Limited customization options compared to manual installation

Getting Started

To get started with the JetBrains License Server Docker image, follow these steps:

  1. Pull the Docker image:

    docker pull crazymax/jetbrains-license-server:latest
    
  2. Create a Docker compose file (e.g., docker-compose.yml):

    version: "3.5"
    
    services:
      jetbrains-license-server:
        image: crazymax/jetbrains-license-server:latest
        container_name: jetbrains-license-server
        ports:
          - "8000:8000"
        volumes:
          - "./data:/data"
        environment:
          - "TZ=Europe/Paris"
          - "JLS_VIRTUAL_HOSTS=license-server.example.com"
        restart: always
    
  3. Start the container:

    docker-compose up -d
    
  4. Access the license server at http://localhost:8000 or the specified virtual host.

For more detailed instructions and configuration options, refer to the project's README on GitHub.

Competitor Comparisons

IntelliJ IDEA Community Edition & IntelliJ Platform

Pros of intellij-community

  • Provides the complete source code for IntelliJ IDEA Community Edition, allowing for deep customization and learning
  • Actively maintained by JetBrains, ensuring regular updates and improvements
  • Extensive documentation and community support for developers

Cons of intellij-community

  • Larger codebase and more complex setup compared to docker-jetbrains-license-server
  • Requires more resources to build and run
  • Not specifically designed for license server functionality

Code Comparison

intellij-community (Java):

public class Main {
    public static void main(String[] args) {
        // IntelliJ IDEA Community Edition main entry point
    }
}

docker-jetbrains-license-server (Dockerfile):

FROM openjdk:8-jre-alpine
RUN apk add --no-cache curl
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

The intellij-community repository contains the full source code for IntelliJ IDEA Community Edition, while docker-jetbrains-license-server focuses on providing a Docker container for running the JetBrains License Server. The code snippets illustrate the different purposes: intellij-community shows a basic Java entry point, while docker-jetbrains-license-server demonstrates a Dockerfile for setting up the license server environment.

48,780

The Kotlin Programming Language.

Pros of Kotlin

  • Official language repository with extensive documentation and examples
  • Large community support and active development
  • Designed for modern multiplatform development (JVM, Android, JavaScript, Native)

Cons of Kotlin

  • Larger repository size and complexity
  • Steeper learning curve for contributors
  • Not focused on containerization or license server functionality

Code Comparison

While a direct code comparison isn't particularly relevant due to the different purposes of these repositories, we can highlight some key differences in their structure:

Kotlin:

fun main() {
    println("Hello, World!")
}

docker-jetbrains-license-server:

FROM alpine:3.15

LABEL maintainer="CrazyMax"

ENV JLS_VERSION="27641" \
    TZ="UTC"

Summary

Kotlin is a full-fledged programming language repository, offering comprehensive language features and multiplatform support. docker-jetbrains-license-server, on the other hand, is a specialized Docker image for running JetBrains License Server. While Kotlin provides a rich development ecosystem, docker-jetbrains-license-server offers a simple solution for license management in containerized environments. The choice between them depends on whether you need a programming language or a specific tool for license server deployment.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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

About

JetBrains License Server Docker image.

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


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)

Build locally

git clone https://github.com/crazy-max/docker-jetbrains-license-server.git
cd docker-jetbrains-license-server

# Build image and output to docker (default)
docker buildx bake

# Build multi-platform image
docker buildx bake image-all

Image

RegistryImage
Docker Hubcrazymax/jetbrains-license-server
GitHub Container Registryghcr.io/crazy-max/jetbrains-license-server

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)
  • JLS_SERVICE_LOGLEVEL: Logging of IDE requests and responses (default warn)
  • JLS_REPORTING_LOGLEVEL: Logging of actions on a server: tickets obtaining and revoking with user and license information (default warn)
  • JLS_TICKETS_LOGLEVEL: Logging of actions with tickets. For example, manual ticket revoking (default warn)

Volumes

[!WARNING] 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.

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 -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 \
  crazymax/jetbrains-license-server:latest

Upgrade

Recreate the container whenever I push an update:

docker compose pull
docker compose up -d

Notes

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.

Contributing

Want to contribute? Awesome! 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! :pray:

License

MIT. See LICENSE for more details.