Initial Commit
This commit is contained in:
commit
87b68473c9
|
|
@ -0,0 +1,6 @@
|
||||||
|
[submodule "com2014-server"]
|
||||||
|
path = com2014-server
|
||||||
|
url = https://gitlab.trustai.uk/wuhanstudio/com2014-server
|
||||||
|
[submodule "com2014-template"]
|
||||||
|
path = com2014-template
|
||||||
|
url = https://gitlab.trustai.uk/wuhanstudio/com2014-template
|
||||||
|
|
@ -0,0 +1,94 @@
|
||||||
|
## Clone Git repo
|
||||||
|
|
||||||
|
```
|
||||||
|
$ git clone https://gitlab.trustai.uk/wuhanstudio/com2014
|
||||||
|
$ cd com2014
|
||||||
|
$ git submodule init && git submodule update
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## TSP-Template (Python)
|
||||||
|
|
||||||
|
Prerequisites:
|
||||||
|
|
||||||
|
- docker
|
||||||
|
- python3
|
||||||
|
|
||||||
|
Install:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd com2014-template/template
|
||||||
|
$ docker build -t com2014-tsp .
|
||||||
|
```
|
||||||
|
|
||||||
|
Copy template for JupyterHub:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd com2014-template
|
||||||
|
$ cp -r Workshop* images output template /etc/skel
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Jupyter Hub
|
||||||
|
|
||||||
|
Prerequisites:
|
||||||
|
|
||||||
|
- python3
|
||||||
|
- nodejs
|
||||||
|
|
||||||
|
|
||||||
|
Install:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ python3 -m pip install jupyterhub
|
||||||
|
$ npm install -g configurable-http-proxy
|
||||||
|
$ python3 -m pip install notebook
|
||||||
|
|
||||||
|
$ cd com2014
|
||||||
|
$ cp ./jupyterhub_config.py /etc/jupyterhub/jupyterhub_config.py
|
||||||
|
$ jupyterhub -f /etc/jupyterhub/jupyterhub_config.py
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## TSP-Server (NodeJS)
|
||||||
|
|
||||||
|
Prerequisites:
|
||||||
|
|
||||||
|
- nodejs
|
||||||
|
|
||||||
|
Development:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd com2014-server
|
||||||
|
$ npm install
|
||||||
|
$ node server.js
|
||||||
|
```
|
||||||
|
|
||||||
|
Deployment (Local):
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd com2014-server
|
||||||
|
|
||||||
|
$ ln -s `PWD`/uploads /uploads
|
||||||
|
$ ln -s `PWD`/output /output
|
||||||
|
$ cp leaderboard.json.template leaderboard.json
|
||||||
|
|
||||||
|
$ docker build -t com2014-server .
|
||||||
|
$ docker container run -d -p 80:8080 -v /var/run/docker.sock:/var/run/docker.sock -v /uploads/:/app/uploads/ -v /output/:/app/output/ com2014-server
|
||||||
|
```
|
||||||
|
|
||||||
|
Furthur Deployment (Cloud)
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd com2014
|
||||||
|
$ docker swarm init && docker network create --driver=overlay traefik-public
|
||||||
|
$ mkdir ./letsencrypt
|
||||||
|
$ docker stack deploy -c traefik-compose.yml traefik
|
||||||
|
|
||||||
|
$ cd com2014-server
|
||||||
|
$ docker stack deploy -c tsp-compose.yml tsp
|
||||||
|
```
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit f6d23303790c1ee34e97bc117037cc618cd43e8c
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 352639f91bd92e2077eb32b64be522e7e6b0158d
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,36 @@
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
traefik:
|
||||||
|
# The official v2.0 Traefik docker image
|
||||||
|
image: traefik:v2.0
|
||||||
|
# Enables the web UI and tells Traefik to listen to docker
|
||||||
|
command:
|
||||||
|
#- "--api.insecure=true"
|
||||||
|
- "--providers.docker=true"
|
||||||
|
- "--providers.docker.swarmMode=true"
|
||||||
|
- "--providers.docker.exposedbydefault=false"
|
||||||
|
- "--entrypoints.web.address=:80"
|
||||||
|
- "--entryPoints.websecure.address=:443"
|
||||||
|
- "--certificatesresolvers.myhttpchallenge.acme.httpchallenge=true"
|
||||||
|
- "--certificatesresolvers.myhttpchallenge.acme.httpchallenge.entrypoint=web"
|
||||||
|
- "--certificatesresolvers.myhttpchallenge.acme.email=wuhanstudio@qq.com"
|
||||||
|
- "--certificatesresolvers.myhttpchallenge.acme.storage=/letsencrypt/acme.json"
|
||||||
|
ports:
|
||||||
|
#- "8080:8080"
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
# So that Traefik can listen to the Docker events
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- ./letsencrypt:/letsencrypt
|
||||||
|
networks:
|
||||||
|
- traefik-public
|
||||||
|
deploy:
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.role == manager
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik-public:
|
||||||
|
external: true
|
||||||
Loading…
Reference in New Issue