Comment exécuter le serveur Parse sur Ubuntu 14.04

introduction

Parse est une plate-forme Mobile Backend as a Service appartenant à Facebook depuis 2013. En janvier 2016, Parse annoncé a annoncé que ses services hébergés seraient fermés en janvier 2017.

Pour aider ses utilisateurs à quitter le service, Parse a publié une version open source de son back-end, appelée * Parse Server *, qui peut être déployée dans des environnements exécutant Node.js et MongoDB.

Ce guide complète la documentation officielle avec des instructions détaillées sur l’installation de Parse Server sur un système Ubuntu 14.04, tel qu’un droplet DigitalOcean. Il est avant tout destiné à servir de point de départ aux développeurs de Parse qui envisagent de migrer leurs applications. Il doit être lu conjointement avec le Parse Server Guide.

Conditions préalables

Ce guide suppose que vous avez un système propre Ubuntu 14.04, configuré avec un utilisateur non root avec les privilèges + sudo + pour les tâches administratives. Vous pouvez consulter les guides de la série New New Ubuntu 14.04 Server.

De plus, votre système aura besoin d’une instance en cours d’exécution de MongoDB. Vous pouvez commencer par travailler via Comment installer MongoDB sur Ubuntu 14.04. MongoDB peut également être installé automatiquement sur un nouveau Droplet en ajoutant cis script à ses données utilisateur lors de sa création. Consultez his tutorial pour en savoir plus sur les données utilisateur de Droplet.

Une fois que votre système est configuré avec un utilisateur + sudo + et MongoDB, revenez à ce guide et continuez.

Étape 1 - Installez Node.js et les outils de développement

Commencez par modifier le chemin de travail actuel dans le répertoire de base de votre utilisateur + sudo +:

cd ~

NodeSource propose un référentiel Apt pour les paquets Debian et Ubuntu Node.js. Nous allons l’utiliser pour installer Node.js. NodeSource propose un script d’installation pour la dernière version stable (version 5.5.0 au moment de l’écriture), qui peut être trouvé dans les instructions https://github.com/nodesource/distributions#installation-instructions&installation]. Téléchargez le script avec + curl +:

curl -sL https://deb.nodesource.com/ -o nodesource_setup.sh

Vous pouvez revoir le contenu de ce script en l’ouvrant avec + nano +, ou votre éditeur de texte de choix:

nano ./nodesource_setup.sh

Ensuite, exécutez + nodesource_setup.sh +. L’option + -E + de + sudo + lui dit de préserver les variables d’environnement de l’utilisateur pour qu’elles soient accessibles au script:

sudo -E bash ./nodesource_setup.sh

Une fois le script terminé, les référentiels NodeSource doivent être disponibles sur le système. Nous pouvons utiliser + apt-get pour installer le paquet` + nodejs`. Nous installerons également le métapaquet + build-essential +, qui fournit une gamme d’outils de développement pouvant être utiles ultérieurement, ainsi que le système de contrôle de version Git permettant de récupérer des projets à partir de GitHub:

sudo apt-get install -y nodejs build-essential git

Étape 2 - Installer un exemple d’application de serveur Parse

Parse Server est conçu pour être utilisé avec * Express *, un framework d’application Web populaire pour Node.js, qui permet aux composants de middleware conformes à une API définie d’être montés sur un chemin donné. Le référentiel parse-server-example contient un exemple d’implémentation stubbed-out de ce modèle.

Récupérez le référentiel avec + git +:

git clone https://github.com/ParsePlatform/parse-server-example.git

Entrez le répertoire + parse-server-example + que vous venez de cloner:

cd ~/parse-server-example

Utilisez + npm + pour installer les dépendances, y compris + parse-server +, dans le répertoire actuel:

npm install

+ npm + récupérera tous les modules requis par + parse-server + et les stockera dans + ~ / parse-server-example / node_modules +.

Étape 3 - Tester l’exemple d’application

Utilisez + npm + pour démarrer le service. Cela exécutera une commande définie dans la propriété + start + de + package.json. Dans ce cas, il lance + node index.js:

npm start
Output> [email protected] start /home//parse-server-example
> node index.js

DATABASE_URI not specified, falling back to localhost.
parse-server-example running on port 1337.

Vous pouvez terminer l’application en cours à tout moment en appuyant sur * Ctrl-C *.

L’application Express définie dans + index.js + passera les requêtes HTTP au module + parse-server +, qui communiquera avec votre instance MongoDB et invoquera les fonctions définies dans `+ ~ / parse-server-example / cloud / main.js + `.

Dans ce cas, le point de terminaison des appels d’API Parse Server API est:

+ http: /// parse +

