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,
2026-05-25 16:05:21 +04:00
account_approval_required: false
2026-05-05 21:04:13 +02:00
EOF
echo '-- Running migrations...'
/opt/pleroma/bin/pleroma_ctl migrate
2026-05-25 16:06:21 +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 ! PLEROMA_CTL_RPC_DISABLED = true /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...'
PLEROMA_CTL_RPC_DISABLED = true /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
2026-05-05 21:04:13 +02:00
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
wait " $PLEROMA_PID "