libretime/scripts/generate-config.sh

45 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env sh
# Genera config.local.yml para LibreTime desde variables de entorno.
# No guarda secretos en el repositorio.
CFG_PATH=${1:-./config.local.yml}
# Generar claves si no están provistas
API_KEY=${LIBRETIME_API_KEY:-}
SECRET_KEY=${LIBRETIME_SECRET_KEY:-}
if [ -z "$API_KEY" ]; then
API_KEY=$(head -c 48 /dev/urandom | base64 | tr -d '/+=' | cut -c1-40)
fi
if [ -z "$SECRET_KEY" ]; then
SECRET_KEY=$(head -c 48 /dev/urandom | base64 | tr -d '/+=' | cut -c1-40)
fi
cat > "$CFG_PATH" <<EOF
general:
public_url: "${LIBRETIME_GENERAL_PUBLIC_URL:-http://localhost:8080}"
api_key: "${API_KEY}"
secret_key: "${SECRET_KEY}"
database:
name: "${POSTGRES_DB:-libretime}"
user: "${POSTGRES_USER:-libretime}"
password: "${POSTGRES_PASSWORD:-libretime}"
host: "${POSTGRES_HOST:-postgres}"
port: ${POSTGRES_PORT:-5432}
rabbitmq:
host: "${RABBITMQ_HOST:-rabbitmq}"
username: "${RABBITMQ_DEFAULT_USER:-libretime}"
password: "${RABBITMQ_DEFAULT_PASS:-libretime}"
vhost: "${RABBITMQ_DEFAULT_VHOST:-/libretime}"
icecast:
source_password: "${ICECAST_SOURCE_PASSWORD:-changeme}"
admin_password: "${ICECAST_ADMIN_PASSWORD:-changeme}"
relay_password: "${ICECAST_RELAY_PASSWORD:-changeme}"
admin_user: "${ICECAST_ADMIN_USER:-admin}"
hostname: "${ICECAST_HOSTNAME:-localhost}"
EOF
echo "Wrote $CFG_PATH"