La réponse de Garrett m'a vraiment aidé, je voulais juste poster quelques détails supplémentaires. Il a fallu beaucoup de bricolage pour y arriver...
J'utilise aussi passenger, mais nginx au lieu d'apache.
Tout d'abord, n'oubliez pas que vous devez installer Sinatra, cela m'a perturbé pendant un certain temps. sudo gem install sinatra
Ensuite, vous devez créer un répertoire pour que le truc fonctionne, et il doit avoir un dossier public et un dossier tmp. Ils peuvent être vides mais le problème est que git n'enregistrera pas un répertoire vide dans le repo. Le répertoire doit contenir au moins un fichier, j'ai donc créé quelques fichiers inutiles comme substituts. Il s'agit d'une fonctionnalité bizarre de git.
J'utilise le plugin resque, j'ai donc créé le répertoire à cet endroit (où se trouve le config.ru par défaut). Il semble que Garrett ait créé un nouveau répertoire 'resque' dans son rails_root. L'un ou l'autre devrait fonctionner. Pour moi...
cd MY_RAILS_APP/vendor/plugins/resque/
mkdir public
mkdir tmp
touch public/placeholder.txt
touch tmp/placeholder.txt
Puis j'ai édité MY_RAILS_APP/vendor/plugins/resque/config.ru
donc ça ressemble à ça :
#!/usr/bin/env ruby
require 'logger'
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')
require 'resque/server'
use Rack::ShowExceptions
# Set the AUTH env variable to your basic auth password to protect Resque.
AUTH_PASSWORD = "ADD_SOME_PASSWORD_HERE"
if AUTH_PASSWORD
Resque::Server.use Rack::Auth::Basic do |username, password|
password == AUTH_PASSWORD
end
end
run Resque::Server.new
N'oubliez pas de changer ADD_SOME_PASSWORD_HERE
au mot de passe que vous souhaitez utiliser pour protéger l'application.
Enfin, j'utilise Nginx donc voici ce que j'ai ajouté à mon nginx.conf
server {
listen 80;
server_name resque.seoaholic.com;
root /home/admin/public_html/seoaholic/current/vendor/plugins/resque/public;
passenger_enabled on;
}
Et donc il est redémarré lors de vos déploiements, probablement quelque chose comme ceci dans votre deploy.rb
run "touch #{current_path}/vendor/plugins/resque/tmp/restart.txt"
Je ne suis pas vraiment sûr que ce soit la meilleure façon de procéder, je n'ai jamais configuré d'applications rack/sinatra auparavant. Mais cela fonctionne.
C'est juste pour lancer l'application de surveillance. Ensuite, j'ai besoin de comprendre la partie divine.