123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #!/bin/bash
- set -eu
- echo "Creating directories"
- mkdir -p /app/data/public/uploads /run/nodebb/logs /run/nodebb/public
- if [[ -z "$(ls -A /run/nodebb/public)" ]]; then
- echo "Copying public files"
- cp -rf /app/code/public_template/* /run/nodebb/public
- # symlink uploads for backup
- cp -rf /app/code/public_template/uploads/* /app/data/public/uploads
- rm -rf /run/nodebb/public/uploads
- ln -sf /app/data/public/uploads /run/nodebb/public/uploads
- # The public/ contains code that requires with relative links
- ln -s /app/code/src /run/nodebb/src
- fi
- if [[ ! -L "/app/code/node_modules" ]]; then
- # Some plugins write stuff into node_modules. Not nice :/
- echo "Moving node_modules"
- mv /app/code/node_modules /run/nodebb
- ln -s /run/nodebb/node_modules /app/code/node_modules
- fi
- chown -R cloudron:cloudron /app/data /run/nodebb
- export NODE_ENV=production
- export NODE_PATH=/app/code/node_modules
- if [[ ! -f /app/data/.setup_done ]]; then
- echo "Running initial setup"
- setup="{
- \"url\": \"${APP_ORIGIN}\",
- \"admin:username\": \"admin\",
- \"admin:password\": \"password\",
- \"admin:password:confirm\": \"password\",
- \"admin:email\": \"admin@cloudron.io\",
- \"database\": \"mongo\",
- \"mongo:host\": \"${MONGODB_HOST}\",
- \"mongo:port\": \"${MONGODB_PORT}\",
- \"mongo:username\": \"${MONGODB_USERNAME}\",
- \"mongo:password\": \"${MONGODB_PASSWORD}\",
- \"mongo:database\": \"${MONGODB_DATABASE}\"
- }"
- # this will create a config.json
- node /app/code/app --setup "${setup}"
- touch /app/data/.setup_done
- fi
- # Re-create config.json
- sed -e "s,##APP_ORIGIN,${APP_ORIGIN}," \
- -e "s/##MONGODB_HOST/${MONGODB_HOST}/" \
- -e "s/##MONGODB_PORT/${MONGODB_PORT}/" \
- -e "s/##MONGODB_USERNAME/${MONGODB_USERNAME}/" \
- -e "s/##MONGODB_PASSWORD/${MONGODB_PASSWORD}/" \
- -e "s/##MONGODB_DATABASE/${MONGODB_DATABASE}/" \
- -e "s/##SECRET/$(uuid)/" \
- /app/code/config.json.template > /run/nodebb/config.json
- echo "Updating nodebb"
- node /app/code/app --upgrade
- echo "Starting nodebb"
- /usr/local/bin/gosu cloudron:cloudron node /app/code/loader.js --no-daemon --no-silent --config /run/nodebb/config.json
|