|
|
- #!/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"
|