2015-07-27 21:17:08 +02:00
# BookStack
2015-07-12 21:01:42 +02:00
2015-11-21 19:49:29 +01:00
A platform to create documentation/wiki content. General information about BookStack can be found at https://www.bookstackapp.com/
## Requirements
2015-12-16 15:54:29 +01:00
BookStack has similar requirements to Laravel. On top of those are some front-end build tools which are only required when developing.
2015-11-21 19:49:29 +01:00
* PHP >= 5.5.9
* OpenSSL PHP Extension
* PDO PHP Extension
2015-12-01 20:53:43 +01:00
* MBstring PHP Extension
2015-11-21 19:49:29 +01:00
* Tokenizer PHP Extension
* MySQL >= 5.6
2015-12-01 20:53:43 +01:00
* Git (Not strictly required but helps manage updates)
2015-11-21 19:49:29 +01:00
* [Composer ](https://getcomposer.org/ )
2015-12-01 20:53:43 +01:00
* [Node.js ](https://nodejs.org/en/ ) **Development Only**
* [Gulp ](http://gulpjs.com/ ) **Development Only**
2015-11-21 19:49:29 +01:00
## Installation
Ensure the requirements are met before installing.
2016-01-02 16:02:19 +01:00
Currently BookStack requires its own domain/subdomain and will not work in a site subdirectory.
2015-12-01 20:53:43 +01:00
This project currently uses the `release` branch of this repository as a stable channel for providing updates.
2015-11-21 19:49:29 +01:00
2015-12-16 15:54:29 +01:00
The installation is currently somewhat complicated and will be made simpler in future releases. Some PHP/Laravel experience will currently benefit.
2015-12-01 20:53:43 +01:00
1. Clone the release branch of this repository into a folder.
2015-12-16 15:54:29 +01:00
```
2015-12-01 20:53:43 +01:00
git clone https://github.com/ssddanbrown/BookStack.git --branch release --single-branch
```
2. `cd` into the application folder and run `composer install` .
3. Copy the `.env.example` file to `.env` and fill with your own database and mail details.
4. Ensure the `storage` & `bootstrap/cache` folders are writable by the web server.
2015-11-21 19:49:29 +01:00
5. In the application root, Run `php artisan key:generate` to generate a unique application key.
2015-12-16 15:54:29 +01:00
6. If not using apache or if `.htaccess` files are disabled you will have to create some URL rewrite rules as shown below.
2016-01-01 22:46:55 +01:00
7. Run `php artisan migrate` to update the database.
2015-11-21 19:49:29 +01:00
8. Done! You can now login using the default admin details `admin@admin.com` with a password of `password` . It is recommended to change these details directly after first logging in.
#### URL Rewrite rules
**Apache**
```
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
```
**Nginx**
```
location / {
try_files $uri $uri/ /index.php?$query_string;
}
```
2015-11-29 18:33:25 +01:00
## Testing
BookStack has many integration tests that use Laravel's built-in testing capabilities which makes use of PHPUnit. To use you will need PHPUnit installed and accessible via command line. There is a `mysql_testing` database defined within the app config which is what is used by PHPUnit. This database is set with the following database name, user name and password defined as `bookstack-test` . You will have to create that database and credentials before testing.
The testing database will also need migrating and seeding beforehand. This can be done with the following commands:
```
php artisan migrate --database=mysql_testing
php artisan db:seed --class=DummyContentSeeder --database=mysql_testing
```
Once done you can run `phpunit` in the application root directory to run all tests.
2015-11-21 19:49:29 +01:00
## License
BookStack is provided under the MIT License.
2015-12-16 15:54:29 +01:00
## Attribution
These are the great projects used to help build BookStack:
* [Laravel ](http://laravel.com/ )
2015-12-31 18:32:03 +01:00
* [AngularJS ](https://angularjs.org/ )
2015-12-16 15:54:29 +01:00
* [jQuery ](https://jquery.com/ )
* [TinyMCE ](https://www.tinymce.com/ )
* [highlight.js ](https://highlightjs.org/ )
* [jQuery Sortable ](https://johnny.github.io/jquery-sortable/ )
* [Material Design Iconic Font ](http://zavoloklom.github.io/material-design-iconic-font/icons.html )
* [Dropzone.js ](http://www.dropzonejs.com/ )
* [ZeroClipboard ](http://zeroclipboard.org/ )