Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: molawson/molawson
base: e5e848d19c
...
head fork: molawson/molawson
compare: 1fd24dc8a4
  • 2 commits
  • 5 files changed
  • 0 commit comments
  • 1 contributor
View
11 config/apache.conf
@@ -1,11 +0,0 @@
-<VirtualHost *:80>
- ServerName molawson.com
- ServerAlias www.molawson.com
- DocumentRoot /srv/apps/molawson/current/public
- <Directory "/srv/apps/molawson/current/public">
- Options FollowSymLinks
- AllowOverride None
- Order allow,deny
- Allow from all
- </Directory>
-</VirtualHost>
View
24 config/deploy.rb
@@ -19,21 +19,21 @@
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
-role :web, "198.74.62.226"
-role :app, "198.74.62.226"
-role :db, "198.74.62.226", :primary => true
+role :web, "kirby.molawson.com"
+role :app, "kirby.molawson.com"
+role :db, "kirby.molawson.com", :primary => true
after "deploy", "deploy:cleanup" # keep only the last 5 releases
namespace :deploy do
- task :start do; end
- task :stop do; end
- task :restart, roles: :app, except: { :no_release => true } do
- run "touch #{deploy_to}/current/tmp/restart.txt"
+ %w[start stop restart].each do |command|
+ desc "#{command} unicorn server"
+ task command, roles: :app, except: {no_release: true} do
+ run "/etc/init.d/unicorn_#{application} #{command}"
+ end
end
-
task :create_config_files do
default_admin_login = <<-EOF
USERNAME: #{user}
@@ -94,10 +94,8 @@
end
task :setup_config, roles: :app do
- sudo "ln -nfs #{current_path}/config/apache.conf /etc/apache2/sites-available/#{application}"
- run "mkdir -p #{shared_path}/config"
- put File.read("config/database.example.yml"), "#{shared_path}/config/database.yml"
- puts "Now edit the config files in #{shared_path}."
+ sudo "ln -nfs #{current_path}/config/nginx.conf /etc/nginx/sites-enabled/#{application}"
+ sudo "ln -nfs #{current_path}/config/unicorn_init.sh /etc/init.d/unicorn_#{application}"
end
after "deploy:setup", "deploy:setup_config"
@@ -146,7 +144,7 @@
username: #{user}
password: #{password}
EOF
-
+
db_config = ERB.new(default_template)
run "mkdir -p #{shared_path}/config"
View
27 config/nginx.conf
@@ -0,0 +1,27 @@
+upstream unicorn {
+ server unix:/tmp/unicorn.molawson.sock fail_timeout=0;
+}
+
+server {
+ listen 80 default deferred;
+ # server_name example.com;
+ root /var/apps/molawson/current/public;
+
+ location ^~ /assets/ {
+ gzip_static on;
+ expires max;
+ add_header Cache-Control public;
+ }
+
+ try_files $uri/index.html $uri @unicorn;
+ location @unicorn {
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $http_host;
+ proxy_redirect off;
+ proxy_pass http://unicorn;
+ }
+
+ error_page 500 502 503 504 /500.html;
+ client_max_body_size 4G;
+ keepalive_timeout 10;
+}
View
9 config/unicorn.rb
@@ -0,0 +1,9 @@
+root = "/var/apps/molawson/current"
+working_directory root
+pid "#{root}/tmp/pids/unicorn.pid"
+stderr_path "#{root}/log/unicorn.log"
+stdout_path "#{root}/log/unicorn.log"
+
+listen "/tmp/unicorn.molawson.sock"
+worker_processes 2
+timeout 30
View
84 config/unicorn_init.sh
@@ -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=/var/apps/molawson/current
+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=deploy
+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

No commit comments for this range

Something went wrong with that request. Please try again.