#!/bin/ash set -eu SEED_SENTINEL_PATH=/var/lib/pleroma/.e2e_seeded CONFIG_OVERRIDE_PATH=/var/lib/pleroma/config.exs echo '-- Waiting for database...' while ! pg_isready -U "${DB_USER:-pleroma}" -d "postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma}" -t 1; do sleep 1s done echo '-- Writing E2E config overrides...' cat > "$CONFIG_OVERRIDE_PATH" </dev/null; then kill -TERM "$PLEROMA_PID" wait "$PLEROMA_PID" || true fi } trap cleanup INT TERM echo '-- Waiting for API...' api_ok=false for _i in $(seq 1 120); do if wget -qO- http://127.0.0.1:4000/api/v1/instance >/dev/null 2>&1; then api_ok=true break fi sleep 1s done if [ "$api_ok" != true ]; then echo 'Timed out waiting for Pleroma API to become available' exit 1 fi if [ ! -f "$SEED_SENTINEL_PATH" ]; then if [ -n "${E2E_ADMIN_USERNAME:-}" ] && [ -n "${E2E_ADMIN_PASSWORD:-}" ] && [ -n "${E2E_ADMIN_EMAIL:-}" ]; then echo '-- Seeding admin user' "$E2E_ADMIN_USERNAME" '...' if ! /opt/pleroma/bin/pleroma_ctl user new "$E2E_ADMIN_USERNAME" "$E2E_ADMIN_EMAIL" --admin --password "$E2E_ADMIN_PASSWORD" -y; then echo '-- User already exists or creation failed, ensuring admin + confirmed...' /opt/pleroma/bin/pleroma_ctl user set "$E2E_ADMIN_USERNAME" --admin --confirmed fi else echo '-- Skipping admin seeding (missing E2E_ADMIN_* env)' fi touch "$SEED_SENTINEL_PATH" fi wait "$PLEROMA_PID"