{"id":15660421,"url":"https://github.com/crazy-max/docker-ejtserver","last_synced_at":"2025-04-16T01:27:05.091Z","repository":{"id":29156477,"uuid":"120327668","full_name":"crazy-max/docker-ejtserver","owner":"crazy-max","description":"EJT License Server Docker image","archived":false,"fork":false,"pushed_at":"2024-06-23T15:37:07.000Z","size":454,"stargazers_count":21,"open_issues_count":1,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-30T02:44:49.884Z","etag":null,"topics":["alpine-linux","docker","ej-technologies","ejtserver"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crazy-max.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"crazy-max","custom":"https://www.paypal.me/crazyws"}},"created_at":"2018-02-05T16:04:37.000Z","updated_at":"2024-08-23T07:12:19.000Z","dependencies_parsed_at":"2024-10-03T13:21:46.966Z","dependency_job_id":"f374ef3e-765f-4aed-85a1-ddc18faf4ba3","html_url":"https://github.com/crazy-max/docker-ejtserver","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-ejtserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-ejtserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-ejtserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-ejtserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crazy-max","download_url":"https://codeload.github.com/crazy-max/docker-ejtserver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249181216,"owners_count":21225867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine-linux","docker","ej-technologies","ejtserver"],"created_at":"2024-10-03T13:21:39.241Z","updated_at":"2025-04-16T01:27:05.082Z","avatar_url":"https://github.com/crazy-max.png","language":"Dockerfile","funding_links":["https://github.com/sponsors/crazy-max","https://www.paypal.me/crazyws"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/crazy-max/docker-ejtserver\" target=\"_blank\"\u003e\u003cimg height=\"128\" src=\"https://raw.githubusercontent.com/crazy-max/docker-ejtserver/master/.github/docker-ejtserver.jpg\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://hub.docker.com/r/crazymax/ejtserver/tags?page=1\u0026ordering=last_updated\"\u003e\u003cimg src=\"https://img.shields.io/github/v/tag/crazy-max/docker-ejtserver?label=version\u0026style=flat-square\" alt=\"Latest Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/crazy-max/docker-ejtserver/actions?workflow=build\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/crazy-max/docker-ejtserver/build.yml?branch=master\u0026label=build\u0026logo=github\u0026style=flat-square\" alt=\"Build Status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/crazymax/ejtserver/\"\u003e\u003cimg src=\"https://img.shields.io/docker/stars/crazymax/ejtserver.svg?style=flat-square\u0026logo=docker\" alt=\"Docker Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/crazymax/ejtserver/\"\u003e\u003cimg src=\"https://img.shields.io/docker/pulls/crazymax/ejtserver.svg?style=flat-square\u0026logo=docker\" alt=\"Docker Pulls\"\u003e\u003c/a\u003e\n  \u003cbr /\u003e\u003ca href=\"https://github.com/sponsors/crazy-max\"\u003e\u003cimg src=\"https://img.shields.io/badge/sponsor-crazy--max-181717.svg?logo=github\u0026style=flat-square\" alt=\"Become a sponsor\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.paypal.me/crazyws\"\u003e\u003cimg src=\"https://img.shields.io/badge/donate-paypal-00457c.svg?logo=paypal\u0026style=flat-square\" alt=\"Donate Paypal\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## ⚠️ Abandoned project\n\nSince EJT License Server 2.0, a Dockerfile is available in the unix tarball to\nbuild an image yourself. Therefore, this project is abandoned but feel free to\nfork and make your own changes if needed.\n\n## About\n\n[EJT License Server](https://www.ej-technologies.com/license/files) Docker image.\n\n\u003e [!TIP] \n\u003e Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun)\n\u003e project!\n\n___\n\n* [Features](#features)\n* [Build locally](#build-locally)\n* [Image](#image)\n* [Environment variables](#environment-variables)\n* [Volumes](#volumes)\n* [Ports](#ports)\n* [Commands](#commands)\n* [Usage](#usage)\n  * [Docker Compose](#docker-compose)\n  * [Command line](#command-line)\n* [Upgrade](#upgrade)\n* [Notes](#notes)\n  * [How to use your floating license?](#how-to-use-your-floating-license)\n  * [User groups](#user-groups)\n* [Contributing](#contributing)\n* [License](#license)\n\n## Features\n\n* Run as non-root user\n* Multi-platform image\n* License server customizable via environment variables\n* Persistence of configuration in a single directory\n* A custom base url can be provided to download the ejtserver tarball\n\n## Build locally\n\n```shell\ngit clone https://github.com/crazy-max/docker-ejtserver.git\ncd docker-ejtserver\n\n# Build image and output to docker (default)\ndocker buildx bake\n\n# Build multi-platform image\ndocker buildx bake image-all\n```\n\n## Image\n\n| Registry                                                                                             | Image                         |\n|------------------------------------------------------------------------------------------------------|-------------------------------|\n| [Docker Hub](https://hub.docker.com/r/crazymax/ejtserver/)                                           | `crazymax/ejtserver`          |\n| [GitHub Container Registry](https://github.com/users/crazy-max/packages/container/package/ejtserver) | `ghcr.io/crazy-max/ejtserver` |\n\nFollowing platforms for this image are available:\n\n```\n$ docker buildx imagetools inspect crazymax/ejtserver --format \"{{json .Manifest}}\" | \\\n  jq -r '.manifests[] | select(.platform.os != null and .platform.os != \"unknown\") | .platform | \"\\(.os)/\\(.architecture)\\(if .variant then \"/\" + .variant else \"\" end)\"'\n\nlinux/amd64\nlinux/arm64\nlinux/ppc64le\nlinux/s390x\n```\n\n## Environment variables\n\n* `TZ`: The timezone assigned to the container (default `UTC`)\n* `PUID`: EJT user id (default `1000`)\n* `PGID`: EJT group id (default `1000`)\n* `EJT_ACCOUNT_USERNAME`: Username of your EJT account to download the license server. Can be empty if you use a custom base url to download the ejtserver tarball without HTTP authentication\n* `EJT_ACCOUNT_PASSWORD`: Password linked to the username\n* `EJTSERVER_VERSION`: EJT License Server version to install. See the [official changelog](https://www.ej-technologies.com/license/changelog.html) for a curated list. (default `1.16.2`)\n* `EJTSERVER_DOWNLOAD_BASEURL`: Base url where EJT License Server unix tarball can be downloaded (default `https://licenseserver.ej-technologies.com`)\n* `EJTSERVER_LICENSES`: Your floating licenses (comma delimited)\n* `EJTSERVER_DISPLAY_HOSTNAMES`: If you want to see host names instead of IP addresses (default `false`)\n* `EJTSERVER_LOG_LEVEL`: [Log4J log level](https://logging.apache.org/log4j/2.x/manual/customloglevels.html) of the EJT License Server (default `INFO`)\n\n\u003e 💡 `EJT_ACCOUNT_USERNAME_FILE`, `EJT_ACCOUNT_PASSWORD_FILE` and\n\u003e `EJTSERVER_LICENSES_FILE` can be used to fill in the value from a file,\n\u003e especially for Docker's secrets feature.\n\n## Volumes\n\n* `/data`: Contains configuration and the downloaded EJT License Server unix tarball\n\nIn this folder you will find those files:\n\n* `ejtserver_unix_*.tar.gz`: The downloaded EJT License Server unix tarball\n* `ip.txt`: If you would like to allow only certain IP addresses, enter one IP address per line. If no IP addresses are entered, all IP addresses will be allowed. You can specify IP masks, such as 192.168.2.*\n* `users.txt`: If you would like to allow only certain usernames, please enter one username per line. If no usernames are entered, all usernames will be allowed\n\n\u003e :warning: Note that the volumes should be owned by the user/group with the\n\u003e specified `PUID` and `PGID`. If you don't give the volume correct permissions,\n\u003e the container may not start.\n\n## Ports\n\n* `11862`: License server port\n\n## Commands\n\nYou also have access to these commands from the container:\n\n* `ejtserver`: This is the license server the daemon launch script. Commands available: `start|stop|run|run-redirect|status|restart|force-reload`.\n* `admin`: Admin tool command line based of ejtserver. It allows you to list all active connections and to terminate selected connections. In addition, you can check out a temporary license for use in environments that have no access to the floating license server\n\nUsage:\n\n```bash\ndocker compose exec ejtserver admin list\n```\n\n## Usage\n\n### Docker Compose\n\nDocker compose is the recommended way to run this image. Copy the content of\nfolder [examples/compose](examples/compose) in `/var/ejtserver/` on your host\nfor example. Edit the compose and env files with your preferences and run the\nfollowing commands:\n\n```bash\ndocker compose up -d\ndocker compose logs -f\n```\n\n### Command line\n\nYou can also use the following minimal command:\n\n```bash\ndocker run -d -p 11862:11862 --name ejtserver \\\n  -e TZ=\"Europe/Paris\" \\\n  -e EJT_ACCOUNT_USERNAME=\"my_ejt_username\" \\\n  -e EJT_ACCOUNT_PASSWORD=\"my_ejt_password\" \\\n  -e EJTSERVER_LICENSES=\"0-0123-0123456789\" \\\n  -v $(pwd)/data:/data \\\n  crazymax/ejtserver:latest\n```\n\n## Upgrade\n\nRecreate the container whenever I push an update:\n\n```bash\ndocker compose pull\ndocker compose up -d\n```\n\n## Notes\n\n### How to use your floating license?\n\n[ej-technologies'](https://www.ej-technologies.com/) products offer a floating\nlicense mode in the license dialog. Choose `Help -\u003e Enter License Key` from the\nmain menu in the JProfiler GUI or the install4j IDE and select the\n**Floating license** radio button.\n\nThe \"Name\" and \"Company\" fields are informational only, unless you choose to\nrestrict the allowed values for the \"Name\" field as described in README.TXT.\nIn the license server field you have to enter the hostname of the computer\nwhere the license server is running. Instead of a host name, an IP address can\nalso be used.\n\nIf have a floating license for a certain major version of a product, you can\nuse older versions of the same product with that floating license as well.\n\nShould you require any additional assistance, please contact\n**support@ej-technologies.com**.\n\n### User groups\n\nIf you want to partition keys to different groups of users, you can define\ngroups in the file `license.txt` and the access control files `users.txt` and\n`ip.txt` by inserting group headers:\n\n```\n   [group]\n```\n\nAll entries after a group header belong to that group until a new group is\nstarted. If no group has been started, entries are added to the \"default\" group.\n\nUsers are assigned to a group based on the defined groups in the access control\nfiles. If users are defined in `users.txt`, the group is determined by the that\nfile. If the resulting group is the default group, the `ip.txt` file will be\nused for determining the associated group. If the users.txt file is empty, only\nthe ip.txt file will be used.\n\nIn order to partition a single key to different groups in the `license.txt`\nfile, add the key to multiple groups with the following syntax:\n\n```\n   n:key\n```\n\nwhere n is the number of concurrent users that should be assigned to the\ncurrent group. Use different values of `n` in different groups that add up to\nthe maximum number of current users for the `key`. For example:\n\n```\n[groupA]\n4:F-95-10-xxx\n[groupB]\n6:F-95-10-xxx\n```\n\nsplits the 10-user key F-95-10-xxx into 4 concurrent users for `[groupA]` and 6\nconcurrent users for `[groupB]`. In `users.txt`, the groups would be defined as:\n\n```\n[groupA]\nbob\nalice\n...\n\n\n[groupB]\ncarol\njohn\n...\n```\n\nAlternatively, the `ip.txt` file could define groups as:\n\n```\n[groupA]\n192.162.1.*\n[groupB]\n192.162.2.*\n```\n\nGroup names are shown in the log file next to the username.\n\n## Contributing\n\nWant to contribute? Awesome! The most basic way to show your support is to star\nthe project, or to raise issues. You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max)\nor by making a [PayPal donation](https://www.paypal.me/crazyws) to ensure this\njourney continues indefinitely!\n\nThanks again for your support, it is much appreciated! :pray:\n\n## License\n\nMIT. See `LICENSE` for more details.\u003cbr /\u003e\nAnd a special thanks to @ingokegel and [ej-technologies'](https://www.ej-technologies.com/)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazy-max%2Fdocker-ejtserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrazy-max%2Fdocker-ejtserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazy-max%2Fdocker-ejtserver/lists"}