#!/usr/bin/with-contenv bash export DJANGO_SETTINGS_MODULE=config.settings.production # configure redis options if [[ -v "$REDIS_URL" ]]; then rm -rf /etc/services.d/redis printf '%s\n' '' 'CELERY_BROKER_URL = "redis://$REDIS_URL"' 'CELERY_BROKER_TRANSPORT_OPTIONS = {}' 'CELERY_RESULT_BACKEND = "redis://$REDIS_URL"' >> /defaults/settings.py else printf '%s\n' '' 'CELERY_BROKER_URL = "redis://localhost"' 'CELERY_BROKER_TRANSPORT_OPTIONS = {}' 'CELERY_RESULT_BACKEND = "redis://localhost"' >> /defaults/settings.py fi mkdir -p /data/{media,queue,static} if [ ! -f "/config/settings.py" ]; then cp /defaults/settings.py /config/settings.py fi if [ ! -f "/config/papermerge.conf.py" ]; then cp /defaults/papermerge.conf.py /config/papermerge.conf.py fi ln -sf /config/settings.py /app/papermerge/settings/production.py ln -sf /config/papermerge.conf.py /app/papermerge/papermerge.conf.py cd /app/papermerge python3 ./manage.py makemigrations python3 ./manage.py migrate python3 ./manage.py collectstatic --no-input python3 ./manage.py check mv /defaults/uwsgi.ini /app/papermerge > /dev/null mkdir -p /config || true # permissions chown -R abc:abc \ /app/papermerge \ /config/papermerge \ /data cat << EOF | s6-setuidgid abc python3 /app/papermerge/manage.py shell from django.contrib.auth import get_user_model # see ref. below UserModel = get_user_model() if not UserModel.objects.filter(username='admin').exists(): user = UserModel.objects.create_user('admin', password='admin') user.is_superuser = True user.is_staff = True user.save() EOF