From 7329a7fd852082f0216b4f67f1912eaa601981fc Mon Sep 17 00:00:00 2001 From: Michal Kostewicz Date: Sun, 7 Feb 2021 12:43:41 +0100 Subject: Add new configuration for docker with small script to generate or use APP_KEY. docker-compose was adjusted to use DATA_DIR. --- docker/root/etc/cont-init.d/50-config | 174 ---------------------------------- 1 file changed, 174 deletions(-) delete mode 100755 docker/root/etc/cont-init.d/50-config (limited to 'docker/root/etc/cont-init.d/50-config') diff --git a/docker/root/etc/cont-init.d/50-config b/docker/root/etc/cont-init.d/50-config deleted file mode 100755 index 72b2d00..0000000 --- a/docker/root/etc/cont-init.d/50-config +++ /dev/null @@ -1,174 +0,0 @@ -#!/usr/bin/with-contenv bash - -# Display variables for troubleshooting -echo " " -echo "-------------------------------------" -echo " " -echo -e "Variables set:\\n\ -NODE_ENV=${NODE_ENV}\\n\ -EXTERNAL_DOMAIN=${EXTERNAL_DOMAIN}\\n\ -DB_CONNECTION=${DB_CONNECTION}\\n\ -DB_HOST=${DB_HOST}\\n\ -DB_PORT=${DB_PORT}\\n\ -DB_USER=${DB_USER}\\n\ -DB_PASSWORD=${DB_PASSWORD}\\n\ -DB_DATABASE=${DB_DATABASE}\\n\ -DB_SSL=${DB_SSL}\\n\ -IS_CREATION_ENABLED=${IS_CREATION_ENABLED}\\n\ -IS_DASHBOARD_ENABLED=${IS_DASHBOARD_ENABLED}\\n\ -IS_REGISTRATION_ENABLED=${IS_REGISTRATION_ENABLED}\\n\ -CONNECT_WITH_FRANZ=${CONNECT_WITH_FRANZ}\\n\ -MAIL_CONNECTION=${MAIL_CONNECTION}\\n\ -SMTP_PORT=${SMTP_PORT}\\n\ -SMTP_HOST=${SMTP_HOST}\\n\ -MAIL_SSL=${MAIL_SSL}\\n\ -MAIL_USERNAME=${MAIL_USERNAME}\\n\ -MAIL_PASSWORD=${MAIL_PASSWORD}\\n\ -MAIL_SENDER=${MAIL_SENDER}\\n" - -# Echo init finish for test runs -if [ -n "${TEST_RUN}" ]; then - echo " " - echo '**** [services.d] done ****' -fi - -# set ferdi-server status -echo " " -echo "**** Checking Ferdi-server settings ****" -if [ -f /config/config.txt ]; then - [[ "${NODE_ENV}" ]] && sed -i "s/NODE_ENV=.*/NODE_ENV=${NODE_ENV}/g" /config/config.txt - [[ "${EXTERNAL_DOMAIN}" ]] && sed -i "s/EXTERNAL_DOMAIN=.*/EXTERNAL_DOMAIN=${EXTERNAL_DOMAIN}/g" /config/config.txt - [[ "${IS_CREATION_ENABLED}" ]] && sed -i "s/IS_CREATION_ENABLED=.*/IS_CREATION_ENABLED=${IS_CREATION_ENABLED}/g" /config/config.txt - [[ "${IS_DASHBOARD_ENABLED}" ]] && sed -i "s/IS_DASHBOARD_ENABLED=.*/IS_DASHBOARD_ENABLED=${IS_DASHBOARD_ENABLED}/g" /config/config.txt - [[ "${IS_REGISTRATION_ENABLED}" ]] && sed -i "s/IS_REGISTRATION_ENABLED=.*/IS_REGISTRATION_ENABLED=${IS_REGISTRATION_ENABLED}/g" /config/config.txt - [[ "${CONNECT_WITH_FRANZ}" ]] && sed -i "s/CONNECT_WITH_FRANZ=.*/CONNECT_WITH_FRANZ=${CONNECT_WITH_FRANZ}/g" /config/config.txt - [[ "${DB_CONNECTION}" ]] && sed -i "s/DB_CONNECTION=.*/DB_CONNECTION=${DB_CONNECTION}/g" /config/config.txt - [[ "${DB_HOST}" ]] && sed -i "s/DB_HOST=.*/DB_HOST=${DB_HOST}/g" /config/config.txt - [[ "${DB_PORT}" ]] && sed -i "s/DB_PORT=.*/DB_PORT=${DB_PORT}/g" /config/config.txt - [[ "${DB_DATABASE}" ]] && sed -i "s/DB_DATABASE=.*/DB_DATABASE=${DB_DATABASE}/g" /config/config.txt - [[ "${DB_USER}" ]] && sed -i "s/DB_USER=.*/DB_USER=${DB_USER}/g" /config/config.txt - [[ "${DB_PASSWORD}" ]] && sed -i "s/DB_PASSWORD=.*/DB_PASSWORD=${DB_PASSWORD}/g" /config/config.txt - [[ "${DB_SSL}" ]] && sed -i "s/DB_SSL=.*/DB_SSL=${DB_SSL}/g" /config/config.txt - [[ "${MAIL_CONNECTION}" ]] && sed -i "s/MAIL_CONNECTION=.*/MAIL_CONNECTION=${MAIL_CONNECTION}/g" /config/config.txt - [[ "${SMTP_HOST}" ]] && sed -i "s/SMTP_HOST=.*/SMTP_HOST=${SMTP_HOST}/g" /config/config.txt - [[ "${SMTP_PORT}" ]] && sed -i "s/SMTP_PORT=.*/SMTP_PORT=${SMTP_PORT}/g" /config/config.txt - [[ "${MAIL_SSL}" ]] && sed -i "s/MAIL_SSL=.*/MAIL_SSL=${MAIL_SSL}/g" /config/config.txt - [[ "${MAIL_USERNAME}" ]] && sed -i "s/MAIL_USERNAME=.*/MAIL_USERNAME=${MAIL_USERNAME}/g" /config/config.txt - [[ "${MAIL_PASSWORD}" ]] && sed -i "s/MAIL_PASSWORD=.*/MAIL_PASSWORD=${MAIL_PASSWORD}/g" /config/config.txt - [[ "${MMAIL_SENDER}" ]] && sed -i "s/MAIL_SENDER=.*/MAIL_SENDER=${MAIL_SENDER}/g" /config/config.txt - rm /config/.env - cp /config/config.txt /config/.env -elif [ ! -f /config/config.txt ]; then - echo " " - echo "**** Generating .env file ****" - cp /defaults/.env.example /config/.env - [[ "${NODE_ENV}" ]] && sed -i "s/NODE_ENV=.*/NODE_ENV=${NODE_ENV}/g" /config/.env - [[ "${EXTERNAL_DOMAIN}" ]] && sed -i "s/EXTERNAL_DOMAIN=.*/EXTERNAL_DOMAIN=${EXTERNAL_DOMAIN}/g" /config/.env - [[ "${IS_CREATION_ENABLED}" ]] && sed -i "s/IS_CREATION_ENABLED=.*/IS_CREATION_ENABLED=${IS_CREATION_ENABLED}/g" /config/.env - [[ "${IS_DASHBOARD_ENABLED}" ]] && sed -i "s/IS_DASHBOARD_ENABLED=.*/IS_DASHBOARD_ENABLED=${IS_DASHBOARD_ENABLED}/g" /config/.env - [[ "${IS_REGISTRATION_ENABLED}" ]] && sed -i "s/IS_REGISTRATION_ENABLED=.*/IS_REGISTRATION_ENABLED=${IS_REGISTRATION_ENABLED}/g" /config/.env - [[ "${CONNECT_WITH_FRANZ}" ]] && sed -i "s/CONNECT_WITH_FRANZ=.*/CONNECT_WITH_FRANZ=${CONNECT_WITH_FRANZ}/g" /config/.env - [[ "${DB_CONNECTION}" ]] && sed -i "s/DB_CONNECTION=.*/DB_CONNECTION=${DB_CONNECTION}/g" /config/.env - [[ "${DB_HOST}" ]] && sed -i "s/DB_HOST=.*/DB_HOST=${DB_HOST}/g" /config/.env - [[ "${DB_PORT}" ]] && sed -i "s/DB_PORT=.*/DB_PORT=${DB_PORT}/g" /config/.env - [[ "${DB_DATABASE}" ]] && sed -i "s/DB_DATABASE=.*/DB_DATABASE=${DB_DATABASE}/g" /config/.env - [[ "${DB_USER}" ]] && sed -i "s/DB_USER=.*/DB_USER=${DB_USER}/g" /config/.env - [[ "${DB_PASSWORD}" ]] && sed -i "s/DB_PASSWORD=.*/DB_PASSWORD=${DB_PASSWORD}/g" /config/.env - [[ "${DB_SSL}" ]] && sed -i "s/DB_SSL=.*/DB_SSL=${DB_SSL}/g" /config/.env - [[ "${MAIL_CONNECTION}" ]] && sed -i "s/MAIL_CONNECTION=.*/MAIL_CONNECTION=${MAIL_CONNECTION}/g" /config/.env - [[ "${SMTP_HOST}" ]] && sed -i "s/SMTP_HOST=.*/SMTP_HOST=${SMTP_HOST}/g" /config/.env - [[ "${SMTP_PORT}" ]] && sed -i "s/SMTP_PORT=.*/SMTP_PORT=${SMTP_PORT}/g" /config/.env - [[ "${MAIL_SSL}" ]] && sed -i "s/MAIL_SSL=.*/MAIL_SSL=${MAIL_SSL}/g" /config/.env - [[ "${MAIL_USERNAME}" ]] && sed -i "s/MAIL_USERNAME=.*/MAIL_USERNAME=${MAIL_USERNAME}/g" /config/.env - [[ "${MAIL_PASSWORD}" ]] && sed -i "s/MAIL_PASSWORD=.*/MAIL_PASSWORD=${MAIL_PASSWORD}/g" /config/.env - [[ "${MMAIL_SENDER}" ]] && sed -i "s/MAIL_SENDER=.*/MAIL_SENDER=${MAIL_SENDER}/g" /config/.env - cp /config/.env /config/config.txt -fi - -# update .env -if [ -f /app/.env ]; then - rm /app/.env - ln -s /config/.env /app/.env -elif [ ! -f /app/.env ]; then - ln -s /config/.env /app/.env -fi - -# install adonisjs cli -echo " " -echo "**** Installing AdonisJS and deps ****" -cd /app -echo " " -npm config set unsafe-perm true -npm i -g @adonisjs/cli - -# install adonisjs dependencies -npm install - -# make custom recipe dir -if [ ! -f /app/recipes/dev ]; then -mkdir -p /app/recipes/dev -fi - -# setting the database helper -if [ "${DB_CONNECTION}" = "sqlite" ]; then - echo " " - echo "**** DB helper loaded ****" - else npm i ${DB_CONNECTION} - echo " " - echo "**** DB Helper loaded ****" -fi - -# check for the database endpoint for 30 seconds -echo " " -echo "**** Checking DB endpoint ****" -source .env -END=$((SECONDS+30)) -while [ ${SECONDS} -lt ${END} ] && [ "${DB_HOST} ${DB_PORT}" ]; - do - /usr/bin/nc -z ${DB_HOST} ${DB_PORT} && \ - if [ ! -z "$(/usr/bin/nc -w1 ${DB_HOST} ${DB_PORT})" ]; - then - [ ! -z "${RUN}" ] && break - RUN="RAN" - # we sleep here again due to first run init on DB containers - [ ! -f /dbwait.lock ] && sleep 5 - else - sleep 1 - fi - sleep 1 -done - -# source the .env file -source .env - -# database migration -echo " " -echo "**** Run DB migration ****" -adonis migration:run --force - -# Create APP key if needed -if [ ! -f "/config/FERDI_APP_KEY.txt" ]; - then - echo " " - echo "**** Generating Ferdi-server app key for first run ****" - adonis key:generate - source .env - echo $APP_KEY > /config/FERDI_APP_KEY.txt - echo "**** App Key set to $APP_KEY you can modify FERDI_APP_KEY.txt to update your key ****" - sed -i "s/APP_KEY=/APP_KEY=$APP_KEY/g" /config/config.txt -elif [ -f "/config/FERDI_APP_KEY.txt" ]; - then - echo " " - echo "**** App Key found ****" - APP_KEY=$(cat /config/FERDI_APP_KEY.txt) - sed -i "s/APP_KEY=.*/APP_KEY=$APP_KEY/g" /config/config.txt - echo "**** App Key set to $APP_KEY you can modify FERDI_APP_KEY.txt to update your key ****" -fi - -# set permissions -chown -R abc:abc \ - /config \ - /app - -# set lockfile to avoid DB waits for this specific container -touch /dbwait.lock -- cgit v1.2.3-70-g09d2