Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
041e887a8b | ||
|
|
a96cfffdb4 | ||
|
|
0c088215fc | ||
|
|
98c4381f38 |
@@ -0,0 +1,96 @@
|
||||
# workadventure
|
||||
|
||||
## Description
|
||||
|
||||
Ce projet a pour but de déployer la stack workadventure (https://github.com/thecodingmachine/workadventure) en auto-hébergement.
|
||||
|
||||
## Pré-requis
|
||||
|
||||
Pour déployer cette stack, vous aurez besoin:
|
||||
- Une machine pour héberger le serveur (proc 3Ghz, 4Go ram minimum)
|
||||
- Un nom de domaine pour pointer vers votre serveur
|
||||
- L'accès à votre box internet pour la redirection des ports
|
||||
|
||||
## Configuration / Installation
|
||||
|
||||
> Note: Si vous utilisez déjà Nginx en mode applicatif, utiliser le reverse-proxy.conf pour faire votre virtualhost qui devrat pointer vers l'IP du conteneur Traefik sur le docker network (voir plus bas)
|
||||
|
||||
### Nginx proxy manager
|
||||
|
||||
```bash
|
||||
cd nginx-proxy-manager/
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
- L'interface est disponible à cette adresse:
|
||||
http://your-ip-or-domain:81
|
||||
|
||||
- identifiants:
|
||||
- user: admin@example.com
|
||||
- mdp: changeme
|
||||
|
||||
### Workadventure
|
||||
|
||||
- Renseigner le nom de domaine aux quatres endroits:
|
||||
```bash
|
||||
cd workadventure/
|
||||
nano .env
|
||||
```
|
||||
|
||||
- Récupérer le endpoint de la stack:
|
||||
```bash
|
||||
docker network list
|
||||
docker network inspect <your workadventure network name>
|
||||
```
|
||||
|
||||
### Nginx-proxy-manager 2
|
||||
|
||||
- Sur l'interface web du Nginx-proxy-manager créer une "Proxy Host entry"
|
||||
|
||||
... IMAGE ...
|
||||
|
||||
- Renseigner votre nom de domaine dans l'URL
|
||||
|
||||
- Renseigner le endpoint dans la config du Nginx proxy manager avec le port 9999
|
||||
|
||||
- Cocher les cases Block Common Exploits et Websockets, puis sauvegarder
|
||||
|
||||
... IMAGE ...
|
||||
|
||||
- Créer les certificats SSL:
|
||||
|
||||
... IMAGE 1 ...
|
||||
|
||||
... IMAGE 2 ...
|
||||
|
||||
... IMAGE 3 ...
|
||||
|
||||
### Deployer
|
||||
|
||||
```bash
|
||||
# NGINX PROXY MANAGER
|
||||
cd nginx-proxy-manager/
|
||||
docker-compose up -d
|
||||
|
||||
# WORKADVENTURE
|
||||
cd workadventure/
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Map building
|
||||
|
||||
tuto: https://workadventu.re/map-building/
|
||||
|
||||
## Roadmap
|
||||
|
||||
- SSO login
|
||||
- Faire une map de fou!
|
||||
|
||||
## Contributing
|
||||
|
||||
- Me
|
||||
- The others
|
||||
|
||||
## License
|
||||
|
||||
... OPEN SOURCE GPL3
|
||||
@@ -0,0 +1,12 @@
|
||||
version: '3'
|
||||
services:
|
||||
app:
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '80:80'
|
||||
- '81:81'
|
||||
- '443:443'
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
@@ -0,0 +1,82 @@
|
||||
#workadventure
|
||||
upstream workadventure {
|
||||
server 172.21.0.1:9999;
|
||||
}
|
||||
|
||||
# HTTP
|
||||
server {
|
||||
|
||||
listen 80;
|
||||
server_name *.workadventure.domain.tld;
|
||||
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
|
||||
location / {
|
||||
proxy_redirect off;
|
||||
proxy_pass http://workadventure;
|
||||
}
|
||||
|
||||
# Add Headers for proxy mode
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Accept-Encoding "";
|
||||
# add_header Access-Control-Allow-Origin *;
|
||||
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
proxy_http_version 1.1;
|
||||
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name *.workadventure.domain.tld;
|
||||
|
||||
# Add Headers for proxy mode
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
# proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Accept-Encoding "";
|
||||
# add_header Access-Control-Allow-Origin *;
|
||||
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
proxy_http_version 1.1;
|
||||
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
|
||||
# Upload limit and security
|
||||
client_max_body_size 10000m;
|
||||
server_tokens off;
|
||||
|
||||
# Buffer_size
|
||||
proxy_buffer_size 512k;
|
||||
proxy_buffers 4 512k;
|
||||
proxy_busy_buffers_size 512k;
|
||||
|
||||
#fastcgi_buffers 16 32k;
|
||||
#fastcgi_buffer_size 64k;
|
||||
#fastcgi_busy_buffers_size 64k;
|
||||
|
||||
# SSL parameters
|
||||
ssl_session_timeout 30m;
|
||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
||||
|
||||
# logs
|
||||
access_log /var/log/nginx/workadventure.access.log;
|
||||
error_log /var/log/nginx/workadventure.error.log;
|
||||
|
||||
# Redirect requests to https
|
||||
location / {
|
||||
proxy_redirect off;
|
||||
proxy_pass http://workadventure;
|
||||
}
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/workadventure.domaine.tld/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/workadventure.domaine.tld/privkey.pem;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
#workadventure
|
||||
upstream workadventure {
|
||||
server 172.21.0.1:9999;
|
||||
}
|
||||
|
||||
# HTTP
|
||||
server {
|
||||
|
||||
listen 80;
|
||||
server_name *.workadventure.domain.tld;
|
||||
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
|
||||
location / {
|
||||
proxy_redirect off;
|
||||
proxy_pass http://workadventure;
|
||||
}
|
||||
|
||||
# Add Headers for proxy mode
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Accept-Encoding "";
|
||||
# add_header Access-Control-Allow-Origin *;
|
||||
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
proxy_http_version 1.1;
|
||||
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name *.workadventure.domain.tld;
|
||||
|
||||
# Add Headers for proxy mode
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
# proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header Accept-Encoding "";
|
||||
# add_header Access-Control-Allow-Origin *;
|
||||
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
proxy_http_version 1.1;
|
||||
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
|
||||
# Upload limit and security
|
||||
client_max_body_size 10000m;
|
||||
server_tokens off;
|
||||
|
||||
# Buffer_size
|
||||
proxy_buffer_size 512k;
|
||||
proxy_buffers 4 512k;
|
||||
proxy_busy_buffers_size 512k;
|
||||
|
||||
#fastcgi_buffers 16 32k;
|
||||
#fastcgi_buffer_size 64k;
|
||||
#fastcgi_busy_buffers_size 64k;
|
||||
|
||||
# SSL parameters
|
||||
ssl_session_timeout 30m;
|
||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
||||
|
||||
# logs
|
||||
access_log /var/log/nginx/workadventure.access.log;
|
||||
error_log /var/log/nginx/workadventure.error.log;
|
||||
|
||||
# Redirect requests to https
|
||||
location / {
|
||||
proxy_redirect off;
|
||||
proxy_pass http://workadventure;
|
||||
}
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/workadventure.domaine.tld/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/workadventure.domaine.tld/privkey.pem;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# The base domain
|
||||
DOMAIN=votre-nom-de-domaine.com
|
||||
DEBUG_MODE=false
|
||||
JITSI_URL=meet.jit.si
|
||||
|
||||
# Domain redirections
|
||||
FRONT_URL=play.votre-nom-de-domaine.com
|
||||
PUSHER_HOST=pusher.votre-nom-de-domaine.com
|
||||
BACK_HOST=api.votre-nom-de-domaine.com
|
||||
|
||||
# If your Jitsi environment has authentication set up, you MUST set JITSI_PRIVATE_MODE to>
|
||||
JITSI_PRIVATE_MODE=false
|
||||
JITSI_ISS=
|
||||
SECRET_JITSI_KEY=
|
||||
|
||||
# URL of the TURN server (needed to "punch a hole" through some networks for P2P connecti>
|
||||
#TURN_SERVER=
|
||||
#TURN_USER=
|
||||
#TURN_PASSWORD=
|
||||
|
||||
# The URL used by default, in the form: "/_/global/map/url.json"
|
||||
START_ROOM_URL=/_/global/GregLebreton.github.io/adventure-map/map.json
|
||||
|
||||
# The email address used by Let's encrypt to send renewal warnings (compulsory)
|
||||
ACME_EMAIL=
|
||||
|
||||
# Set to true to allow using this instance as a target for the apiUrl property
|
||||
FEDERATE_PUSHER=false
|
||||
|
||||
# Server settings
|
||||
MAX_PER_GROUP=100
|
||||
MAX_USERNAME_LENGTH=25
|
||||
DISABLE_NOTIFICATIONS=false
|
||||
SKIP_RENDER_OPTIMIZATIONS=false
|
||||
|
||||
# Secrets
|
||||
SECRET_KEY=
|
||||
ADMIN_API_TOKEN=
|
||||
ADMIN_API_URL=
|
||||
Reference in New Issue
Block a user