Node.js devient de plus en plus populaire, et la plateforme de blog Ghost vient de sortir sa première version public. De son côté, Gandi sort une nouvelle instance en node.js. Il y a tout ce qu’il faut pour s’amuser. Voici comment s’est déroulée l’installation.
Instance
La première étape, c’est déjà de choisir la bonne instance Gandi. Ne pouvant pas utiliser sqlite sur les instances, il faut choisir une instance node.js + mysql. Ensuite, on peut se connecter en ssh et sftp sur la machine. Il faut récupérer le login sur la page de l’instance, le mot de passe a été défini pour de la création de l’instance.
- SSH : console.dc0.gpaas.net
- SFTP : sftp.dc0.gpaas.net
Installation
The place to be
Après s’être connecté en SSH, il faut se placer dans le dossier où node.js va être exécuté automatiquement par l’instance :
cd web/vhosts/default/
Dans ce dossier se trouve un fichier server.js, c’est le fichier qui sera exécuté. Les sources de Ghost vont être ici.
Sources
Pour récupérer les sources, c’est facile ! On commence par une petite commande wget :
wget --no-check-certificate http://ghost.org/zip/ghost-latest.zip
Lors de l’installation, le certificat n’était pas à jour sur le serveur, j’ai du ignorer le certificat.
Puis, on dézippe l’archive :
unzip ghost-latest.zip
Ensuite, on peut la supprimer :
rm ghost-latest.zip
Enfin, si vous voulez connaître la version de Ghost :
cat package.json | grep version
On peut maintenant passer à la configuration de Ghost.
Dépendances
Enfin, il faut intaller les dépendances de Ghost via npm (seulement celles utiles pour la prodution) :
npm install --production
Configuration
Pour configurer Ghost, il faut créer un fichier config.js. S’il n’est pas créé avant le premier lancement, une copie de config.example.js sera faite. Si vous êtes curieux et que vous ouvrez ce fichier, vous ferez qu’il y a quatre sections :
- developpement,
- prodution,
- testing,
- travis.
Sur le serveur, il n’y a besoin que de la production.
À l’intérieur de cet objet, il faut définir quatre paramètres :
- l’URL du site,
- le serveur mail,
- la connexion à la base de données mySQL,
- la configuration du serveur.
URL
Ce paramètre définit l’URL de bas utilisé pour générer les liens du site. Si vous avez un nom de domaine, c’est ici qu’il faut le renseigner. Si vous n’en avez pas, Gandi propose un nom de domaine temporaire.
000000.url-de-test.fr
Pour configurer le serveur mail, il faut que vous ayez un nom de domaine chez Gandi, puis à partir de là, on peut créer une adresse. Gandi n’est pas un service reconnu par Nodemailer, il faut le configurer à la main. Le transport se fait SMTP. Pour les options, toutes les informations se trouvent sur cette page de Gandi (et se trouvent dans le résumé). Enfin pour l'authentification, c’est celle de la boîte mail que vous avez configurée précédemment.
Database
Connexion à la base de données mySQL. (par défaut, il n’y a pas de mot de passe).
mysql -u root
Si vous avez mis un mot de passe :
mysql -u root -p
Création de la base de données (paramètre database) :
create database ghostdb;
Création d’un utilisateur (paramètres user et password)
grant all on ghostdb.* to ghostusr@localhost identified by 'ghostpwd';
Chemin vers le fichier de socket (paramètre socketPath)
cat /etc/mysql/my.cnf | grep socket
Server
Enfin, il faut définir:
- host : 127.0.0.1 ou localhost
- port : 8080
Ce sont les valeurs par défaut du fichier config.example.js.
Résumé
production:{
url: '000000.url-de-test.fr',
mail:{
transport: 'SMTP',
options: {
host: "mail.gandi.net", // hostname
secureConnection: true, // use SSL
port: 465, // port for secure SMTP
auth: {
user: 'admin@mondomain.tld'
pass: 'adminPass.'
}
}
},
database: {
client: 'mysql',
connection: {
database: 'ghostdb',
user: 'ghostusr',
password: 'ghostpwd',
socketPath: '/var/run/mysqld/mysqld.sock',
charset: 'utf8',
}
},
server: {
host:'localhost',
port: '8080'
}
}
Ajustement pour Gandi
Production
Avec l’instance Gandi, on ne peut pas choisir la ligne de commande pour démarrer Ghost.
Il faut donc changer l’environnement par défaut de development
à production
, dans le fichier index.js
edit v0.4: […] dans le fichier core/index.js
Lien
Gandi exécute un fichier server.js dans le dossier default. Il faut alors créer un lien vers le fichier index.js
ln -s index.js server.js
Conclusion
Maintenant que tout est prêt, vous pouvez recharger l’application, via le panneau d’administration de Gandi, et c’est parti pour l’aventure !!