Heberger mon premier site sous node.js et mongodb

a marqué ce sujet comme résolu.

Bonjour à tous !

Je viens de réaliser mon premier site web avec node.js en back end et mongodb en bdd et je voulais avoir vos conseils pour l'hébergement. Je n'y connais rien en hébergement (j'ai toujours utilisé ovh mais ils n'ont pas d'offre node.js abordable) et j'aimerai y voir plus clair.

Mon site se composera de fichiers statiques à servir et d'un fichier app.js qui s'occupera de ça et de lancer la connection à la base de donnée mongodb via le module node deployd. Ce module build à volé un fichier dpd.js qu'il suffit de charger ensuite dans son application.

Voici en quoi consistera mon fichier serveur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
// app.js

const http = require('http');
const fs = require('fs');
const express = require('express');
const deployd = require('deployd');


// on lance le serveur
const app  = express();
app.get('/', function(request,reponse) {
    reponse.sendFile(__dirname + "/index.html");
    app.use('/static',express.static('static'))
})
app.listen(8080);


// on lance la bdd via deployd
const options = {port: 8001, env : "development"};
const dpd = deployd(options);
dpd.listen();

Du coté de mon index.html on récupére le fichier dpd.js construit à la volé en écoutant le port spécifié (8001 ici) :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
        <title>Mon super site</title>
        <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel=stylesheet>
        <link href=/static/css/app.506b382d042285aa6c872c74c8a97a4e.css rel=stylesheet></head>
    <body>
        <div id=app></div>
                <script type=text/javascript src=http://monsupersite.fr:8001/dpd.js></script>
        <script type=text/javascript src=/static/js/manifest.13f5fc0cefcfd2fc1526.js></script>
        <script type=text/javascript src=/static/js/vendor.bbc7242ced9c98b6af23.js></script>
        <script type=text/javascript src=/static/js/app.690cb7ff4a6cfa1778a8.js></script>
    </body>
</html>

En local tout marche parfaitement. Mais je me demande si sur un hébergeur je peux avoir accés à deux ports différent. Il me faudrait le port classique 8080 pour écouter le site et envoyer le fichier index.html et un second port (n'importe lequel) pour la base de donnée (ici 8001). Est-ce n'importe quel hébergeur me permet de faire marcher mon site correctement ?

J'ai regardé sur Gandhi et ils parlent de la variable d'environnement PORT. Est ce qu'il s'agit simplement du port vers lequel est redirigé la requête du nom du domaine et auquel cas je peux accéder à un autre port sans souçis pour la base de donnée ou est-ce que j'ai le droit d'utiliser que ce port là ?

Ma question peut sembler stupide mais je préfère la poser avant de réserver un hébergeur et un nom de domaine et me rendre compte que ça ne correspond pas à mon besoin…

Sinon auriez-vous d'autres hébergeurs que gandi à me proposer qui répondrait à mes besoins (Node.js + mongoDB + accés à un autre port que le 8080) ? Question bête mais est-ce qu'avec une offre de base on a accés à un terminal pour installer les module de son choix ? Comment cela se fait-il ? Via un package.json ?

Merci d'avance pour vos réponses :)

+0 -0

Qu'entends-tu par abordable ? Pour moi OVH est abordable.

Je n'y connais rien en hébergement (j'ai toujours utilisé ovh mais ils n'ont pas d'offre node.js abordable) et j'aimerai y voir plus clair.

Demandred

43,06 €/an c'est assez abordable pour un VPS je trouve sinon tu as d'autres hébergements qui proposent des VPS pour moins chère.++

3,06 €/an c'est assez abordable pour un VPS je trouve sinon tu as d'autres hébergements qui proposent des VPS pour moins chère.++

Je ne peux pas installer Node.js sur les vps d'OVh il me semble si ? En tout cas je n'en vois aucune trace.

+0 -0

Un VPS, ça marche comme un serveur dédié. Donc tu choisis ton OS dans la liste que propose OVH et ensuite tu installes Node.js (apt-get install nodejs par exemple sous Debian).

Ha ok merci ! Le problème c'est que je n'y connait vraiment rien en linux (je ne sais pas quelle distribution choisir, je ne connais pas les commandes de bases etc.) et en gestion de serveur, C'est possible de gérer ça correctement en temps que débutant sans trop de risque de faire une grosse bêtise ? Est-ce prendre un serveur sous windows me serait plus familier ou pas ? (mon pc portable est sous windows10).

+0 -0

En règle générale, on part sur une CentOS ou une Debian sur un serveur. Mais il te faut connaitre le b.a.-ba de l'utilisation d'une distribution Linux. Mais plus encore que de savoir installer Node.js, MongoDB ou tout autre programme, il y a toute la partie maintenance du serveur à effectuer. Tenir l'OS à jour, s'occuper de la partie sécurité (SSH, firewall…). Bref, c'est du boulot.

Concernant Windows sur un VPS, si l'hébergeur le propose, ce sera plus cher car il te facturera une petite somme chaque mois pour couvrir le prix de la licence Windows.

La solution serait de voir si il existe des hébergements mutualisés Node.js. Là, tout est clé en main: l'hébergeur s'occupe de toute la partie serveur (OS, logiciels, matériel) et toi tu n'as plus qu'à "déposer tes fichiers" pour que ça marche. Il y aura peut être des fichiers de conf Node.js à changer. Jee ne sais pas, je n'ai jamais fait de Node.js mais en tout cas, tu auras que la partie application à gérer. Comme les hébergements PHP/MySQL classiques.

Par exemple, tu as le Simple Hosting Node.js chez Gandi qui commence à 4€ HT/mois.

+0 -0

Par exemple, tu as le Simple Hosting Node.js chez Gandi qui commence à 4€ HT/mois.

Oui c'est ce que je pensais prendre ! Je suis un amateur (qui ne compte pas venir pro) donc je n'ai pas le temps/l'envie d'apprendre à gérer un serveur correctement malheureusement.

La question que je me pose avec l'offre de Gandi est de savoir si je peux utiliser un autre port en dehors du port 8080 pour communiquer avec ma bdd comme dans mon script.

+0 -0

Je déconseille Heroku qui est hors de prix pour un petit projetw, et l'offre gratuite n'est pas intéressante.

Oui, j'ai regardé un peu et le prix est trop élevé. En plus ça ne supporte pas mongo mais que du postgreSQL il me semble, du moins sur les offre les mois chères.

Quel que soit l'hébergeur, tu devras regarder la doc de celui-ci pour savoir comment configurer et déployer ton app, comment te connecter à la bdd…

C'est ce que j'essaye de faire, mais comme c'est mon premier projet du genre et que je n'utilise pas monoDB directement mais Deployd, j'ai un peu de mal à tout comprendre (je n'avais jamais utilisé monoDB avant).

j'ai envoyé un mail au support de Gandi pour leur expliquer mon probléme et leur demander si je pourrai bien utiliser un autre port pour communiquer avec la bdd !

Merci pour vos réponses :)

+0 -0

Quand tu ouvres des ports c'est pour qu'une connexion externe au "réseau" puisse être accessible.

Tu n'as pas besoin d'avoir un port ouvert pour que la base de donnée soit accessible.

Cependant dans ce genre d'hébergement (mutualisé), l'accès à la base de données est volontairement bloqué pour qu'elle ne soit pas accessible à l'extérieur, c'est-a-dire inaccessible avec ton ordinateur. Pour que tu ne puisses l'utiliser qu'avec le serveur assorti.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte