This commit is contained in:
seb
2026-10-30 12:00:06 +00:00
parent bc1340419c
commit ab6fcc107f
4 changed files with 91 additions and 11 deletions

View File

@@ -1,7 +1,4 @@
#!/bin/bash #!/bin/bash
DASH_DIR="/home/ubuntu/src/dash"
REPO_DIR="${DASH_DIR}/dashback"
# Ensure private Docker network exists and sql_server is connected # Ensure private Docker network exists and sql_server is connected
docker network create dash_net 2>/dev/null || true docker network create dash_net 2>/dev/null || true
docker network connect dash_net sql_server 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 \ docker run -d \
--name dashback \ --name dashback \
--restart unless-stopped \ --log-opt max-size=10m \
--log-opt max-file=3 \
--restart always \
--network dash_net \ --network dash_net \
--read-only \ --read-only \
--tmpfs /tmp:rw,exec,nosuid,size=512m \ --tmpfs /tmp:rw,noexec,nosuid,size=512m \
--tmpfs /run:rw,noexec,nosuid,size=16m \ --tmpfs /run:rw,noexec,nosuid,size=16m \
-u $(id -u):$(id -g) \ -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 HOST=0.0.0.0 \
-e PORT=4208 \ -e PORT=4211 \
-e HTTPS_PORT=0 \ -e HTTPS_PORT=0 \
-e MSSQL_SERVER=sql_server \ -e MSSQL_SERVER=sql_server \
-e HEALTH_MONITOR_ENABLED=false \ -e HEALTH_MONITOR_ENABLED=false \
@@ -35,5 +34,7 @@ docker run -d \
-e MSSQL_PORT=1433 \ -e MSSQL_PORT=1433 \
-e MSSQL_ENCRYPT=false \ -e MSSQL_ENCRYPT=false \
-e MSSQL_TRUST_SERVER_CERTIFICATE=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 dashback:latest

View File

@@ -3,9 +3,11 @@ docker rm -f dashdemo 2>/dev/null
docker run -d \ docker run -d \
--name dashdemo \ --name dashdemo \
--restart unless-stopped \ --log-opt max-size=10m \
--log-opt max-file=3 \
--restart always \
--read-only \ --read-only \
--tmpfs /tmp:rw,exec,nosuid,size=512m \ --tmpfs /tmp:rw,noexec,nosuid,size=512m \
--tmpfs /run:rw,noexec,nosuid,size=16m \ --tmpfs /run:rw,noexec,nosuid,size=16m \
-u $(id -u):$(id -g) \ -u $(id -u):$(id -g) \
-p 127.0.0.1:4209:4209 \ -p 127.0.0.1:4209:4209 \
@@ -20,4 +22,6 @@ docker run -d \
-e JWT_SECRET=dfhjkswezui32476sdjkhvbn347865 \ -e JWT_SECRET=dfhjkswezui32476sdjkhvbn347865 \
-e IMPLICIT_CREATE=true \ -e IMPLICIT_CREATE=true \
-v "/home/ubuntu/dashdemo:/app/data:rw" \ -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 dashback:latest

View File

@@ -1,11 +1,12 @@
docker run -d \ docker run -d \
--name sql_server \ --name sql_server \
--restart unless-stopped \ --restart always \
-e "ACCEPT_EULA=Y" \ -e "ACCEPT_EULA=Y" \
-e "MSSQL_PID=Standard" \ -e "MSSQL_PID=Standard" \
-e "MSSQL_SA_PASSWORD=420Green" \ -e "MSSQL_SA_PASSWORD=420Green" \
-e "MSSQL_COLLATION=Latin1_General_CI_AS" \ -e "MSSQL_COLLATION=Latin1_General_CI_AS" \
-p 127.0.0.1:1433:1433 \ -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/mssql_data:/var/opt/mssql \
-v /home/ubuntu/shared_backups:/shared \ -v /home/ubuntu/shared_backups:/shared \
mcr.microsoft.com/mssql/server:2025-latest mcr.microsoft.com/mssql/server:2025-latest

74
docs/update.sh Executable file
View 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! ==="