summarylogtreecommitdiffstats
path: root/papermerge.install
blob: 73ea2c093e563b2eb89097bb2df94de41568f8de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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 -
}

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
}