pre_install() { # create the papermerge user and folders early so we can chown the migrations folder and run migrations after installation echo 'u papermerge - "open source document management system" -' | systemd-sysusers --replace=/usr/lib/sysusers.d/papermerge.conf - { echo 'd /var/lib/papermerge/media - papermerge papermerge -' echo 'd /var/lib/papermerge/media - papermerge papermerge -' echo 'd /var/lib/papermerge/static - papermerge papermerge -' echo 'd /var/lib/papermerge/database - papermerge papermerge -' echo 'd /var/lib/papermerge/import 777 papermerge papermerge -' echo 'd /run/papermerge - papermerge papermerge -' echo 'd /var/log/papermerge - papermerge papermerge -' } | systemd-tmpfiles --create --replace=/usr/lib/tmpfiles.d/papermerge.conf - } post_install() { systemctl daemon-reload # Get the path to site-packages with the current python version site_packages=$(python -c "import site; print(site.getsitepackages()[0])") # Make sure the papermerge user owns the migrations directory (write access needed) if id papermerge &>/dev/null; then chown -R papermerge:papermerge "$site_packages/papermerge/core/migrations" fi # run the migrations runuser -u papermerge -- /usr/bin/papermerge-manage makemigrations --merge --noinput runuser -u papermerge -- /usr/bin/papermerge-manage migrate --noinput runuser -u papermerge -- /usr/bin/papermerge-manage collectstatic --noinput printf '\n --> Run papermerge with "sudo systemctl start papermerge-gunicorn papermerge-worker". Point your reverse proxy (e.g. nginx) to 127.0.0.1:9001.\n' printf '\n --> If this is a new Papermerge installation, please run "sudo -u papermerge papermerge-manage createsuperuser" to create the admin user.\n\n' } # Run migrations and restart the systemd service post_upgrade() { # Get the path to site-packages with the current python version site_packages=$(python -c "import site; print(site.getsitepackages()[0])") # Make sure the papermerge user owns the migrations directory (write access needed) chown -R papermerge:papermerge "$site_packages/papermerge/core/migrations" # run the migrations runuser -u papermerge -- /usr/bin/papermerge-manage makemigrations --merge --noinput runuser -u papermerge -- /usr/bin/papermerge-manage migrate --noinput runuser -u papermerge -- /usr/bin/papermerge-manage collectstatic --noinput systemctl daemon-reload running="$(systemctl is-active papermerge-gunicorn)" if [ "$running" == "active" ]; then systemctl restart papermerge-gunicorn fi }