Cómo instalar la base de datos RavenDB NoSQL en Ubuntu 20.04

RavenDB es una base de datos NoSQL orientada a documentos, gratuita y de código abierto, diseñada para la plataforma .NET/Windows. RavenDB admite múltiples bases de datos, sharding o partición de los datos en varios servidores. Tiene la capacidad de manejar cientos o miles de bases de datos en la misma instancia. RavenDB utiliza JSON para almacenar documentos y no requiere que se declare un esquema y permite a los desarrolladores trabajar con los datos de forma más natural.

En este tutorial, aprenderemos a instalar RavenDB en el servidor Ubuntu 20.04.

Requisitos previos

  • Un servidor con Ubuntu 20.04.
  • Una contraseña de root configurada el servidor.

Instalar las dependencias necesarias

Antes de empezar, necesitarás instalar el tiempo de ejecución de NET Core en tu sistema. Primero, descarga e instala el repositorio de paquetes con el siguiente comando:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb

Deberías obtener la siguiente salida:

Selecting previously unselected package packages-microsoft-prod.
(Reading database ... 91134 files and directories currently installed.)
Preparing to unpack packages-microsoft-prod.deb ...
Unpacking packages-microsoft-prod (1.0-ubuntu20.04.1) ...
Setting up packages-microsoft-prod (1.0-ubuntu20.04.1) ...

A continuación, actualiza el repositorio con el siguiente comando:

apt-get install apt-transport-https -y
apt-get update -y

Una vez actualizado el repositorio, instala el tiempo de ejecución .Net Core con el siguiente comando:

apt-get install aspnetcore-runtime-3.1 -y

Una vez completada la instalación, puedes pasar al siguiente paso.

Instalar RavenDB

En primer lugar, descarga la última versión de RavenDB ejecutando el siguiente comando:

wget -O ravendb.tar.bz2 https://hibernatingrhinos.com/downloads/RavenDB%20for%20Linux%20x64/latest

Una vez completada la descarga, extrae el archivo descargado con el siguiente comando:

tar xvjf ravendb.tar.bz2

A continuación, da permiso a RavenDB con el siguiente comando:

chmod -R 755 ~/RavenDB

A continuación, cambia el directorio a RavenDB y ejecuta el script de instalación como se muestra a continuación:

cd ~/RavenDB
./run.sh

Deberías ver la siguiente salida:

./run.sh: line 24: xdg-open: command not found
       _____                       _____  ____ 
      |  __ \                     |  __ \|  _ \ 
      | |__) |__ ___   _____ _ __ | |  | | |_) |
      |  _  // _` \ \ / / _ \ '_ \| |  | |  _ < 
      | | \ \ (_| |\ V /  __/ | | | |__| | |_) |
      |_|  \_\__,_| \_/ \___|_| |_|_____/|____/ 


      Safe by default, optimized for efficiency

 Build 50005, Version 5.0, SemVer 5.0.0, Commit a8d3f94
 PID 23883, 64 bits, 2 Cores, Phys Mem 1.941 GBytes, Arch: X64
 Source Code (git repo): https://github.com/ravendb/ravendb
 Built with love by Hibernating Rhinos and awesome contributors!
+---------------------------------------------------------------+
Using GC in server concurrent mode retaining memory from the OS.
Could not start browser: System.ComponentModel.Win32Exception (2): No such file or directory
   at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName, String arguments)
   at Raven.Server.Utils.Cli.BrowserHelper.OpenStudioInBrowser(String url, Action`1 onError) in C:\Builds\RavenDB-Stable-5.0\50005\src\Raven.Server\Utils\Cli\BrowserHelper.cs:line 26
Server available on: http://127.0.0.1:43241
Server started, listening to requests...
TIP: type 'help' to list the available commands.
Running non-interactive.

En este punto, RavenDB se inicia y escucha en el puerto 43241. Ahora, pulsa CTRL + C para salir.

Configurar RavenDB

Por defecto, RavenDB sólo es accesible desde el localhost. Así que tendrás que configurarlo para que se pueda acceder desde el host remoto.

Puedes configurarlo editando el archivo settings.json:

nano ~/RavenDB/Server/settings.json

Añade / Modifica las siguientes líneas:

{
    "ServerUrl": "http://your-server-ip:8080",
    "Setup.Mode": "Initial",
    "DataDir": "RavenData",
    "Security.UnsecuredAccessAllowed": "PrivateNetwork"

}

Guarda y cierra el archivo cuando hayas terminado.

Crear un archivo de servicio Systemd para RavenDB

A continuación, tendrás que crear un archivo de servicio systemd para gestionar RavenDB. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/ravendb.service

Añade las siguientes líneas:

[Unit]
Description=RavenDB v4.0
After=network.target

[Service]
LimitCORE=infinity
LimitNOFILE=65536
LimitRSS=infinity
LimitAS=infinity
User=root
Restart=on-failure
Type=simple
ExecStart=/root/RavenDB/run.sh

[Install]
WantedBy=multi-user.target

Guarda y cierra el archivo. A continuación, recarga el demonio systemd con el siguiente comando

systemctl daemon-reload

A continuación, inicia el RavenDB y permite que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start ravendb
systemctl enable ravendb

Ahora puedes comprobar el estado de RavenDB con el siguiente comando:

systemctl status ravendb

Deberías obtener la siguiente salida:

? ravendb.service - RavenDB v4.0
     Loaded: loaded (/etc/systemd/system/ravendb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-08-01 11:25:12 UTC; 7min ago
   Main PID: 30833 (run.sh)
      Tasks: 32 (limit: 2353)
     Memory: 157.0M
     CGroup: /system.slice/ravendb.service
             ??30833 /bin/bash /root/RavenDB/run.sh
             ??30871 ./Raven.Server --browser

Aug 01 11:30:19 ubuntu2004 run.sh[30871]: Starting shut down...
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Shutdown completed
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Restarting Server...
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Using GC in server concurrent mode retaining memory from the OS.
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Server available on: http://69.87.218.19:8080
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Tcp listening on 69.87.218.19:38888
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Server started, listening to requests...
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: TIP: type 'help' to list the available commands.
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: ravendb> End of standard input detected, switching to server mode...
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Running non-interactive.

En este momento, RavenDB está iniciado y escuchando en el puerto 8080.

Accede a la interfaz web de RavenDB

Ahora, abre tu navegador web y escribe la URL http://your-server-ip:8080. Deberías ver la siguiente pantalla:

Licencia de RavenDB

Haz clic en el botón Aceptar para aceptar el Acuerdo de Licencia. Deberías ver la siguiente pantalla:

Asegurar la base de datos

Aquí hay tres opciones para configurar RavenDB. Selecciona la opción No Segura. Deberías ver la siguiente pantalla:

Configurar los puertos de la base de datos

Proporciona el Puerto HTTP, la dirección IP y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:

Configuración completada

Haz clic en el botón Reiniciar el servidor para reiniciar el sistema. Después de reiniciar con éxito, serás redirigido al panel de control de RavenDB como se muestra a continuación:

Panel de control de RavenDB

Haz clic en el botón CREAR BASE DE DATOS. Deberías ver la siguiente pantalla:

Configurar la replicación en RavenDB

Introduce el nombre de tu base de datos y haz clic en el botón Crear. Deberías ver tu base de datos recién creada en la siguiente pantalla:

Crear una base de datos en RavenDB

Conclusión

Enhorabuena! has instalado con éxito RavenDB en Ubuntu 20.04. Ahora puedes empezar a explorar RavenDB para familiarizarte con él. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...