-
Notifications
You must be signed in to change notification settings - Fork 7
Installazione
Questa guida permette di installare e provare l'applicazione in ambiente development, nell'ultimo paragrafo viene spiegato come mettere l'applicazione in produzione con Unicorn e Nginx. Rubyfatt è un'applicazione Ruby on Rails standard, quindi si installa e configura come ogni altra applicazione Rails. Di seguito una descrizione di base.
Per iniziare si sceglie una cartella in cui installarla e vi si clona il repository:
cd ~/LA_MIA_CARTELLA
git clone [email protected]:tommyblue/Rubyfatt.git
Si entra quindi nella cartella appena clonata e si efettua il checkout all'ultimo tag stabile:
cd Rubyfatt
git checkout 1.0
Volendo provare l'ultima versione disponibile (HEAD) si salta il checkout.
Va modificat il file conf/databases.yml secondo le proprie esigenze. Se si vogliono fare soltanto delle prove basta personalizzare il blocco development, altrimenti va personalizzato il blocco production. Se non si utilizza MySQL va modificata la voce adapter e va di conseguenza inserita la corretta gemma nel file Gemfile al posto di:
gem 'mysql2'
Se, come nel caso di default, utilizzate MySQL, questi sono i passaggi necessari per creare il database e l'utente dalla console di mysql:
~$ mysql -u root -p
mysql> CREATE DATABASE `rubyfatt_development`;
mysql> GRANT ALL ON `rubyfatt_development`.* TO `my_user`@`localhost` IDENTIFIED BY 's3cr3tp4ssw0rd' WITH GRANT OPTION;
mysql> exit
Ovviamente queste istruzioni vanno personalizzate secondo le proprie necessità.
Per inserire i dati iniziali si personalizza il file db/seeds.rb con i propri dati alle righe 1-15 (corrispondenti alla creazione dell'utente). Le righe successive inseriscono alcuni dati di prova e possono essere eliminati o commentati, conviene lasciare la parte dei regimi di tassazione (dopo averla personalizzata) che comunque andrebbe creata prima di poter utilizzare l'applicazione.
Si può adesso installare le gemme necessarie utilizzando bundler. Se non fosse installato:
gem install bundler
al termine:
bundle install
A questo punto tutte le gemme necessarie sono installate e si possono far girare le migrazioni e il seed:
bundle exec rake db:migrate
bundle exec rake db:seed
A questo punto si può lanciare il server con:
~$ rails server
=> Booting WEBrick
=> Rails 3.2.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-08-22 10:46:20] INFO WEBrick 1.3.1
[2012-08-22 10:46:20] INFO ruby 1.9.3 (2012-04-20) [x86_64-darwin11.4.0]
[2012-08-22 10:46:20] INFO WEBrick::HTTPServer#start: pid=9578 port=3000
L'applicazione è quindi disponibile all'indirizzo http://localhost:3000 e si può fare login con i dati di db_seeds.rb (quelli di default sono email "[email protected]" e password "password").
Fin qui la guida ha permesso di utilizzare l'applicazione in modalità development. Questa modalità può comunque essere usata stabilmente lanciando l'applicazione ogni volta che se ne ha bisogno, ma se si ha un server (casalingo o in una server-farm) può risultare utile effettuare un deploy di produzione per avere l'applicazione sempre a disposizione o metterla a disposizione di più persone (Rubyfatt è infatti multiutente).
Per iniziare si modifica nel file config/initializers/devise.rb
il valore:
config.mailer_sender = "[email protected]"
inserendo l'indirizzo email che si desidera che l'applicazione imposti come From: nelle email che invia, ad esempio per il recupero delle password perse.
Per utilizzare Nginx e Unicorn per il deploy va scommentata la gemma di unicorn nel file Gemfile:
gem 'unicorn'
una volta scommentata la riga va nuovamente eseguito bundle install
. Si può quindi lanciare l'applicazione:
cd ~/PATH_TO_RUBYFATT
bundle exec unicorn_rails -E production -l ~/PATH_TO_RUBYFATT/tmp/sockets/rubyfatt.sock
con questa configurazione viene usato il socket unix ~/PATH_TO_RUBYFATT/tmp/sockets/rubyfatt.sock a cui si collegherà Nginx. La configurazione di Nginx sarà la seguente:
upstream backend_rubyfatt {
server unix:/ABSOLUTE_PATH_TO_RUBYFATT/tmp/sockets/rubyfatt.sock;
}
server {
listen [::]:80;
server_name my_cool.domain.com;
access_log /var/log/nginx/rubyfatt.access.log;
error_log /var/log/nginx/rubyfatt.error.log;
location / {
proxy_pass http://backend_rubyfatt;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
root /ABSOLUTE_PATH_TO_RUBYFATT/public/;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm|ttf|woff)$
{
root /ABSOLUTE_PATH_TO_RUBYFATT/public;
}
}
Se tutto va come previsto all'indirizzo http://my_cool.domain.com
dovrebbe rispondere la vostra installazione di Rubyfatt (ovviamente dovete configurare a modo il DNS).