2026-05-05 21:04:13 +02:00
|
|
|
#!/bin/ash
|
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
|
|
SEED_SENTINEL_PATH=/var/lib/pleroma/.e2e_seeded
|
|
|
|
|
CONFIG_OVERRIDE_PATH=/var/lib/pleroma/config.exs
|
|
|
|
|
|
|
|
|
|
echo '-- Waiting for database...'
|
2026-05-25 16:04:53 +04:00
|
|
|
while ! pg_isready -U "${DB_USER:-pleroma}" -d "postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma}" -t 1; do
|
2026-05-05 21:04:13 +02:00
|
|
|
sleep 1s
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
echo '-- Writing E2E config overrides...'
|
2026-05-25 16:04:53 +04:00
|
|
|
cat > "$CONFIG_OVERRIDE_PATH" <<EOF
|
2026-05-05 21:04:13 +02:00
|
|
|
import Config
|
|
|
|
|
|
|
|
|
|
config :pleroma, Pleroma.Captcha,
|
|
|
|
|
enabled: false
|
|
|
|
|
|
|
|
|
|
config :pleroma, :instance,
|
|
|
|
|
registrations_open: true,
|
|
|
|
|
account_activation_required: false,
|
|
|
|
|
approval_required: false
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
echo '-- Running migrations...'
|
|
|
|
|
/opt/pleroma/bin/pleroma_ctl migrate
|
|
|
|
|
|
|
|
|
|
echo '-- Starting!'
|
|
|
|
|
/opt/pleroma/bin/pleroma start &
|
|
|
|
|
PLEROMA_PID=$!
|
|
|
|
|
|
|
|
|
|
cleanup() {
|
2026-05-25 16:04:53 +04:00
|
|
|
if kill -0 "$PLEROMA_PID" 2>/dev/null; then
|
|
|
|
|
kill -TERM "$PLEROMA_PID"
|
|
|
|
|
wait "$PLEROMA_PID" || true
|
2026-05-05 21:04:13 +02:00
|
|
|
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
|
|
|
|
|
|
2026-05-25 16:04:53 +04:00
|
|
|
if [ "$api_ok" != true ]; then
|
2026-05-05 21:04:13 +02:00
|
|
|
echo 'Timed out waiting for Pleroma API to become available'
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2026-05-25 16:04:53 +04:00
|
|
|
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
|
2026-05-05 21:04:13 +02:00
|
|
|
echo '-- User already exists or creation failed, ensuring admin + confirmed...'
|
2026-05-25 16:04:53 +04:00
|
|
|
/opt/pleroma/bin/pleroma_ctl user set "$E2E_ADMIN_USERNAME" --admin --confirmed
|
2026-05-05 21:04:13 +02:00
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo '-- Skipping admin seeding (missing E2E_ADMIN_* env)'
|
|
|
|
|
fi
|
|
|
|
|
|
2026-05-25 16:04:53 +04:00
|
|
|
touch "$SEED_SENTINEL_PATH"
|
2026-05-05 21:04:13 +02:00
|
|
|
fi
|
|
|
|
|
|
2026-05-25 16:04:53 +04:00
|
|
|
wait "$PLEROMA_PID"
|