|
|
@@ -10,17 +10,10 @@ if [ -z "$EXC_GIT" ]; then
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
-EXC_NPM="$(/usr/bin/which npm)"
|
|
|
-if [ -z "$EXC_NPM" ]; then
|
|
|
- echo "[ERROR] Missing required system dependency 'npm'." >&2
|
|
|
- echo "Please install following the official install documentation." >&2
|
|
|
- exit 1
|
|
|
-fi
|
|
|
-
|
|
|
-EXC_NODE="$(/usr/bin/which node)"
|
|
|
-if [ -z "$EXC_NODE" ]; then
|
|
|
- echo "[ERROR] Missing required system dependency 'node'." >&2
|
|
|
- echo "Please install following the official install documentation." >&2
|
|
|
+EXC_DOCKER="$(/usr/bin/which docker)"
|
|
|
+if [ -z "$EXC_DOCKER" ]; then
|
|
|
+ echo "[ERROR] Missing required system dependency 'docker'." >&2
|
|
|
+ echo "Please install using the official documentation." >&2
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
@@ -37,7 +30,6 @@ if [ ! -f "$FCM_ACCOUNT_JSON" ]; then
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
-
|
|
|
# exit on error exit codes
|
|
|
set -e
|
|
|
|
|
|
@@ -53,67 +45,35 @@ echo "[INSTALL] Cloning submodules ..."
|
|
|
git submodule init
|
|
|
git submodule update
|
|
|
|
|
|
-cd "$TMPFOLDER/server"
|
|
|
-echo "[INSTALL] Installing npm build dependencies for server project"
|
|
|
-$EXC_NPM install
|
|
|
+if [[ -f "$INSTALL_DIR/.env" ]]; then
|
|
|
+ export $(cat "$INSTALL_DIR/.env" | xargs)
|
|
|
+fi
|
|
|
|
|
|
-cd "$TMPFOLDER/ng"
|
|
|
-echo "[INSTALL] Installing npm build dependencies for Angular project"
|
|
|
-$EXC_NPM install
|
|
|
+if [[ ! -d "$PWD/$DATA_DIR" ]]; then
|
|
|
+ mkdir "$PWD/$DATA_DIR"
|
|
|
+fi
|
|
|
|
|
|
-echo "[INSTALL] Building Angular project"
|
|
|
-$EXC_NPM run build
|
|
|
+if [[ ! -d "$PWD/$DB_DIR" ]]; then
|
|
|
+ mkdir "$PWD/$DB_DIR"
|
|
|
+fi
|
|
|
|
|
|
-cd "$TMPFOLDER/server"
|
|
|
-echo "[INSTALL] Transpiling typescript sources of server project"
|
|
|
-$EXC_NPM run build
|
|
|
+docker compose -f server.docker-compose.yml build
|
|
|
|
|
|
echo "[INSTALL] Installing server application"
|
|
|
if [ -d "$INSTALL_DIR/dist" ]; then
|
|
|
rm -rf "$INSTALL_DIR/dist"
|
|
|
fi
|
|
|
-cp -rv "dist" "$INSTALL_DIR/"
|
|
|
-cp -rv "public" "$INSTALL_DIR/"
|
|
|
if [ ! -f "$INSTALL_DIR/.env" ]; then
|
|
|
cp -v ".env.default" "$INSTALL_DIR/.env"
|
|
|
fi
|
|
|
-cp -v "package.json" "$INSTALL_DIR/"
|
|
|
+cp -v "server.docker-compose.yml" "$INSTALL_DIR/docker-compose.yml"
|
|
|
|
|
|
cd "$INSTALL_DIR"
|
|
|
|
|
|
-echo "[INSTALL] Installing npm runtime dependencies"
|
|
|
-$EXC_NPM install --omit=dev
|
|
|
-
|
|
|
-echo "[INSTALL] Creating and enabling systemd unit \"monitoring@server.service\""
|
|
|
-SVC_FILE="/lib/systemd/system/monitoring@server.service"
|
|
|
-
|
|
|
-ACTION="update"
|
|
|
-if [ ! -f "$SVC_FILE" ]; then
|
|
|
- ACTION="install"
|
|
|
-fi
|
|
|
-
|
|
|
-cat > $SVC_FILE << EOF
|
|
|
-[Unit]
|
|
|
-Description=HostBBQ Monitoring Server Service
|
|
|
-After=network.target
|
|
|
-
|
|
|
-[Service]
|
|
|
-Type=simple
|
|
|
-WorkingDirectory=$INSTALL_DIR
|
|
|
-ExecStart=node .
|
|
|
-
|
|
|
-[Install]
|
|
|
-WantedBy=multi-user.target
|
|
|
-Alias=monitoring@server.service
|
|
|
-EOF
|
|
|
-
|
|
|
-if [[ "$ACTION" = "install" ]]; then
|
|
|
- systemctl enable monitoring@server.service
|
|
|
- systemctl start monitoring@server.service
|
|
|
-else
|
|
|
- systemctl daemon-reload
|
|
|
- systemctl restart monitoring@server.service
|
|
|
-fi
|
|
|
+DATA_VOLUME_DIR="$PWD/$DATA_DIR" \
|
|
|
+DB_VOLUME_DIR="$PWD/$DB_DIR" \
|
|
|
+COMPOSE_PROJECT_NAME="monitoring-server" \
|
|
|
+docker compose up -d
|
|
|
|
|
|
echo "[CLEANUP] Removing temp folder $TMPFOLDER"
|
|
|
rm -rf "$TMPFOLDER"
|