Skip to content

Commit 91654e1

Browse files
committed
updated for arch linux
1 parent a896e87 commit 91654e1

File tree

1 file changed

+113
-0
lines changed

1 file changed

+113
-0
lines changed

INSTALL.arch

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
#!/bin/bash
2+
3+
# Run: curl -s https://raw.githubusercontent.com/Duckbuster/danbooru/master/INSTALL.arch > install.sh ; chmod +x install.sh ; ./install.sh
4+
5+
if [[ "$(whoami)" != "root" ]] ; then
6+
echo "You must run this script as root"
7+
exit 1
8+
fi
9+
10+
echo "* DANBOORU INSTALLATION SCRIPT"
11+
echo "*"
12+
echo "* This script will install all the necessary packages to run Danbooru on a "
13+
echo "* Debian server."
14+
echo
15+
echo -n "* Enter the hostname for this server (ex: danbooru.donmai.us): "
16+
read HOSTNAME
17+
18+
if [[ -z "$HOSTNAME" ]] ; then
19+
echo "* Must enter a hostname"
20+
exit 1
21+
fi
22+
23+
RUBY_VERSION=1.9.3-p327
24+
GITHUB_INSTALL_SCRIPTS=https://raw.githubusercontent.com/Duckbuster/danbooru/master/script/install
25+
26+
echo -n "* Enter a name for the site (default: Danbooru): "
27+
read SITENAME
28+
29+
if [[ -z "$SITENAME" ]] ; then
30+
SITENAME=Danbooru
31+
fi
32+
33+
# Install packages
34+
echo "* Installing packages..."
35+
pacman -Syu --noconfirm
36+
pacman -S --noconfirm build-essential automake libssl-dev libxml2-dev libxslt-dev ncurses-dev sudo libreadline-dev flex bison ragel memcached libmemcache-dev git curl libcurl4-openssl-dev imagemagick libmagickcore-dev libmagickwand-dev sendmail-bin sendmail postgresql postgresql-contrib libpq-dev nginx ssh
37+
38+
if [ $? -ne 0 ]; then
39+
echo "* Error installing packages; aborting"
40+
exit 1
41+
fi
42+
43+
# Create user account
44+
useradd -m danbooru
45+
chsh -s /bin/bash danbooru
46+
usermod -G danbooru,sudo danbooru
47+
48+
# Install rbenv
49+
echo "* Installing rbenv..."
50+
cd /
51+
sudo -u danbooru git clone git://github.com/sstephenson/rbenv.git ~danbooru/.rbenv
52+
sudo -u danbooru touch ~danbooru/.bash_profile
53+
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~danbooru/.bash_profile
54+
echo 'eval "$(rbenv init -)"' >> ~danbooru/.bash_profile
55+
sudo -u danbooru mkdir -p ~danbooru/.rbenv/plugins
56+
sudo -u danbooru git clone git://github.com/sstephenson/ruby-build.git ~danbooru/.rbenv/plugins/ruby-build
57+
sudo -u danbooru bash -l -c "rbenv install $RUBY_VERSION"
58+
sudo -u danbooru bash -l -c "rbenv global $RUBY_VERSION"
59+
60+
# Generate secret token and secret key
61+
echo "* Generating secret keys..."
62+
sudo -u danbooru mkdir ~danbooru/.danbooru/
63+
sudo -u danbooru openssl rand -hex 32 > ~danbooru/.danbooru/secret_token
64+
sudo -u danbooru openssl rand -hex 32 > ~danbooru/.danbooru/session_secret_key
65+
chmod 600 ~danbooru/.danbooru/*
66+
67+
# Install gems
68+
echo "* Installing gems..."
69+
sudo -u danbooru bash -l -c 'gem install --no-ri --no-rdoc bundler'
70+
71+
echo "* Install configuration scripts..."
72+
73+
# Update PostgreSQL
74+
curl -L -s $GITHUB_INSTALL_SCRIPTS/postgresql_hba_conf -o /etc/postgresql/9.1/main/pg_hba.conf
75+
/etc/init.d/postgresql restart
76+
sudo -u postgres createuser -s danbooru
77+
sudo -u danbooru createdb danbooru2
78+
79+
# Setup nginx
80+
curl -L -s $GITHUB_INSTALL_SCRIPTS/nginx.danbooru.conf -o /etc/nginx/conf.d/danbooru.conf
81+
sed -i -e "s/__hostname__/$HOSTNAME/g" /etc/nginx/conf.d/danbooru.conf
82+
systemctl restart nginx
83+
84+
# Setup logrotate
85+
curl -L -s $GITHUB_INSTALL_SCRIPTS/danbooru_logrotate_conf -o /etc/logrotate.d/danbooru.conf
86+
87+
# Setup danbooru account
88+
echo "* Enter a new password for the danbooru account"
89+
passwd danbooru
90+
91+
echo "* Setting up SSH keys for the danbooru account"
92+
sudo -u danbooru ssh-keygen
93+
94+
echo "* Setting up danbooru app..."
95+
sudo -u danbooru git clone https://github.com/Duckbuster/danbooru ~danbooru/danbooru
96+
sudo -u danbooru bash -l -c 'cd ~/danbooru ; bundle'
97+
98+
echo "* Creating a new local git branch called develop"
99+
sudo -u danbooru bash -l -c 'cd ~danbooru ; git checkout -b develop'
100+
101+
echo "* Setting up known_hosts for localhost"
102+
ssh-keyscan -t rsa,dsa localhost 2>&1 | sort -u - ~/.ssh/known_hosts > ~/.ssh/tmp_hosts
103+
cat ~/.ssh/tmp_hosts >> ~/.ssh/known_hosts
104+
105+
echo "* Almost done! The code has been checked out at ~danbooru/danbooru. You can "
106+
echo "* now login as the danbooru user and run the following commands to deploy to "
107+
echo "* the server:"
108+
echo "*"
109+
echo "* cd ~/danbooru"
110+
echo "* bundle exec cap development deploy:setup"
111+
echo "* bundle exec cap development deploy:update"
112+
113+

0 commit comments

Comments
 (0)