En esta guía, te acompañaremos a través del proceso de instalación y configuración de una aplicación inicial Ruby on Rails versión 7.1 para ser desplegada y alojada en Kinsta. Tanto si eres un principiante como un desarrollador experimentado de Ruby on Rails, este tutorial paso a paso te ayudará a empezar a desplegar tu aplicación en Kinsta.

Requisitos Previos

Antes de sumergirte en esta guía, asumimos que tienes conocimientos básicos de Git y Ruby on Rails, incluyendo la instalación de Ruby, Rails y las dependencias necesarias en tu máquina de desarrollo local.

Paso 1: Configurar una Cuenta de Alojamiento Kinsta

Visita el sitio web de Kinsta y crea una nueva cuenta si aún no tienes una. Configura tu nombre de dominio o utiliza una URL Kinsta asignada que se proporciona al desplegar.

Paso 2: Crear una Nueva Aplicación Ruby on Rails

Abre tu terminal y navega hasta el directorio donde quieras crear tu nueva aplicación Rails. Ejecuta el siguiente comando para crearla:

rails new myapp --database=postgresql --javascript=esbuild --css=tailwind

Este comando crea una nueva aplicación Rails llamada myapp con PostgreSQL como adaptador de base de datos, esbuild para compilar nuestro Javascript, y framework Tailwind CSS.

Siéntete libre de sustituir myapp por el nombre de aplicación que desees.

Para obtener una lista completa de las opciones disponibles para configurar desde el comando rails new, ejecútala:

rails new --help

Paso 3: Configura tu Aplicación Rails

Cambia al directorio de la aplicación:

cd myapp

Asegúrate de que, al empaquetar tu aplicación Rails, la configuración también añade la plataforma Linux, ya que éste es el sistema operativo utilizado para el despliegue. Introduce el siguiente comando en el terminal:

bundle lock --add-platform x86_64-linux

Script del Proceso Web

Añade un archivo start.sh al directorio bin de la aplicación. Esto garantiza que el servidor inicie tu aplicación y ejecute los comandos necesarios para arrancar y actualizar la base de datos antes de ejecutarla. En tu terminal, crea el archivo introduciendo:

touch bin/start.sh

Dentro de este archivo añade lo siguiente:

#!/bin/bash

bundle exec rails db:prepare
bundle exec rails server

Muéstrame el Inicio

Y para darnos un Hello World, crea una página Home para la aplicación. En tu terminal, introduce

bin/rails generate controller Home index

Esto dará como resultado:

create  app/controllers/home_controller.rb
route    get 'home/index'
invoke  erb
create  app/views/home
create  app/views/home/index.html.erb
invoke  test_unit
create  test/controllers/home_controller_test.rb
invoke  helper
create  app/helpers/home_helper.rb
invoke  test_unit

Abre app/views/home/index.html.erb, y sustituye su contenido por:

 <h1>Hello, Kinsta!</h1>

Configurar la Página de Inicio de la Aplicación

Abre config/routes.rb, y añade la siguiente ruta root a la parte superior del bloque Rails.application.routes.draw:

Rails.application.routes.draw do
  root "home#index"

  get "/home", to: "home#index"
end

Ahora, cuando ejecutemos nuestra aplicación localmente, veremos nuestra nueva página de inicio. Como hemos generado nuestra nueva aplicación añadiendo esbuild, tenemos un comando simplificado para ayudarnos a arrancar nuestra aplicación. Ejecutando el siguiente comando, Rails arranca el servidor y vigila los cambios tanto en CSS como en Javascript con la recarga en tiempo real:

bin/dev

Crear una Base de Datos

Como hemos creado nuestra aplicación Rails con una base de datos PostgreSQL, necesitamos configurarla a través del Panel de Control de MyKinsta:

  • Accede a tu cuenta de Kinsta.com, y desde tu Panel de Control, haz clic en Añadir servicios y selecciona Base de datos.
  • Rellena los datos básicos y confírmalos en la página Resumen haciendo clic en Crear base de datos.

Crear una base de datos en MyKinsta
Crear una base de datos

Paso 4: Prepárate para el Despliegue

Empieza creando un nuevo repositorio en GitHub para alojar tu código base.

Inicializa un repositorio Git localmente en el directorio de tu aplicación Rails en el nivel root:

git init

Crea un archivo .gitignore en el directorio root de tu aplicación y excluye los archivos y directorios innecesarios del control de versiones. Puedes encontrar un ejemplo de archivo .gitignore para una aplicación Rails en la página oficial de GitHub.

