|
4 | 4 | mkdir -p \ |
5 | 5 | /config/www/{uploads,files,images} |
6 | 6 |
|
| 7 | +# check for .env and copy default if needed |
| 8 | +[[ ! -f "/config/www/.env" ]] && \ |
| 9 | + cp /var/www/html/.env.example /config/www/.env |
| 10 | + |
7 | 11 | # create symlinks |
8 | 12 | symlinks=( \ |
9 | 13 | /var/www/html/storage/uploads/files \ |
10 | 14 | /var/www/html/storage/uploads/images \ |
11 | | -/var/www/html/public/uploads ) |
| 15 | +/var/www/html/public/uploads \ |
| 16 | +/var/www/html/.env \ |
| 17 | +/var/www/html/storage/logs/laravel.log |
| 18 | +) |
12 | 19 |
|
13 | 20 | for i in "${symlinks[@]}" |
14 | 21 | do |
15 | 22 | [[ -e "$i" && ! -L "$i" ]] && rm -rf "$i" |
16 | 23 | [[ ! -L "$i" ]] && ln -s /config/www/"$(basename "$i")" "$i" |
17 | 24 | done |
18 | 25 |
|
19 | | -# Check for ADVANCED_MODE to be set. If set, copy sample env file to /config and then copy to /var/www/html.env so advanced users can make their own customisations |
20 | | -# If not set, runs in basic mode where .example.env is copied to /var/www/html/.env and seds are applied to set documented variables |
21 | | -if [ "$ADVANCED_MODE" == 1 ]; |
22 | | - then |
23 | | - echo "Advanced Mode Enabled - Syncing .env from /config to /var/www/html - if you're doing this you better read the BookStack documentation. Restart container after making changes to .env" |
24 | | - [[ ! -f "/config/.env" ]] && \ |
25 | | - cp /var/www/html/.env.example /config/.env |
26 | | - cp /config/.env /var/www/html/.env |
27 | | -elif [ -z "$ADVANCED_MODE" ]; |
28 | | - then |
29 | | - echo "Basic Mode Enabled - Using sed to set BookStack variables from Docker environment variables - check the docs" |
30 | | - cp /var/www/html/.env.example /var/www/html/.env |
31 | | - # set up .env |
32 | | - sed -i "s/APP_KEY=SomeRandomString/APP_KEY=$key/g" /var/www/html/.env |
33 | | - sed -i "s/DB_HOST=localhost/DB_HOST=${DB_HOST}/g" /var/www/html/.env |
34 | | - sed -i "s/DB_DATABASE=database_database/DB_DATABASE=${DB_DATABASE}/g" /var/www/html/.env |
35 | | - sed -i "s/DB_USERNAME=database_username/DB_USERNAME=${DB_USER}/g" /var/www/html/.env |
36 | | - sed -i "s/DB_PASSWORD=database_user_password/DB_PASSWORD=${DB_PASS}/g" /var/www/html/.env |
37 | | -else |
38 | | - echo "Nothing to do with .env - what did you do homer?" |
39 | | -fi |
40 | | - |
41 | | -# Check to see if appurl is set, and whether advanced mode is set. Will set .env APP_URL if variable present, and advanced mode not set |
42 | | -if [ ! -z "$APP_URL" -a -z "$ADVANCED_MODE" ]; |
43 | | - then |
44 | | - echo "App URL Set" |
45 | | - sed -i "s,#\sAPP_URL.*,APP_URL=${APP_URL},g" /var/www/html/.env |
46 | | -fi |
47 | | - |
48 | 26 | # Create API key if needed |
49 | | -if [ ! -f "/config/BOOKSTACK_APP_KEY.txt" ] |
| 27 | +if [ ! -f "/config/BOOKSTACK_APP_KEY.txt" ]; |
50 | 28 | then |
51 | 29 | echo "Generating BookStack app key for first run" |
52 | 30 | key=$(php /var/www/html/artisan key:generate --show | tr -d '//' ) |
53 | 31 | echo $key > /config/BOOKSTACK_APP_KEY.txt |
54 | 32 | echo "App Key set to $key you can modify the file to update /config/BOOKSTACK_APP_KEY.txt" |
| 33 | +elif [ -f "/config/BOOKSTACK_APP_KEY.txt" ]; |
| 34 | + then |
| 35 | + echo "App Key found - setting variable for seds" |
| 36 | + key=$(cat /config/BOOKSTACK_APP_KEY.txt) |
| 37 | +fi |
| 38 | + |
| 39 | +# .env file setup |
| 40 | +# check to see if db_user is set, if it is then run seds and if not then leave them |
| 41 | +if [ "${DB_USER}" ]; |
| 42 | + then |
| 43 | + echo "Running config - db_user set" |
| 44 | + sed -i "s,APP_KEY=SomeRandomString,APP_KEY=${key},g" /config/www/.env |
| 45 | + sed -i "s/DB_HOST=localhost/DB_HOST=${DB_HOST}/g" /config/www/.env |
| 46 | + sed -i "s/DB_DATABASE=database_database/DB_DATABASE=${DB_DATABASE}/g" /config/www/.env |
| 47 | + sed -i "s/DB_USERNAME=database_username/DB_USERNAME=${DB_USER}/g" /config/www/.env |
| 48 | + sed -i "s/DB_PASSWORD=database_user_password/DB_PASSWORD=${DB_PASS}/g" /config/www/.env |
55 | 49 | fi |
56 | 50 |
|
| 51 | +# set appurl if detected |
| 52 | +[[ "${APP_URL}" ]] && sed -i "s,#\sAPP_URL.*,APP_URL=${APP_URL},g" /config/www/.env |
| 53 | + |
57 | 54 | # update database - will set up database if fresh, or, migrate existing |
58 | 55 | php /var/www/html/artisan migrate --force |
59 | 56 |
|
|
0 commit comments