Pour déployer une application Lua faite avec le framework orbit sur Webfaction, voici comment j’ai procédé :

Premièrement il faut installer Lua, Luarocks et les rocks nécessaires (orbit, wsapi, et autres)

1- Pour installer Lua:

cd ~/bin
wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar xzf lua-5.1.4.tar.gz
cd  lua-5.1.4
make local

Ensuite il faut mettre le repertoire de votre installation de Lua dans votre variable $PATH. Pour faire ça, éditez le fichier .bash_profile et ajoutez ceci a votre variable : /home//bin/lua-5.1.4/bin/ . Par exemple, vous devriez avoir quelque chose du genre :

export PATH=/home/julien/bin/lua-5.1.4/bin/:$PATH

2- Pour installer Luarocks:

cd ~/bin
wget http://luarocks.org/releases/luarocks-2.0.2.tar.gz
tar xzf luarocks-2.0.2.tar.gz
cd luarocks-2.0.2
./configure –prefix=/home/<votre_user_webfaction>/bin/lua-5.1.4
make
make install

Bravo! Vous venez d’installer luarocks! Pour tester, faite la commande luarocks.

3- Maintenant pour installer des rocks (l’equivalent des gems en Ruby):

luarocks install orbit
luarocks install wsapi
luarocks install cosmo
luarocks install wsapi-xavante

Maintenant il faut configurer Webfaction pour qu’il serve notre application orbit programmée en Lua.

  1. Connectez-vous à votre panel : https://panel.webfaction.com/
  2. Créez un Domain (en allant dans Domains/websites). Un sous-domaine ferait aussi l’affaire.
  3. Créez une Application. Donnez-lui un nom et pour le App type, choisissez Custom app (listening on port) et notez le port qui sera assigné pour votre application. Nous allons utiliser ce numero de port plus tard.
  4. Maintenant, créez un Website pour joindre votre Domain avec votre Application
  5. En SSH maintenant, allez dans ~/webapps/****/
  6. placez le fichier de votre application Lua (exemples ici : http://luanova.org/orbit1-2/ ) qui est un fichier app.lua (vous pouvez nommer votre fichier comme bon vous semble).
  7. faite la commande orbit -p**** app.lua . Par exemple dans mon cas c’etait: orbit -p38353 app.lua .
  8. Maintenant allez voir a l’adresse de votre application : http://****/ et vous devriez voir votre application. (Notez que vous n’avez pas besoin de fournir votre port d’application dans l’adresse parce que Nginx redirige de toute façon votre port custom au port 80). Enfin, c’est comme ça que je le comprends.

Si vous voulez arrêter votre application faites CTRL-C dans la session ssh dans laquelle roule orbit .

Si vous voulez que votre application continue à rouler même quand vous quitterez votre session SSH, faite votre commande orbit dans une session Screen (plus d’infos a propos de screen: http://jmcpherson.org/screen.html) . Vous pouvez aussi vous configurer un Cron Job pour que ça reparte votre application si elle ne roule pas. Mais ça nécessiterait un petit script aussi qui vérifie au préalable si l’application roule bien.

Voilà!