mirror of
https://github.com/sassanix/Warracker.git
synced 2026-01-01 03:00:43 -06:00
53 lines
1.5 KiB
Bash
53 lines
1.5 KiB
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
echo "=== Warracker Startup ==="
|
|
|
|
# Logging function
|
|
log() {
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
|
|
}
|
|
|
|
# Database connection check (with retry)
|
|
log "Waiting for database connection..."
|
|
for i in {1..30}; do
|
|
if pg_isready -h "${DB_HOST:-localhost}" -p "${DB_PORT:-5432}" -U "${DB_USER:-postgres}" > /dev/null 2>&1; then
|
|
log "Database is ready!"
|
|
break
|
|
fi
|
|
if [ $i -eq 30 ]; then
|
|
log "ERROR: Database not available after 30 attempts"
|
|
exit 1
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
# Migrations and permissions
|
|
log "Running database migrations..."
|
|
python /app/migrations/apply_migrations.py
|
|
|
|
log "Fixing permissions (database and upload folder)..."
|
|
python /app/fix_permissions.py
|
|
|
|
# Translation compilation
|
|
log "Compiling translations..."
|
|
cd /app
|
|
pybabel compile -d locales 2>/dev/null || log "Warning: Translation compilation failed"
|
|
|
|
# Nginx configuration (create temp file, root will move it)
|
|
log "Preparing nginx configuration..."
|
|
EFFECTIVE_SIZE="${NGINX_MAX_BODY_SIZE_VALUE:-32M}"
|
|
if ! echo "${EFFECTIVE_SIZE}" | grep -Eq "^[0-9]+[mMkKgG]?$"; then
|
|
log "Warning: Invalid NGINX_MAX_BODY_SIZE_VALUE. Using default 32M"
|
|
EFFECTIVE_SIZE="32M"
|
|
fi
|
|
sed "s|__NGINX_MAX_BODY_SIZE_CONFIG_VALUE__|${EFFECTIVE_SIZE}|g" \
|
|
/etc/nginx/conf.d/default.conf.template > /tmp/nginx-default.conf
|
|
|
|
log "Nginx config prepared (size: ${EFFECTIVE_SIZE})"
|
|
log "Setup completed successfully!"
|
|
|
|
# Execute the CMD (supervisor) by replacing this shell process
|
|
log "Starting supervisor..."
|
|
exec "$@"
|