Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bd0029c87b | ||
|
|
00d9088814 | ||
|
|
df68b90d58 | ||
|
|
07221d4e58 | ||
|
|
0ac0a4c060 | ||
|
|
8265c2539f |
@@ -1,5 +0,0 @@
|
||||
/.dev
|
||||
|
||||
# Jetbrains
|
||||
/.idea
|
||||
/*.iml
|
||||
@@ -5,7 +5,7 @@ services:
|
||||
|
||||
env:
|
||||
global:
|
||||
- VERSION=15802
|
||||
- VERSION=16429
|
||||
- GITHUB_REPO=crazy-max/docker-jetbrains-license-server
|
||||
- DOCKER_USERNAME=crazymax
|
||||
- DOCKER_REPONAME=jetbrains-license-server
|
||||
@@ -37,7 +37,7 @@ install:
|
||||
docker build --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||
--build-arg VCS_REF=${TRAVIS_COMMIT::8} \
|
||||
--build-arg VERSION=${VERSION} \
|
||||
-t $DOCKER_USERNAME/$DOCKER_REPONAME .
|
||||
-t $DOCKER_USERNAME/$DOCKER_REPONAME -f ./docker/Dockerfile ./docker
|
||||
|
||||
before_script:
|
||||
- docker run -d -p 8000:80 -e JLS_VIRTUAL_HOSTS=$WAN_IP --name $DOCKER_REPONAME $DOCKER_USERNAME/$DOCKER_REPONAME
|
||||
|
||||
13
CHANGELOG.md
13
CHANGELOG.md
@@ -1,5 +1,18 @@
|
||||
# Changelog
|
||||
|
||||
## 16429-RC2 (2018/04/20)
|
||||
|
||||
* JetBrains accidentally published 16743. Revert to 16429 (Issue #1)
|
||||
|
||||
## 16743-RC1 (2018/04/20)
|
||||
|
||||
* Upgrade to JetBrains License Server 16743
|
||||
* Replace Nginx + Let's Encrypt with Traefik (see docker-compose)
|
||||
|
||||
## 16429-RC1 (2018/03/20)
|
||||
|
||||
* Upgrade to JetBrains License Server 16429
|
||||
|
||||
## 15802-RC2 (2018/02/16)
|
||||
|
||||
* Add `JLS_CONTEXT` and `JLS_REPORT_OUT_OF_LICENSE` env vars
|
||||
|
||||
17
README.md
17
README.md
@@ -24,21 +24,20 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other
|
||||
|
||||
### From docker-compose
|
||||
|
||||
* Reverse proxy with [nginx-proxy](https://github.com/jwilder/nginx-proxy)
|
||||
* Creation/renewal of Let's Encrypt certificates automatically with [letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion)
|
||||
* [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates
|
||||
|
||||
## Docker
|
||||
|
||||
### Environment variables
|
||||
|
||||
* `TZ` : The timezone assigned to the container (default to `UTC`)
|
||||
* `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 to : `/`)
|
||||
* `JLS_ACCESS_CONFIG` : JSON file to configure [user restrictions](https://www.jetbrains.com/help/license_server/configuring_user_restrictions.html) (default to `/data/access-config.json`)
|
||||
* `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 to : `0` = disabled)
|
||||
* `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 to `25`)
|
||||
* `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
|
||||
@@ -54,9 +53,11 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other
|
||||
|
||||
## Usage
|
||||
|
||||
Docker compose is the recommended way to run this image. You can use the following [docker compose template](docker-compose.yml), then run the container :
|
||||
Docker compose is the recommended way to run this image. You can use the following [docker compose template](docker/docker-compose.yml), then run the container :
|
||||
|
||||
```bash
|
||||
touch acme.json
|
||||
chmod 600 acme.json
|
||||
docker-compose up -d
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
proxy:
|
||||
image: jwilder/nginx-proxy:alpine
|
||||
labels:
|
||||
- com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- ./proxy/conf.d:/etc/nginx/conf.d:rw
|
||||
- ./proxy/vhost.d:/etc/nginx/vhost.d:rw
|
||||
- ./proxy/html:/usr/share/nginx/html:rw
|
||||
- ./proxy/certs:/etc/nginx/certs:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
restart: always
|
||||
|
||||
letsencrypt:
|
||||
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||
depends_on:
|
||||
- proxy
|
||||
volumes:
|
||||
- ./proxy/certs:/etc/nginx/certs:rw
|
||||
- ./proxy/vhost.d:/etc/nginx/vhost.d:rw
|
||||
- ./proxy/html:/usr/share/nginx/html:rw
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
restart: always
|
||||
|
||||
app:
|
||||
image: crazymax/jetbrains-license-server:latest
|
||||
depends_on:
|
||||
- letsencrypt
|
||||
- proxy
|
||||
volumes:
|
||||
- ./data:/data
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
- JLS_VIRTUAL_HOSTS=jetbrains-license-server.example.com,an-other-host.example.com
|
||||
- JLS_CONTEXT=/
|
||||
- JLS_ACCESS_CONFIG=/data/access-config.json
|
||||
- JLS_STATS_RECIPIENTS=webmaster@example.com,an-other-address@example.com
|
||||
- JLS_REPORT_OUT_OF_LICENSE=90
|
||||
- JLS_SMTP_SERVER=smtp.example.com
|
||||
- JLS_SMTP_PORT=25
|
||||
- JLS_SMTP_USERNAME=smtp@example.com
|
||||
- JLS_SMTP_PASSWORD=
|
||||
- JLS_STATS_FROM=jetbrains@example.com
|
||||
- JLS_STATS_TOKEN=1BFC67F51AAF99E85C2347B72E62C
|
||||
- VIRTUAL_HOST=jetbrains-license-server.example.com
|
||||
- LETSENCRYPT_HOST=jetbrains-license-server.example.com
|
||||
- LETSENCRYPT_EMAIL=webmaster@example.com
|
||||
restart: always
|
||||
1
docker/.dockerignore
Normal file
1
docker/.dockerignore
Normal file
@@ -0,0 +1 @@
|
||||
/docker-compose.yml
|
||||
@@ -19,8 +19,8 @@ RUN apk --update --no-cache add tzdata \
|
||||
&& rm -rf /var/cache/apk/* /tmp/*
|
||||
|
||||
ENV JLS_PATH="/opt/jetbrains-license-server" \
|
||||
JLS_VERSION="15802" \
|
||||
JLS_SHA256="e0030be1fd06e2db19576363a388d8b84e7b33c9d48c54f0cfcdc032ddd96181"
|
||||
JLS_VERSION="16429" \
|
||||
JLS_SHA256="4e3c6ecbfd95467e2332589321d259e827db8dfc6a5279f5659e22530cdb6443"
|
||||
|
||||
ADD entrypoint.sh /entrypoint.sh
|
||||
|
||||
62
docker/docker-compose.yml
Normal file
62
docker/docker-compose.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:alpine
|
||||
command:
|
||||
- --logLevel=INFO
|
||||
- --defaultentrypoints=http,https
|
||||
- --entryPoints=Name:http Address::80 Redirect.EntryPoint:https
|
||||
- --entryPoints=Name:https Address::443 TLS
|
||||
- --docker
|
||||
- --docker.exposedbydefault=false
|
||||
- --docker.domain=example.com
|
||||
- --acme=false
|
||||
- --acme.acmelogging=true
|
||||
- --acme.email=webmaster@example.com
|
||||
- --acme.storage=acme.json
|
||||
- --acme.entryPoint=https
|
||||
- --acme.onhostrule=true
|
||||
- --acme.httpchallenge=true
|
||||
ports:
|
||||
- target: 80
|
||||
published: 80
|
||||
protocol: tcp
|
||||
mode: host
|
||||
- target: 443
|
||||
published: 443
|
||||
protocol: tcp
|
||||
mode: host
|
||||
volumes:
|
||||
- ./acme.json:/acme.json
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
restart: always
|
||||
|
||||
app:
|
||||
image: crazymax/jetbrains-license-server:latest
|
||||
depends_on:
|
||||
- traefik
|
||||
volumes:
|
||||
- jetbrains-license-server:/data
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.backend=jetbrains-license-server
|
||||
- traefik.port=80
|
||||
- traefik.frontend.rule=Host:jetbrains-license-server.example.com,an-other-host.example.com
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
- JLS_VIRTUAL_HOSTS=jetbrains-license-server.example.com,an-other-host.example.com
|
||||
- JLS_CONTEXT=/
|
||||
- JLS_ACCESS_CONFIG=/data/access-config.json
|
||||
- JLS_STATS_RECIPIENTS=webmaster@example.com,an-other-address@example.com
|
||||
- JLS_REPORT_OUT_OF_LICENSE=90
|
||||
- JLS_SMTP_SERVER=smtp.example.com
|
||||
- JLS_SMTP_PORT=25
|
||||
- JLS_SMTP_USERNAME=smtp@example.com
|
||||
- JLS_SMTP_PASSWORD=
|
||||
- JLS_STATS_FROM=jetbrains@example.com
|
||||
- JLS_STATS_TOKEN=1BFC67F51AAF99E85C2347B72E62C
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
jetbrains-license-server:
|
||||
Reference in New Issue
Block a user