Para conectar tu repositorio local al repositorio que has creado en GitHub, añade el origen remoto a tu repositorio local, sustituyendo username y repository por los tuyos:

git remote add origin https://github.com/username/repository.git

Añade, confirma y envía tu código al repositorio Git:

git add .
git commit -m "Initial commit"
git push

Ten en cuenta que, como hemos configurado Kinsta para que se despliegue automáticamente con cada envío al repositorio, nuestra primera construcción falla. Esto ocurre porque aún no hemos conectado la base de datos a la aplicación, lo que haremos en el siguiente paso.

Paso 5: Despliega en Kinsta.com

  1. Accede a tu cuenta de Kinsta.com.
  2. En tu Panel de Control, haz clic en Añadir servicios y selecciona Aplicación.
  3. Conéctate a un proveedor Git.

Añadir Git
Conectar un proveedor Git

Configura los Detalles de tu Aplicación

  1. Añade el repositorio y selecciona la rama por defecto.
  2. (Opcional) Elige Despliegues automáticos para esta rama por defecto.
  3. Añade el nombre de la aplicación. Se utilizará para identificar la aplicación en tu Panel de Control.
  4. Elige la ubicación del centro de datos. Opta por la ubicación más cercana a tu público.

Añade la aplicación
Añade la aplicación

Puedes añadir variables de entorno en esta fase (ejemplos). Tu aplicación Rails recién generada viene con una llave maestra que descifra y lee los secretos en el archivo de credenciales de la carpeta config. Nunca guardes tu llave maestra en el control de versiones (ya está en el archivo .gitignore).

Para permitir el descifrado, tienes que configurar las variables utilizando una clave especial. Despliega Variables de entorno, copia el valor de tu archivo de clave maestra local y pégalo en la entrada Valor 1 de la variable RAILS_MASTER_KEY:

Variables de entorno
Variables de entorno

Configura tu Entorno de Construcción

  1. Elige tus Recursos de construcción.
  2. Para aplicaciones Rails, selecciona Usar Buildpacks.
  3. Haz clic en Continuar.

Entorno de construcción en MyKinsta
Utilizar Buildpacks

Configura los Recursos de tu Aplicación

  1. Deja vacío el campo Comando de inicio, ya que se define a través del comando del archivo creado en nuestros pasos anteriores bin/start.sh.
  2. Haz clic en Continuar.

Configurar los procesos
Configurar los procesos

Crear la Base de Datos de tus Aplicaciones

Necesitamos realizar la configuración final de la conexión para la base de datos.

  1. En el menú de la izquierda del Panel de Control de MyKinsta, haz clic en Bases de datos y haz clic en el nombre de la base de datos recién creada.
  2. Bajo el título Información, verás un subtítulo Conexiones internas, y haz clic en Añadir aplicación.
  3. En el menú desplegable, selecciona tu aplicación Rails.
  4. Marca la casilla Añadir variables de entorno a la aplicación.
  5. Haz clic en Añadir conexión.

Añadir conexión interna
Conexiones internas

Configura tu Base de Datos Local

Abre el archivo config/database.yml y actualiza la configuración de la base de datos según las credenciales de tu base de datos de MyKinsta.

Ejemplo:

production:
  adapter: postgresql  
  encoding: unicode  
  pool: 5
  database: <%= ENV["DB_NAME"] %>
  host: <%= ENV["DB_HOST"] %>
  username: <%= ENV["DB_USER"] %>
  password: <%= ENV["DB_PASSWORD"] %> 

Encuentra más información sobre cómo gestionar las conexiones a Bases de Datos en nuestra documentación sobre Configuración.

Confirma tu configuración e introduce los datos de pago para finalizar la configuración de la aplicación y Kinsta la desplegará en unos minutos.

Resumen

Siguiendo esta guía, has configurado con éxito tu aplicación Ruby on Rails versión 7.1 con una Base de Datos PostgreSQL para desplegarla y alojarla en Kinsta.

Ahora puedes centrarte en el desarrollo de tu aplicación y utilizar las potentes funciones proporcionadas por Kinsta para un despliegue y alojamiento sin problemas. Recuerda consultar la documentación oficial o buscar más ayuda del soporte de Kinsta siempre que sea necesario.

Lee Sheppard

Lee is an Agile certified full stack Ruby on Rails developer. With over six years in the tech industry he enjoys teaching, coaching Agile, and mentoring others. Lee also speaks at tech related events and has a background in design and illustration.