mastodon-docker/rootfs/etc/service/startup/run

51 lines
1.2 KiB
Bash

#!/bin/bash
touch /state/.starting
echo "mastodon-startup starting up..."
if [[ ! -d /state/envdir ]]; then
mkdir -p /state/envdir
fi
if [[ ! -e /state/envdir/HOME ]]; then
echo "/mastodon" > /state/envdir/HOME
fi
if [[ ! -e /state/envdir/RAILS_ENV ]]; then
echo "production" > /state/envdir/RAILS_ENV
fi
chown mastodon:mastodon /state/envdir /state/envdir/*
cd /mastodon/app
if [[ ! -e /state/envdir/OTP_SECRET ]]; then
envdir /state/envdir \
chpst -u mastodon:mastodon \
bash -i -c "bundle exec rake secret > /state/envdir/OTP_SECRET"
fi
if [[ ! -e /state/envdir/SECRET_KEY_BASE ]]; then
envdir /state/envdir \
chpst -u mastodon:mastodon \
bash -i -c "bundle exec rake secret > /state/envdir/SECRET_KEY_BASE"
fi
echo "
create database mastodon_production;
create user mastodon createdb;
grant all privileges on database mastodon_production to mastodon;
" | chpst -u postgres:postgres psql
if [[ -n "$RUN_DB_MIGRATIONS" ]]; then
echo "Running database migrations..."
envdir /state/envdir \
chpst -u mastodon:mastodon \
bash -i -c "bundle exec rake db:migrate"
fi
rm /state/.starting
while true ; do
sleep 86400
done