Files
egeya-docker/scripts/prepare.sh
T
2026-09-29 22:08:18 +07:00

38 lines
808 B
Bash

#!/bin/bash
set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ENV_FILE="${PROJECT_DIR}/.env"
ENV_EXAMPLE="${PROJECT_DIR}/.env.example"
SECRETS_DIR="${PROJECT_DIR}/secrets"
DATA_DIR="${PROJECT_DIR}/data"
create_secret() {
local path="$1"
if [ ! -s "$path" ]; then
umask 077
openssl rand -base64 48 | tr -d '\n' > "$path"
printf '\n' >> "$path"
fi
}
mkdir -p \
"$SECRETS_DIR" \
"$DATA_DIR/user" \
"$DATA_DIR/pictures" \
"$DATA_DIR/tmp"
if [ ! -f "$ENV_FILE" ]; then
cp "$ENV_EXAMPLE" "$ENV_FILE"
fi
create_secret "$SECRETS_DIR/db_password"
create_secret "$SECRETS_DIR/db_root_password"
chmod 0600 \
"$SECRETS_DIR/db_password" \
"$SECRETS_DIR/db_root_password"
printf 'Project prepared: %s\n' "$PROJECT_DIR"