@@ -7,8 +7,15 @@ echo 'This will help you setup your Yun2inf Docker Network'
77echo ' 6 containers: 1) Database Container 2) FROST-Server Container 3) Grafana Container 4)yun2inf_proj 5)BIMServer 6)nginx'
88echo ' ------------------------------------------------------'
99# ---------------------------------------------------------
10+ # AMD64 or ARM64
11+ # ---------------------------------------------------------
12+ echo ' Is this an amd64 or arm64 Machine'
13+ read -p " (default=amd64): " ARCH
14+ ARCH=${ARCH:- amd64}
15+ # ---------------------------------------------------------
1016# POSTGRES
1117# ---------------------------------------------------------
18+ echo
1219echo ' Enter DB Container Name'
1320read -p " (default=spatempdb): " CONTAINERNAME1
1421CONTAINERNAME1=${CONTAINERNAME1:- spatempdb}
@@ -102,6 +109,7 @@ NPORT=${NPORT:-80}
102109
103110# PRINT SETTING
104111echo ' ---------------------------------'
112+ echo ' Machine Architecture:' $ARCH
105113echo ' Container Name1:' $CONTAINERNAME1
106114echo ' DBPort: ' $DBPORT
107115echo ' Username: ' $DBUSER
@@ -216,7 +224,7 @@ docker run -d --name "$CONTAINERNAME1"\
216224 -e " POSTGRES_PASSWORD=$DBPASSWORD " \
217225 -e " POSTGRES_DB=$DBNAME " \
218226 -v " spatempdb_volume:/var/lib/postgresql/data" \
219- chenkianwee/timescale-3dcitydb:2.20.3-5.0.0
227+ chenkianwee/timescale-3dcitydb:a- 2.20.3-5.0.0
220228
221229echo ' ------------------------------------------------------'
222230echo ' Trying to start FROST-Server Container ...'
@@ -251,26 +259,6 @@ docker run -d --name "$CONTAINERNAME2"\
251259 -e " plugins.openApi.enable=true" \
252260 fraunhoferiosb/frost-server:2.6
253261
254- # wait for abit before reconfiguring the FROST-server
255- echo ' ------------------------------------------------------'
256- echo ' Configuring the database container ... '
257- echo ' ------------------------------------------------------'
258- TOTAL=30
259- TIME=0
260- while [ $TIME -le $TOTAL ]
261- do
262- echo " Configuring database, wait for $TOTAL seconds ... $TIME seconds"
263- TIME=$(( $TIME + 10 ))
264- sleep 10
265- done
266-
267- # docker exec -it "$CONTAINERNAME1" psql -U "$DBUSER" -d "$DBNAME" -c 'CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;'
268- docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " ALTER TABLE \" OBSERVATIONS\" DROP CONSTRAINT \" OBSERVATIONS_pkey\" ;"
269- docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " SELECT create_hypertable('\" OBSERVATIONS\" ','PHENOMENON_TIME_START',chunk_time_interval => interval '7 days');"
270- docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " CREATE INDEX \" OBSERVATIONS_pkey\" ON \" OBSERVATIONS\" USING btree(\" ID\" );"
271- docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " CREATE INDEX \" OBS-DS_ID-PHTIME_SE-O_ID\" on \" OBSERVATIONS\" using btree(\" DATASTREAM_ID\" ,\" PHENOMENON_TIME_START\" asc, \" PHENOMENON_TIME_END\" asc);"
272- docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " ALTER TABLE \" OBSERVATIONS\" ADD PRIMARY KEY (\" ID\" , \" PHENOMENON_TIME_START\" );"
273-
274262echo ' ------------------------------------------------------'
275263echo ' Trying to start grafana container now ...'
276264echo ' ------------------------------------------------------'
@@ -324,6 +312,36 @@ docker exec -it "$CONTAINERNAME6" rm /etc/nginx/conf.d/default.conf
324312docker restart " $CONTAINERNAME6 "
325313mv yun2inf.conf ../nginx/yun2inf.conf
326314
315+ # wait for abit before reconfiguring the FROST-server
316+ echo ' ------------------------------------------------------'
317+ echo ' Configuring the database container ... '
318+ echo ' ------------------------------------------------------'
319+ if [ $ARCH = " amd64" ]; then
320+ echo " Automated timescale setup for amd64 machine"
321+ TOTAL=30
322+ TIME=0
323+ while [ $TIME -le $TOTAL ]
324+ do
325+ echo " Configuring database, wait for $TOTAL seconds ... $TIME seconds"
326+ TIME=$(( $TIME + 10 ))
327+ sleep 10
328+ done
329+
330+ # docker exec -it "$CONTAINERNAME1" psql -U "$DBUSER" -d "$DBNAME" -c 'CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;'
331+ docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " ALTER TABLE \" OBSERVATIONS\" DROP CONSTRAINT \" OBSERVATIONS_pkey\" ;"
332+ docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " SELECT create_hypertable('\" OBSERVATIONS\" ','PHENOMENON_TIME_START',chunk_time_interval => interval '7 days');"
333+ docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " CREATE INDEX \" OBSERVATIONS_pkey\" ON \" OBSERVATIONS\" USING btree(\" ID\" );"
334+ docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " CREATE INDEX \" OBS-DS_ID-PHTIME_SE-O_ID\" on \" OBSERVATIONS\" using btree(\" DATASTREAM_ID\" ,\" PHENOMENON_TIME_START\" asc, \" PHENOMENON_TIME_END\" asc);"
335+ docker exec -it " $CONTAINERNAME1 " psql -U " $DBUSER " -d " $DBNAME " -c " ALTER TABLE \" OBSERVATIONS\" ADD PRIMARY KEY (\" ID\" , \" PHENOMENON_TIME_START\" );"
336+ elif [ $ARCH = " arm64" ]; then
337+ echo " Instructions for arm64 machine to complete your timescale setup"
338+ echo " For Raspberry Pi Installation, make sure your FROST-Server is working with your Postgresql before installing TimescaleDB"
339+ echo " Visit https://chenkianwee.github.io/yun2infinity/docs/020/020installation.html#check-if-frost-server-is-successfully-configured to check if your FROST-server and postgresql is running properly"
340+ echo " Run the tsdb4rpi.sh to install timescale with the following command: sudo sh tscitydb4rpi.sh"
341+ else
342+ echo " Unsupported Machine Type"
343+ fi
344+
327345echo ' ------------------------------------------------------'
328- echo ' Successfully installed yun2infinity '
346+ echo ' End of Setup '
329347echo ' ------------------------------------------------------'
0 commit comments