GitBook: [master] 86 pages and 110 assets modified

This commit is contained in:
consuldocs
2020-07-14 22:51:03 +00:00
committed by gitbook-bot
parent 06fe16d6b4
commit 5ed5960428
196 changed files with 5304 additions and 122 deletions

View File

@@ -0,0 +1,9 @@
# Instalación
Estas son nuestras recomendaciones para los diferentes entornos y propósitos:
* Para configurar CONSUL para un entorno de producción, recomendamos utilizar el [instalador](https://github.com/consul/installer).
* Para los programadores que trabajan en un entorno de desarrollo, recomendamos instalar CONSUL en un sistema basado en UNIX \(Linux o Mac\) y hacer una [instalación local](local_installation/) de CONSUL.
* Si tienes problemas para hacer una instalación local y deseas mostrar CONSUL para fines de demostración, te recomendamos que utilices [Docker](servers/docker.md) en tu ordenador personal.
* También tenemos una [Guía Heroku]() que se puede utilizar para fines de demostración en un servidor remoto.

View File

@@ -0,0 +1,82 @@
# Configuración básica
Una vez que tengas CONSUL funcionando en el servidor, hay algunas opciones básicas de configuración que probablemente quieras definir para poder empezar a usarlo.
Para ello deberás acceder a tu instalación de CONSUL a través de cualquier navegador de internet e identificarte con el usuario de administración \(inicialmente es el usuario `admin@consul.dev` con la contraseña `12345678`\). Una vez identificado verás en la parte superior derecha de la pantalla el enlace "Admin" que te llevará a la interfaz de administración. Desde esta interfaz puedes configurar las siguientes opciones básicas:
## Parámetros de la configuración global
En el menú lateral encontrarás la opción "Configuración" y posteriormente el submenú "Configuración global". Aquí encontrarás muchos parámetros interesantes, pero por el momento te recomendamos definir algunos de los más básicos. Más adelante cuando estés más familiarizado con la herramienta podrás volver a configurar otros parámetros:
* Nombre del sitio. Este nombre aparecerá en el asunto de emails, páginas de ayuda...
* Nombre email remitente. Este nombre aparecerá como nombre del remitente en los emails enviados desde la aplicación. Como por ejemplo el email que los usuarios reciben para confirmar que han creado su cuenta.
* Dirección email remitente. Esta dirección de email aparecerá en los emails enviados desde la aplicación.
* URL general de la web. URL principal de tu web.
* Edad mínima para participar. Si utilizas un sistema de verificación de usuarios esta será la edad mínima que se exigirá a los usuarios. Sobre el sistema de verificación de usuarios hablaremos en más detalle más adelante.
* Número de apoyos necesarios para aprobar una Propuesta. Si utilizas la sección de propuestas ciudadanas, puedes definir un mínimo de apoyos que necesitan las propuestas para ser consideradas. Cualquier usuario podrá crear propuestas pero solo las que lleguen a ese valor serán tenidas en cuenta.
* Cargos públicos de nivel x. CONSUL permite que algunas cuentas de usuario se marquen como "cuentas oficiales" apareciendo más resaltadas sus intervenciones en la plataforma. Esto por ejemplo se usa en una ciudad si se quieren definir cuentas para el Alcalde, los Concejales, etc. Esta opción de cargos públicos te permitirá definir la etiqueta oficial que aparece al lado de los nombres de usuario de estas cuentas de mayor importancia \(nivel 1\) a menor \(nivel 5\).
## Categorías de las propuestas
Cuando los usuarios crean propuestas en la plataforma se sugieren unas categorías generales, para ayudar a organizar las propuestas. Para definir estas categorías puedes entrar en el menú "Configuración global" y luego en el submenú "Temas de propuestas". En la parte superior puedes escribir temas y crearlos con el botón que aparece a continuación.
## Definición de geozonas
Las geozonas son áreas territoriales más pequeñas que la zona en la que usas CONSUL \(por ejemplo los distritos en una ciudad en la que se use CONSUL\). Si las activas permitirá por ejemplo que las propuestas ciudadanas se asignen a una zona concreta, o que las votaciones estén restringidas a la gente que viva en alguna zona.
En el menú lateral encontrarás la opción "Configuración" y posteriormente el submenú "Gestionar distritos". A la derecha el botón "Crear distrito" te permitirá crear nuevas geozonas. Solo el nombre es necesario para definirlas, pero podrás agregar otros datos que son útiles en ciertas secciones. Inicialmente te recomendamos que empieces definiendo sólo los nombres de las zonas.
Una vez definidas si creas una propuesta ciudadana verás como una de las opciones en el formulario de creación te permite elegir si tu propuesta se refiere a una geozona concreta.
Si activas las geozonas puedes también mostrar una imagen que represente el área con las zonas. Esta imagen puedes cambiarla en el menú "Configuración global" en el submenú "Personalizar imágenes". La imagen por defecto que podrás cambiar es la titulada "map".
## Mapa para geolocalizar propuestas
Puedes permitir que al crear propuestas los usuarios puedan situarlas en un mapa. Para ello tienes que definir qué mapa quieres mostrar.
Accede en primer lugar al menú "Configuración" y posteriormente al submenú "Configuración global". Allí encontrarás tres parámetros que tendrás que rellenar:
* Latitud. Latitud para mostrar la posición del mapa
* Longitud. Longitud para mostrar la posición del mapa
* Zoom. Zoom para mostrar la posición del mapa. Puedes probar con un valor inicial y luego cambiarlo más adelante.
En la parte superior de esta página encontrarás tres pestañas: "Configuración Global", "Funcionalidades" y "Configuración del Mapa". Accede ahora a la segunda pestaña "Funcionalidades".
En esta página encontrarás una de las funcionalidades titulada como "Geolocalización de propuestas y proyectos de gasto". Deberá aparecer el mensaje "Funcionalidad activada" a su derecha. Si no es así haz click en el botón "Activar".
A continuación, en la parte superior de esta página accede a la pestaña "Configuración del Mapa". Si todo ha sido configurado correctamente verás aquí el mapa centrado en la latitud y longitud que introdujiste antes. Puedes centrar correctamente el mapa y cambiar el nivel de zoom directamente sobre el mapa, pulsando luego el botón "Actualizar" que hay debajo de él.
## Emails a usuarios
CONSUL envía por defecto una serie de correos electrónicos a los usuarios. Por ejemplo al crear una cuenta de usuario, al intentar recuperar la contraseña, al recibir un mensaje de otro usuario, etc.
Todos los correos que se envían puedes visualizarlos en el menú "Mensajes a usuarios" en el submenú "Emails del sistema". Ahí podrás previsualizar cada correo electrónico y ver el archivo donde está el contenido del correo por si quieres cambiarlo.
## Páginas básicas de información
CONSUL cuenta con una serie de páginas básicas de información que se mostrarán a los usuarios. Por ejemplo "Política de Privacidad", "Preguntas Frecuentes", "Felicidades acabas de crear tu cuenta de usuario", etc.
Puedes ver las páginas que existen por defecto y modificarlas en el menú "Contenido del sitio" en el submenú "Personalizar Páginas".
## Página principal del sitio
Al acceder a tu instalación de CONSUL los usuarios verán la página principal de la plataforma. Esta página es totalmente configurable, para que muestres el contenido que te parezca más relevante. Puedes modificarla desde el menú "Contenido del sitio" en el submenú "Homepage".
Prueba a crear "Encabezados" y "Tarjetas" y a activar las diferentes funcionalidades que encontrarás debajo para ver el efecto que producen en tu página principal.
## Textos de la plataforma
Si accedes al menú "Contenido del sitio" y al submenú "Personalizar textos" verás diferentes pestañas con una serie de textos. Estos son todos los textos que se muestran en la plataforma. Por defecto puedes utilizar los que existen, pero en cualquier momento puedes acceder a esta sección para modificar cualquiera de los textos.
Para tener más información sobre cómo añadir nuevas traducciones a tu versión de CONSUL accede a la sección "Textos y traducciones" de esta documentación.
## Canales de participación
Por defecto encontrarás en CONSUL diferentes formas de participación para los usuarios. Para empezar y familiarizarte con la plataforma te recomendamos tenerlos todos activados, pero puedes desactivar todos los que no te parezcan necesarios. Para ello accede al menú "Configuración" y posteriormente al submenú "Configuración global". En la parte superior de esta página encontrarás tres pestañas: "Configuración Global", "Funcionalidades" y "Configuración del Mapa". Accede a la segunda pestaña "Funcionalidades".
Encontrarás diversas funcionalidades con los nombres de los diferentes canales de participación "Debates", "Propuestas", "Votaciones", "Legislación Colaborativa" y "Presupuestos Participativos". Puedes desactivar cualquiera de las funcionalidades y dejará de mostrarse en tu instalación de CONSUL.
### Más información y documentación detallada
Estas opciones anteriores te permitirán tener una versión básica de CONSUL que empezar a usar. Te recomendamos acceder a la sección [Documentación y guías sobre CONSUL](documentation_and_guides.md) donde podrás encontrar más documentación detallada.

View File

@@ -0,0 +1,10 @@
# Documentación y guías sobre CONSUL
Hay diversas guías donde puedes leer información muy detallada sobre CONSUL y sus posibilidades. Puedes encontrarlas todas en: [http://consulproject.org/es/\#documentation](http://consulproject.org/es/#documentation)
* **Guía de uso de CONSUL**. En esta guía puedes ver las diferentes maneras de usar CONSUL y ejemplos de procesos de participación.
* **Guía de administración de CONSUL**. Esta guía contiene información detallada sobre la administración y gestión de CONSUL.
* **Guía de comunicación de CONSUL**. Esta guía te puede ofrecer una idea inicial de cómo planear campañas de comunicación para invitar a la gente a usar tu instalación de CONSUL. La comunicación es una cuestión clave a la hora de conseguir una participación relevante.
Además de estas guías puedes acceder a la [Comunidad CONSUL](http://community.CONSULproject.org/), un espacio de debate para compartir más documentación, dudas, aprendizajes, etc.

View File

@@ -0,0 +1,74 @@
# Instalación local
Antes de comenzar a instalar Consul, comprueba que tengas todos los [prerrequisitos](prerequisites.md) correctamente instalados.
1. Primero, clona el [repositorio de Consul en Github](https://github.com/consul/consul/) y ve a la carpeta del proyecto:
```bash
git clone https://github.com/consul/consul.git
cd consul/
```
1. Instala la versión de Ruby necesaria con el gestor de versiones de tu elección. Algunos ejemplos:
```bash
rvm install `cat .ruby-version` # Si usas RVM
rbenv install `cat .ruby-version` # Si usas rbenv
asdf install ruby `cat .ruby-version` # Si usas asdf
```
1. Comprueba que estemos usando la versión de Ruby que acabamos de instalar:
```bash
ruby -v
=> # (debería aparecer la versión mencionada en el fichero .ruby-version)
```
1. Instala [Bundler](http://bundler.io/)
```bash
gem install bundler --version 1.17.1
```
1. Instala las gemas requeridas usando Bundler:
```bash
bundle
```
1. Copia los archivos de configuración de ejemplo del entorno dentro de unos nuevos válidos:
```bash
cp config/database.yml.example config/database.yml
cp config/secrets.yml.example config/secrets.yml
```
Y configura los de tu usuario de base de datos `consul` en `database.yml`
1. Ejecuta las siguientes [tareas Rake](https://github.com/ruby/rake) para crear y rellenar tu base de datos local con el mínimo de información necesaria para que la aplicación funcione correctamente:
```bash
rake db:create
rake db:setup
rake db:dev_seed
rake db:test:prepare
```
1. Comprueba que todo funciona correctamente lanzando la suite de tests \(ten en cuenta que podría tardar más de una hora\):
```bash
bin/rspec
```
1. Ahora que ya está todo listo puedes ejecutar la aplicación:
```bash
bin/rails s
```
¡Felicidades! Tu aplicación Consul local estará corriendo en `http://localhost:3000`.
En caso de que quieras acceder a la aplicación local como usuario administrador existe un usuario por defecto verificado y con permisos con **nombre de usuario** `admin@consul.dev` y **contraseña** `12345678`.
Si necesitas un usuario específico que pueda realizar acciones como votar sin permisos de administración, dispones de otro usuario verificado con **nombre de usuario** `verified@consul.dev` y **contraseña** `12345678`.

View File

@@ -0,0 +1,165 @@
# Debian Linux
## Configuración para los entornos de desarrollo y pruebas \(Debian GNU/Linux 9.8\)
## Super usuario
El programa 'sudo' no viene instalado en Debian por defecto. Su instalación y configuración es posible, se puede encontrar información al respecto [aquí](https://wiki.debian.org/es/sudo). Pero no lo recomendamos porque puede causar otros problemas. Recomendamos que se ejecuten las siguientes instrucciones como un super usuario, así que asegúrate de que la primera instrucción que ejecutes sea:
```text
su
```
> Para [Vagrant](vagrant.md) ejecutar:
>
> ```text
> sudo su -
> ```
## Actualización de sistema
Ejecuta una actualización general de las librerías de sistema:
```bash
apt-get update
```
## Git
Git es mantenido oficialmente en Debian:
```text
apt-get install git
```
## Curl
Curl es mantenido oficialmente en Debian:
```text
apt-get install curl
```
## Gestor de versiones de Ruby
Las versiones de Ruby empaquetadas en repositorios oficiales no son aptas para trabajar con consul, así que debemos instalar manualmente.
Una opción es utilizar rvm:
### Como usuario local
```text
command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
command curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
curl -L https://get.rvm.io | bash -s stable
```
después añadimos el script rvm a nuestro bash \(~/.bashrc\) \(este paso sólo es necesario si no puedes ejecutar el comando rvm\)
```text
[[ -s /usr/local/rvm/scripts/rvm ]] && source /usr/local/rvm/scripts/rvm
```
por úlitmo, volvemos a cargar el .bashrc para poder ejecutar RVM
```text
source ~/.bashrc
```
## Node.js
Para compilar los archivos estáticos \(JS, CSS, imágenes, etc.\), es necesario un _runtime_ de JavaScript. Node.js es la opción recomendada. Al igual que como ocurre con Ruby, no es recomendable instalar Node directamente de los repositorios de tu distribución Linux.
Para instalar Node, puedes usar [n](https://github.com/tj/n)
Ejecuta el siguiente comando en tu terminal:
```text
curl -L https://git.io/n-install | bash -s -- -y lts
```
Y este instalará automáticamente la versión LTS \(_Long Term Support_, inglés para "Soporte a largo plazo"\) más reciente de Node en tu directorio `$HOME` \(Este comando hace uso de [n-install](https://github.com/mklement0/n-install)\)
vuelve a cargar el .bashrc para poder ejecutar node
```text
source /root/.bashrc
```
Comprueba que está correctamente instalado ejecutando:
```text
node -v
```
## PostgreSQL \(>=9.4\)
La versión 9.4 de PostgreSQL no es oficial en Debian 9.
Así que debemos añadir el respositorio oficial de postgresql a apt, por ejemplo creando el fichero _/etc/apt/sources.list.d/pgdg.list_ con:
```text
deb http://security.debian.org/debian-security jessie/updates main
```
después deberás descargar la key e instalarla:
```text
wget https://www.postgresql.org/media/keys/ACCC4CF8.asc
apt-key add ACCC4CF8.asc
```
y finalmente instalar postgresql
```text
apt-get update
apt-get install postgresql-9.4 postgresql-server-dev-9.4 postgresql-contrib-9.4
```
Para el correcto funcionamiento de CONSUL, necesitas confgurar un usuario para tu base de datos. Como ejemplo, crearemos un usuario llamado "consul":
```text
su - postgres
createuser consul --createdb --superuser --pwprompt
exit
```
## Imagemagick
Instala Imagemagick:
```bash
apt-get install imagemagick
```
## ChromeDriver
Para realizar pruebas de integración, usamos Selenium junto a Headless Chrome.
Para ello, primero instala el siguiente paquete:
```bash
apt-get install chromedriver
ln -s /usr/lib/chromedriver /usr/local/bin/
```
Asegúrate de que todo funciona como es debido ejecutando el siguiente comando:
```bash
chromedriver --version
```
Deberías recibir un mensaje indicando la última versión de ChromeDriver. Si ese es el caso, está todo listo
Si te encuentras usando una distro basada en Arch, instalando `chromium` desde el repositorio `extra` debería ser suficiente
También tienes la opción de solo instalar ChromeDriver desde AUR. Si usas `pacaur`, ejecuta el siguiente comando:
```bash
pacaur -S chromedriver
```
Ya estás listo para [instalar Consul](./)!!

View File

@@ -0,0 +1,110 @@
# MacOS
## Homebrew
Homebrew es un gestor de paquetes para OS X muy popular. Es recomendable usarlo pues facilita enormemente la instalación de algunos de los paquetes necesarios.
Puedes encontrar las instrucciones de instalación en: [brew.sh](http://brew.sh)
## XCode y XCode Command Line Tools
Para utilizar git necesitarás instalar _Xcode_ \(está en la Mac App Store\) y las _Xcode Command Line Tools_ \(se instalan desde el menú de Xcode\).
## Git y Github
Puedes descargar git desde: [git-scm.com/download/mac](https://git-scm.com/download/mac)
## Gestor de versiones de Ruby
OS X ya viene con una versión preinstalada de ruby, pero es bastante vieja y en nuestro caso no nos sirve. Una de las formas de instalar Ruby es a través de rbenv. Las instrucciones de instalación están en su GitHub y son bastante claras:
[github.com/rbenv/rbenv](https://github.com/rbenv/rbenv)
## Bundler
```text
gem install bundler
```
## Node.js
Para compilar los archivos estáticos \(JS, CSS, imágenes, etc.\), es necesario un _runtime_ de JavaScript. OS X viene con un _runtime_ integrado llamado `Apple JavaScriptCore` pero Node.js es la opción recomendada.
Para instalar Node, puedes usar [n](https://github.com/tj/n)
Ejecuta el siguiente comando en tu terminal:
```text
curl -L https://git.io/n-install | bash -s -- -y lts
```
Y este instalará automáticamente la versión LTS \(_Long Term Support_, inglés para "Soporte a largo plazo"\) más reciente de Node en tu directorio `$HOME` \(Este comando hace uso de [n-install](https://github.com/mklement0/n-install)\)
## PostgreSQL \(>=9.4\)
```text
brew install postgres
```
Una vez instalado es necesario _inicializar_ la instalación:
```text
initdb /usr/local/var/postgres
```
Ahora vamos a configurar algunos aspectos del usuario por defecto. Primero iniciamos el servidor de postgres con:
```text
postgres -D /usr/local/var/postgres
```
Llegados a este punto se supone que tenemos postgres correctamente instalado y se nos habrá creado un usuario por defecto \(cuyo nombre es nuestro nombre de usuario\), y que \(todavía\) no tiene contraseña.
Si ejecutamos `psql` accederemos a la consola de postgres con el usuario por defecto. Probablemente fallará porque es necesario que de antemano exista una base de datos por defecto para dicho usuario. Podemos crearla ejecutando sobre la terminal:
```text
createdb 'tu_nombre_de_usuario'
```
Si ahora ejecutamos `psql` de nuevo deberíamos poder acceder correctamente a la consola de postgres. Si sobre la consola de postgres ejecutas `\du` puede ver la lista de usuarios actual.
En el caso de que quieras asignarte una contraseña puedes hacerlo desde la consola de postgres con:
```text
ALTER USER tu_nombre_usuario WITH PASSWORD 'tu_contraseña';
```
Ahora vamos a crear el usuario _consul_, que es el que utiliza la aplicación. Ejecuta sobre la consola de postgres:
```text
CREATE ROLE consul WITH PASSWORD '000';
ALTER ROLE consul WITH SUPERUSER;
ALTER ROLE consul WITH login;
```
Si en algún momento durante la instalación de PostgreSQL y sospechas que te has equivocado y deseas desinstalarlo y volver a empezar desde cero:
```text
brew uninstall postgres
```
También tendrás que borrar el siguiente directorio para que no de conflictos cuando intentes volver a instalarlo \(fuente: [gist.github.com/lxneng/741932](https://gist.github.com/lxneng/741932)\):
```text
rm -rf /usr/local/var/postgres
```
## ChromeDriver
```text
brew install chromedriver
```
## Imagemagick
```text
brew install imagemagick
```
Ahora que ya tenemos todas las dependencias instalado podemos proceder con la [instalación de Consul](./)

View File

@@ -0,0 +1,7 @@
# Prerrequisitos
* [Ubuntu Linux](ubuntu.md)
* [Debian Linux](debian.md)
* [MacOS](macos.md)
* [Windows](windows.md)

View File

@@ -0,0 +1,114 @@
# Ubuntu Linux
## Configuración para los entornos de desarrollo y pruebas \(Ubuntu 18.04\)
## Actualización de sistema
Ejecuta una actualización general de las librerías de sistema:
```bash
sudo apt update
```
## Git
Git es mantenido oficialmente en Ubuntu:
```bash
sudo apt install git
```
## Gestor de versiones de Ruby
Las versiones de Ruby empaquetadas en repositorios oficiales no son aptas para trabajar con CONSUL, así que debemos instalarlo manualmente.
En primer lugar, necesitamos los siguiente paquetes para poder instalar Ruby:
```bash
sudo apt install libssl-dev autoconf bison build-essential libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev
```
A continuación instalaremos un gestor de versiones de Ruby, como rbenv:
```bash
wget -q https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer -O- | bash
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
```
## Node.js
Para compilar los archivos estáticos \(JS, CSS, imágenes, etc.\), es necesario un _runtime_ de JavaScript. Node.js es la opción recomendada.
Ejecuta en tu terminal:
```bash
sudo apt install nodejs
```
## PostgreSQL
Instala postgresql y sus dependencias de desarrollo con:
```bash
sudo apt install postgresql libpq-dev
```
Para el correcto funcionamiento de CONSUL, necesitas confgurar un usuario para tu base de datos. Como ejemplo, crearemos un usuario llamado "consul":
```bash
sudo -u postgres createuser consul --createdb --superuser --pwprompt
```
Para asegurarse que se utiliza la codificación con UTF-8, crea un archivo:
```text
sudo nano /etc/profile.d/lang.sh
```
Añade las siguientes líneas:
```text
export LANGUAGE="en_US.UTF-8"
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
```
Reconfigura Postgres para utilizar la codificación UTF-8:
```text
sudo su - postgres
psql
update pg_database set datistemplate=false where datname='template1';
drop database Template1;
create database template1 with owner=postgres encoding='UTF-8'
lc_collate='en_US.utf8' lc_ctype='en_US.utf8' template template0;
update pg_database set datistemplate=true where datname='template1';
\q
exit
```
## Imagemagick
Instala Imagemagick:
```bash
sudo apt install imagemagick
```
## ChromeDriver
Para realizar pruebas de integración, usamos Selenium junto a Headless Chrome.
Para poder utilizarlo, instala el paquete chromium-chromedrive y asegúrate de que se encuentre enlazado en algún directorio que esté en la variable de entorno PATH:
```bash
sudo apt install chromium-chromedriver
sudo ln -s /usr/lib/chromium-browser/chromedriver /usr/local/bin/
```
¡Ya estás listo para [instalar CONSUL](./)!

View File

@@ -0,0 +1,48 @@
# Vagrant
## Vagrant
Instale [Vagrant](https://www.vagrantup.com/) y configure una máquina virtual con [Linux](https://github.com/consul/docs/tree/90f5b9355c5e7b3fc2ffae0e9c963b792ea00d92/es/installation/prerequisites.md)
Vagrant es compatible para [Debian](debian.md) y [Ubuntu](ubuntu.md).
### Browser configuration
Para acceder a la aplicación a través del navegador en la url `localhost:3000` debe enrutar el puerto de la aplicación y ejectuar el servidor de la aplicación con la opción `-b`:
### Enrutar el puerto de la aplicación
Abra el archivo de configuración de Vagrant:
```text
nano Vagranfile
```
Encuentre esta línea:
```text
# config.vm.network "forwarded_port", guest: 80, host: 8080
```
Cámbiela por esta:
```text
config.vm.network "forwarded_port", guest: 3000, host: 3000
```
Recargue la máquina virtual:
```text
vagrant reload
```
## Ejecutar el servidor
En su máquina virtual, debe ejecutar la aplicación enlanzándola a su IP local:
```text
bin/rails s -b 0.0.0.0
```
Ahora debería ver la aplicación desde el navegardor en la url `localhost:3000` :tada:

View File

@@ -0,0 +1,4 @@
# Windows
De momento Windows no es un sistema operativo compatible. Por favor instale [Virtual Box](https://www.virtualbox.org/) para crear una máquina virtual en [Linux](prerequisites.md).

View File

@@ -0,0 +1,22 @@
# Servidores de producción y pruebas
## Requisitos de sistema mínimos recomendados:
### 1. Production Server:
* Distrubution: Ubuntu 16.04.X
* RAM: 32GB
* Processor: Quad core
* Hard Drive: 20 GB
* Database: Postgres
### 2. Staging Server:
* Distrubution: Ubuntu 16.04.X
* RAM: 16GB
* Processor: Dual core
* Hard Drive: 20 GB
* Database: 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.

View File

@@ -0,0 +1,83 @@
# Crear usuario
[El instalador](https://github.com/consul/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.
Puede crear un usuario llamado `deploy` o utilizar cualquier otro nombre. Como ejemplo, vamos a crear un usuario llamado `jupiter`.
```text
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.
Creemos un grupo `wheel` y añadamos al usuario `jupiter` al grupo.
```text
sudo groupadd wheel
sudo usermod -a -G wheel jupiter
```
**Recuerde cambiar jupiter** por cualquier nombre de usuario que haya 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.
Primero debemos abrir el archivo `sudoers`:
```text
sudo visudo -f /etc/sudoers
```
Y añadimos esta línea al final del archivo:
```text
%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.
Y escriba los siguientes comandos para crear el archivo necesario donde subir la clave pública:
```text
su jupiter
cd ~
mkdir .ssh
cd .ssh
nano authorized_keys
```
Asegúrese que ha [generado una clave pública](generating_ssh_key.md) en su terminal local.
Abra otra ventana de terminal local \(no en el servidor\) y escriba:
```text
cat ~/.ssh/id_rsa.pub
```
Copie 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:
```text
ssh jupiter@your-copied-ip-address
```
Debería ver la página de bienvenida del servidor y un mensaje como este:
```text
jupiter@consulserver:~$
```
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.
Escriba el siguiente comando para editar el archivo de configuración SSH del servidor:
```text
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:
```text
sudo service ssh restart
```

View File

@@ -0,0 +1,170 @@
# Heroku
## Manual deployment
This tutorial assumes that you have already managed to clone CONSUL on your machine and gotten it to work.
1. First, create a [Heroku](https://www.heroku.com) account if it isn't already done.
2. Install the [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) and sign in using
```text
heroku login
```
3. Go to your CONSUL repository and instantiate the process
```text
cd consul
heroku create your-app-name
```
You can add the flag `--region eu` if you want to use their European servers instead of the US ones.
If _your-app-name_ is not already taken, Heroku should now create your app.
4. Create a database using
```text
heroku addons:create heroku-postgresql
```
You should now have access to an empty Postgres database whose address was automatically saved as an environment variable named _DATABASE\_URL_. CONSUL will automatically connect to it when deployed.
5. Add a file name _heroku.yml_ at the root of your project and paste the following in it
```text
build:
languages:
- ruby
packages:
- imagemagick
run:
web: bundle exec rails server -e ${RAILS_ENV:-production}
```
6. Now, generate a secret key and save it to an ENV variable named SECRET\_KEY\_BASE using
```text
heroku config:set SECRET_KEY_BASE=`ruby -rsecurerandom -e "puts SecureRandom.hex(64)"
```
You need to let the app know where the secret key is stored by adding a link to the ENV variable in _config/secrets.yml_
```text
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
```
and commit this file in the repo by commenting out the corresponding line in the _.gitignore_.
```text
#/config/secrets.yml
```
**Remember not to commit the file if you have any sensitive information in it!**
7. You can now push your app using
```text
git push heroku your-branch:master
```
8. It won't work straight away because the database doesn't contain the tables needed. To create them, run
```text
heroku run rake db:migrate
heroku run rake db:seed
```
If you want to add the test data in the database, move `gem 'faker', '~> 1.8.7'` outside of `group :development` and run
```text
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. Your app should now be ready to use. You can open it with
```text
heroku open
```
You also can run the console on heroku using
```text
heroku console --app your-app-name
```
10. Heroku doesn't allow to save images or documents in its servers, so it's necessary make this changes
On `app/models/image.rb:47` and `app/models/document.rb:39`
Change `URI.parse(cached_attachment)` to `URI.parse("http:" + cached_attachment)`
Create a new file on `config/initializers/paperclip.rb` with the following content
```text
Paperclip::UriAdapter.register
```
See [our S3 guide](https://github.com/consul/docs/tree/93ee83681d6a2c8f49d0c38559083bddf6855ef2/es/getting_started/using-aws-s3-as-storage.md) for more details about configuring Paperclip with S3.
### Optional but recommended:
**Install rails\_12factor and specify the Ruby version**
As recommended by Heroku, you can add the gem rails\_12factor and specify the version of Ruby you want to use. You can do so by adding
```text
gem 'rails_12factor'
ruby 'x.y.z'
```
in the file _Gemfile\_custom_, where `x.y.z` is the version defined in the `.ruby-version` file in the CONSUL repository. Don't forget to run
```text
bundle install
```
to generate _Gemfile.lock_ before commiting and pushing to the server.
### Optional but recommended:
**Use Puma as a web server**
Heroku recommends to use Puma instead of the default web server to improve the responsiveness of your app on [a number of levels](http://blog.scoutapp.com/articles/2017/02/10/which-ruby-app-server-is-right-for-you). First, add the gem in your _Gemfile\_custom_ file:
```text
gem 'puma'
```
Then you need to create a new file named _puma.rb_ \(your _config_ folder is a good place to store it\). Here is a standard content for this file:
```text
workers Integer(ENV['WEB_CONCURRENCY'] || 1)
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count
preload_app!
rackup DefaultRackup
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'production'
on_worker_boot do
# Worker specific setup for Rails 4.1+
# See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
ActiveRecord::Base.establish_connection
end
```
You can find an explanation for each of these settings in the [Heroku tutorial](https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server).
The last part is to change the _web_ task to use Puma by changing it to this in your _heroku.yml_ file:
```text
web: bundle exec puma -C config/puma.rb
```

View File

@@ -0,0 +1,53 @@
# Servidor local de correo
Este es un ejemplo de cómo integrar un servicio de correo con un entorno de desarrollo de Consul.
En este ejemplo usamos a [Mailgun](https://www.mailgun.com/).
## Crear una cuenta en Mailgun
![Creando una cuenta en Mailgun](../../../.gitbook/assets/mailgun-create-account%20%281%29.png)
* Omita el formulario de tarjeta de crédito
* Y active su cuenta con el enlace enviado por correo electrónico
## Configuración del domain
* Ve a la sección domain: ![Mailgun secci&#xF3;n domain](../../../.gitbook/assets/mailgun-domains%20%281%29.png)
* Como todavía no tienes un domain, debes hacer clic en el sandbox que ya está creado;
* Recuerde las próximas credenciales:
![Mailgun sandbox](../../../.gitbook/assets/mailgun-sandbox%20%281%29.png)
## Configuración de correo del Consul para el entorno de desarrollo
* Vaya al archivo `config/environments/development.rb`;
* Agregue las líneas en el archivo para configurar el servidor de correo:
```ruby
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
:address => '',
:port => 2525,
:domain => '',
:user_name => '',
:password => '',
:authentication => :plain,
:enable_starttls_auto => true,
:ssl => false
}
```
* Rellene, `address`, `domain`, `user_name`, `password` con su información. El archivo se vería así:
![archivo development.rb](../../../.gitbook/assets/development.rb%20%281%29.png)
## Configuración de correo de Consul para el entorno de producción
* Vaya al archivo `config/environments/production.rb`;
* Agregue la misma configuración de **action mailer settings**, pero ahora con su información de servidor de correo de producción.
* Preste atención porque necesitará cambiar el número del **puerto** para **587**.
Puede usar Mailgun para producción también, agregando su dominio personalizado. Mailgun hay registros \(logs\) de los correos enviados y entregues.

View File

@@ -0,0 +1,60 @@
# Digital Ocean
Estas instrucciones le ayudaran a registrarse y comprar un servidor en Digital Ocean para instalar CONSUL.
Primero necesita [registrarse](https://cloud.digitalocean.com/registrations/new) y proporcionar su 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":
![Digital Ocean Droplets](../../../.gitbook/assets/droplets%20%281%29.png)
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**.
![Digital Ocean Choose an image](../../../.gitbook/assets/image%20%281%29.png)
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.
![Digital Ocean Choose a size](../../../.gitbook/assets/size%20%281%29.png)
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.
![Digital Ocean Choose a region](../../../.gitbook/assets/region%20%281%29.png)
En la sección "Añadir claves SSH" pulse el botón "Nueva clave SSH".
![Digital Ocean Add your SSH Keys](../../../.gitbook/assets/ssh_keys%20%281%29.png)
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:
```text
cat ~/.ssh/id_rsa.pub
```
Debería 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:
![Digital Ocean New SSH Key](../../../.gitbook/assets/new_ssh%20%281%29.png)
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\_key** y haga clic en el botón "Add SSH Key" \(Añadir clave SSH\).
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 "Choose a hostname" cambie el valor por defecto por algo más significativo, como **consulserver** por ejemplo.
![Digital Ocean hostname](../../../.gitbook/assets/hostname%20%281%29.png)
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".
![Digital Ocean create](../../../.gitbook/assets/create%20%281%29.png)
Tardará unos minutos, y al final tendrá un brillante nuevo servidor. Se verá así en la página de Digital Ocean:
![Digital Ocean server](../../../.gitbook/assets/server%20%281%29.png)
Lo siguiente es configurar CONSUL en el servidor. Por favor [leer estas instrucciones](https://github.com/consul/installer)

View File

@@ -0,0 +1,152 @@
# Docker
Puedes usar Docker para tener una instalación local de CONSUL si:
* Estás teniendo problemas para instalar los [prerrequisitos](../local_installation/prerequisites.md) correctamente.
* Quieres tener una instalación local rápidamente para probar o hacer una demo.
* Prefieres no interferir con instalaciones de apps Rails existentes.
## Prerrequisitos
Debes tener instalador Docker y Docker Compose en tu ordenador:
### macOS
Puedes seguir la [guía oficial de docker](https://docs.docker.com/docker-for-mac/install/)
O si tienes instalado [homebrew](http://brew.sh) y [cask](https://caskroom.github.io/) puedes ejecutar:
```bash
brew install docker
brew install docker-compose
brew cask install docker
open -a docker
```
La aplicación de Docker te pedirá darle permisos e intrudocir tu contraseña.
### Linux
1. Instala Docker:
```bash
sudo apt-get update
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
sudo apt-get update
apt-cache policy docker-engine
sudo apt-get install -y docker-engine
```
2. Instala Docker Compose
```bash
sudo curl -o /usr/local/bin/docker-compose -L "https://github.com/docker/compose/releases/download/1.15.0/docker-compose-$(uname -s)-$(uname -m)"
sudo chmod +x /usr/local/bin/docker-compose
```
### Windows
Pendiente de ser completado... ¡Se agradecen las Contribuciones!
## Instalación <a id="instalacion"></a>
Clona el repositorio en tu ordenador y entra en el directorio:
```bash
git clone git@github.com:consul/consul.git
cd consul
```
### macOS & Linux
Creamos nuestros ficheros de secrets y database basados en los ejemplos:
```bash
cp config/secrets.yml.example config/secrets.yml
cp config/database-docker.yml.example config/database.yml
```
Y generamos el contenedor:
```bash
docker build -t consul .
```
Creamos las imágenes de base de datos:
```bash
docker-compose up -d database
```
Y la inicializamos con:
```text
docker-compose run app rake db:create
docker-compose run app rake db:migrate
docker-compose run app rake db:seed
docker-compose run app rake db:dev_seed
```
### Windows
Pendiente de ser completado... ¡Se agradecen las Contribuciones!
## Corriendo CONSUL en local con Docker
### macOS & Linux
Una vez instalado, puedes lanzar la aplicación con:
```bash
docker-compose up
```
Y podrás acceder a la aplicación desde tu navegador visitando [http://localhost:3000](http://localhost:3000)
Adicionalmente, si quieres lanzar por ejemplo la consola de rails:
```bash
docker-compose run app rails console
```
Para verificar que los contenedores estan corriendo usa:
```bash
docker ps .
```
Deberías obtener algo similar a: ![docker ps](https://i.imgur.com/ASvzXrd.png)
### Windows
Pendiente de ser completado... ¡Se agradecen las Contribuciones!
## ¿Tienes problemas?
Ejecute los comandos en el **directorio de CONSUL**, para borrar todas las imágenes y contenedores anteriores del Docker de CONSUL. Luego, reinicie el [proceso de instalación](docker.md#instalacion) de Docker:
1. Quitar todas las imágenes de CONSUL:
```bash
docker-compose down --rmi all -v --remove-orphans
```
2. Quitar todos los contenedores de CONSUL
```bash
docker-compose rm -f -s -v
```
3. Verificar si todavía hay algún contenedor:
```bash
docker ps -a
```
Caso positivo, eliminar cada uno de forma manual:
```bash
docker container rm <container_id>
```

View File

@@ -0,0 +1,19 @@
# 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.
En la ventana del terminal, escriba:
```text
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:
```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.

View File

@@ -0,0 +1,6 @@
# Instalador
## Instrucciones de instalación para entornos de Producción y Pruebas
Se encuentran en el [repositorio del instalador](https://github.com/consul/installer)