krona-staff/deploy/pilot/setup.sh
Ochenstarik 3464998168
Some checks are pending
ci / verify (push) Waiting to run
feat: add secure attendance portal and payroll foundation
2026-09-24 15:59:38 +07:00

44 lines
1.6 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
. ./.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