68 lines
2.3 KiB
Bash
Executable File
68 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
PROJECT_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
|
|
DEFAULT_ENV_FILE="$PROJECT_ROOT/secrets/deploy.secrets.env"
|
|
|
|
if [ "$#" -gt 1 ]; then
|
|
echo "usage: $0 [ /path/to/deploy.secrets.env ]" >&2
|
|
exit 1
|
|
fi
|
|
|
|
ENV_FILE="${1:-$DEFAULT_ENV_FILE}"
|
|
|
|
# shellcheck disable=SC1090
|
|
. "$ENV_FILE"
|
|
|
|
: "${CT_ID:?missing CT_ID}"
|
|
|
|
pct exec "$CT_ID" -- mkdir -p /opt/detmir/bootstrap
|
|
|
|
for file_name in \
|
|
install_aw_server.sh \
|
|
apply_webui_ru_patch.sh \
|
|
activitywatch-server.service \
|
|
aw-server.env.example \
|
|
aw-ru-patch.js \
|
|
aw-sw-cleanup.js \
|
|
aw-host-groups.json
|
|
do
|
|
pct push "$CT_ID" "$PROJECT_ROOT/aw-server/$file_name" "/opt/detmir/bootstrap/$file_name"
|
|
done
|
|
|
|
pct exec "$CT_ID" -- mkdir -p /opt/detmir/bootstrap/settings
|
|
pct push "$CT_ID" "$PROJECT_ROOT/aw-server/settings/classes-worktime.json" "/opt/detmir/bootstrap/settings/classes-worktime.json"
|
|
pct push "$CT_ID" "$PROJECT_ROOT/aw-server/settings/views-default.json" "/opt/detmir/bootstrap/settings/views-default.json"
|
|
|
|
if [ -n "${AW_SERVER_VERSION:-}" ] &&
|
|
[ -n "${AW_SERVER_DOWNLOAD_URL:-}" ] &&
|
|
[ -n "${AW_SERVER_BIND_HOST:-}" ] &&
|
|
[ -n "${AW_SERVER_PORT:-}" ] &&
|
|
[ -n "${AW_SERVER_WEBUI_DIR:-}" ] &&
|
|
[ -n "${AW_SERVER_DATA_DIR:-}" ] &&
|
|
[ -n "${AW_SERVER_LOG_DIR:-}" ] &&
|
|
[ -n "${AW_SERVER_USER:-}" ] &&
|
|
[ -n "${AW_SERVER_GROUP:-}" ]; then
|
|
tmp_env=$(mktemp)
|
|
trap 'rm -f "$tmp_env"' EXIT
|
|
{
|
|
echo "AW_SERVER_VERSION=$AW_SERVER_VERSION"
|
|
echo "AW_SERVER_DOWNLOAD_URL=$AW_SERVER_DOWNLOAD_URL"
|
|
echo "AW_SERVER_BIND_HOST=$AW_SERVER_BIND_HOST"
|
|
echo "AW_SERVER_PORT=$AW_SERVER_PORT"
|
|
echo "AW_SERVER_WEBUI_DIR=$AW_SERVER_WEBUI_DIR"
|
|
echo "AW_SERVER_DATA_DIR=$AW_SERVER_DATA_DIR"
|
|
echo "AW_SERVER_LOG_DIR=$AW_SERVER_LOG_DIR"
|
|
echo "AW_SERVER_USER=$AW_SERVER_USER"
|
|
echo "AW_SERVER_GROUP=$AW_SERVER_GROUP"
|
|
} > "$tmp_env"
|
|
pct push "$CT_ID" "$tmp_env" "/etc/activitywatch/aw-server.env"
|
|
pct exec "$CT_ID" -- chmod 0600 /etc/activitywatch/aw-server.env
|
|
echo "Server env pushed to CT $CT_ID:/etc/activitywatch/aw-server.env"
|
|
else
|
|
echo "WARN: AW_SERVER_* variables are incomplete in $ENV_FILE; /etc/activitywatch/aw-server.env was not updated" >&2
|
|
fi
|
|
|
|
echo "Bootstrap artifacts pushed to CT $CT_ID:/opt/detmir/bootstrap"
|