Tabla de Contenidos
Familia de instancia Ruby
Requisitos previos
Users of Ruby Simple Hosting instances should have:
- Conocimiento de Ruby
- conocimiento de git
- Una aplicación compatible con Ruby (MRI) 1.9.3
- Una aplicación compatible con Rack
- Una aplicación que usa Bundler para gestionar sus dependencias
- Lo siguiente de estar instalado localmente:
- ruby
- bundler
- git
Nota: El uso de la instancia Ruby depende de herramientas estándares como bundler y git y deben ser instalados localmente .
Estructura de directorio
Para ser compatible con Rack, los archivos de su aplicación deben ajustarse a un diseño específico que contengan los siguientes archivos y directorios:
config.ru
: Un archivo Rackup como el mencionado en documentación Rackpublic/
: Si tiene archivos estáticos deben estar en este directorio
Aplicaciones Ruby on Rails (rieles > 2 ) deberían funcionar sin manipulación.
Ejemplo de la estructura de archivos:
. ├── config.ru └── public └── robots.txt
Instalación de dependencias
A fin de que las dependencias de la aplicación Ruby a ser instalados, debe declararlos en un Gemfile colocada en la raíz de su proyecto. This file must match the format indicated in the Bundler documentation.
Ejemplo Gemfile:
source 'https://rubygems.org' gem 'rails', '~> 4.0.0' gem 'debugger', group: :development
Note: Durante la instalación de dependencias, los gems especificados en los gupos development
y test
no se instalarán.
Gemfile.lock
Una vez que sus dependencias han sido declaradas, se debe generar un archivo Gemfile.lock
ejecutando el comando bundle install
. Este será el archivo usado para instalar las dependencias que se usarán en su instancia.
Bases de datos
Igual como las otras familias de instancias en Simple Hosting, instancias Ruby funciona con tres bases de datos three: MySQL, PostreSQL and MongoDB.
PostgreSQL
Parámetros:
- Nombre de host: localhost
- Puerto: 5432
Un ejemplo de Ruby on Rails configurado con una base de datos PostreSQL (config/database.yml
):
producción: adapter: postgresql database: ruby-example host: localhost port: 5432 username: hosting-db password: encoding: unicode pool: 5
MySQL
Parámetros:
- Socket : /srv/run/mysqld/mysqld.sock
Un ejemplo de Ruby on Rails configurado con una base de datos MySQL (config/database.yml
):
production: adapter: mysql2 database: ruby-example socket: /srv/run/mysqld/mysqld.sock username: tony password: micelli encoding: utf-8 pool: 5
MongoDB
Parámetros:
- Nombre de Host: localhost
- Puerto: 27017
Un ejemplo de Ruby on Rails configurado con una base de datos MongoDB (mongoid.yml
):
production: sessions: default: database: ruby-example hosts: - localhost:27017
Empujando la aplicación a su instancia
La instancia Ruby utiliza Git para empujar su aplicación a su instancia y sea implementada.
Crear un repositorio git local
Primero, en el directorio raíz de su proyecto en su maquina local, debe ejecutar los comandos siguientes para iniciar un repo Git para grabar los cambios en el código:
$ git init $ git add . $ git commit -m "Initial commit"
Implementación de la aplicación
Una vez que su código es seguido por git localmente, se debe empujar a su instancia.
En el comando siguiente, se debe reemplazar INSTANCE_ID
con el ID de su instancia, y DC_ID
con el ID del datacenter donde recide su instancia (dc0
para Paris, dc1
para Baltimore, dc2
para Luxembourg):
$ git remote add gandi git+ssh://INSTANCE_ID@git.DC_ID.gpaas.net/default.git $ git push gandi master
Luego, ejecute el comando de implementación:
$ ssh INSTANCE_ID@git.DC_ID.gpaas.net deploy
$ ssh INSTANCE_ID@git.DC_ID.gpaas.net deploy production
Logs
Salida estándar (stdout ), así como los errores relacionados con la ejecución de la aplicación se almacenan en los siguientes archivos de registro en el disco de datos de la instancia :
- via SSH:
/srv/data/var/log/www/uwsgi.log
- via SFTP:
/lamp0/var/log/www/uwsgi.log
Esto es útil, sobre todo , para comprobar que su aplicación se ha iniciado correctamente.
Cron jobs
Al igual que otras familias de instancia Hosting simples , es posible ejecutar las tareas programadas ( cron jobs ) en instancias de Ruby. Las variables de entorno definidas por la aplicación también están disponibles en sus trabajos de cron (vea internal_design para más detalles sobre las variables de entorno).
Ejemplo de cron job:
1@hourly 0 test (cd /srv/data/web/vhosts/default; rake my_namespace:some_useful_task)
Para mas información sobre cron jobs y Simple Hosting, vea http://wiki.gandi.net/en/simple/anacron.
Diseño interno
Instancias Ruby usan Uwsgi para ejecutar el código de su aplicación. Apache se usa para servir archivos estáticos. Los archivos en el directorio llamados “public/” en la raíz de su proyecto son servidos por Apache y retransmitirá las otras solicitudes a Uwsgi.
Las variables de entorno son asignados y disponibles en su aplicación y en los trabajos de cron:
- RAILS_ENV=production
- RACK_ENV=production
Información adicional
Actualmente Redis no es soportado en Simple Hosting. Si le gustaría ver Redis parte del show, déjenoslo saber en wishlist.