]> BookStack Code Mirror - bookstack/blobdiff - readme.md
Add docker development environment
[bookstack] / readme.md
index 62e2aa65d8abf959721ab412cec07a524f9e6888..ede6e5aa5b97afb8220f577b80823258523045cd 100644 (file)
--- a/readme.md
+++ b/readme.md
@@ -75,6 +75,29 @@ php artisan db:seed --class=DummyContentSeeder --database=mysql_testing
 
 Once done you can run `php vendor/bin/phpunit` in the application root directory to run all tests.
 
+## Getting started with Development using Docker
+
+This repository ships with a Docker Compose configuration intended for development purposes. It'll build a PHP image with all needed extensions installed and start up a MySQL server and a Node image watching the UI assets.
+
+To get started, make sure you meet the following requirements:
+
+- Docker and Docker Compose are installed
+- Your user is part of the `docker` group
+- Composer is installed
+
+If all the conditions are met, you can proceed with the following steps:
+
+1. Install Composer dependencies with **`docker-compose run app composer install`** (first time can take a while because the image has to be built)
+2. **Copy `.env.example.docker-development` to `.env`** and change `APP_KEY` to a random 32 char string
+3. Make sure **port 8080 is unused** *or else* change `DEV_PORT` to a free port on your host
+4. **Run `chgrp -R docker storage`**. The development container will chown the `storage` directory to the `www-data` user inside the container so BookStack can write to it. You need to change the group to your host's `docker` group here to not lose access to the `storage` directory
+5. **Run `docker-compose up`** and wait until all database migrations have been done
+6. **If you're starting the server for the first time**, seed the database in a separate terminal session:
+   ```php
+   docker-compose exec app php artisan db:seed --class=DummyContentSeeder --database=mysql_docker_dev
+   ```
+7. You can now login with `[email protected]` and `admin` as password on `localhost:8080` (or another port if specified)
+
 ## Translations
 
 All text strings can be found in the `resources/lang` folder where each language option has its own folder. To add a new language you should copy the `en` folder to an new folder (eg. `fr` for french) then go through and translate all text strings in those files, leaving the keys and file-names intact. If a language string is missing then the `en` translation will be used. To show the language option in the user preferences language drop-down you will need to add your language to the options found at the bottom of the `resources/lang/en/settings.php` file. A system-wide language can also be set in the `.env` file like so: `APP_LANG=en`.