--- layout: es/page title: Instalación manual --- # Instalación manual
Las siguientes instrucciones describen el proceso paso a paso para la instalación de Alaveteli. No es obligatorio hacerlo de este modo, normalmente resulta más sencillo utilizar el script de instalación o el AMI EC2 de Amazon.
Existen [otras maneras de instalar Alaveteli]({{ page.baseurl }}/docs/installing/). gem install bundler --no-rdoc --no-ri
## Configure la base de datos
Se ha trabajado para intentar conseguir que el código funcione con otras bases de datos
(por ejemplo, SQLite), pero la base de datos soportada actualmente es PostgreSQL
(«postgres»).
Cree un usuario `foi` desde la línea de comando, de este modo:
sudo -u postgres createuser -s -P foi
_Nota:_ Dejar la contraseña en blanco puede causar gran confusión si no está familiarizado con
PostgreSQL.
Cree una plantilla para nuestras bases de datos de Alaveteli:
sudo -u postgres createdb -T template0 -E UTF-8 template_utf8
echo "update pg_database set datistemplate=true where datname='template_utf8';" > /tmp/update-template.sql
sudo -u postgres psql -f /tmp/update-template.sql
rm /tmp/update-template.sql
A continuación, cree las bases de datos:
sudo -u postgres createdb -T template_utf8 -O foi alaveteli_production
sudo -u postgres createdb -T template_utf8 -O foi alaveteli_test
sudo -u postgres createdb -T template_utf8 -O foi alaveteli_development
## Configure el correo electrónico
Necesitará definir un servidor de correo (MTA) para enviar y recibir
correo electrónico.
La configuración completa de un MTA va más allá del alcance de este documento. Consulte el manual de [configuración de los servidores Exim4 y Postfix]({{ page.baseurl }}/docs/installing/email/).
En el modo de desarrollo el correo es gestionado por [`mailcatcher`](http://mailcatcher.me/) por defecto para
que pueda visualizar los correos en un navegador. Inicie mailcatcher ejecutando `bundle exec mailcatcher` en el directorio de aplicaciones.
## Configure Alaveteli
Alaveteli tiene tres archivos principales de configuración:
- `config/database.yml`: configuración de la comunicación entre Alaveteli y la base de datos.
- `config/general.yml`: ajustes generales de la aplicación de Alaveteli.
- `config/newrelic.yml`: configuración del servicio de monitorización de [NewRelic](http://newrelic.com).
Copie los archivos de configuración y actualice sus permisos:
cp /var/www/alaveteli/config/database.yml-example /var/www/alaveteli/config/database.yml
cp /var/www/alaveteli/config/general.yml-example /var/www/alaveteli/config/general.yml
cp /var/www/alaveteli/config/newrelic.yml-example /var/www/alaveteli/config/newrelic.yml
chown alaveteli:alaveteli /var/www/alaveteli/config/{database,general,newrelic}.yml
chmod 640 /var/www/alaveteli/config/{database,general,newrelic}.yml
### database.yml
Ahora necesitará definir el archivo de configuración de la base de datos para que la aplicación
pueda conectar con la base de datos de Postgres.
Edite cada sección para apuntar a la base de datos local de PostgreSQL correspondiente.
Sección `development` de ejemplo de `config/database.yml`:
development:
adapter: postgresql
template: template_utf8
database: alaveteli_development
username: foi
password: secure-password-here
host: localhost
port: 5432
Asegúrese de que el usuario especificado en `database.yml` existe y tiene permisos completos
en las bases de datos.
Como el usuario requiere la capacidad de desactivar restricciones durante la ejecución de las pruebas, necesita permisos de superusuario. Si no desea que el usuario de su base de datos tenga permisos de superusuario, puede añadir esta línea a la sección `test` de `database.yml` (como puede ver en `config/database.yml-example`):
constraint_disabling: false
### general.yml
Tenemos un [manual completo de configuración de Alaveteli]({{ page.baseurl }}/docs/customising/config/), que abarca todas las opciones incluidas en `config/general.yml`.
_Nota:_ Si está configurando Alaveteli para su funcionamiento en producción, asigne a la variable [`STAGING_SITE`]({{ page.baseurl }}/docs/customising/config/#staging_site) el valor `0` en `/var/www/alaveteli/config/general.yml`.
STAGING_SITE: 0
Los ajustes predeterminados para los ejemplos de páginas frontales están diseñados para trabajar con
los datos de muestra incluidos en Alaveteli; una vez disponga de datos reales, deberá editar estos ajustes.
El tema por defecto es el [tema «Alaveteli»](https://github.com/mysociety/alavetelitheme). Al ejecutar `rails-post-deploy` (consulte la información siguiente), este tema se instala automáticamente.
### newrelic.yml
Este archivo contiene información de configuración para el sistema de gestión
de mantenimiento de New Relic. La gestión es desactivada por defecto mediante la opción
`agent_enabled: false`. Consulte las instrucciones de [análisis de rendimiento remoto](https://github.com/newrelic/rpm) de New Relic para activarlo
para análisis locales y remotos.
## Implementación
Debería ejecutar el script `rails-post-deploy` después de cada actualización de software:
sudo -u alaveteli RAILS_ENV=production \
/var/www/alaveteli/script/rails-post-deploy
Este comando instala las dependencias de Ruby, instala/actualiza temas, efectúa migraciones
de bases de datos, actualiza directorios compartidos y lleva a cabo otras tareas necesarias
después de una actualización de software, como la precompilación de atributos estáticos
para una instalación en producción.
La primera ejecución de este script puede requerir *mucho* tiempo, ya que debe
compilar las dependencias nativas de `xapian-full`.
Cree el índice para el motor de búsqueda (Xapian):
sudo -u alaveteli RAILS_ENV=production \
/var/www/alaveteli/script/rebuild-xapian-index
Si esta acción falla, el sitio debería funcionar en gran parte, pero se trata de un componente principal,
así que debería hacer lo posible para que funcione.
RAILS_ENV=production
. Utilice
RAILS_ENV=development
si está instalando Alaveteli para
efectuar cambios en el código.
nginx-ssl.conf.example
establece la ruta de Alaveteli como /var/www/alaveteli/alaveteli
; necesitará modificarla manualmente a /var/www/alaveteli
o a la raíz de su instalación de Alaveteli.
nginx.conf.example
establece la ruta de Alaveteli como /var/www/alaveteli/alaveteli
; necesitará modificarla manualmente a /var/www/alaveteli
o a la raíz de su instalación de Alaveteli.
config/rails_env.rb
, utilizado para forzar el entorno de rails en producción, y editar su archivo .bundle/config
para eliminar la línea BUNDLE_WITHOUT
, que excluye las dependencias de desarrollo. Una vez hecho esto, como usuario de Alaveteli, ejecute la instalación bundle install
. También necesitará convertir Alaveteli en propietario de /var/www/alaveteli/log/development.log
y llevar a cabo las migraciones de bases de datos.
chown alaveteli:alaveteli /var/www/alaveteli/log/development.log
sudo -u alaveteli bundle exec rake db:migrate
Debería haber podido ejecutar las pruebas. No olvide restaurar config/rails_env.rb
cuando haya terminado. Probablemente verá algunos errores de procesos cron, ya que se estarán ejecutando en el modo de desarrollo.