Heroku

Instalación manual

Este tutorial asume que ya has conseguido clonar Consul Democracy en tu máquina y conseguir que funcione.

  1. En primer lugar, necesitas crear una cuenta en Heroku si no lo has hecho ya.

  2. Instala Heroku CLI e inicia sesión con:

heroku login
  1. Accede a tu repositorio de Consul Democracy y crea una instancia:

cd consuldemocracy
heroku create your-app-name

Puedes añadir --region eu si quieres utilizar servidores europeos en lugar de los estadounidenses.

Si your-app-name no existe aún, Heroku creará tu aplicación.

  1. Crea la base de datos con:

heroku addons:create heroku-postgresql

Ahora deberías tener acceso a una base de datos Postgres vacía cuya dirección se guardó automáticamente como una variable de entorno llamada DATABASE_URL. Consul Democracy se conectará automáticamente a ella durante la instalación.

  1. Ahora, genera una clave secreta y guárdala en la variable de entorno SECRET_KEY_BASE de la siguiente manera:

heroku config:set SECRET_KEY_BASE=$(rails secret)

Añade también la dirección de tu servidor:

heroku config:set SERVER_NAME=myserver.address.com

Es necesario que la aplicación sepa dónde se almacenan las variables de configuración añadiendo un enlace a las variables de entorno en config/secrets.yml

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
  server_name: <%= ENV["SERVER_NAME"] %>

y añade este archivo en el repositorio comentando la línea correspondiente en el .gitignore.

#/config/secrets.yml

¡Recuerda no añadir el archivo si tienes información sensible en él!

  1. Para que Heroku detecte y utilice correctamente las versiones de node.js y ruby definidas en el proyecto deberemos añadir los siguientes cambios:

En el package.json añadir la versión de node.js:

"engines": {
  "node": "18.20.3"
}

y aplicar:

heroku buildpacks:add heroku/nodejs

En el Gemfile añadir la versión de ruby y ejecutar bundle:

ruby file: ".ruby-version"

y aplicar:

heroku buildpacks:set heroku/ruby
  1. Ahora ya puedes subir tu aplicación utilizando:

git push heroku your-branch:master
  1. No funcionará de inmediato porque la base de datos no contiene las tablas necesarias. Para crearlas, ejecuta:

heroku run rake db:migrate
heroku run rake db:seed
  1. Ahora tu aplicación debería estar ya operativa. Puedes abrirla con:

heroku open

También puedes arrancar la consola en heroku utilizando

heroku console --app your-app-name
  1. Heroku no permite guardar imágenes o documentos en sus servidores, por lo que es necesario configurar un nuevo espacio de almacenamiento.

Consulta nuestra guía de S3 para más detalles sobre la configuración de ActiveStorage con S3.

Configurar Twilio SendGrid

Añade el complemento (add-on) de Twilio SendGrid en Heroku. Esto creará una cuenta en Twilio SendGrid para la aplicación con un nombre de usuario y permitirá crear una contraseña. Este usuario y contraseña lo podemos guardar en las variables de entorno de la aplicación en Heroku:

heroku config:set SENDGRID_USERNAME=example-username SENDGRID_PASSWORD=xxxxxxxxx

Ahora añade el siguiente código a config/secrets.yml, en la sección production::

  mailer_delivery_method: :smtp
  smtp_settings:
    :address: "smtp.sendgrid.net"
    :port: 587
    :domain: "heroku.com"
    :user_name: ENV["SENDGRID_USERNAME"]
    :password: ENV["SENDGRID_PASSWORD"]
    :authentication: "plain"
    :enable_starttls_auto: true

Importante: Activa un "worker dyno" para que se envíen los correos electrónicos.

Last updated