BookStack is an open-source platform for creating documentation and knowledge bases. It offers a highly customizable interface and user-friendly collaborative features.
In this tutorial, we will guide you through the installation process of BookStack on Alpine Linux Latest.
Before proceeding with the BookStack installation, make sure you have the following prerequisites:
First, before we install any packages, we should update and upgrade our system to make sure everything is up to date.
sudo apk update && sudo apk upgrade
To run BookStack on Alpine Linux, we need to install a few dependencies:
sudo apk add php7 php7-fpm php7-json php7-intl php7-dom php7-gd php7-mbstring php7-xml php7-pdo_mysql nginx supervisor composer curl
php7
is the main PHP packagephp7-fpm
is the FastCGI Process Manager module for PHPphp7-json
, php7-intl
, php7-dom
, php7-gd
, php7-mbstring
, php7-xml
, and php7-pdo_mysql
are PHP modules required for BookStack to run.nginx
is the web server that will handle requests to your BookStack installation.supervisor
is a process control system that will manage and monitor our web server and PHP processes.composer
is the package manager for PHP that will be used to install BookStack.To configure Nginx for BookStack, first, we'll create a new server block.
sudo nano /etc/nginx/conf.d/bookstack.conf
In the file, add the following content:
server {
listen 80;
server_name your-server-name;
root /var/www/bookstack/public;
index index.php;
client_max_body_size 100M;
# Turn off gzip to avoid conflicts with BookStack's own gzip handling
gzip off;
# Ensure requests for pagespeed optimized resources go to the pagespeed
# handler and no extraneous 404s are returned.
# location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
# pass to pagespeed handler
# add_header "" "";
# }
# Bookstack rewrite rules
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP-FPM configuration
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php7-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Change your-server-name
to the appropriate domain or IP address to match your server.
Save and exit the file.
Now, we will configure PHP-FPM so that it will work with the BookStack installation.
Open the PHP-FPM configuration file:
sudo nano /etc/php7/php-fpm.d/www.conf
Find the following lines and uncomment them:
listen = /run/php7-fpm.sock
listen.owner = nobody
listen.group = nobody
listen.mode = 0660
Save and exit the file.
Restart PHP-FPM and Nginx to apply the changes:
sudo service php-fpm restart
sudo service nginx restart
Let's create a new MySQL/MariaDB database and a user for BookStack.
Log in to your MySQL server as the root user:
mysql -u root -p
Create a new database:
CREATE DATABASE bookstack;
Create a new user:
CREATE USER 'bookstack'@'localhost' IDENTIFIED BY 'your_password';
Grant the user permissions to the database:
GRANT ALL PRIVILEGES ON bookstack.* TO 'bookstack'@'localhost';
FLUSH PRIVILEGES;
Then, exit from the MySQL shell:
exit;
Finally, we can download and install BookStack itself.
Create a new directory for BookStack in /var/www
:
sudo mkdir -p /var/www/bookstack
sudo chown -R www-data:www-data /var/www/bookstack
Change to the newly created directory:
cd /var/www/bookstack
Download the latest version of BookStack from its official GitHub repository using git
:
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch .
Now, use composer
to install and configure the required dependencies:
sudo composer install --no-dev --optimize-autoloader
Copy the .env.example
file to .env
:
cp .env.example .env
In the .env
file, set the database information you created earlier:
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=your_password
Generate a new application key:
php artisan key:generate --no-interaction --force
Migrate the database tables:
php artisan migrate --no-interaction --force
Set the correct permissions on the storage
directory:
sudo chown -R www-data:www-data storage
Now you should be ready to log in to your Bookstack installation by going to http://your-server-name/
in a web browser!
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!