Add dynamic AI Workspace run profiles

This commit is contained in:
Codex
2026-06-13 17:30:48 +03:00
parent 385e2732e8
commit 6244b44c6e
21 changed files with 2179 additions and 52 deletions
+18 -13
View File
@@ -11,6 +11,11 @@ TASKER_CHANGED_BASE="${TASKER_CHANGED_BASE:-}"
GATEWAY_REPO="${GATEWAY_REPO:-}"
SYNC_AUTHENTIK_TEMPLATES="${SYNC_AUTHENTIK_TEMPLATES:-0}"
RSYNC_METADATA_ARGS=()
if [[ "${RSYNC_PRESERVE_METADATA:-0}" != "1" ]]; then
RSYNC_METADATA_ARGS=(--no-times --no-perms --no-owner --no-group)
fi
if [[ ! -d "${NAS_ROOT}" ]]; then
echo "NAS_ROOT not found: ${NAS_ROOT}" >&2
echo "Set NAS_ROOT=/path/to/nodedc-platform when the Synology share is mounted elsewhere." >&2
@@ -19,15 +24,15 @@ fi
mkdir -p "${NAS_ROOT}/platform"
rsync -av \
rsync -av "${RSYNC_METADATA_ARGS[@]}" \
"${PLATFORM_REPO}/infra/synology/docker-compose.platform-http.yml" \
"${NAS_ROOT}/platform/docker-compose.platform-http.yml"
rsync -av \
rsync -av "${RSYNC_METADATA_ARGS[@]}" \
"${PLATFORM_REPO}/infra/synology/Caddyfile.http" \
"${NAS_ROOT}/platform/Caddyfile.http"
rsync -av \
rsync -av "${RSYNC_METADATA_ARGS[@]}" \
"${PLATFORM_REPO}/infra/synology/deploy-current.sh" \
"${PLATFORM_REPO}/infra/synology/backup-current.sh" \
"${PLATFORM_REPO}/infra/synology/apply-current-runtime.sh" \
@@ -36,7 +41,7 @@ rsync -av \
"${NAS_ROOT}/platform/"
mkdir -p "${NAS_ROOT}/platform/notification-core"
rsync -av --delete \
rsync -av "${RSYNC_METADATA_ARGS[@]}" --delete \
--exclude='node_modules/' \
--exclude='.env' \
--exclude='.env.*' \
@@ -44,7 +49,7 @@ rsync -av --delete \
"${NAS_ROOT}/platform/notification-core/"
mkdir -p "${NAS_ROOT}/platform/ai-workspace-hub"
rsync -av --delete \
rsync -av "${RSYNC_METADATA_ARGS[@]}" --delete \
--exclude='node_modules/' \
--exclude='.env' \
--exclude='.env.*' \
@@ -52,7 +57,7 @@ rsync -av --delete \
"${NAS_ROOT}/platform/ai-workspace-hub/"
mkdir -p "${NAS_ROOT}/platform/ai-workspace-assistant"
rsync -av --delete \
rsync -av "${RSYNC_METADATA_ARGS[@]}" --delete \
--exclude='node_modules/' \
--exclude='.env' \
--exclude='.env.*' \
@@ -61,7 +66,7 @@ rsync -av --delete \
if [[ "${SYNC_AUTHENTIK_TEMPLATES}" == "1" ]]; then
mkdir -p "${NAS_ROOT}/authentik/custom-templates"
rsync -av --delete \
rsync -av "${RSYNC_METADATA_ARGS[@]}" --delete \
"${PLATFORM_REPO}/infra/authentik/custom-templates/" \
"${NAS_ROOT}/authentik/custom-templates/"
else
@@ -75,7 +80,7 @@ if [[ -n "${LAUNCHER_REPO}" ]]; then
fi
mkdir -p "${NAS_ROOT}/launcher/source"
rsync -av --delete \
rsync -av "${RSYNC_METADATA_ARGS[@]}" --delete \
--exclude='.git/' \
--exclude='node_modules/' \
--exclude='dist/' \
@@ -95,7 +100,7 @@ if [[ -n "${TASKER_REPO}" ]]; then
mkdir -p "${NAS_ROOT}/tasker/plane-src" "${NAS_ROOT}/tasker/plane-app"
rsync -av \
rsync -av "${RSYNC_METADATA_ARGS[@]}" \
"${TASKER_REPO}/plane-app/docker-compose.yaml" \
"${NAS_ROOT}/tasker/plane-app/docker-compose.yaml"
@@ -121,14 +126,14 @@ if [[ -n "${TASKER_REPO}" ]]; then
if [[ -f "${source_path}" ]]; then
mkdir -p "$(dirname -- "${target_path}")"
rsync -av "${source_path}" "${target_path}"
rsync -av "${RSYNC_METADATA_ARGS[@]}" "${source_path}" "${target_path}"
else
echo "skip deleted Tasker file in changed sync: ${changed_file}"
fi
done
elif [[ "${TASKER_SYNC_SOURCE}" == "1" ]]; then
echo "TASKER_SYNC_SOURCE=1: syncing full Tasker source without delete"
rsync -av \
rsync -av "${RSYNC_METADATA_ARGS[@]}" \
--exclude='.git/' \
--exclude='node_modules/' \
--exclude='.pnpm-store/' \
@@ -153,7 +158,7 @@ if [[ -n "${TASKER_REPO}" ]]; then
fi
if [[ -f "${TASKER_REPO}/plane-app/docker-compose.synology.override.yml" ]]; then
rsync -av \
rsync -av "${RSYNC_METADATA_ARGS[@]}" \
"${TASKER_REPO}/plane-app/docker-compose.synology.override.yml" \
"${NAS_ROOT}/tasker/plane-app/docker-compose.synology.override.yml"
else
@@ -170,7 +175,7 @@ if [[ -n "${GATEWAY_REPO}" ]]; then
fi
mkdir -p "${NAS_ROOT}/ops-agents"
rsync -av --delete \
rsync -av "${RSYNC_METADATA_ARGS[@]}" --delete \
--exclude='.git/' \
--exclude='node_modules/' \
--exclude='dist/' \