3 export DEBIAN_FRONTEND=noninteractive
5 apt install git nginx php7.0 php7.0-curl php7.0-mbstring php7.0-ldap php7.0-mcrypt \
6 php7.0-tidy php7.0-xml php7.0-zip php7.0-gd php7.0-mysql mysql-server-5.7 mcrypt
9 echo "Setting up BookStack MySQL user and database"
10 DB_PASS="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13)"
11 mysql -u root --execute="CREATE DATABASE bookstack;"
12 mysql -u root --execute="CREATE USER 'bookstack'@'localhost' IDENTIFIED BY '$DB_PASS';"
13 mysql -u root --execute="GRANT ALL ON bookstack.* TO 'bookstack'@'localhost';FLUSH PRIVILEGES;"
17 git clone https://github.com/ssddanbrown/BookStack.git --branch release --single-branch bookstack
18 BOOKSTACK_DIR="/var/www/bookstack"
22 EXPECTED_SIGNATURE=$(wget https://composer.github.io/installer.sig -O - -q)
23 php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
24 ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');")
26 if [ "$EXPECTED_SIGNATURE" = "$ACTUAL_SIGNATURE" ]
28 php composer-setup.php --quiet
33 >&2 echo 'ERROR: Invalid installer signature'
38 # Install BookStack composer dependancies
39 php composer.phar install
41 # Copy and update BookStack environment variables
43 sed -i.bak 's/DB_DATABASE=.*$/DB_DATABASE=bookstack/' .env
44 sed -i.bak 's/DB_USERNAME=.*$/DB_USERNAME=bookstack/' .env
45 sed -i.bak "s/DB_PASSWORD=.*\$/DB_PASSWORD=$DB_PASS/" .env
46 php artisan key:generate --no-interaction
47 php artisan migrate --no-interaction --force
49 chown www-data:www-data -R bootstrap/cache public/uploads storage && chmod -R 755 bootstrap/cache public/uploads