CONSUL
Search…
Heroku

Instalación manual

Este tutorial asume que ya has conseguido clonar CONSUL en tu máquina y conseguir que funcione.
  1. 1.
    En primer lugar, necesitas crear una cuenta en Heroku si no lo has hecho ya.
  2. 2.
    Instala Heroku CLI e inicia sesión con:
1
heroku login
Copied!
  1. 1.
    Accede a tu repositorio de CONSUL y crea una instancia
1
cd consul
2
heroku create your-app-name
Copied!
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. 1.
    Crea la base de datos con
1
heroku addons:create heroku-postgresql
Copied!
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 se conectará automáticamente a ella durante la instalación.
  1. 1.
    (No es necesario) Crea un archivo con el nombre heroku.yml en la raíz del proyecto y añade el siguiente código
1
build:
2
languages:
3
- ruby
4
packages:
5
- imagemagick
6
run:
7
web: bundle exec rails server -e ${RAILS_ENV:-production}
Copied!
  1. 1.
    Ahora, genera una clave secreta y guárdala en la variable de entorno SECRET_KEY_BASE de la siguinte manera
1
heroku config:set SECRET_KEY_BASE=$(rails secret)
Copied!
Añade también la dirección de tu servidor:
1
heroku config:set SERVER_NAME=myserver.address.com
Copied!
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
1
production:
2
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
3
server_name: <%= ENV["SERVER_NAME"] %>
Copied!
y añade este archivo en el repositorio comentando la línea correspondiente en el .gitignore.
1
#/config/secrets.yml
Copied!
¡Recuerda no añadir el archivo si tienes información sensible en él!
  1. 1.
    Ahora ya puedes subir tu aplicación utilizando:
1
git push heroku your-branch:master
Copied!
  1. 1.
    No funcionará de inmediato porque la base de datos no contiene las tablas necesarias. Para crearlas, ejecuta
1
heroku run rake db:migrate
2
heroku run rake db:seed
Copied!
Si quieres añadir los datos de prueba en la base de datos, mueve gem 'faker', '~> 1.8.7' fuera del group :development y ejecuta:
1
heroku config:set DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL=true
2
heroku config:set DATABASE_CLEANER_ALLOW_PRODUCTION=true
3
heroku run rake db:dev_seed
Copied!
  1. 1.
    Ahora tu aplicación debería estar ya opertaiva. Puedes abrirla con
1
heroku open
Copied!
También puedes arrancar la consola en heroku utilizando
1
heroku console --app your-app-name
Copied!
  1. 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 Paperclip con S3.

Configurar Sendgrid

Añade el complemento (add-on) de SendGrid en Heroku. Esto creará una cuenta de SendGrid para la aplicación con ENV["SENDGRID_USERNAME"] y ENV["SENDGRID_PASSWORD"].
Añade el siguiente código a config/secrets.yml, en la sección production::
1
mailer_delivery_method: :smtp
2
smtp_settings:
3
:address: "smtp.sendgrid.net"
4
:port: 587
5
:domain: "heroku.com"
6
:user_name: ENV["SENDGRID_USERNAME"]
7
:password: ENV["SENDGRID_PASSWORD"]
8
:authentication: "plain"
9
:enable_starttls_auto: true
Copied!
Importante: Activa un "worker dyno" para que se envíen los correos electrónicos.

Opcional (pero recomendado):

Instalar rails_12factor y especificar la versión de Ruby

Instalar rails_12factor sólo es útil si utilizas una versión de CONSUL anterior a la 1.0.0. La última versión utiliza Rails 5 que ya incluye los cambios.
Como nos recomienda Heroku, puedes añadir la gema rails_12factor y especificar la versión de Ruby a utilizar. Puedes hacerlo añadiendo:
1
gem 'rails_12factor'
2
3
ruby 'x.y.z'
Copied!
en el archivo Gemfile_custom, donde x.y.z es la versión definida en el fichero .ruby-version del repositorio de CONSUL. No olvides ejecutar
1
bundle install
Copied!
para generar el Gemfile.lock antes de añadir los cambios y subirlos al servidor.

Utilizar Puma como servidor web

Heroku recomienda utilizar Puma para mejorar el rendimiento de la aplicación.
Si quieres permitir más concurrencia, descomenta la siguiente linea:
1
workers ENV.fetch("WEB_CONCURRENCY") { 2 }
Copied!
Puedes encontrar una explicación para diferentes configuraciones en el siguiente tutorial de Heroku.
Por último hay que cambiar la tarea web para usar Puma cambiándola en el archivo heroku.yml con el siguiente código:
1
web: bundle exec puma -C config/puma.rb
Copied!

Añadir variables de configuración desde el panel de control

Las versiones gratuita y hobby de Heroku no son suficientes para ejecutar una aplicación como CONSUL. Para optimizar el tiempo de respuesta y asegurarte de que la aplicación no se quede sin memoria, puedes cambiar el número de "workers" e hilos que utiliza Puma.
La configuración recomendada es un "worker" y tres hilos. Puedes configurarlo ejecutando estos dos comandos:
1
heroku config:set WEB_CONCURRENCY=1
2
heroku config:set RAILS_MAX_THREADS=3
Copied!
También es recomendable configurar las siguientes variables:
1
heroku config:set RAILS_SERVE_STATIC_FILES=enabled
2
heroku config:set RAILS_ENV=production
Copied!
Last modified 6mo ago