40 lines
1.5 KiB
Bash
Executable File
40 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
ENV_FILE=${1:-/volume1/docker/nodedc-platform/platform/.env.synology}
|
|
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "ERROR: env file not found: $ENV_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if grep -q '^EXTERNAL_DATA_PLANE_PG_PASS=' "$ENV_FILE"; then
|
|
echo "External Data Plane database credential already exists; no change made."
|
|
exit 0
|
|
fi
|
|
|
|
if ! command -v openssl >/dev/null 2>&1; then
|
|
echo "ERROR: openssl is required to generate the database password." >&2
|
|
exit 1
|
|
fi
|
|
|
|
umask 077
|
|
TMP_FILE=$(mktemp "${ENV_FILE}.external-data-plane.XXXXXX")
|
|
trap 'rm -f "$TMP_FILE"' EXIT HUP INT TERM
|
|
PASSWORD=$(openssl rand -hex 32)
|
|
|
|
cp "$ENV_FILE" "$TMP_FILE"
|
|
printf '\n# External Data Plane — generated locally; do not reuse an internal API token.\n' >> "$TMP_FILE"
|
|
printf 'EXTERNAL_DATA_PLANE_TIMESCALE_IMAGE=timescale/timescaledb-ha:pg16.14-ts2.28.2-all\n' >> "$TMP_FILE"
|
|
printf 'EXTERNAL_DATA_PLANE_PG_DB=nodedc_data_plane\n' >> "$TMP_FILE"
|
|
printf 'EXTERNAL_DATA_PLANE_PG_USER=nodedc_data_plane\n' >> "$TMP_FILE"
|
|
printf 'EXTERNAL_DATA_PLANE_PG_PASS=%s\n' "$PASSWORD" >> "$TMP_FILE"
|
|
printf 'EXTERNAL_DATA_PLANE_HOST_BIND=127.0.0.1:18106\n' >> "$TMP_FILE"
|
|
printf 'EXTERNAL_DATA_PLANE_DATABASE_POOL_SIZE=10\n' >> "$TMP_FILE"
|
|
printf 'EXTERNAL_DATA_PLANE_RAW_RETENTION_DAYS=14\n' >> "$TMP_FILE"
|
|
printf 'EXTERNAL_DATA_PLANE_MAX_BATCH_BYTES=5242880\n' >> "$TMP_FILE"
|
|
|
|
mv "$TMP_FILE" "$ENV_FILE"
|
|
trap - EXIT HUP INT TERM
|
|
echo "External Data Plane database configuration was added. The generated password was not printed."
|