# Install BookStack - Documentation/Wiki Platform - on Windows

## What is BookStack?

> BookStack is an opinionated wiki system that provides a pleasant and simple out-of-the-box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -https://github.com/BookStackApp/BookStack

## Installation

1. Download XAMPP Download
2. Download BookStack Download
3. Download Microsoft Visual C++ Download
4. Download Composer Download
5. Install Microsoft Visual C++
6. Right click the downloaded XAMPP .zip file > Extract All...
7. Right click the downloaded BookStack .zip file > Extract All...
8. Rename the extracted folder bookstack
9. Cut the bookstack folder inside the XAMPP directory
10. Copy the extracted XAMPP directory to a safe location to run from, C:\Program Files for example
11. Run XAMPP/setup_xampp.bat to update the configuration files with the new server location

## Configuring the Web Server

1. Navigate to XAMPP/php and edit php.ini
2. Find the following line and remove the ; to uncomment them

   extension=ldap
   extension=gd

3. Save the changes to php.ini
4. Navigate to XAMPP/apache/conf and edit httpd.conf
5. Paste the following configuration at the bottom of the file, update the folder paths as needed

   Alias /bookstack "C:/Program Files/xampp/bookstack/public/"
   <Directory "C:/Program Files/xampp/bookstack/public/">

   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
   <IfModule mod_rewrite.c>
   <IfModule mod_negotiation.c>
   Options -MultiViews -Indexes
   </IfModule>

   RewriteEngine On

   # Handle Authorization Header
   RewriteCond %{HTTP:Authorization} .
   RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

   # Redirect Trailing Slashes If Not A Folder...
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_URI} (.+)/$
   RewriteRule ^ %1 [L,R=301]

   # Handle Front Controller...
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^ index.php [L]
   </IfModule>
   </Directory>

6. Save the changes to httpd.conf
7. Install Composer
8. Run XAMPP/xampp-control.exe
9. Click the Start button next to Apache and MySQL
10. Navigate to XAMPP/mysql/bin
11. Hold the SHIFT key and right click in the white space > Open PowerShell window here...
12. Type the following in the PowerShell window to setup the BookStack database
    .\mysql -u root
    CREATE DATABASE bookstack;
    GRANT ALL ON bookstack.* to 'bookstack_rw'@'localhost' IDENTIFIED BY 'B00k$t@ck!';
    FLUSH PRIVILEGES;
    EXIT;
    exit
13. Navigate to the XAMPP/bookstack folder > Right click in the white space > Open PowerShell window here...
14. Run the following command to download dependencies
    # create a copy of the sample .env file
    cp .\.env.example .\.env
    # edit .env in notepad
    notepad .\.env
15. Modifying the following key/value pairs in .env as needed

    APP_ENV=production
    APP_DEBUG=false
    APP_KEY=SomethingSecure
    APP_URL=http://windows11.local/bookstack
    APP_TIMEZONE='America/New_York'
    APP_LOCALE=en
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_DATABASE=bookstack
    DB_USERNAME=bookstack_rw
    DB_PASSWORD=B00k$t@ck!
    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.i12bretro.local
    MAIL_PORT=25
    MAIL_USERNAME=null
    MAIL_PASSWORD=null
    MAIL_ENCRYPTION=null
    MAIL_FROM_ADDR=bookstack@i12bretro.local
    MAIL_FROM_NAME='BookStack'
    MAIL_REPLYTO_ADDR=bookstack@i12bretro.local
    MAIL_REPLYTO_NAME='BookStack'
    MAIL_AUTO_EMBED_METHOD='attachment'

16. Save the changes to .env
17. Continue with the following commands in PowerShell
    # install dependencies with composer
    composer install --no-dev --no-plugins
    # generate app key
    php artisan key:generate --no-interaction --force
    # migrate the database
    php artisan migrate --no-interaction --force

## BookStack Web Installer

1. Open a web browser and navigate to http://DNSorIP/bookstack
2. Login with the username admin@admin.com and the password password
3. Click the user dropdown at the top right > My Account
4. Update the user name and email address as needed > Click Save
5. Select Access & Security from the left navigation menu
6. Enter and confirm a new password > Click Update
7. Click the user dropdown at the top right > Logout
8. Log back in using the updated email address and password
9. Welcome to BookStack

Source: https://www.bookstackapp.com/docs/admin/installation/#manual