Montar Servidor Parse en tu propio Servidor alojado en Digital Ocean
Tags: node, mongodb, javascript, digitalocean
Published: 2020-05-17 09:29:50

---

published: true
firstPublishedAt: 1454360612696
latestPublishedAt: 1454360612696
slug: montar-servidor-parse-en-tu-propio-servidor-alojado-en-digital-ocean
title: Montar Servidor Parse en tu propio Servidor alojado en Digital Ocean
canonical_url: https://medium.com/@jcminarro/montar-servidor-parse-en-tu-propio-servidor-alojado-en-digital-ocean-fb5b82a1914e
tags: NodeJS, MongoDB, JavaScript, DigitalOcean

---

Hace apenas unos días Parse anunciaba que iban a [cerrar su plataforma](http://blog.parse.com/announcements/moving-on/) que permitía a los desarrolladores crear servidores sin necesidad de tener un servidor propio. Ésto es una mala noticia para todos los que tenemos alguna aplicación alojada en sus servidores. La buena noticia es que han dado un periodo de 12 meses para que que podamos encontrar una nueva solución y están liberando el liberando el código fuente de sus servidor para que podamos [montar nuestro propio servidor](http://blog.parse.com/announcements/introducing-parse-server-and-the-database-migration-tool/) compatible con los servicios que nos ofrecía Parse. Han escrito una guía de migración en la que indican cómo [exportar los datos de Parse](https://parse.com/docs/server/guide) a MongoDB, y ejecutar Parse Server sobre Node.js y Express.

En esta guía vamos a ver cómo instalar todas las dependencias necesarias para montar ParseServer en nuestro propio servidor. Vamos a usar [DigitalOcean](https://goo.gl/0sZdBs) para alojar nuestro servidor, si no tienes cuenta puedes crearte una [aquí](https://goo.gl/0sZdBs) y **obtendrás 10\$ gratis ;)**

#### Configurar nuestro servidor

Una vez que tenemos nuestra cuenta de DigitalOcean necesitamos crear un Droplet. Droplet es el nombre usado por DigitalOcean para referirse a un Servidor Virtual Privado (VPS). Ésto es muy simple de realizar, pero aquí te dejo [una guía](https://www.digitalocean.com/community/tutorials/how-to-create-your-first-digitalocean-droplet-virtual-server) por si tienes cualquier problema. Nosotros vamos a utilizar Ubuntu 14.04 cómo Sistema Operativo de nuestro servidor.

#### Configurar MongoDB

ParseServer usa MongoDB cómo Base de Datos, y es compatible con las versiones 2.6 y 3.0.x. MongoDB está actualmente incluido en el repositorio de paquetes de Ubuntu, pero no está la versión que necesitamos, por lo que vamos a añadir el repositorio oficial de MongoDB para instalar la versión correcta.

```
$ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9ECBEC467F0CEB10
$ sudo aptitude update
$ sudo aptitude install mongodb-org -y
```

Ok, pues ya tenemos MongoDB instalado en nuestro servidor, pero todavía nos falta configurarlo con algunos parametros y un usuario para poder acceder a MongoDB remotamente.

La primera cosa que vamos a hacer es permitir conexiones remotas a nuestra base de Datos MongoDB. Ésto es porque necesitamos imprtar los datos que ya tenemos guardados en Parse desde sus servidores y, además, Parse usará esta base de datos cada vez que un usuario con la versión antigua de nuestra aplicación mande datos a sus servidores.

```
$ vi /etc/mongod.conf
```

Y comentar la siguiente línea, para comentar una línea tienes que poner `#` al principio de línea.

```
# bindIp: 127.0.0.1
```

Ahora sólo nos falta reiniciar el demonio de MongoDB y éste permitirá conexiones remotas.

```
$ sudo service mongod restart
```

Ahora vamos a crear una base de datos, un nuevo usuario y a deshabilitar una opción necesaria por Parse. El usuario que vamos a utilizar será `parseuser` y la contraseña `password`. **Pero tú debes cambiarlas.**

```
$ mongo
> use parse
> db.createUser({ user: "parseuser", pwd: "password", roles: [ { role: "userAdmin", db: "parse" } ] })
>  db.getSiblingDB('admin').runCommand( { setParameter: 1, failIndexKeyTooLong: false } )
```

Para salir de la `mongo shell` tenemos que pulsar `ctrl+d`.
Con ésto ya tendremos nuestra base de datos MongoDB configurada y podremos comenzar con la importación de los datos desde Parse. La url que tendremos que indicar a Parse para comenzar la migración sería la siguiente:

```
mongodb://parseuser:password@IP_SERVER:27017/parse
```

#### Configurar NodeJS

ParseServer funciona sobre NodeJS 4.1, y, cómo nos sucedía con MongoDB, NodeJS está incluido en los repositorios de paquetes de Ubuntu pero no la versión que nosotros necesitamos. Así que vamos a descargar e instalar la versión que necesita ParseServer.

```
$ curl -sL [https://deb.nodesource.com/setup_4.x](https://deb.nodesource.com/setup_4.x) | sudo -E bash -
$ sudo aptitude install nodejs -y
$ sudo aptitude install build-essential -y
```

#### Configurar ParseServer

Parse ha liberado el código fuente del servidor, pero nosotros tendremos que crear un proyecto que instancie este servidor. Yo he creado un proyecto para ayudarte a montar éste servidor. Este proyecto está alojado en Github, así que necesitas tener instalado `git`y descargar el proyecto. Si ya tienes instalado `git` en tu servidor no es necesario que hagas el siguiente paso.

```
$ sudo aptitude install git -y
```

Ahora vamos a descargar el proyecto y configurarlo.

```
$ git clone [https://github.com/JcMinarro/ParseServer.git](https://github.com/JcMinarro/ParseServer.git)
$ cd ParseServer
$ npm install
```

Después de ésto tendremos que configurar unas variables de entorno. Para ésto abrimos el fichero `config/default.json` y modificamos las variables de entorno que necesitamos para ejecutar nuestra aplicación. Puedes leer más acerca de la configuración de Parse en la [guía de migración](https://parse.com/docs/server/guide).

```
{
 “databaseURI”: “mongodb://parseuser:[password@I](mailto:12345@ds033113.mongolab.com)P_SERVER:27017/parse”,
 “cloud”: “./cloud/main.js”,
 “port”: 8080,
 “appId”: “YOUR_APP_ID”,
 “masterKey”:”YOUR_MASTER_KEY”,
 “fileKey”: “”
}
```

Y con todo ésto ya podremos ejecutar nuestro ParseServer

```
$ npm start
```

Cuándo la migración de los datos se haya completado tendremos que actualizar la URL a la que apunta el SDK de nuestras aplicaciones indicándole la URL de nuestro servidor y ya tendremos nuestro propio servidor de Parse funcionando.