krona-staff/deploy/pilot/setup.sh
Ochenstarik 3e2054480c
Some checks are pending
ci / verify (push) Waiting to run
fix(push): isolate employee data and preserve platform outbox
2026-09-26 12:31:10 +07:00

52 lines
1.9 KiB
Bash

#!/usr/bin/env sh
set -eu
cd "$(dirname "$0")"
umask 077
mkdir -p secrets
if [ ! -f .env ]; then
migration_password="$(openssl rand -hex 32)"
app_password="$(openssl rand -hex 32)"
manager_token="$(openssl rand -hex 32)"
terminal_token="$(openssl rand -hex 32)"
pfx_passphrase="$(openssl rand -hex 32)"
{
printf 'POSTGRES_MIGRATION_PASSWORD=%s\n' "$migration_password"
printf 'POSTGRES_APP_PASSWORD=%s\n' "$app_password"
printf 'STANDALONE_MANAGER_TOKEN=%s\n' "$manager_token"
printf 'STANDALONE_TERMINAL_TOKEN=%s\n' "$terminal_token"
printf 'HTTPS_PFX_PASSPHRASE=%s\n' "$pfx_passphrase"
printf 'STANDALONE_TENANT_ID=01J00000000000000000000000\n'
printf 'STANDALONE_ACTOR_ID=01J00000000000000000000001\n'
printf 'STANDALONE_TERMINAL_ACTOR_ID=01J00000000000000000000002\n'
} > .env
printf '%s\n' "$manager_token" > secrets/manager.token
printf '%s\n' "$terminal_token" > secrets/terminal.token
fi
if ! grep -q '^VAPID_PUBLIC_KEY=' .env; then
docker run --rm \
-v "$(cd ../.. && pwd):/app:ro" \
-w /app \
node:22-alpine@sha256:c610fcdfb1d5b4740dd70c284ed3cb16bb857e0f7166196e36a5501df7a3aa32 \
node scripts/generate-vapid-keys.mjs >> .env
fi
. ./.env
if [ ! -f secrets/staff.pfx ]; then
openssl req -x509 -newkey rsa:3072 -sha256 -days 365 -nodes \
-keyout secrets/staff.key -out secrets/staff.crt \
-subj '/CN=192.168.1.81' \
-addext 'subjectAltName=IP:192.168.1.81' \
-addext 'keyUsage=digitalSignature,keyEncipherment' \
-addext 'extendedKeyUsage=serverAuth'
openssl pkcs12 -export -out secrets/staff.pfx \
-inkey secrets/staff.key -in secrets/staff.crt \
-passout "pass:${HTTPS_PFX_PASSPHRASE}"
fi
openssl x509 -in secrets/staff.crt -outform DER | sha256sum | cut -d ' ' -f 1 > secrets/certificate.sha256
chmod 600 .env secrets/*
docker compose --env-file .env config >/dev/null
docker compose --env-file .env up -d --build