#!/bin/bash set -e if [ -n "$IP" ]; then echo "Will check name resolution." resolv=$(curl "https://dns.google/resolve?name=$DOMAIN" | jq -c -r .Answer[0].data) while [ "$resolv" != "$IP" ]; do echo "Waiting for name to resolve properly (want $IP for $DOMAIN, got $resolv)..." sleep 60 resolv=$(curl "https://dns.google/resolve?name=$DOMAIN" | jq -c -r .Answer[0].data) done echo "$DOMAIN resolves to $resolv" fi export DATABASE_URL="postgres://pleroma:bleromer@localhost:5433/pleroma" echo "-- Setting up PostgreSQL..." chown -R postgres:postgres /var/lib/postgresql/14 chmod -R 750 /var/lib/postgresql/14 set +e pg_createcluster 14 pleroma cp /etc/postgresql/14/pleroma/*.conf /var/lib/postgresql/14/pleroma set -e pg_ctlcluster 14 pleroma start gosu postgres /run/postgres.sh echo "-- Starting Caddy..." chown -R caddy:caddy /caddy sed -i -e "s/{{domain}}/$DOMAIN/" /etc/Caddyfile gosu caddy caddy start --config /etc/Caddyfile echo "-- Running migrations..." gosu pleroma sh -c "/opt/pleroma/bin/pleroma_ctl migrate" if [ ! -f "/var/lib/pleroma/uploads/.migrated" ]; then echo "-- Transferring config to database" gosu pleroma sh -c "/opt/pleroma/bin/pleroma start" & sleep 10 gosu pleroma sh -c "/opt/pleroma/bin/pleroma_ctl config migrate_to_db" if [ -n "ADMIN" ]; then echo "-- Creating admin user" set +e gosu pleroma sh -c "/opt/pleroma/bin/pleroma_ctl user new $ADMIN admin@$DOMAIN --password \"$PASSWORD\" --admin -y" set -e fi gosu pleroma sh -c "/opt/pleroma/bin/pleroma stop" & echo "migrated" > /var/lib/pleroma/uploads/.migrated sleep 10 else echo "-- Already migrated config to DB. Skipping." fi echo "-- Starting!" gosu pleroma sh -c "/opt/pleroma/bin/pleroma start"