Compare commits

..
4 Commits
Author SHA1 Message Date
gregandev 041e887a8b maj readme 2022-11-09 12:56:32 +01:00
gregandev a96cfffdb4 maj readme 2022-11-09 12:56:11 +01:00
gregandev 0c088215fc push 2022-07-16 21:06:44 +02:00
gregandev 98c4381f38 push 2022-07-16 21:06:36 +02:00
6 changed files with 311 additions and 0 deletions
+96
View File
@@ -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
+12
View File
@@ -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
+82
View File
@@ -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;
}
+82
View File
@@ -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;
}
+39
View File
@@ -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=