Update Heroku instructions
Note that the variable related with the "hostname" is removed from the Heroku instructions as it is not necessary to configure the Bucket.
This commit is contained in:
@@ -11,7 +11,7 @@ Este tutorial asume que ya has conseguido clonar Consul Democracy en tu máquina
|
||||
heroku login
|
||||
```
|
||||
|
||||
3. Accede a tu repositorio de Consul Democracy y crea una instancia
|
||||
3. Accede a tu repositorio de Consul Democracy y crea una instancia:
|
||||
|
||||
```bash
|
||||
cd consuldemocracy
|
||||
@@ -22,7 +22,7 @@ Este tutorial asume que ya has conseguido clonar Consul Democracy en tu máquina
|
||||
|
||||
Si _your-app-name_ no existe aún, Heroku creará tu aplicación.
|
||||
|
||||
4. Crea la base de datos con
|
||||
4. Crea la base de datos con:
|
||||
|
||||
```bash
|
||||
heroku addons:create heroku-postgresql
|
||||
@@ -30,19 +30,7 @@ Este tutorial asume que ya has conseguido clonar Consul Democracy en tu máquina
|
||||
|
||||
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.
|
||||
|
||||
5. **(No es necesario)** Crea un archivo con el nombre _heroku.yml_ en la raíz del proyecto y añade el siguiente código
|
||||
|
||||
```yml
|
||||
build:
|
||||
languages:
|
||||
- ruby
|
||||
packages:
|
||||
- imagemagick
|
||||
run:
|
||||
web: bundle exec rails server -e ${RAILS_ENV:-production}
|
||||
```
|
||||
|
||||
6. Ahora, genera una clave secreta y guárdala en la variable de entorno SECRET\_KEY\_BASE de la siguinte manera
|
||||
5. Ahora, genera una clave secreta y guárdala en la variable de entorno SECRET\_KEY\_BASE de la siguiente manera:
|
||||
|
||||
```bash
|
||||
heroku config:set SECRET_KEY_BASE=$(rails secret)
|
||||
@@ -70,28 +58,48 @@ Este tutorial asume que ya has conseguido clonar Consul Democracy en tu máquina
|
||||
|
||||
**¡Recuerda no añadir el archivo si tienes información sensible en él!**
|
||||
|
||||
6. 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:
|
||||
|
||||
```json
|
||||
"engines": {
|
||||
"node": "18.20.3"
|
||||
}
|
||||
```
|
||||
|
||||
y aplicar:
|
||||
|
||||
```bash
|
||||
heroku buildpacks:add heroku/nodejs
|
||||
```
|
||||
|
||||
En el _Gemfile_ añadir la versión de ruby y ejecutar bundle:
|
||||
|
||||
```Gemfile
|
||||
ruby file: ".ruby-version"
|
||||
```
|
||||
|
||||
y aplicar:
|
||||
|
||||
```bash
|
||||
heroku buildpacks:set heroku/ruby
|
||||
```
|
||||
|
||||
7. Ahora ya puedes subir tu aplicación utilizando:
|
||||
|
||||
```bash
|
||||
git push heroku your-branch:master
|
||||
```
|
||||
|
||||
8. No funcionará de inmediato porque la base de datos no contiene las tablas necesarias. Para crearlas, ejecuta
|
||||
8. No funcionará de inmediato porque la base de datos no contiene las tablas necesarias. Para crearlas, ejecuta:
|
||||
|
||||
```bash
|
||||
heroku run rake db:migrate
|
||||
heroku run rake db:seed
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
heroku config:set DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL=true
|
||||
heroku config:set DATABASE_CLEANER_ALLOW_PRODUCTION=true
|
||||
heroku run rake db:dev_seed
|
||||
```
|
||||
|
||||
9. Ahora tu aplicación debería estar ya opertaiva. Puedes abrirla con
|
||||
9. Ahora tu aplicación debería estar ya operativa. Puedes abrirla con:
|
||||
|
||||
```bash
|
||||
heroku open
|
||||
@@ -105,13 +113,17 @@ Este tutorial asume que ya has conseguido clonar Consul Democracy en tu máquina
|
||||
|
||||
10. 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](./using-aws-s3-as-storage.md) para más detalles sobre la configuración de Paperclip con S3.
|
||||
Consulta [nuestra guía de S3](using-aws-s3-as-storage.md) para más detalles sobre la configuración de ActiveStorage con S3.
|
||||
|
||||
### Configurar Sendgrid
|
||||
### Configurar Twilio 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 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:
|
||||
|
||||
Añade el siguiente código a `config/secrets.yml`, en la sección `production:`:
|
||||
```bash
|
||||
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:`:
|
||||
|
||||
```yaml
|
||||
mailer_delivery_method: :smtp
|
||||
@@ -125,62 +137,4 @@ Añade el siguiente código a `config/secrets.yml`, en la sección `production:`
|
||||
:enable_starttls_auto: true
|
||||
```
|
||||
|
||||
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 Democracy 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:
|
||||
|
||||
```ruby
|
||||
gem 'rails_12factor'
|
||||
|
||||
ruby 'x.y.z'
|
||||
```
|
||||
|
||||
en el archivo _Gemfile\_custom_, donde `x.y.z` es la versión definida en el fichero `.ruby-version` del repositorio de Consul Democracy. No olvides ejecutar
|
||||
|
||||
```bash
|
||||
bundle install
|
||||
```
|
||||
|
||||
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](http://blog.scoutapp.com/articles/2017/02/10/which-ruby-app-server-is-right-for-you) de la aplicación.
|
||||
|
||||
Si quieres permitir más concurrencia, descomenta la siguiente linea:
|
||||
|
||||
```ruby
|
||||
workers ENV.fetch("WEB_CONCURRENCY") { 2 }
|
||||
```
|
||||
|
||||
Puedes encontrar una explicación para diferentes configuraciones en el siguiente [tutorial de Heroku](https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server).
|
||||
|
||||
Por último hay que cambiar la tarea _web_ para usar Puma cambiándola en el archivo _heroku.yml_ con el siguiente código:
|
||||
|
||||
```yml
|
||||
web: bundle exec puma -C config/puma.rb
|
||||
```
|
||||
|
||||
### 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 Democracy. 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](https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#workers) que utiliza Puma.
|
||||
|
||||
La configuración recomendada es un "worker" y tres hilos. Puedes configurarlo ejecutando estos dos comandos:
|
||||
|
||||
```bash
|
||||
heroku config:set WEB_CONCURRENCY=1
|
||||
heroku config:set RAILS_MAX_THREADS=3
|
||||
```
|
||||
|
||||
También es recomendable configurar las siguientes variables:
|
||||
|
||||
```bash
|
||||
heroku config:set RAILS_SERVE_STATIC_FILES=enabled
|
||||
heroku config:set RAILS_ENV=production
|
||||
```
|
||||
**Importante:** Activa un "_worker dyno_" para que se envíen los correos electrónicos.
|
||||
|
||||
64
docs/es/installation/using-aws-s3-as-storage.md
Normal file
64
docs/es/installation/using-aws-s3-as-storage.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Usar AWS S3 como almacenamiento de archivos
|
||||
|
||||
Aunque Consul Democracy almacena la mayor parte de sus datos en una base de datos PostgreSQL, en Heroku todos los archivos como documentos o imágenes deben almacenarse en otro lugar, como puede ser AWS S3.
|
||||
|
||||
## Añadir la gema *aws-sdk-s3*
|
||||
|
||||
Añade la siguiente línea en tu *Gemfile_custom*:
|
||||
|
||||
```ruby
|
||||
gem "aws-sdk-s3", "~> 1"
|
||||
```
|
||||
|
||||
Y ejecuta `bundle install` para aplicar los cambios.
|
||||
|
||||
## Añadir tus credenciales en *secrets.yml*
|
||||
|
||||
Esta guía asume que tienes una cuenta de Amazon configurada para usar S3 y que has creado un _bucket_ para tu instancia de Consul Democracy. Se recomienda encarecidamente usar un _bucket_ diferente para cada instancia (producción, preproducción, staging).
|
||||
|
||||
Necesitarás la siguiente información:
|
||||
|
||||
- El **nombre** del _bucket_.
|
||||
- La **región** del _bucket_ (`eu-central-1` para UE-Frankfurt, por ejemplo).
|
||||
- Una **_access_key_** y un **_secret_key_** con permisos de lectura/escritura para el _bucket_.
|
||||
|
||||
**AVISO:** Se recomienda crear usuarios _IAM_ (Identity and Access Management) que solo tengan permisos de lectura/escritura en el _bucket_ que deseas usar para esa instancia específica de Consul Democracy.
|
||||
|
||||
Una vez que tengas esta información, puedes guardarla como variables de entorno de la instancia que ejecuta Consul Democracy. En este tutorial, las guardamos respectivamente como *S3_BUCKET*, *S3_REGION*, *S3_ACCESS_KEY_ID* and *S3_SECRET_ACCESS_KEY*.
|
||||
|
||||
```bash
|
||||
heroku config:set S3_BUCKET=example-bucket-name S3_REGION=eu-west-example S3_ACCESS_KEY_ID=xxxxxxxxx S3_SECRET_ACCESS_KEY=yyyyyyyyyy
|
||||
```
|
||||
|
||||
Ahora añade el siguiente bloque en tu fichero *secrets.yml*:
|
||||
|
||||
```yaml
|
||||
production:
|
||||
s3:
|
||||
access_key_id: <%= ENV["S3_ACCESS_KEY_ID"] %>
|
||||
secret_access_key: <%= ENV["S3_SECRET_ACCESS_KEY"] %>
|
||||
region: <%= ENV["S3_REGION"] %>
|
||||
bucket: <%= ENV["S3_BUCKET"] %>
|
||||
```
|
||||
|
||||
## Habilitar el uso de S3 en la aplicación
|
||||
|
||||
Primero, agrega la siguiente línea dentro de la clase `class Application < Rails::Application` en el fichero `config/application_custom.rb`:
|
||||
|
||||
```ruby
|
||||
# Store uploaded files on the local file system (see config/storage.yml for options).
|
||||
config.active_storage.service = :s3
|
||||
```
|
||||
|
||||
Luego, descomenta el bloque de **s3** que encontrarás en el fichero *storage.yml*:
|
||||
|
||||
```yaml
|
||||
s3:
|
||||
service: S3
|
||||
access_key_id: <%= Rails.application.secrets.dig(:s3, :access_key_id) %>
|
||||
secret_access_key: <%= Rails.application.secrets.dig(:s3, :secret_access_key) %>
|
||||
region: <%= Rails.application.secrets.dig(:s3, :region) %>
|
||||
bucket: <%= Rails.application.secrets.dig(:s3, :bucket) %>
|
||||
```
|
||||
|
||||
Necesitarás reiniciar la aplicación para aplicar los cambios.
|
||||
Reference in New Issue
Block a user