u
This commit is contained in:
17
docs/dash.sh
17
docs/dash.sh
@@ -1,7 +1,4 @@
|
||||
#!/bin/bash
|
||||
DASH_DIR="/home/ubuntu/src/dash"
|
||||
REPO_DIR="${DASH_DIR}/dashback"
|
||||
|
||||
# Ensure private Docker network exists and sql_server is connected
|
||||
docker network create dash_net 2>/dev/null || true
|
||||
docker network connect dash_net sql_server 2>/dev/null || true
|
||||
@@ -10,15 +7,17 @@ docker rm -f dashback 2>/dev/null
|
||||
|
||||
docker run -d \
|
||||
--name dashback \
|
||||
--restart unless-stopped \
|
||||
--log-opt max-size=10m \
|
||||
--log-opt max-file=3 \
|
||||
--restart always \
|
||||
--network dash_net \
|
||||
--read-only \
|
||||
--tmpfs /tmp:rw,exec,nosuid,size=512m \
|
||||
--tmpfs /tmp:rw,noexec,nosuid,size=512m \
|
||||
--tmpfs /run:rw,noexec,nosuid,size=16m \
|
||||
-u $(id -u):$(id -g) \
|
||||
-p 127.0.0.1:4208:4208 \
|
||||
-p 127.0.0.1:4211:4211 \
|
||||
-e HOST=0.0.0.0 \
|
||||
-e PORT=4208 \
|
||||
-e PORT=4211 \
|
||||
-e HTTPS_PORT=0 \
|
||||
-e MSSQL_SERVER=sql_server \
|
||||
-e HEALTH_MONITOR_ENABLED=false \
|
||||
@@ -35,5 +34,7 @@ docker run -d \
|
||||
-e MSSQL_PORT=1433 \
|
||||
-e MSSQL_ENCRYPT=false \
|
||||
-e MSSQL_TRUST_SERVER_CERTIFICATE=false \
|
||||
-v "${REPO_DIR}/data:/app/data:rw" \
|
||||
-v "/home/ubuntu/src/docker/dashback_data:/app/data:rw" \
|
||||
-v "/home/ubuntu/src/docker/dashback/dist:/app/dist:ro" \
|
||||
-v "/home/ubuntu/src/docker/dashback/dist/dashback_current:/app/dist/dashback:ro" \
|
||||
dashback:latest
|
||||
|
||||
@@ -3,9 +3,11 @@ docker rm -f dashdemo 2>/dev/null
|
||||
|
||||
docker run -d \
|
||||
--name dashdemo \
|
||||
--restart unless-stopped \
|
||||
--log-opt max-size=10m \
|
||||
--log-opt max-file=3 \
|
||||
--restart always \
|
||||
--read-only \
|
||||
--tmpfs /tmp:rw,exec,nosuid,size=512m \
|
||||
--tmpfs /tmp:rw,noexec,nosuid,size=512m \
|
||||
--tmpfs /run:rw,noexec,nosuid,size=16m \
|
||||
-u $(id -u):$(id -g) \
|
||||
-p 127.0.0.1:4209:4209 \
|
||||
@@ -20,4 +22,6 @@ docker run -d \
|
||||
-e JWT_SECRET=dfhjkswezui32476sdjkhvbn347865 \
|
||||
-e IMPLICIT_CREATE=true \
|
||||
-v "/home/ubuntu/dashdemo:/app/data:rw" \
|
||||
-v "/home/ubuntu/src/docker/dashback/dist:/app/dist:ro" \
|
||||
-v "/home/ubuntu/src/docker/dashback/dist/dashback_current:/app/dist/dashback:ro" \
|
||||
dashback:latest
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
docker run -d \
|
||||
--name sql_server \
|
||||
--restart unless-stopped \
|
||||
--restart always \
|
||||
-e "ACCEPT_EULA=Y" \
|
||||
-e "MSSQL_PID=Standard" \
|
||||
-e "MSSQL_SA_PASSWORD=420Green" \
|
||||
-e "MSSQL_COLLATION=Latin1_General_CI_AS" \
|
||||
-p 127.0.0.1:1433:1433 \
|
||||
-p 192.168.122.1:1433:1433 \
|
||||
-v /home/ubuntu/mssql_data:/var/opt/mssql \
|
||||
-v /home/ubuntu/shared_backups:/shared \
|
||||
mcr.microsoft.com/mssql/server:2025-latest
|
||||
|
||||
74
docs/update.sh
Executable file
74
docs/update.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
echo "=== 1. Pulling latest changes in all repositories ==="
|
||||
for dir in "$ROOT_DIR"/*/; do
|
||||
if [ -d "${dir}.git" ]; then
|
||||
repo_name="$(basename "$dir")"
|
||||
echo "-> git pull in ${repo_name}"
|
||||
git -C "$dir" pull
|
||||
fi
|
||||
done
|
||||
|
||||
echo "=== 2. Running npm ci in dashfront, dashdbschema, and dashback ==="
|
||||
for pkg in dashfront dashdbschema dashback; do
|
||||
echo "-> npm ci in ${pkg}"
|
||||
npm --prefix "${ROOT_DIR}/${pkg}" ci
|
||||
done
|
||||
|
||||
echo "=== 3. Building dashfront ==="
|
||||
npm --prefix "${ROOT_DIR}/dashfront" run build
|
||||
|
||||
echo "=== 4. Building SEA in dashback ==="
|
||||
npm --prefix "${ROOT_DIR}/dashback" run sea
|
||||
|
||||
DOCKER_DIST_DIR="/home/ubuntu/src/docker/dashback/dist"
|
||||
mkdir -p "$DOCKER_DIST_DIR"
|
||||
TIMESTAMP="$(date +%Y%m%d%H%M%S)"
|
||||
NEW_SEA="${DOCKER_DIST_DIR}/dashback_${TIMESTAMP}"
|
||||
CURRENT_SEA="${DOCKER_DIST_DIR}/dashback_current"
|
||||
PREV_SEA="$(readlink -f "$CURRENT_SEA" 2>/dev/null || true)"
|
||||
|
||||
echo "-> Copying SEA to ${NEW_SEA} and linking ${CURRENT_SEA}..."
|
||||
touch "${DOCKER_DIST_DIR}/dashback"
|
||||
cp "${ROOT_DIR}/dashback/dist/dashback" "$NEW_SEA"
|
||||
chmod +x "$NEW_SEA"
|
||||
ln -sfn "$NEW_SEA" "$CURRENT_SEA"
|
||||
|
||||
echo "=== 5. Running self-test on dashback_current in test container ==="
|
||||
exec 3>&1
|
||||
set +e
|
||||
SELFTEST_OUTPUT=$(docker run --rm \
|
||||
--read-only \
|
||||
--tmpfs /tmp:rw,noexec,nosuid,size=512m \
|
||||
--tmpfs /run:rw,noexec,nosuid,size=16m \
|
||||
--tmpfs /app/data:rw,noexec,nosuid,size=64m \
|
||||
-u "$(id -u):$(id -g)" \
|
||||
-v "${DOCKER_DIST_DIR}:/app/dist:ro" \
|
||||
-v "${CURRENT_SEA}:/app/dist/dashback:ro" \
|
||||
dashback:latest \
|
||||
./dist/dashback --selftest 2>&1 | tee /dev/fd/3; exit "${PIPESTATUS[0]}")
|
||||
SELFTEST_EXIT=$?
|
||||
set -e
|
||||
exec 3>&-
|
||||
|
||||
if [ "$SELFTEST_EXIT" -ne 0 ] || ! grep -q "Self-test PASSED" <<< "$SELFTEST_OUTPUT"; then
|
||||
echo "ERROR: Self-test did not confirm 'Self-test PASSED'. Aborting container restart." >&2
|
||||
if [ -n "$PREV_SEA" ] && [ -f "$PREV_SEA" ]; then
|
||||
echo "-> Restoring ${CURRENT_SEA} to ${PREV_SEA}..." >&2
|
||||
ln -sfn "$PREV_SEA" "$CURRENT_SEA"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== 6. Restarting dashback containers ==="
|
||||
CONTAINERS=$(docker ps -q --filter "ancestor=dashback:latest")
|
||||
if [ -n "$CONTAINERS" ]; then
|
||||
echo "-> Restarting dashback containers ($(docker ps --filter "ancestor=dashback:latest" --format '{{.Names}}' | paste -sd ', ' -))..."
|
||||
docker restart $CONTAINERS
|
||||
fi
|
||||
|
||||
echo "=== Update complete! ==="
|
||||
|
||||
Reference in New Issue
Block a user