updated INSTALL script
This commit is contained in:
171
INSTALL.debian
171
INSTALL.debian
@@ -1,131 +1,74 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "This script is out of date; please read the INSTALL document"
|
if [[ "$(whoami)" != "root" ] ; then
|
||||||
exit 1
|
|
||||||
|
|
||||||
if [ $USER != root ] ; then
|
|
||||||
echo "You must run this script as root"
|
echo "You must run this script as root"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Danbooru Install"
|
# echo "Danbooru Install"
|
||||||
echo "This script will install Ruby, Rails, PostgreSQL, and Nginx. By the end,"
|
# echo "This script will install Ruby, Rails, PostgreSQL, and Nginx. By the end,"
|
||||||
echo "you should be able to connect to the server and create an account."
|
# echo "you should be able to connect to the server and create an account."
|
||||||
echo
|
# echo
|
||||||
echo "It will create a new user called danbooru which will run the Danbooru"
|
# echo "It will create a new user called danbooru which will run the Danbooru"
|
||||||
echo "processes. It will download the latest trunk copy and install it in"
|
# echo "processes. It will download the latest copy and install it in"
|
||||||
echo "/var/www/danbooru. It will run three Mongrel processes, starting on port"
|
# echo "/var/www/danbooru."
|
||||||
echo "8050."
|
# echo
|
||||||
echo
|
# echo -n "Enter the hostname for this server (ex: danbooru.donmai.us): "
|
||||||
echo -n "Enter the hostname for this server (ex: danbooru.donmai.us): "
|
# read hostname
|
||||||
read hostname
|
#
|
||||||
|
# if [[ -z "$hostname" ]] ; then
|
||||||
if [ -z $hostname ] ; then
|
# echo "Must enter a hostname"
|
||||||
echo "Must enter a hostname"
|
# exit 1
|
||||||
exit 1
|
# fi
|
||||||
fi
|
#
|
||||||
|
# echo -n "Enter a name for the site (default: Danbooru): "
|
||||||
echo -n "Enter a name for the site (default: Danbooru): "
|
# read sitename
|
||||||
read sitename
|
#
|
||||||
|
# if [[ -z "$sitename" ]] ; then
|
||||||
if [ -z $sitename ] ; then
|
# sitename=Danbooru
|
||||||
sitename=Danbooru
|
# fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Install packages
|
# Install packages
|
||||||
apt-get -y install sudo gcc g++ make libreadline5-dev zlib1g-dev flex bison libgd2-noxpm libgd2-noxpm-dev bzip2 postgresql-8.3 postgresql-contrib-8.3 libpq-dev ruby ruby1.8-dev ri irb rdoc rubygems ragel memcached libmemcache-dev subversion nginx rake libopenssl-ruby mongrel
|
echo "Installing packages..."
|
||||||
|
apt-get -y install build-essential automake openssl libssl-dev libyaml-dev libxml2-dev libxslt-dev autoconf ncurses-dev sudo gcc g++ libreadline-dev zlib1g-dev flex bison libgd2-noxpm libgd2-noxpm-dev bzip2 ragel memcached libmemcache-dev git curl libcurl4-openssl-dev
|
||||||
|
|
||||||
# Install Ruby gems
|
# Install PostgreSQL 9.1
|
||||||
for i in postgres diff-lcs html5 mongrel mongrel_cluster memcache-client aws-s3 json ; do gem install $i ; done
|
apt-get -y install python-software-properties
|
||||||
gem install rails --version=2.1.0
|
add-apt-repository ppa:pitti/postgresql
|
||||||
gem install acts_as_versioned
|
apt-get update
|
||||||
|
apt-get install postgresql-9.1 libpq-dev
|
||||||
|
|
||||||
|
# Install RVM
|
||||||
|
echo "Installing RVM..."
|
||||||
|
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
|
||||||
|
echo "source /usr/local/rvm/scripts/rvm" >> /etc/bash.bashrc
|
||||||
|
source /usr/local/rvm/scripts/rvm
|
||||||
|
rvm install ruby-1.9.2-p290 --with-openssl-dir=/usr/local
|
||||||
|
rvm 1.9.2 --default
|
||||||
|
|
||||||
|
# Install gems
|
||||||
|
gem install --no-ri --no-rdoc capistrano
|
||||||
|
|
||||||
|
# Install Passenger
|
||||||
|
gem install --no-ri --no-rdoc -v 3.0.8 passenger
|
||||||
|
rvm exec passenger-install-nginx-module
|
||||||
|
|
||||||
|
# Setup nginx
|
||||||
|
curl -s https://raw.github.com/ascarter/nginx-ubuntu-rvm/master/nginx > /etc/init.d/nginx
|
||||||
|
chmod +x,g-w /etc/init.d/nginx
|
||||||
|
update-rc.d -f nginx defaults
|
||||||
|
mkdir -p /opt/nginx/sites
|
||||||
|
curl -s https://raw.github.com/r888888888/danbooru/master/script/install/nginx.conf > /opt/nginx/conf/nginx.conf
|
||||||
|
curl -s https://raw.github.com/r888888888/danbooru/master/script/install/nginx.danbooru.conf > /opt/nginx/conf/sites/danbooru.conf
|
||||||
|
/etc/init.d/nginx start
|
||||||
|
|
||||||
# Create user account
|
# Create user account
|
||||||
useradd -m danbooru
|
# useradd -m danbooru
|
||||||
PG_HBA_FILE="/etc/postgresql/8.3/main/pg_hba.conf"
|
PG_HBA_FILE="/etc/postgresql/9.1/main/pg_hba.conf"
|
||||||
echo "local all postgres,danbooru trust" > $PG_HBA_FILE
|
echo "local all postgres,danbooru trust" > $PG_HBA_FILE
|
||||||
echo "host all postgres,danbooru 127.0.0.1/32 trust" >> $PG_HBA_FILE
|
echo "host all postgres,danbooru 127.0.0.1/32 trust" >> $PG_HBA_FILE
|
||||||
/etc/init.d/postgresql-8.3 restart
|
/etc/init.d/postgresql-9.1 restart
|
||||||
|
|
||||||
# Install Danbooru
|
|
||||||
cd /var/www
|
|
||||||
svn export svn://donmai.us/danbooru/trunk danbooru
|
|
||||||
chown -R danbooru:danbooru danbooru
|
|
||||||
cd danbooru
|
|
||||||
mkdir -p public/data/sample
|
|
||||||
cd config
|
|
||||||
cp database.yml.example database.yml
|
|
||||||
cp local_config.rb.example local_config.rb
|
|
||||||
sed -i -e "s/DAN_HOSTNAME/$hostname/g" local_config.rb
|
|
||||||
sed -i -e "s/DAN_SITENAME/$sitename/g" local_config.rb
|
|
||||||
echo "--- " > mongrel_cluster.yml
|
|
||||||
echo "cwd: /var/www/danbooru" >> mongrel_cluster.yml
|
|
||||||
echo "port: \"8050\"" >> mongrel_cluster.yml
|
|
||||||
echo "environment: production" >> mongrel_cluster.yml
|
|
||||||
echo "address: 127.0.0.1" >> mongrel_cluster.yml
|
|
||||||
echo "servers: 3" >> mongrel_cluster.yml
|
|
||||||
echo "num_processors: 10" >> mongrel_cluster.yml
|
|
||||||
cd ../lib/danbooru_image_resizer
|
|
||||||
ruby extconf.rb
|
|
||||||
make
|
|
||||||
cd ../..
|
|
||||||
sudo -u postgres createuser -s danbooru
|
sudo -u postgres createuser -s danbooru
|
||||||
sudo -u danbooru createdb danbooru
|
|
||||||
sudo -u danbooru psql danbooru < db/postgres.sql
|
|
||||||
sudo -u danbooru rake db:migrate RAILS_ENV=production
|
|
||||||
script/donmai/upbooru
|
|
||||||
|
|
||||||
# Set up nginx
|
|
||||||
DANBOORU_CONF_FILE="/etc/nginx/sites-enabled/danbooru.conf"
|
|
||||||
echo "upstream mongrel {" > $DANBOORU_CONF_FILE
|
|
||||||
echo " server 127.0.0.1:8050;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " server 127.0.0.1:8051;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " server 127.0.0.1:8052;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo "}" >> $DANBOORU_CONF_FILE
|
|
||||||
echo "server {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " listen 80;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " server_name $hostname;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " root /var/www/danbooru/public;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " index index.html;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " access_log /var/www/danbooru/log/server.access.log;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " error_log /var/www/danbooru/log/server.error.log;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " client_max_body_size 30m;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " location /stylesheets {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " expires max;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " break;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " }" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " location /javascripts {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " expires max;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " break;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " }" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " location /data {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " valid_referers none $hostname;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " if (\$invalid_referer) {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " return 403;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " }" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " expires max;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " break;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " }" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " location /maintenance.html {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " expires 10;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " }" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " if (-f \$document_root/maintenance.html) {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " rewrite ^(.*)\$ /maintenance.html last;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " break;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " }" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " location / {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " proxy_set_header X-Real-IP \$remote_addr;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " proxy_set_header Host \$http_host;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " proxy_redirect false;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " if (!-f \$request_filename) {" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " proxy_pass http://mongrel;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " }" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " }" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " error_page 404 /404.html;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo " error_page 500 502 503 504 /500.html;" >> $DANBOORU_CONF_FILE
|
|
||||||
echo "}" >> $DANBOORU_CONF_FILE
|
|
||||||
/etc/init.d/nginx restart
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "I'm done!"
|
echo "I'm done!"
|
||||||
|
|||||||
31
script/install/nginx.conf
Normal file
31
script/install/nginx.conf
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
use epoll;
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
passenger_root /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.8;
|
||||||
|
passenger_ruby /usr/local/rvm/wrappers/default/ruby;
|
||||||
|
passenger_enabled on;
|
||||||
|
passenger_user_switching on;
|
||||||
|
passenger_default_user danbooru;
|
||||||
|
rails_spawn_method smart;
|
||||||
|
passenger_max_pool_size 3;
|
||||||
|
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
|
||||||
|
gzip on;
|
||||||
|
gzip_http_version 1.1;
|
||||||
|
gzip_vary off;
|
||||||
|
gzip_comp_level 6;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_types text/plain text/html text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
||||||
|
gzip_buffers 16 8k;
|
||||||
|
|
||||||
|
include /opt/nginx/conf/sites/*.conf;
|
||||||
|
}
|
||||||
43
script/install/nginx.danbooru.conf
Normal file
43
script/install/nginx.danbooru.conf
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name $hostname;
|
||||||
|
root /var/www/danbooru/public;
|
||||||
|
index index.html;
|
||||||
|
access_log /var/www/danbooru/log/server.access.log;
|
||||||
|
error_log /var/www/danbooru/log/server.error.log;
|
||||||
|
client_max_body_size 30m;
|
||||||
|
location /stylesheets {
|
||||||
|
expires max;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
location /javascripts {
|
||||||
|
expires max;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
location /data {
|
||||||
|
valid_referers none $hostname;
|
||||||
|
if ($invalid_referer) {
|
||||||
|
return 403;
|
||||||
|
}
|
||||||
|
expires max;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
location /maintenance.html {
|
||||||
|
expires 10;
|
||||||
|
}
|
||||||
|
if (-f $document_root/maintenance.html) {
|
||||||
|
rewrite ^(.*)$ /maintenance.html last;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
location / {
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_redirect false;
|
||||||
|
if (!-f $request_filename) {
|
||||||
|
proxy_pass http://mongrel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
error_page 404 /404.html;
|
||||||
|
error_page 500 502 503 504 /500.html;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user