Skip to content

Commit bfc169e

Browse files
author
root
committed
SSL support add with Traefik 2.0 deployment
1 parent 7efd84f commit bfc169e

File tree

3 files changed

+120
-3
lines changed

3 files changed

+120
-3
lines changed

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,13 @@ and create docker network for all the containers you would expose on the web
3030

3131
```docker network create traefik```
3232

33+
By default you'll get SSL certificate provided by letsencrypt, please specify your email address if you need https support, for example:
34+
35+
```export useremail=team@mydataverse.org```
36+
3337
* Make sure you have docker and docker-compose installed
34-
* Run `docker-compose up` so start Dataverse
38+
* Run `docker-compose up` so start Dataverse on your domain name with SSL support
39+
* or run `docker-compose up -f docker-compose-local.yml` to try Dataverse on localhost
3540

3641
Standalone Dataverse should be running on dataverse-dev.localhost or dataverse-dev.sshopencloud.eu if you've selected the domain.
3742

docker-compose-local.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
version: '3'
2+
services:
3+
reverse-proxy:
4+
# The official v2 Traefik docker image
5+
image: traefik:v2.2
6+
# Enables the web UI and tells Traefik to listen to docker
7+
command:
8+
- "--api.insecure=true"
9+
- "--providers.docker=true"
10+
- "--providers.docker.exposedbydefault=false"
11+
- "--entrypoints.web.address=:80"
12+
- "--"
13+
ports:
14+
# The HTTP port
15+
- "80:80"
16+
# The Web UI (enabled by --api.insecure=true)
17+
- "8089:8080"
18+
volumes:
19+
# So that Traefik can listen to the Docker events
20+
- /var/run/docker.sock:/var/run/docker.sock
21+
22+
postgres:
23+
container_name: postgres
24+
ports:
25+
- "5432:5432"
26+
image: library/postgres:10.13
27+
restart: unless-stopped
28+
29+
environment:
30+
- "LC_ALL=C.UTF-8"
31+
- "POSTGRES_DB=dvndb"
32+
- "POSTGRES_USER=dvnuser"
33+
- "POSTGRES_PASSWORD=dvnsecret"
34+
- "POSTGRES_PORT=5432"
35+
volumes:
36+
- database-data:/var/lib/postgresql/data/ # persist data even if container shuts down
37+
38+
solr:
39+
image: ekoindarto/solr-cvm:latest
40+
container_name: solr
41+
privileged: true
42+
ports:
43+
- "8983:8983"
44+
environment:
45+
- "SOLR_HOST=solr"
46+
- "SOLR_PORT=8983"
47+
- "SOLR_JAVA_MEM=-Xms1g -Xmx1g"
48+
volumes:
49+
- solr-data:/opt/solr/server/solr/collection1/data
50+
labels:
51+
- "traefik.enable=true"
52+
- "traefik.http.routers.solr.rule=Host(`solr.${traefikhost}`)"
53+
- "traefik.http.services.solr.loadbalancer.server.port=8983"
54+
55+
whoami:
56+
image: "containous/whoami"
57+
container_name: "whoami"
58+
labels:
59+
- "traefik.enable=true"
60+
- "traefik.http.routers.whoami.entrypoints=web"
61+
- "traefik.http.routers.whoami.rule=Host(`whoami.${traefikhost}`)"
62+
63+
dataverse:
64+
image: ekoindarto/dataverse-cvm:5.0
65+
container_name: dataverse
66+
privileged: true
67+
ports:
68+
- "443:443"
69+
- "4848:4848"
70+
- "8085:8080"
71+
environment:
72+
- "CVM_SERVER_NAME=CESSDA" #Optional
73+
- "CVM_SERVER_URL=http://cv.dataverse.org.ua"
74+
- "CVM_TSV_SOURCE=https://raw.githubusercontent.com/ekoi/speeltuin/master/resources/CMM_Custom_MetadataBlock.tsv" #Optional
75+
- "OLD_WAR_FILE=https://github.com/IQSS/dataverse-docker/releases/download/5.0.1-cvm/dataverse-5_0_cvm.war"
76+
- "GIT_SOURCE=https://github.com/ekoi/dataverse"
77+
- "GIT_BRANCH=v5.0-cvm-autocomplete"
78+
- "LANG=en"
79+
- "cvManager=http://"
80+
- "BUNDLEPROPERTIES=Bundle.properties"
81+
- "ADMIN_EMAIL=admin@localhost"
82+
- "MAIL_SERVER=mailrelay"
83+
- "POSTGRES_SERVER=postgres"
84+
- "POSTGRES_PORT=5432"
85+
- "POSTGRES_DATABASE=dvndb"
86+
- "POSTGRES_USER=dvnuser"
87+
- "PGPASSWORD=dvnsecret"
88+
- "SOLR_LOCATION=solr:8983"
89+
- "TWORAVENS_LOCATION=NOT INSTALLED"
90+
- "RSERVE_HOST=localhost"
91+
- "RSERVE_PORT=6311"
92+
- "RSERVE_USER=rserve"
93+
- "RSERVE_PASSWORD=rserve"
94+
- "JVM_OPTS='-Xmx1g -Xms1g -XX:MaxPermSize=2g -XX:PermSize=2g'"
95+
depends_on:
96+
- postgres
97+
- solr
98+
volumes:
99+
- dataverse-data:/usr/local/payara5/glassfish/domains/domain1/autodeploy
100+
labels:
101+
- "traefik.enable=true"
102+
- "traefik.http.routers.dataverse.rule=Host(`dataverse-dev.${traefikhost}`)"
103+
- "traefik.http.services.dataverse.loadbalancer.server.port=8080"
104+
volumes:
105+
database-data:
106+
solr-data:
107+
dataverse-data:
108+
109+
networks:
110+
dvn:
111+
driver: bridge
112+

docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ services:
1515
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
1616
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
1717
- "--certificatesresolvers.myresolver.acme.tlschallenge=true" #Enable TLS-ALPN-01 to generate and renew ACME certs
18-
- "--certificatesresolvers.myresolver.acme.email=team@coronawhy.org"
18+
- "--certificatesresolvers.myresolver.acme.email=${useremail}"
1919
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
2020
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
2121
ports:
@@ -124,7 +124,7 @@ services:
124124
- dataverse-data:/usr/local/payara5/glassfish/domains/domain1/autodeploy
125125
labels:
126126
- "traefik.enable=true"
127-
- "traefik.http.routers.dataverse.rule=Host(`dataverse-dev.${traefikhost}`)"
127+
- "traefik.http.routers.dataverse.rule=Host(`dataverse.${traefikhost}`)"
128128
- "traefik.http.services.dataverse.loadbalancer.server.port=8080"
129129
- "traefik.http.routers.dataverse.tls=true"
130130
- "traefik.http.routers.dataverse.tls.certresolver=myresolver"

0 commit comments

Comments
 (0)