add unicorn
This commit is contained in:
2
Gemfile
2
Gemfile
@@ -33,7 +33,7 @@ end
|
|||||||
# gem 'jbuilder'
|
# gem 'jbuilder'
|
||||||
|
|
||||||
# Use unicorn as the app server
|
# Use unicorn as the app server
|
||||||
# gem 'unicorn'
|
gem 'unicorn'
|
||||||
|
|
||||||
# Deploy with Capistrano
|
# Deploy with Capistrano
|
||||||
# gem 'capistrano'
|
# gem 'capistrano'
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ GEM
|
|||||||
railties (>= 3.0, < 5.0)
|
railties (>= 3.0, < 5.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
json (1.8.1)
|
json (1.8.1)
|
||||||
|
kgio (2.9.2)
|
||||||
libv8 (3.16.14.3)
|
libv8 (3.16.14.3)
|
||||||
mail (2.5.4)
|
mail (2.5.4)
|
||||||
mime-types (~> 1.16)
|
mime-types (~> 1.16)
|
||||||
@@ -97,6 +98,7 @@ GEM
|
|||||||
activesupport (= 4.1.0)
|
activesupport (= 4.1.0)
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
thor (>= 0.18.1, < 2.0)
|
thor (>= 0.18.1, < 2.0)
|
||||||
|
raindrops (0.13.0)
|
||||||
rake (10.2.2)
|
rake (10.2.2)
|
||||||
rb-readline (0.5.1)
|
rb-readline (0.5.1)
|
||||||
redcarpet (3.1.1)
|
redcarpet (3.1.1)
|
||||||
@@ -135,6 +137,10 @@ GEM
|
|||||||
uglifier (2.5.0)
|
uglifier (2.5.0)
|
||||||
execjs (>= 0.3.0)
|
execjs (>= 0.3.0)
|
||||||
json (>= 1.8.0)
|
json (>= 1.8.0)
|
||||||
|
unicorn (4.8.3)
|
||||||
|
kgio (~> 2.6)
|
||||||
|
rack
|
||||||
|
raindrops (~> 0.7)
|
||||||
webrick (1.3.1)
|
webrick (1.3.1)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
@@ -159,4 +165,5 @@ DEPENDENCIES
|
|||||||
sass-rails
|
sass-rails
|
||||||
therubyracer
|
therubyracer
|
||||||
uglifier
|
uglifier
|
||||||
|
unicorn
|
||||||
webrick
|
webrick
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ class ApplicationController < ActionController::Base
|
|||||||
before_filter :update_ip, :update_seen, :check_banned
|
before_filter :update_ip, :update_seen, :check_banned
|
||||||
# TODO: force_ssl
|
# TODO: force_ssl
|
||||||
|
|
||||||
|
# TODO: remove this!
|
||||||
http_basic_authenticate_with name: "redstone", password: "sheep_"
|
http_basic_authenticate_with name: "redstone", password: "sheep_"
|
||||||
|
|
||||||
helper :all
|
helper :all
|
||||||
|
|||||||
15
config/unicorn.rb
Normal file
15
config/unicorn.rb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
root = "/home/redstoner/website/public"
|
||||||
|
working_directory root
|
||||||
|
pid "#{root}/tmp/pids/unicorn.pid"
|
||||||
|
stderr_path "#{root}/log/unicorn.log"
|
||||||
|
stdout_path "#{root}/log/unicorn.log"
|
||||||
|
|
||||||
|
listen "/tmp/unicorn.redstoner.sock"
|
||||||
|
worker_processes 2
|
||||||
|
timeout 30
|
||||||
|
|
||||||
|
# Force the bundler gemfile environment variable to
|
||||||
|
# reference the capistrano "current" symlink
|
||||||
|
before_exec do |_|
|
||||||
|
ENV["BUNDLE_GEMFILE"] = File.join(root, 'Gemfile')
|
||||||
|
end
|
||||||
84
config/unicorn_init.sh
Normal file
84
config/unicorn_init.sh
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: unicorn
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Manage unicorn server
|
||||||
|
# Description: Start, stop, restart unicorn server for a specific application.
|
||||||
|
### END INIT INFO
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Feel free to change any of the following variables for your app:
|
||||||
|
TIMEOUT="${TIMEOUT-60}"
|
||||||
|
APP_ROOT="/home/redstoner/website/public"
|
||||||
|
PID="$APP_ROOT/tmp/pids/unicorn.pid"
|
||||||
|
CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"
|
||||||
|
AS_USER="www-data"
|
||||||
|
set -u
|
||||||
|
|
||||||
|
OLD_PIN="$PID.oldbin"
|
||||||
|
|
||||||
|
sig () {
|
||||||
|
test -s "$PID" && kill -$1 `cat $PID`
|
||||||
|
}
|
||||||
|
|
||||||
|
oldsig () {
|
||||||
|
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN`
|
||||||
|
}
|
||||||
|
|
||||||
|
run () {
|
||||||
|
if [ "$(id -un)" = "$AS_USER" ]; then
|
||||||
|
eval $1
|
||||||
|
else
|
||||||
|
su -c "$1" - $AS_USER
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
sig 0 && echo >&2 "Already running" && exit 0
|
||||||
|
run "$CMD"
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
sig QUIT && exit 0
|
||||||
|
echo >&2 "Not running"
|
||||||
|
;;
|
||||||
|
force-stop)
|
||||||
|
sig TERM && exit 0
|
||||||
|
echo >&2 "Not running"
|
||||||
|
;;
|
||||||
|
restart|reload)
|
||||||
|
sig HUP && echo reloaded OK && exit 0
|
||||||
|
echo >&2 "Couldn't reload, starting '$CMD' instead"
|
||||||
|
run "$CMD"
|
||||||
|
;;
|
||||||
|
upgrade)
|
||||||
|
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT
|
||||||
|
then
|
||||||
|
n=$TIMEOUT
|
||||||
|
while test -s $OLD_PIN && test $n -ge 0
|
||||||
|
do
|
||||||
|
printf '.' && sleep 1 && n=$(( $n - 1 ))
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
|
||||||
|
if test $n -lt 0 && test -s $OLD_PIN
|
||||||
|
then
|
||||||
|
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo >&2 "Couldn't upgrade, starting '$CMD' instead"
|
||||||
|
run "$CMD"
|
||||||
|
;;
|
||||||
|
reopen-logs)
|
||||||
|
sig USR1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Reference in New Issue
Block a user