Install BrowserQuest on debian squeeze

Et oui tout est encore une fois … dans le titre ūüôā

Pour tester un home made : http://quest.tuxme.net/

Bref pour installer le tout il faut :

1/ Installer Node / NPM

sudo apt-get update && apt-get install git-core curl build-essential openssl libssl-dev
 git clone https://github.com/joyent/node.git
 cd node
 # vérifier la derniere version dispo :
 git tag
 git checkout v0.7.6
 sudo mkdir /opt/node
 sudo chmod 777 /opt/node
 ./configure --openssl-libpath=/usr/lib/ssl --prefix=/opt/node
 make
 make install
 echo 'PATH=$PATH:/opt/node/bin' | tee -a ~/.bashrc
 bash

Et votre node / npm est installé

2/ Ajouter les modules demandé dans le README de BrowserQuest

# Installation des modules
 /opt/node/bin/npm install express  underscore log bison websocket websocket-server sanitizer -g
 # Mise en place des liens dans /lib/node_modules/ de node dans opt
 /opt/node/bin/npm link  underscore log bison websocket websocket-server sanitizer

Vos moules sont opérationnels pour la suite des évènements

3/ DL et configuration de BrowserQuest

git clone https://github.com/mozilla/BrowserQuest.git
cd BrowserQuest/

Configurez comme indiqué dans les fichiers README de server et client

+ 2 astuce :

Astuce 1 :

dans server editez le fichier

et remlacez la ligne ou se trouve isReady en :

if(metrics && metrics.isReady){

Astuce 2 :

Une fois que vous avez créé votre BrowserQuest/bin/build.sh faite :

cp -Rf shared/ client-build/
cp -Rf client/* client-build/

4/ Lancez votre serveur dans un screen

Creez un fichier launch_server.sh dans votre repertoire  BrowserQuest

vim launch_server.sh

avec comme contenue :

#!/bin/bash
export PATH=$PATH:/opt/node/bin/
cd /PATH/DE/BrowserQuest
/opt/node/bin/node server/js/main.js

Donnez les droits :

chmod 755 launch_server.sh

et pour lancer le serveur dans un screen :

screen -S QUEST ./launch_server.sh

5/ Configurer votre apache et votre routeur

Selon ce que vous avez mis dans vos fichier de config :(par default)

Serveur :

{
    "port": 8000,
    "debug_level": "info",
    "nb_players_per_world": 10,
    "nb_worlds": 1,
    "map_filepath": "./server/maps/world_server.json",
    "metrics_enabled": false
}

client :

{
    "host": "localhost",
    "port": 8000
}

A/ Vous devez ouvrir votre routeur sur les port 8000 et 1000

B/ voici le type de fichier de configuration dans /etc/apache2/sites-available/Votre_server

<VirtualHost *>
        ServerAdmin Vous@maison
        DocumentRoot /PathDeVotre/BrowserQuest/client-build
        ServerName VotreNomDeDomaine.qqchose
        ServerAlias www.VotreNomDeDomaine.qqchose
        <Directory /PathDeVotre/BrowserQuest/client-build>
                Options Indexes FollowSymLinks
                Options FollowSymLinks
                AllowOverride AuthConfig
                Options +Indexes
        </Directory>
</VirtualHost>

C/ Enfin
ln -s /etc/apache2/sites-available/Votre_server /etc/apache2/sites-enabled/Votre_server
sudo /etc/init.d/apache2 restart

 

7 Comments

  1. Bonsoir, j’essaie d’installer Browser Quest mais suis un peu dans la panade, pourriez-vous m’aider ?
    Je suis sur Centos et ai modifi√© les fichiers de config, pu proc√©d√© au build, je peux lancer le node correctement mais lorsque j’essaie de me connecter au port 8000 de mon serveur, la page retourn√©e est vide.
    Lorsque je lance le jeu, je peux entrer mon pseudo mais le client ne se connecte pas au serveur.
    Si vous avez des idées je suis preneur.

  2. Salut,
    y me faudrait un peu plus de bille pour vous aider … le fichier de conf, les log, ou la sortie du terminal .
    Essayez vous d’y acc√©der en local ou a travers le r√©seau lan/wan

  3. Hello,
    alors voici mon serveur http://viagampel.ile.ch, j’ai le script main.js qui devrait tourner sur le port 8000 mais qui ne retourne rien ūüôĀ en parall√®le j’ai lanc√© un petit script node de test sur le port 8002 qui lui retourne bien quelque chose.
    La console du script main.js retourne un affichage correcte avec la g√©n√©ration des 5 mondes et le fait qu’il √©coute sur le port 8000.
    Le client est accessible via http://viagampel.ile.ch/client-build mais bien s√Ľr il ne peut pas se connecter au serveur.
    Les 2 fichiers du r√©pertoire client-build/config contiennent bien l’ip publique du serveur.
    La config du serveur elle n’a rien de sp√©ciale.

    La structure des répertoires se présente comme ceci :

    BrowserQuest
    – bin
    – client
    — audio
    — config
    — css
    — fonts
    — img
    — js
    — maps
    — sprites
    – client-build
    — audio
    — config
    — css
    — fonts
    — img
    — js
    — maps
    — shared
    – node_modules
    — 7 liens vers les r√©pertoires de modules bison, log, memcache, sanitizer, underscore, websocket, websocket-server
    – server
    — js
    — maps
    – shared
    — js
    – tools
    — maps
    — tmx

    Depuis le dernier message j’ai d√©j√† pu mettre en place le script de test sur le port 8002 mais le serveur de BrowserQuest n’a toujours pas l’air de r√©agir…

  4. Un curl 127.0.0.1:8000/status/ directement effectu√© depuis le serveur ne me retourne rien tandis qu’un curl 127.0.0.1:8002 me retourne bien ¬ę¬†Hello World¬†¬Ľ… comment debugger le main.js ou avoir les √©ventuels messages d’erreur, sachant que dans la console il m’informe que tout est op√©rationnel.

  5. Je pense que tu a peut √™tre omis la piste des redirection/ouverture de port entre serveur …

    le mieux c’est :
    de lancer un ¬ę¬†netstat -a’ pour voire les port √† l’√©coute
    v√©rifier que /etc/services n’a pas d√©ja les port 8000 et 8002 utilis√©

    Pour tester l’ouverture de port elle m√™me tu peux soit :
    tester depuis un vpn entre ton serveur et ta machine client avec l’adresse lan
    plus simple utiliser netcat : nc -v 127.0.0.1 8000 et nc -v viagampel.ile.ch 8000 (le port est d’ailleur ouvert)

    et enfin v√©rfier aussi les path indiqu√© dans les fichiers de conf (une majuscule/minusule se glisse tr√®s facilement ūüôā )

    Tiens moi au jus

    1. Bonjour
      J aurai besoin d un gros coup de main pour installer BQ sur un serveur dedie.
      Si quelqu un a la gentilesse de le faire pour moi. Mon email est le suivant: kyosuke666@hotmail.com
      D avance je vous remercie