44 lines
1.6 KiB
Bash
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
|