forked from e621ng/e621ng
updated INSTALL script
This commit is contained in:
parent
ebee1eb665
commit
6d022d308a
171
INSTALL.debian
171
INSTALL.debian
@ -1,131 +1,74 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "This script is out of date; please read the INSTALL document"
|
||||
exit 1
|
||||
|
||||
if [ $USER != root ] ; then
|
||||
if [[ "$(whoami)" != "root" ] ; then
|
||||
echo "You must run this script as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Danbooru Install"
|
||||
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
|
||||
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 "/var/www/danbooru. It will run three Mongrel processes, starting on port"
|
||||
echo "8050."
|
||||
echo
|
||||
echo -n "Enter the hostname for this server (ex: danbooru.donmai.us): "
|
||||
read hostname
|
||||
|
||||
if [ -z $hostname ] ; then
|
||||
echo "Must enter a hostname"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -n "Enter a name for the site (default: Danbooru): "
|
||||
read sitename
|
||||
|
||||
if [ -z $sitename ] ; then
|
||||
sitename=Danbooru
|
||||
fi
|
||||
# echo "Danbooru Install"
|
||||
# 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
|
||||
# echo "It will create a new user called danbooru which will run the Danbooru"
|
||||
# echo "processes. It will download the latest copy and install it in"
|
||||
# echo "/var/www/danbooru."
|
||||
# echo
|
||||
# echo -n "Enter the hostname for this server (ex: danbooru.donmai.us): "
|
||||
# read hostname
|
||||
#
|
||||
# if [[ -z "$hostname" ]] ; then
|
||||
# echo "Must enter a hostname"
|
||||
# exit 1
|
||||
# fi
|
||||
#
|
||||
# echo -n "Enter a name for the site (default: Danbooru): "
|
||||
# read sitename
|
||||
#
|
||||
# if [[ -z "$sitename" ]] ; then
|
||||
# sitename=Danbooru
|
||||
# fi
|
||||
|
||||
# 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
|
||||
for i in postgres diff-lcs html5 mongrel mongrel_cluster memcache-client aws-s3 json ; do gem install $i ; done
|
||||
gem install rails --version=2.1.0
|
||||
gem install acts_as_versioned
|
||||
# Install PostgreSQL 9.1
|
||||
apt-get -y install python-software-properties
|
||||
add-apt-repository ppa:pitti/postgresql
|
||||
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
|
||||
useradd -m danbooru
|
||||
PG_HBA_FILE="/etc/postgresql/8.3/main/pg_hba.conf"
|
||||
# useradd -m danbooru
|
||||
PG_HBA_FILE="/etc/postgresql/9.1/main/pg_hba.conf"
|
||||
echo "local all postgres,danbooru 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
|
||||
|
||||
# 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 ../..
|
||||
/etc/init.d/postgresql-9.1 restart
|
||||
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 "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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user