diff --git a/install.md b/install.md new file mode 100644 index 0000000..ee583b3 --- /dev/null +++ b/install.md @@ -0,0 +1,171 @@ +# Cognhacker + +## Notes d’installation de la VM + +- Déploiement Ubuntu 22.04.1 LTS avec le package OpenSSH + Docker +- Changement des MDP root et cognhacker +- Installation d’utilitaires : ``apt install -y curl wget git screen htop vim nano sudo tree iperf3 unzip sshfs nmap apache2`` +- MAJ et redémarrage +- Mise en service d’apache et clone du site +- ``echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf`` + +## Installation de WorkAdventure + +Quelques tutos : + +* https://shownotes.opensourceisawesome.com/virtual-office-to-virtual-meetings-with-workadventure/ +* https://wiki.techinc.nl/Work-Adventure/install +* https://github.com/thecodingmachine/workadventure/tree/master/contrib/docker + +Création de l’arborescence : +```` +/root/ +├── workad +│   ├── docker-compose.yml +│   └── .env +/srv/ +└── www + ├── .git + ├── index.html + └── README.md +```` + +**docker-compose.yml** +```` +version: "3.3" +services: + reverse-proxy: + image: traefik:v2.5 + command: + - --log.level=WARN + - --providers.docker + - --entryPoints.web.address=:80 + ports: + - "9999:80" + depends_on: + - pusher + - front + volumes: + - /var/run/docker.sock:/var/run/docker.sock + restart: unless-stopped + + front: + #build: + # context: ./ + # dockerfile: front/Dockerfile + image: thecodingmachine/workadventure-front:v1.12.11 + environment: + DEBUG_MODE: "$DEBUG_MODE" + JITSI_URL: $JITSI_URL + JITSI_PRIVATE_MODE: "$JITSI_PRIVATE_MODE" + PUSHER_URL: /pusher + ADMIN_URL: /admin + TURN_SERVER: "${TURN_SERVER}" + TURN_USER: "${TURN_USER}" + TURN_PASSWORD: "${TURN_PASSWORD}" + MAX_PER_GROUP: "${MAX_PER_GROUP}" + MAX_USERNAME_LENGTH: "${MAX_USERNAME_LENGTH}" + START_ROOM_URL: "${START_ROOM_URL}" + DISABLE_NOTIFICATIONS: "${DISABLE_NOTIFICATIONS}" + SKIP_RENDER_OPTIMIZATIONS: "${SKIP_RENDER_OPTIMIZATIONS}" + labels: + - "traefik.http.routers.front.rule=PathPrefix(`/`)" + - "traefik.http.routers.front.entryPoints=web" + - "traefik.http.services.front.loadbalancer.server.port=80" + - "traefik.http.routers.front.service=front" + restart: unless-stopped + + pusher: + #build: + # context: ./ + # dockerfile: pusher/Dockerfile + image: thecodingmachine/workadventure-pusher:v1.12.11 + environment: + SECRET_JITSI_KEY: "${SECRET_JITSI_KEY}" + SECRET_KEY: ${SECRET_KEY} + API_URL: back:50051 + ADMIN_API_URL: "${ADMIN_API_URL}" + ADMIN_API_TOKEN: "${ADMIN_API_TOKEN}" + JITSI_URL: ${JITSI_URL} + JITSI_ISS: ${JITSI_ISS} + FRONT_URL : ${FRONT_URL} + START_ROOM_URL: "${START_ROOM_URL}" + labels: + - "traefik.http.middlewares.strip-pusher-prefix.stripprefix.prefixes=/pusher" + - "traefik.http.routers.pusher.rule=PathPrefix(`/pusher`)" + - "traefik.http.routers.pusher.middlewares=strip-pusher-prefix@docker" + - "traefik.http.routers.pusher.entryPoints=web" + - "traefik.http.services.pusher.loadbalancer.server.port=8080" + - "traefik.http.routers.pusher.service=pusher" + restart: unless-stopped + + back: + #build: + # context: ./ + # dockerfile: back/Dockerfile + image: thecodingmachine/workadventure-back:v1.12.11 + environment: + SECRET_KEY: ${SECRET_KEY} + STARTUP_COMMAND_1: yarn install + SECRET_JITSI_KEY: "${SECRET_JITSI_KEY}" + ADMIN_API_TOKEN: "${ADMIN_API_TOKEN}" + ADMIN_API_URL: "${ADMIN_API_URL}" + JITSI_URL: ${JITSI_URL} + JITSI_ISS: ${JITSI_ISS} + MAX_PER_GROUP: ${MAX_PER_GROUP} + TURN_STATIC_AUTH_SECRET: "${TURN_STATIC_AUTH_SECRET}" + REDIS_HOST: redis + labels: + - "traefik.http.middlewares.strip-api-prefix.stripprefix.prefixes=/api" + - "traefik.http.routers.back.rule=PathPrefix(`/api`)" + - "traefik.http.routers.back.middlewares=strip-api-prefix@docker" + - "traefik.http.routers.back.entryPoints=web" + - "traefik.http.services.back.loadbalancer.server.port=8080" + - "traefik.http.routers.back.service=back" + restart: unless-stopped + + redis: + image: redis:6 + restart: unless-stopped +```` + +**.env** +```` +# The base domain +DOMAIN=lab.cognhacker.net + +DEBUG_MODE=false +JITSI_URL=meet.jit.si +# If your Jitsi environment has authentication set up, you MUST set JITSI_PRIVATE_MODE to "true" and you MUST pass a SECRET_JITSI_KEY to generate the JWT secret +JITSI_PRIVATE_MODE=false +JITSI_ISS= +SECRET_JITSI_KEY= + +# URL of the TURN server (needed to "punch a hole" through some networks for P2P connections) +# TURN_SERVER= +# TURN_USER= +# TURN_PASSWORD= + +# The URL used by default, in the form: "/_/global/map/url.json" +START_ROOM_URL=/_/global/cognhacker.github.io/wa/maps/lab.json + +# The email address used by Let's encrypt to send renewal warnings (compulsory) +ACME_EMAIL=orga@cognhacker.net + +# Set to true to allow using this instance as a target for the apiUrl property +FEDERATE_PUSHER=false + +# Server settings +MAX_PER_GROUP=10 +MAX_USERNAME_LENGTH=12 +DISABLE_NOTIFICATIONS=false +SKIP_RENDER_OPTIMIZATIONS=false + +# Enable / disable chat +ENABLE_CHAT=false + +# Secrets +SECRET_KEY="**********************" +ADMIN_API_TOKEN="**********************" +ADMIN_API_URL= +````