Dans un autre terminal, vous pouvez utiliser + curl + pour tester ce noeud final. Assurez-vous d’être d’abord connecté à votre serveur, car ces commandes font référence à + ​​localhost + au lieu d’une adresse IP spécifique.

Créez un enregistrement en envoyant une requête + POST avec un en-tête` + X-Parse-Application-Id` pour identifier l’application, ainsi que des données au format JSON:

curl -X POST \
 -H "X-Parse-Application-Id: myAppId" \
 -H "Content-Type: application/json" \
 -d '{"score":1337,"playerName":"Sammy","cheatMode":false}' \
 http://localhost:1337/parse/classes/GameScore
Output{"objectId":"","createdAt":""}

Les données que vous avez envoyées sont stockées dans MongoDB et peuvent être récupérées en utilisant + curl + pour envoyer une requête + GET +:

curl -H "X-Parse-Application-Id: myAppId" http://localhost:1337/parse/classes/GameScore
Output{"results":[{"objectId":"GWuEydYCcd","score":1337,"playerName":"Sammy","cheatMode":false,"updatedAt":"2016-02-02T04:04:29.497Z","createdAt":"2016-02-02T04:04:29.497Z"}]}

Exécutez une fonction définie dans + ~ / parse-server-example / cloud / main.js:

curl -X POST \
 -H "X-Parse-Application-Id: myAppId" \
 -H "Content-Type: application/json" \
 -d '{}' \
 http://localhost:1337/parse/functions/hello
Output{"result":"Hi"}

Étape 4 - Configurer l’exemple d’application

Dans votre terminal d’origine, appuyez sur * Ctrl-C * pour arrêter la version en cours de l’application Parse Server.

Comme écrit, l’exemple de script peut être configuré à l’aide de six https://www.digitalocean.com/community/tutorials/how-to-read-and-set-environmental-and-shell-variables-on-a- linux-vps [variables d’environnement]:

Variable Description

DATABASE_URI

A MongoDB connection URI, like mongodb://localhost:27017/dev

CLOUD_CODE_MAIN

A path to a file containing Parse Cloud Code functions, like cloud/main.js

APP_ID

A string identifier for your app, like myAppId

MASTER_KEY

A secret master key which allows you to bypass all of the app’s security mechanisms

PARSE_MOUNT

The path where the Parse Server API should be served, like /parse

PORT

The port the app should listen on, like 1337

Vous pouvez définir ces valeurs avant d’exécuter le script à l’aide de la commande + export +. Par exemple:

export APP_ID=

Cela vaut la peine de lire le contenu de + index.js +, mais pour avoir une idée plus précise de ce qui se passe, vous pouvez également écrire votre propre version plus courte de l’exemple. Ouvrez un nouveau script dans votre éditeur:

nano my_app.js

Et collez ce qui suit en modifiant les valeurs en surbrillance, si vous le souhaitez:

~ / parse-server-example / my_app.js

var express = require('express');
var ParseServer = require('parse-server').ParseServer;

// Configure the Parse API
var api = new ParseServer({
 databaseURI: '',
 cloud: __dirname + '',
 appId: '',
 masterKey: ''
});

var app = express();

// Serve the Parse API on the  URL prefix
app.use('', api);

// Listen for connections on port 1337
var port = ;
app.listen(port, function() {
   console.log('parse-server-example running on port ' + port + '.');
});

Quittez et enregistrez le fichier, puis exécutez-le avec Node.js:

node my_app.js
Outputparse-server-example running on port 9999.

Encore une fois, vous pouvez appuyer sur * Ctrl-C * à tout moment pour arrêter + my app.js. Comme indiqué ci-dessus, l’exemple + my_app.js + se comportera presque de la même manière que + index.js + fourni, sauf qu’il écoutera sur le port 9999, avec Parse Server monté sur + / myparseapp +, de sorte que le noeud final L’URL ressemble à ceci:

http: //: 9999 / myparseapp

Et il peut être testé avec + curl + comme suit:

curl -H "X-Parse-Application-Id: " http://localhost://classes/GameScore`

Conclusion

Vous devez maintenant connaître les bases de l’exécution d’une application Node.js telle que Parse Server dans un environnement Ubuntu. La migration complète d’une application à partir de Parse sera probablement une entreprise plus complexe, nécessitant des modifications du code et une planification minutieuse de l’infrastructure.

Pour plus de détails sur ce processus, voir le deuxième guide de cette série, https://www.digitalocean.com/community/tutorials/how-to-migrate-a-parse-app-to-parse-server-on- ubuntu-14-04 [Comment migrer une application d’analyse vers un serveur d’analyse sur Ubuntu 14.04]. Vous devez également faire référence au Parse[Parse Server Guide, en particulier à la section sur migrating d’une application Parse existante. .