Merge pull request #5696 from consuldemocracy/servers-docs
Update documentation for Production and Staging servers
This commit is contained in:
@@ -1,27 +1,27 @@
|
||||
# Crear un usuario para hacer la instalación
|
||||
|
||||
[El instalador](https://github.com/consuldemocracy/installer) de forma predeterminada se conecta como el usuario `root` sólo para crear un usuario `deploy`. Este usuario `deploy` es el que instala todas las librerías. Si no tiene acceso `root`, por favor pídale a su administrador de sistemas que siga estas instrucciones para crear un usuario manualmente.
|
||||
[El instalador](https://github.com/consuldemocracy/installer) de forma predeterminada se conecta como el usuario `root` sólo para crear un usuario `deploy`. Este usuario `deploy` es el que instala todas las librerías. Si no tienes acceso `root`, por favor pide a tu administrador de sistemas que siga estas instrucciones para crear un usuario manualmente.
|
||||
|
||||
Puede crear un usuario llamado `deploy` o utilizar cualquier otro nombre. Como ejemplo, vamos a crear un usuario llamado `jupiter`.
|
||||
Puedes crear un usuario llamado `deploy` o utilizar cualquier otro nombre. **En este ejemplo, vamos a crear un usuario llamado `jupiter`**.
|
||||
|
||||
```bash
|
||||
adduser jupiter
|
||||
```
|
||||
|
||||
Estoy usando jupiter como nombre de usuario, debería cambiar eso por lo que sea que tenga sentido para usted. Introduzca una contraseña cuando se le pida y deje vacías el resto de las opciones.
|
||||
**Recuerda cambiar "jupiter" por el nombre de usuario que elijas.** Introduce una contraseña cuando se te pida y deja vacías el resto de las opciones.
|
||||
|
||||
Creemos un grupo `wheel` y añadamos al usuario `jupiter` al grupo.
|
||||
Ahora, crearemos un grupo `wheel` y añadiremos al usuario `jupiter` al grupo.
|
||||
|
||||
```bash
|
||||
sudo groupadd wheel
|
||||
sudo usermod -a -G wheel jupiter
|
||||
```
|
||||
|
||||
**Recuerde cambiar jupiter** por cualquier nombre de usuario que haya elegido en el paso anterior.
|
||||
**Recuerda cambiar "jupiter" por cualquier nombre de usuario que hayas elegido en el paso anterior.**
|
||||
|
||||
Ahora démosle al grupo `wheel` derechos de superadministración sin necesidad de usar contraseña, esto es importante para que el instalador no se quede parado esperando una contraseña.
|
||||
A continuación, configuraremos el grupo `wheel` para que tenga derechos de superadministración sin necesidad de usar contraseña. **Esto es importante para que el instalador no se quede esperando una contraseña.**
|
||||
|
||||
Primero debemos abrir el archivo `sudoers`:
|
||||
Primero, debemos abrir el archivo `sudoers`:
|
||||
|
||||
```bash
|
||||
sudo visudo -f /etc/sudoers
|
||||
@@ -33,9 +33,9 @@ Y añadimos esta línea al final del archivo:
|
||||
%wheel ALL=(ALL) NOPASSWD: ALL
|
||||
```
|
||||
|
||||
Ahora tenemos que dar las claves del servidor al nuevo usuario. No cierre la ventana de la terminal del servidor, porque puede bloquearse si hay un error.
|
||||
Ahora tenemos que dar las claves del servidor al nuevo usuario. No cierres la ventana de la terminal del servidor, porque puedes bloquearte si hay un error.
|
||||
|
||||
Y escriba los siguientes comandos para crear el archivo necesario donde subir la clave pública:
|
||||
Escribe los siguientes comandos para crear el archivo necesario donde subir la clave pública:
|
||||
|
||||
```bash
|
||||
su jupiter
|
||||
@@ -45,37 +45,37 @@ cd .ssh
|
||||
nano authorized_keys
|
||||
```
|
||||
|
||||
Asegúrese que ha [generado una clave pública](generating_ssh_key.md) en su terminal local.
|
||||
Asegúrate de que has [generado una clave pública](generating_ssh_key.md) en tu terminal local.
|
||||
|
||||
Abra otra ventana de terminal local (no en el servidor) y escriba:
|
||||
Abre otra ventana de terminal local (no en el servidor) y escribe:
|
||||
|
||||
```bash
|
||||
cat ~/.ssh/id_rsa.pub
|
||||
```
|
||||
|
||||
Copie el contenido de ese comando al archivo `authorized_keys` que debería seguir abierto en el servidor.
|
||||
Copia el contenido de ese comando al archivo `authorized_keys` que debería seguir abierto en el servidor.
|
||||
|
||||
Compruebe que su usuario puede iniciar sesión escribiendo:
|
||||
Comprueba que el usuario puede iniciar sesión escribiendo:
|
||||
|
||||
```bash
|
||||
ssh jupiter@your-copied-ip-address
|
||||
```
|
||||
|
||||
Debería ver la página de bienvenida del servidor y un mensaje como este:
|
||||
Deberías ver la página de bienvenida del servidor y un mensaje como este:
|
||||
|
||||
```bash
|
||||
jupiter@consuldemocracyserver:~$
|
||||
```
|
||||
|
||||
Note que el nombre de usuario en el prompt no es "root", sino su nombre de usuario. Así que todo está bien y ahora podemos bloquear la cuenta root del acceso externo y también dejar de permitir el acceso con contraseña para que sólo las personas con claves SSH puedan iniciar sesión.
|
||||
Nota que el nombre de usuario en el prompt no es `root`, sino el nombre de usuario que elegiste, lo que indica que todo está bien. Ahora podemos bloquear la cuenta `root` del acceso externo y también dejar de permitir el acceso con contraseña para que sólo las personas con claves SSH puedan iniciar sesión.
|
||||
|
||||
Escriba el siguiente comando para editar el archivo de configuración SSH del servidor:
|
||||
Escribe el siguiente comando para editar el archivo de configuración SSH del servidor:
|
||||
|
||||
```bash
|
||||
sudo nano /etc/ssh/sshd_config
|
||||
```
|
||||
|
||||
Busque la línea "PasswordAuthentication yes" y cámbiela por "PasswordAuthentication no". Escriba Control-K para cerrar el editor nano y escriba:
|
||||
Busca la línea "PasswordAuthentication yes" y cámbiala por "PasswordAuthentication no". Escribe `Control+X` para cerrar el editor nano y escribe:
|
||||
|
||||
```bash
|
||||
sudo service ssh restart
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,59 +1,49 @@
|
||||
# Instalando Consul Democracy en un VPS de Digital Ocean
|
||||
|
||||
Estas instrucciones le ayudaran a registrarse y comprar un servidor en Digital Ocean para instalar Consul Democracy.
|
||||
Estas instrucciones te ayudarán a registrarte y comprar un servidor en Digital Ocean para instalar Consul Democracy.
|
||||
|
||||
Primero necesita [registrarse](https://cloud.digitalocean.com/registrations/new) y proporcionar su información personal.
|
||||
Primero necesitas [registrarte](https://cloud.digitalocean.com/registrations/new) y proporcionar tu información personal.
|
||||
|
||||
Una vez que haya iniciado sesión, deberá crear un Droplet (ese es el nombre que Digital Ocean utiliza para un Servidor Virtual). Haga clic en el botón verde "Crear" en la parte superior de la página y seleccione "Droplets":
|
||||
Una vez que hayas iniciado sesión, deberás crear un _Droplet_ (este es el nombre que Digital Ocean utiliza para un servidor en la nube) siguiendo esta [guía](https://docs.digitalocean.com/products/droplets/how-to/create/) y configurarlo teniendo en cuenta los siguientes consejos:
|
||||
|
||||

|
||||
## Región
|
||||
|
||||
En la página siguiente, debe seleccionar Ubuntu (debería estar preseleccionado) y cambiar la versión **de 18.04 x64 a 16.04 x64**.
|
||||
Para evitar latencia en el servicio, selecciona la región que esté geográficamente más cerca de vuestros usuarios.
|
||||
|
||||

|
||||
## Imagen
|
||||
|
||||
En la sección "Elegir un tamaño" seleccione la opción **$80/mo 16GB/6CPUs** si va a ser un servidor de producción. Si está configurando un sistema de prueba con unos pocos usuarios, la opción más barata de $5/mes puede ser suficiente.
|
||||
En esta sección recomendamos seleccionar ubuntu con la última versión soportada por el instalador, que en este caso sería la **24.04**.
|
||||
|
||||

|
||||
## Tamaño
|
||||
|
||||
Deje el resto de las opciones con sus valores por defecto hasta "Elegir un centro de datos". Seleccione el que esté geográficamente más cerca de sus usuarios. Si se encuentra en la UE, seleccione los centros de datos de Frankfurt o Amsterdam.
|
||||
En la sección "Elegir un tamaño" si el objetivo es crear un servidor para producción recomendamos elegir una opción que al menos tenga **16GB de RAM**. Si por el contrario estás configurando un sistema de pruebas o un entorno de staging con unos pocos usuarios, la opción más barata puede ser suficiente.
|
||||
|
||||

|
||||
## Autenticación
|
||||
|
||||
En la sección "Añadir claves SSH" pulse el botón "Nueva clave SSH".
|
||||
En la sección "Elegir un método de autenticación" seleccionaremos _SSH Key_ y pulsaremos el botón _New SSH Key_ para añadir nuestra clave
|
||||
|
||||

|
||||
|
||||
En la ventana emergente que aparece es necesario copiar y pegar la clave pública que [generamos en el paso anterior](generating_ssh_key.md). Para ver el contenido de esta clave en la ventana del terminal, escriba:
|
||||
En la ventana emergente que aparece es necesario copiar y pegar la clave pública que [generamos en el paso anterior](generating_ssh_key.md). Para ver el contenido de esta clave en la ventana del terminal, escribe:
|
||||
|
||||
```bash
|
||||
cat ~/.ssh/id_rsa.pub
|
||||
```
|
||||
|
||||
Debería ver un texto como este:
|
||||
Deberías ver un texto como este:
|
||||
|
||||
```text
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDy/BXU0OsK8KLLXpd7tVnqDU+d4ZS2RHQmH+hv0BFFdP6PmUbKdBDigRqG6W3QBexB2DpVcb/bmHlfhzDlIHJn/oki+SmUYLSWWTWuSeF/1N7kWf9Ebisk6hiBkh5+i0oIJYvAUsNm9wCayQ+i3U3NjuB25HbgtyjR3jDPIhmg1xv0KZ8yeVcU+WJth0pIvwq+t4vlZbwhm/t2ah8O7hWnbaGV/MZUcj0/wFuiad98yk2MLGciV6XIIq+MMIEWjrrt933wAgzEB8vgn9acrDloJNvqx25uNMpDbmoNXJ8+/P3UDkp465jmejVd/6bRaObXplu2zTv9wDO48ZpsaACP your_username@your_computer_name
|
||||
```
|
||||
|
||||
Seleccione y copie todo el texto y péguelo en la ventana emergente de la siguiente manera:
|
||||
Selecciona todo el texto, pégalo en la ventana emergente en el campo _SSH Key content_, añade un nombre significativo como por ejemplo **Consul_Democracy_key** y clica sobre el botón _Add SSH Key_.
|
||||
|
||||

|
||||
Al utilizar una clave SSH en lugar de una combinación de usuario/contraseña para acceder a tu servidor, será mucho más seguro, ya que sólo alguien con la clave privada SSH puede acceder al servidor.
|
||||
|
||||
Tenga en cuenta que habrá dos pequeños checks verdes. Si no están ahí, vuelva a intentar copiar el texto porque probablemente omitió algo. Dé a su clave un nombre significativo, como **Consul_Democracy_key** y haga clic en el botón "Add SSH Key" (Añadir clave SSH).
|
||||
## Nombre del host
|
||||
|
||||
Al utilizar una clave SSH en lugar de una combinación de usuario/contraseña para acceder a su servidor, será mucho más seguro, ya que sólo alguien con la clave privada SSH puede acceder al servidor.
|
||||
Ahora en la sección "Ultimar detalles" cambia el valor por defecto del campo _Hostname_ por algo más significativo, como **consuldemocracyserver** por ejemplo.
|
||||
|
||||
Ahora en la sección "Choose a hostname" cambie el valor por defecto por algo más significativo, como **consuldemocracyserver** por ejemplo.
|
||||
En la parte inferior de la página verás un resumen de tus opciones. Comprueba que todo está bien y haz clic en el botón grande verde "Crear".
|
||||
|
||||

|
||||
Tardará unos minutos, y al final tendrás un brillante nuevo servidor.
|
||||
|
||||
En la parte inferior de la página verás un resumen de tus opciones. Compruebe que todo está bien y haga clic en el botón grande verde "Crear".
|
||||
|
||||

|
||||
|
||||
Tardará unos minutos, y al final tendrá un brillante nuevo servidor. Se verá así en la página de Digital Ocean:
|
||||
|
||||

|
||||
|
||||
Lo siguiente es configurar Consul Democracy en el servidor. Por favor [leer estas instrucciones](https://github.com/consuldemocracy/installer)
|
||||
Lo siguiente es configurar Consul Democracy en el servidor. Por favor [lee estas instrucciones](https://github.com/consuldemocracy/installer).
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
# Generación de claves SSH
|
||||
|
||||
Estas instrucciones le ayudarán a generar una clave pública con la que podrá conectarse al servidor sin necesidad de utilizar una contraseña.
|
||||
Estas instrucciones te ayudarán a generar una clave pública con la que podrás conectarte al servidor sin necesidad de utilizar una contraseña.
|
||||
|
||||
En la ventana del terminal, escriba:
|
||||
En la ventana del terminal, escribe:
|
||||
|
||||
```bash
|
||||
ssh-keygen
|
||||
```
|
||||
|
||||
Cuando se le pida el archivo en el que guardar la clave, sólo tiene que pulsar ENTER para dejar el valor predeterminado. Cuando se le pida una frase de contraseña, pulse ENTER de nuevo para dejarla vacía. Al final debería ver un mensaje como este:
|
||||
Cuando se te pida el archivo en el que guardar la clave, solo tienes que pulsar ENTER para dejar el valor predeterminado. Cuando se te pida una frase de contraseña, pulsa ENTER de nuevo para dejarla vacía. Al final deberías ver un mensaje como este:
|
||||
|
||||
```text
|
||||
Your identification has been saved in /your_home/.ssh/id_rsa.
|
||||
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
|
||||
```
|
||||
|
||||
Tome nota de la ubicación del archivo **id_rsa.pub**, porque necesitará el contenido de este archivo más adelante.
|
||||
Toma nota de la ubicación del archivo **id_rsa.pub**, porque necesitarás el contenido de este archivo más adelante.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Instalador
|
||||
|
||||
## Instrucciones de instalación para entornos de Producción y Pruebas
|
||||
## Instrucciones de instalación para entornos de producción y pruebas
|
||||
|
||||
Se encuentran en el [repositorio del instalador](https://github.com/consuldemocracy/installer)
|
||||
Puedes encontrar las instrucciones en el [README del repositorio del instalador](https://github.com/consuldemocracy/installer).
|
||||
|
||||
@@ -2,25 +2,18 @@
|
||||
|
||||
Este es un ejemplo de cómo integrar un servicio de correo con Consul Democracy.
|
||||
|
||||
En este ejemplo usamos [Mailgun](https://www.mailgun.com/).
|
||||
## Obtener una cuenta de tu proveedor de correos de confianza
|
||||
|
||||
## Crear una cuenta en Mailgun
|
||||
Para poder configurar el correo en Consul Democracy necesitaremos:
|
||||
|
||||

|
||||
|
||||
* Puedes omitir el formulario de tarjeta de crédito
|
||||
* Y activa tu cuenta con el enlace enviado por correo electrónico
|
||||
|
||||
## Configuración del dominio
|
||||
|
||||
* Ve a la sección "domain": 
|
||||
* Como todavía no tienes un dominio, debes pinchar en el "sandbox" que ya está creado
|
||||
* Recuerda las siguientes credenciales: 
|
||||
* El _smtp_address_, que es la dirección del servidor SMTP de tu proveedor de correos (por ejemplo, smtp.tudominio.com).
|
||||
* El _domain_, que es el nombre de dominio de tu aplicación.
|
||||
* El _user_name_ y _password_, que son las credenciales que tu proveedor de correos te proporciona para autenticarte en el servidor SMTP.
|
||||
|
||||
## Configuración del correo en Consul Democracy
|
||||
|
||||
* Ve al archivo `config/secrets.yml`
|
||||
* Modifica las líneas en el archivo para configurar el servidor de correo:
|
||||
1. Ve al archivo `config/secrets.yml`.
|
||||
2. Modifica las siguientes líneas en la sección de `staging`, `preproduction` or `production`, dependiendo de tu configuración:
|
||||
|
||||
```yml
|
||||
mailer_delivery_method: :smtp
|
||||
@@ -34,5 +27,5 @@ En este ejemplo usamos [Mailgun](https://www.mailgun.com/).
|
||||
:enable_starttls_auto: true
|
||||
```
|
||||
|
||||
* Rellena `<smtp address>`, `<domain>`, `<user_name>` y `<password>` con tu información.
|
||||
* Guarda el fichero y reinicia tu aplicación Consul Democracy
|
||||
3. Rellena `<smtp address>`, `<domain>`, `<user_name>` y `<password>` con tu información.
|
||||
4. Guarda el fichero y reinicia tu aplicación Consul Democracy.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Instalación manual en producción
|
||||
|
||||
**AVISO:** Recomendamos *no usar* este sistema, para el que no damos soporte oficial, ya que siempre que sea posible debe utilizarse el [instalador](https://github.com/consuldemocracy/installer). Utiliza este método si usar el instalador no es una opción y si tienes experiencia configurando PostgreSQL, puma o passenger, NGNIX y SSL (con letsencrypt, por ejemplo).
|
||||
**AVISO:** Recomendamos *no usar* este sistema, para el que no damos soporte oficial, ya que siempre que sea posible debe utilizarse el [instalador](https://github.com/consuldemocracy/installer). Utiliza este método solo si usar el instalador no es una opción y si tienes experiencia configurando PostgreSQL, Puma o Passenger, NGNIX y SSL (con letsencrypt, por ejemplo).
|
||||
|
||||
Esta guía asume que ya has [instalado todas las dependencias necesarias](prerequisites.md) en tu sistema.
|
||||
Esta guía asume que ya has [instalado todas las dependencias necesarias](prerequisites.md) en tu sistema. Asegúrate de instalar RVM para poder instalar la versión de ruby necesaria para el proyecto que está definida en el fichero .ruby-version y también asegúrate de instalar FNM para poder instalar la versión de node.js definida en el fichero .node-version.
|
||||
|
||||
La estructura de directorios que se crea a continuación está pensada para usarse con [capistrano](https://capistranorb.com/documentation/getting-started/structure/).
|
||||
|
||||
@@ -20,22 +20,24 @@ mkdir -p shared/public/assets shared/public/system shared/public/ckeditor_assets
|
||||
|
||||
## Versión inicial
|
||||
|
||||
Crea una primera carpeta en "releases" a partir del repositorio, junto con un enlace simbólico a la versión actual (sustituye `<latest_consul_stable_version>` por el número de la última versión estable de Consul Democracy, como 1.3.1 o 1.4.1):
|
||||
Crea una carpeta en _releases_ a partir del repositorio y luego genera un enlace simbólico a la versión actual. Asegúrate de sustituir `<latest_consul_stable_version>` por el número de la última versión estable de Consul Democracy, como 2.1.1 o 2.2.0. Para encontrar la versión más reciente, visita la sección de _releases_ en el [repositorio de Consul Democracy](https://github.com/consuldemocracy/consuldemocracy/releases):
|
||||
|
||||
```bash
|
||||
mkdir releases/first
|
||||
cd repo
|
||||
git archive <latest_consul_stable_version> | tar -x -f - -C ../releases/first
|
||||
cd ..
|
||||
ln -s releases/first current
|
||||
```
|
||||
|
||||
## Instalación de gemas
|
||||
## Instalación de dependencias
|
||||
|
||||
Instala las gemas de las que depende Consul Democracy:
|
||||
Instala las dependencias de Consul Democracy:
|
||||
|
||||
```bash
|
||||
cd releases/first
|
||||
bundle install --path ../../shared/bundle --without development test
|
||||
fnm exec npm install
|
||||
cd ../..
|
||||
```
|
||||
|
||||
@@ -52,7 +54,7 @@ ln -s ../../../shared/config/secrets.yml
|
||||
cd ../../..
|
||||
```
|
||||
|
||||
Edita el fichero `shared/config/database.yml`, rellenando `username` y `password` con los datos generador durante la [configuración de PostgreSQL](debian.md#postgresql-94).
|
||||
Edita el fichero `shared/config/database.yml`, rellenando `username` y `password` con los datos generador durante la [configuración de PostgreSQL](debian.md#postgresql).
|
||||
|
||||
Ahora generamos una clave secreta:
|
||||
|
||||
@@ -77,6 +79,7 @@ Crea una base de datos, genera los datos necesarios para que la aplicación func
|
||||
|
||||
```bash
|
||||
cd current
|
||||
bin/rake db:create RAILS_ENV=production
|
||||
bin/rake db:migrate RAILS_ENV=production
|
||||
bin/rake db:seed RAILS_ENV=production
|
||||
bin/rake assets:precompile RAILS_ENV=production
|
||||
|
||||
@@ -2,20 +2,20 @@
|
||||
|
||||
## Requisitos de sistema mínimos recomendados
|
||||
|
||||
### 1. Production Server
|
||||
### 1. Servidor de producción
|
||||
|
||||
- Distrubution: Ubuntu 16.04.X
|
||||
- Distribuciones compatibles: Ubuntu 22.04, Ubuntu 24.04, Debian Bullseye o Debian Bookworm
|
||||
- RAM: 32GB
|
||||
- Processor: Quad core
|
||||
- Hard Drive: 20 GB
|
||||
- Database: Postgres
|
||||
- Procesador: Quad core
|
||||
- Disco duro: 20 GB
|
||||
- Base de datos: Postgres
|
||||
|
||||
### 2. Staging Server
|
||||
### 2. Servidor de pruebas
|
||||
|
||||
- Distrubution: Ubuntu 16.04.X
|
||||
- Distribuciones compatibles: Ubuntu 22.04, Ubuntu 24.04, Debian Bullseye o Debian Bookworm
|
||||
- RAM: 16GB
|
||||
- Processor: Dual core
|
||||
- Hard Drive: 20 GB
|
||||
- Database: Postgres
|
||||
- Procesador: Dual core
|
||||
- Disco duro: 20 GB
|
||||
- Base de datos: Postgres
|
||||
|
||||
Si tu ciudad tiene una población superior a 1.000.000, considera añadir un balanceador de carga y usar 2-3 servidores de producción, además de un servidor de base de datos dedicado.
|
||||
|
||||
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