aboutsummaryrefslogtreecommitdiffstats
path: root/docker/root/etc/cont-init.d/50-config
diff options
context:
space:
mode:
Diffstat (limited to 'docker/root/etc/cont-init.d/50-config')
-rwxr-xr-xdocker/root/etc/cont-init.d/50-config174
1 files changed, 0 insertions, 174 deletions
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 @@
1#!/usr/bin/with-contenv bash
2
3# Display variables for troubleshooting
4echo " "
5echo "-------------------------------------"
6echo " "
7echo -e "Variables set:\\n\
8NODE_ENV=${NODE_ENV}\\n\
9EXTERNAL_DOMAIN=${EXTERNAL_DOMAIN}\\n\
10DB_CONNECTION=${DB_CONNECTION}\\n\
11DB_HOST=${DB_HOST}\\n\
12DB_PORT=${DB_PORT}\\n\
13DB_USER=${DB_USER}\\n\
14DB_PASSWORD=${DB_PASSWORD}\\n\
15DB_DATABASE=${DB_DATABASE}\\n\
16DB_SSL=${DB_SSL}\\n\
17IS_CREATION_ENABLED=${IS_CREATION_ENABLED}\\n\
18IS_DASHBOARD_ENABLED=${IS_DASHBOARD_ENABLED}\\n\
19IS_REGISTRATION_ENABLED=${IS_REGISTRATION_ENABLED}\\n\
20CONNECT_WITH_FRANZ=${CONNECT_WITH_FRANZ}\\n\
21MAIL_CONNECTION=${MAIL_CONNECTION}\\n\
22SMTP_PORT=${SMTP_PORT}\\n\
23SMTP_HOST=${SMTP_HOST}\\n\
24MAIL_SSL=${MAIL_SSL}\\n\
25MAIL_USERNAME=${MAIL_USERNAME}\\n\
26MAIL_PASSWORD=${MAIL_PASSWORD}\\n\
27MAIL_SENDER=${MAIL_SENDER}\\n"
28
29# Echo init finish for test runs
30if [ -n "${TEST_RUN}" ]; then
31 echo " "
32 echo '**** [services.d] done ****'
33fi
34
35# set ferdi-server status
36echo " "
37echo "**** Checking Ferdi-server settings ****"
38if [ -f /config/config.txt ]; then
39 [[ "${NODE_ENV}" ]] && sed -i "s/NODE_ENV=.*/NODE_ENV=${NODE_ENV}/g" /config/config.txt
40 [[ "${EXTERNAL_DOMAIN}" ]] && sed -i "s/EXTERNAL_DOMAIN=.*/EXTERNAL_DOMAIN=${EXTERNAL_DOMAIN}/g" /config/config.txt
41 [[ "${IS_CREATION_ENABLED}" ]] && sed -i "s/IS_CREATION_ENABLED=.*/IS_CREATION_ENABLED=${IS_CREATION_ENABLED}/g" /config/config.txt
42 [[ "${IS_DASHBOARD_ENABLED}" ]] && sed -i "s/IS_DASHBOARD_ENABLED=.*/IS_DASHBOARD_ENABLED=${IS_DASHBOARD_ENABLED}/g" /config/config.txt
43 [[ "${IS_REGISTRATION_ENABLED}" ]] && sed -i "s/IS_REGISTRATION_ENABLED=.*/IS_REGISTRATION_ENABLED=${IS_REGISTRATION_ENABLED}/g" /config/config.txt
44 [[ "${CONNECT_WITH_FRANZ}" ]] && sed -i "s/CONNECT_WITH_FRANZ=.*/CONNECT_WITH_FRANZ=${CONNECT_WITH_FRANZ}/g" /config/config.txt
45 [[ "${DB_CONNECTION}" ]] && sed -i "s/DB_CONNECTION=.*/DB_CONNECTION=${DB_CONNECTION}/g" /config/config.txt
46 [[ "${DB_HOST}" ]] && sed -i "s/DB_HOST=.*/DB_HOST=${DB_HOST}/g" /config/config.txt
47 [[ "${DB_PORT}" ]] && sed -i "s/DB_PORT=.*/DB_PORT=${DB_PORT}/g" /config/config.txt
48 [[ "${DB_DATABASE}" ]] && sed -i "s/DB_DATABASE=.*/DB_DATABASE=${DB_DATABASE}/g" /config/config.txt
49 [[ "${DB_USER}" ]] && sed -i "s/DB_USER=.*/DB_USER=${DB_USER}/g" /config/config.txt
50 [[ "${DB_PASSWORD}" ]] && sed -i "s/DB_PASSWORD=.*/DB_PASSWORD=${DB_PASSWORD}/g" /config/config.txt
51 [[ "${DB_SSL}" ]] && sed -i "s/DB_SSL=.*/DB_SSL=${DB_SSL}/g" /config/config.txt
52 [[ "${MAIL_CONNECTION}" ]] && sed -i "s/MAIL_CONNECTION=.*/MAIL_CONNECTION=${MAIL_CONNECTION}/g" /config/config.txt
53 [[ "${SMTP_HOST}" ]] && sed -i "s/SMTP_HOST=.*/SMTP_HOST=${SMTP_HOST}/g" /config/config.txt
54 [[ "${SMTP_PORT}" ]] && sed -i "s/SMTP_PORT=.*/SMTP_PORT=${SMTP_PORT}/g" /config/config.txt
55 [[ "${MAIL_SSL}" ]] && sed -i "s/MAIL_SSL=.*/MAIL_SSL=${MAIL_SSL}/g" /config/config.txt
56 [[ "${MAIL_USERNAME}" ]] && sed -i "s/MAIL_USERNAME=.*/MAIL_USERNAME=${MAIL_USERNAME}/g" /config/config.txt
57 [[ "${MAIL_PASSWORD}" ]] && sed -i "s/MAIL_PASSWORD=.*/MAIL_PASSWORD=${MAIL_PASSWORD}/g" /config/config.txt
58 [[ "${MMAIL_SENDER}" ]] && sed -i "s/MAIL_SENDER=.*/MAIL_SENDER=${MAIL_SENDER}/g" /config/config.txt
59 rm /config/.env
60 cp /config/config.txt /config/.env
61elif [ ! -f /config/config.txt ]; then
62 echo " "
63 echo "**** Generating .env file ****"
64 cp /defaults/.env.example /config/.env
65 [[ "${NODE_ENV}" ]] && sed -i "s/NODE_ENV=.*/NODE_ENV=${NODE_ENV}/g" /config/.env
66 [[ "${EXTERNAL_DOMAIN}" ]] && sed -i "s/EXTERNAL_DOMAIN=.*/EXTERNAL_DOMAIN=${EXTERNAL_DOMAIN}/g" /config/.env
67 [[ "${IS_CREATION_ENABLED}" ]] && sed -i "s/IS_CREATION_ENABLED=.*/IS_CREATION_ENABLED=${IS_CREATION_ENABLED}/g" /config/.env
68 [[ "${IS_DASHBOARD_ENABLED}" ]] && sed -i "s/IS_DASHBOARD_ENABLED=.*/IS_DASHBOARD_ENABLED=${IS_DASHBOARD_ENABLED}/g" /config/.env
69 [[ "${IS_REGISTRATION_ENABLED}" ]] && sed -i "s/IS_REGISTRATION_ENABLED=.*/IS_REGISTRATION_ENABLED=${IS_REGISTRATION_ENABLED}/g" /config/.env
70 [[ "${CONNECT_WITH_FRANZ}" ]] && sed -i "s/CONNECT_WITH_FRANZ=.*/CONNECT_WITH_FRANZ=${CONNECT_WITH_FRANZ}/g" /config/.env
71 [[ "${DB_CONNECTION}" ]] && sed -i "s/DB_CONNECTION=.*/DB_CONNECTION=${DB_CONNECTION}/g" /config/.env
72 [[ "${DB_HOST}" ]] && sed -i "s/DB_HOST=.*/DB_HOST=${DB_HOST}/g" /config/.env
73 [[ "${DB_PORT}" ]] && sed -i "s/DB_PORT=.*/DB_PORT=${DB_PORT}/g" /config/.env
74 [[ "${DB_DATABASE}" ]] && sed -i "s/DB_DATABASE=.*/DB_DATABASE=${DB_DATABASE}/g" /config/.env
75 [[ "${DB_USER}" ]] && sed -i "s/DB_USER=.*/DB_USER=${DB_USER}/g" /config/.env
76 [[ "${DB_PASSWORD}" ]] && sed -i "s/DB_PASSWORD=.*/DB_PASSWORD=${DB_PASSWORD}/g" /config/.env
77 [[ "${DB_SSL}" ]] && sed -i "s/DB_SSL=.*/DB_SSL=${DB_SSL}/g" /config/.env
78 [[ "${MAIL_CONNECTION}" ]] && sed -i "s/MAIL_CONNECTION=.*/MAIL_CONNECTION=${MAIL_CONNECTION}/g" /config/.env
79 [[ "${SMTP_HOST}" ]] && sed -i "s/SMTP_HOST=.*/SMTP_HOST=${SMTP_HOST}/g" /config/.env
80 [[ "${SMTP_PORT}" ]] && sed -i "s/SMTP_PORT=.*/SMTP_PORT=${SMTP_PORT}/g" /config/.env
81 [[ "${MAIL_SSL}" ]] && sed -i "s/MAIL_SSL=.*/MAIL_SSL=${MAIL_SSL}/g" /config/.env
82 [[ "${MAIL_USERNAME}" ]] && sed -i "s/MAIL_USERNAME=.*/MAIL_USERNAME=${MAIL_USERNAME}/g" /config/.env
83 [[ "${MAIL_PASSWORD}" ]] && sed -i "s/MAIL_PASSWORD=.*/MAIL_PASSWORD=${MAIL_PASSWORD}/g" /config/.env
84 [[ "${MMAIL_SENDER}" ]] && sed -i "s/MAIL_SENDER=.*/MAIL_SENDER=${MAIL_SENDER}/g" /config/.env
85 cp /config/.env /config/config.txt
86fi
87
88# update .env
89if [ -f /app/.env ]; then
90 rm /app/.env
91 ln -s /config/.env /app/.env
92elif [ ! -f /app/.env ]; then
93 ln -s /config/.env /app/.env
94fi
95
96# install adonisjs cli
97echo " "
98echo "**** Installing AdonisJS and deps ****"
99cd /app
100echo " "
101npm config set unsafe-perm true
102npm i -g @adonisjs/cli
103
104# install adonisjs dependencies
105npm install
106
107# make custom recipe dir
108if [ ! -f /app/recipes/dev ]; then
109mkdir -p /app/recipes/dev
110fi
111
112# setting the database helper
113if [ "${DB_CONNECTION}" = "sqlite" ]; then
114 echo " "
115 echo "**** DB helper loaded ****"
116 else npm i ${DB_CONNECTION}
117 echo " "
118 echo "**** DB Helper loaded ****"
119fi
120
121# check for the database endpoint for 30 seconds
122echo " "
123echo "**** Checking DB endpoint ****"
124source .env
125END=$((SECONDS+30))
126while [ ${SECONDS} -lt ${END} ] && [ "${DB_HOST} ${DB_PORT}" ];
127 do
128 /usr/bin/nc -z ${DB_HOST} ${DB_PORT} && \
129 if [ ! -z "$(/usr/bin/nc -w1 ${DB_HOST} ${DB_PORT})" ];
130 then
131 [ ! -z "${RUN}" ] && break
132 RUN="RAN"
133 # we sleep here again due to first run init on DB containers
134 [ ! -f /dbwait.lock ] && sleep 5
135 else
136 sleep 1
137 fi
138 sleep 1
139done
140
141# source the .env file
142source .env
143
144# database migration
145echo " "
146echo "**** Run DB migration ****"
147adonis migration:run --force
148
149# Create APP key if needed
150if [ ! -f "/config/FERDI_APP_KEY.txt" ];
151 then
152 echo " "
153 echo "**** Generating Ferdi-server app key for first run ****"
154 adonis key:generate
155 source .env
156 echo $APP_KEY > /config/FERDI_APP_KEY.txt
157 echo "**** App Key set to $APP_KEY you can modify FERDI_APP_KEY.txt to update your key ****"
158 sed -i "s/APP_KEY=/APP_KEY=$APP_KEY/g" /config/config.txt
159elif [ -f "/config/FERDI_APP_KEY.txt" ];
160 then
161 echo " "
162 echo "**** App Key found ****"
163 APP_KEY=$(cat /config/FERDI_APP_KEY.txt)
164 sed -i "s/APP_KEY=.*/APP_KEY=$APP_KEY/g" /config/config.txt
165 echo "**** App Key set to $APP_KEY you can modify FERDI_APP_KEY.txt to update your key ****"
166fi
167
168# set permissions
169chown -R abc:abc \
170 /config \
171 /app
172
173# set lockfile to avoid DB waits for this specific container
174touch /dbwait.lock