2025-05-14 15:57:34 +00:00
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
2025-05-14 16:11:40 +00:00
|
|
|
|
REPO_DIR="."
|
2025-05-14 15:57:34 +00:00
|
|
|
|
SECRETS_DIR="$REPO_DIR/data/secrets"
|
|
|
|
|
RUNTIME_ENV="$SECRETS_DIR/runtime.env"
|
|
|
|
|
|
2025-05-14 16:11:40 +00:00
|
|
|
|
# 1️⃣ Create secrets folder
|
2025-05-14 15:57:34 +00:00
|
|
|
|
mkdir -p "$SECRETS_DIR"
|
|
|
|
|
|
2025-05-14 16:11:40 +00:00
|
|
|
|
# 2️⃣ Generate per‐install secrets
|
2025-05-14 15:57:34 +00:00
|
|
|
|
DB_USER="postgres"
|
|
|
|
|
DB_PASS="$(openssl rand -hex 16)"
|
|
|
|
|
DB_NAME="lnbitsdb"
|
|
|
|
|
FLASK_SECRET="$(openssl rand -hex 32)"
|
|
|
|
|
DATABASE_URL="postgresql://${DB_USER}:${DB_PASS}@db:5432/${DB_NAME}"
|
|
|
|
|
|
2025-05-14 16:11:40 +00:00
|
|
|
|
# 3️⃣ Write runtime.env
|
|
|
|
|
cat > "$RUNTIME_ENV" <<EOF
|
2025-05-14 15:57:34 +00:00
|
|
|
|
DB_USER=${DB_USER}
|
|
|
|
|
DB_PASS=${DB_PASS}
|
|
|
|
|
DB_NAME=${DB_NAME}
|
|
|
|
|
DATABASE_URL=${DATABASE_URL}
|
|
|
|
|
FLASK_SECRET=${FLASK_SECRET}
|
|
|
|
|
EOF
|
|
|
|
|
|
2025-05-14 16:11:40 +00:00
|
|
|
|
echo "✅ Generated secrets in $RUNTIME_ENV"
|
2025-05-14 15:57:34 +00:00
|
|
|
|
|
2025-05-14 16:11:40 +00:00
|
|
|
|
# 4️⃣ Build & run containers
|
2025-05-14 15:57:34 +00:00
|
|
|
|
docker-compose up -d --build
|
|
|
|
|
|
2025-05-14 16:11:40 +00:00
|
|
|
|
# 5️⃣ Display credentials once
|
2025-05-14 15:57:34 +00:00
|
|
|
|
echo
|
2025-05-14 16:11:40 +00:00
|
|
|
|
echo "🔐 Database credentials"
|
|
|
|
|
echo " DB_USER: $DB_USER"
|
|
|
|
|
echo " DB_PASS: $DB_PASS"
|
|
|
|
|
echo " DB_NAME: $DB_NAME"
|
2025-05-14 15:57:34 +00:00
|
|
|
|
echo
|
2025-05-14 16:11:40 +00:00
|
|
|
|
echo "🔑 Flask secret: $FLASK_SECRET"
|
2025-05-14 15:57:34 +00:00
|
|
|
|
echo
|
2025-05-14 16:11:40 +00:00
|
|
|
|
echo "▶️ Access the web UI at: http://localhost:3000"
|