Serveurs Privés Virtuels (VPS) - Appli Nodejs sur VPS
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Appli Nodejs sur VPS

Von
VincentF9
Erstellungsdatum 2018-11-21 10:22:42 (edited on 2024-09-04 13:17:26) in Serveurs Privés Virtuels (VPS)

Bonjour,

Je souhaite déployer mon application NodeJS sur le VPS d'OVH.

J'ai deux questions soutes simples :
1) Dans quel répertoire dois je placer les fichiers de mon application pour que le site soit accédé depuis mon nom de domaine (pointant vers l'IP du VPS) ?

image

2) Est ce qu'il y a une opération particulière à effectuer pour déclarer mon appli sur le VPS, en dehors de l'installation de NodeJS et MongoDB (ma base de donnée ) via la console SSH (putty) ?
Une personne de la hotline m'a dit qu'il fallait que je déclare un service ...

Est ce que vous auriez quelques infos à me donner la dessus ?

Merci à vous


5 Antworten ( Latest reply on 2018-11-22 09:13:33 Von
BorisM
)

Bonjour,
tu peux mettre ton appli où tu veux.
Il y a plein de solutions différentes pour déployer ton application

Je t'aurais bien donner une façon, mais bon je ne sais pas quelle distribution Linux tu utilises, si tu es connecté en root ou avec un utilisateur du groupe sudo. etc.

Tu as fait quelques recherches sur internet et tenté quelques choses ou pas ?

Cdlt,
Boris.

Merci beaucoup pour ta réponse.
Je suis sur Debian 9.
J'ai un user root et si ta question est "mon user est-il habilité sudo?" la réponse est oui.
En gros je maîtrise bien toute la partie nodejs et mongoDB.
Je sais exactement comment les installer, je l'ai déja fait plusieurs fois sur du localhost, mais cela ne marchera pas si je ne sais pas où placer les fichiers de mon appli et comment "déclarer" mon projet (notion de service?) ? Cette opération est-elle à faire sur la console ssh ou sur l'interface Espace client ?)

Voici l'interface Espace client que j'ai, si ça peut aider :


Merci encore

Non, tu n'as plus rien à faire dans l'interface OVH, tout se passe sur le serveur.

Un service c'est comme par exemple si tu installes apache2
tu fais
```
service apache2 start
```
eh bien apache2 est un service et il se lancera au démarrage du serveur.
Là il faut créer un service pour ton appli
Mais c'est ce que tu fais en dernier

il faut commencer par créer un utilisateur
```
adduser tonuser
```
ça va te créer un dossier HOME => /home/tonuser
tu ajoutes cette utilisateur au groupe sudo
```
adduser tonuser sudo
```
Ensuite tu te déconnectes de ssh et tu te reconnectes avec tonuser tu créé un dossier dans ton /home/tonuser/ par exemple "app1" et tu y mettras tes fichiers.

Ensuite il faut installer un process manager
car j'imagine que tu lances ton appli avec
```
node app.js
```
Mais si ton appli plante, elle ne se relancera pas automatiquement
Il y a pm2 qui est bien
```
sudo npm install pm2 -g
```
Google pour la doc et des tuto

Ensuite tu peux avoir besoin d'un proxy nginx si tu souhaites avoir plusieurs applications en parallèle
idem Google pour savoir comment faire passer ton appli nodejs par un proxy nginx.

Ça devrait t'aider :
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-debian-9

Cordialement,
Boris.

Un grand merci !! J'avais juste besoin d'un "starter" ! J'avais dans l'idée que cela se fait sur l'interface OVS.
J'ai quasiment tout fait ! Par contre je suis plutôt parti sur un serveur Nginx, pour profiter de la fonction du "reverse proxi".
Et merci Digital Ocean !

Vincent

oui nginx pour le proxy et pm2 pour le process manager (pm2 ou forever)

Ensuite tu as d'autres solutions comme passenger Phusion, en gros le process manager est intégré à nginx avec un module. Du coup dans la conf nginx tu n'as qu'à mettre le chemin de ton lanceur d'application (apps.js) et lorsque tu accédera au site il démarrera automatiquement l'appli,tu n'as même pas à te soucier du port utilisé par l'application.

Cdlt,
Boris.