summarylogtreecommitdiffstats
path: root/papermerge.install
diff options
context:
space:
mode:
Diffstat (limited to 'papermerge.install')
-rw-r--r--papermerge.install54
1 files changed, 54 insertions, 0 deletions
diff --git a/papermerge.install b/papermerge.install
new file mode 100644
index 000000000000..52bf2528a861
--- /dev/null
+++ b/papermerge.install
@@ -0,0 +1,54 @@
+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 -
+
+ # mkdir -p "/usr/lib/python3.8/site-packages/papermerge/core"
+ # ln -s /var/lib/papermerge/migrations "/usr/lib/python3.8/site-packages/papermerge/core/migrations"
+}
+
+post_install() {
+ systemctl daemon-reload
+
+ # Make sure the papermerge user owns the migrations directory (write access needed)
+ if id papermerge &>/dev/null; then
+ chown -R papermerge:papermerge "/usr/lib/python3.8/site-packages/papermerge/core/migrations"
+ else
+ printf '\n --> Please run "sudo chown -R papermerge:papermerge /usr/lib/python3.8/site-packages/papermerge/core/migrations" before launching the papermerge service for the first time!\n'
+ 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() {
+ # Make sure the papermerge user owns the migrations directory (write access needed)
+ chown -R papermerge:papermerge "/usr/lib/python3.8/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
+}