diff --git a/deskutils/py-paperless-ngx/Makefile b/deskutils/py-paperless-ngx/Makefile
index cd5e9c9be06c..cff7024af2c1 100644
--- a/deskutils/py-paperless-ngx/Makefile
+++ b/deskutils/py-paperless-ngx/Makefile
@@ -1,175 +1,176 @@
 PORTNAME=	paperless-ngx
 PORTVERSION=	2.11.6
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	deskutils python
 MASTER_SITES=	https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/:webui \
 		GH:gh
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 DISTFILES=	${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${EXTRACT_SUFX}:webui
 
 MAINTAINER=	grembo@FreeBSD.org
 COMMENT=	Community-supported supercharged version of paperless
 WWW=		https://docs.paperless-ngx.com
 
 LICENSE=	GPLv3
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}bleach>=6.1.0:www/py-bleach@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}concurrent-log-handler>=0.9.19:sysutils/py-concurrent-log-handler@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dateparser>=1.1.4:devel/py-dateparser@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}channels-redis>=4.2.0:www/py-channels-redis@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-allauth>=0.59.0:www/py-django-allauth@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-auditlog>=2.3.0:www/py-django-auditlog@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-celery-results>=2.5.1:www/py-django-celery-results@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-compression-middleware>=0.5.0:www/py-django-compression-middleware@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-cors-headers>=4.3.1:www/py-django-cors-headers@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-extensions>=3.2.3:www/py-django-extensions@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-filter>=23.5:www/py-django-filter@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-multiselectfield>=0.1.12:www/py-django-multiselectfield@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-soft-delete>=1.0.15:www/py-django-soft-delete@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}djangorestframework-guardian>=0.3.0:www/py-djangorestframework-guardian@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}drf-writable-nested>=0.7.0:www/py-drf-writable-nested@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}filelock>=3.13.1:sysutils/py-filelock@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}flower>=2.0.1:www/py-flower@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}gotenberg-client>=0.5.0:converters/py-gotenberg-client@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}gunicorn>=21.2.0:www/py-gunicorn@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}h2>=4.1.0:www/py-h2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}hiredis>=2.0.0:databases/py-hiredis@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}httptools>=0.6.1:www/py-httptools@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}imap-tools>=1.5.0:mail/py-imap-tools@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}inotifyrecursive>=0.3.5_1:devel/py-inotifyrecursive@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}langdetect>=1.0.9:textproc/py-langdetect@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}mysqlclient>=2.2.1:databases/py-mysqlclient@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}nltk>=3.8.1:textproc/py-nltk@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}ocrmypdf>=15.4.4:textproc/py-ocrmypdf@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pathvalidate>=3.2.0:devel/py-pathvalidate@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pdf2image>=1.17.0:graphics/py-pdf2image@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pdftotext>=2.2.2:textproc/py-pdftotext@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}psycopg2>=2.9.9:databases/py-psycopg2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}python-dotenv>=1.0.0:www/py-python-dotenv@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}python-gnupg>=0.5.1:security/py-python-gnupg@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}python-ipware>=2.0.1:net/py-python-ipware@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}python-magic>=0.4.27:devel/py-python-magic@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pyzbar>=0.1.9:graphics/py-pyzbar@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}rapidfuzz>=3.6.1:devel/py-rapidfuzz@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}scikit-learn>=1.4.0:science/py-scikit-learn@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}setproctitle>=1.3.2:devel/py-setproctitle@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}tika-client>=0.5.0:textproc/py-tika-client@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}uvicorn>=0.25.0:www/py-uvicorn@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}uvloop>=0.17.0:devel/py-uvloop@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}watchdog>=4.0.0:devel/py-watchdog@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}watchfiles>=0.21.0:devel/py-watchfiles@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}websockets>=12.0:devel/py-websockets@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}whitenoise>=6.2.0:www/py-whitenoise@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}whoosh>=2.7.4:textproc/py-whoosh@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0.1:devel/py-pyyaml@${PY_FLAVOR}
 RUN_DEPENDS:=	${BUILD_DEPENDS}
 RUN_DEPENDS+=	gpg2:security/gnupg \
 		liberation-fonts-ttf>=2.1.3:x11-fonts/liberation-fonts-ttf \
 		optipng:graphics/optipng \
 		tesseract:graphics/tesseract \
 		unpaper:graphics/unpaper
 
 USES=		python shebangfix tar:xz
 USE_GITHUB=	yes
 GH_ACCOUNT=	paperless-ngx
 USE_RC_SUBR=	paperless-beat paperless-consumer paperless-flower \
 		paperless-migrate paperless-webui paperless-worker
 
 SHEBANG_FILES=	${WRKSRC}/src/manage.py
 
 CONFLICTS_INSTALL=	${PYTHON_PKGNAMEPREFIX}*paperless
 
 NO_ARCH=	yes
 
 SUB_FILES=	nginx.conf paperless paperless-ngx.7 pkg-message README sshd_config
 SUB_LIST=	CHOWN=${CHOWN} \
 		ECHO=${ECHO} \
 		EGREP=${EGREP} \
 		PKGBASE=${PKGBASE} \
 		PYTHON_CMD=${PYTHON_CMD} \
 		PYTHONPREFIX_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} \
 		RM=${RM:Q} \
 		TOUCH=${TOUCH}
 
 USERS=		paperless
 GROUPS=		paperless
 
 PORTDOCS=	*
 
 OPTIONS_DEFINE=		DOCS EXAMPLES
 OPTIONS_DEFAULT=	IMAGICK7_X11
 OPTIONS_SINGLE=		IMAGICK
 OPTIONS_SINGLE_IMAGICK=	IMAGICK6_NOX11 IMAGICK6_X11 IMAGICK7_NOX11 IMAGICK7_X11
 
 IMAGICK6_NOX11_DESC=	ImageMagick6 without X11 support
 IMAGICK6_X11_DESC=	ImageMagick6 with X11 support
 IMAGICK7_NOX11_DESC=	ImageMagick7 without X11 support
 IMAGICK7_X11_DESC=	ImageMagick7 with X11 support
 IMAGICK_DESC=		${IMAGEMAGICK_DESC}
 
 IMAGICK6_NOX11_USES=	magick:6,run,nox11
 IMAGICK6_X11_USES=	magick:6,run
 IMAGICK7_NOX11_USES=	magick:7,run,nox11
 IMAGICK7_X11_USES=	magick:7,run
 
 PAPERLESS_STATICDIR=	${WRKSRC}/static
 
 post-patch:
 	@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
 		${WRKSRC}/src/paperless/settings.py
 
 do-build:
 	@${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \
 		-d ${PYTHONPREFIX_SITELIBDIR} \
 		-x ".*/tests/" \
 		-f ${WRKSRC}/src
 	@${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py \
 		-d ${PYTHONPREFIX_SITELIBDIR} \
 		-x ".*/tests/" \
 		-f ${WRKSRC}/src
 	@${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py \
 		-d ${PYTHONPREFIX_SITELIBDIR} \
 		-f ${WRKSRC}/gunicorn.conf.py
 	@${RM} -r ${PAPERLESS_STATICDIR}
 	@${SETENV} \
 		PAPERLESS_STATICDIR=${PAPERLESS_STATICDIR} \
 		${PYTHON_CMD} ${WRKSRC}/src/manage.py collectstatic -i tests
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/paperless
 	@cd ${WRKSRC}/resources && \
 		${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}
 	@cd ${WRKSRC}/src && \
 		${COPYTREE_SHARE} . ${STAGEDIR}${PYTHON_SITELIBDIR}/paperless
 	@cd ${WRKSRC} && ${COPYTREE_SHARE} gunicorn.conf.py \
 		${STAGEDIR}${PYTHON_SITELIBDIR}/paperless
 	@${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.orig' -delete
 	@cd ${WRKDIR} && ${INSTALL_SCRIPT} paperless ${STAGEDIR}${PREFIX}/bin
 	@${SED} -e 's|%%WWWDIR%%|${WWWDIR}|g;' \
 		${WRKSRC}/paperless.conf.example \
 		> ${STAGEDIR}${PREFIX}/etc/paperless.conf.sample
 	@${MKDIR} ${STAGEDIR}/var/db/paperless/consume/input \
 		${STAGEDIR}/var/db/paperless/data/log \
 		${STAGEDIR}/var/db/paperless/media \
 		${STAGEDIR}/var/db/paperless/nltkdata
 	${INSTALL_MAN} ${WRKDIR}/paperless-ngx.7 ${STAGEDIR}${PREFIX}/share/man/man7
 	${MKDIR} ${STAGEDIR}${WWWDIR}
 	@cd ${WRKDIR}/${PORTNAME} && ${COPYTREE_SHARE} static ${STAGEDIR}${WWWDIR}
 	@${MKDIR} ${STAGEDIR}/var/run/paperless
 
 post-install-DOCS-on:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
 	@cd ${WRKSRC}/docs && \
 		${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}
 
 post-install-EXAMPLES-on:
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
 	${INSTALL_DATA} \
 		${WRKDIR}/README \
 		${WRKDIR}/nginx.conf \
 		${WRKDIR}/sshd_config \
 		${STAGEDIR}${EXAMPLESDIR}
 
 .include <bsd.port.mk>
diff --git a/deskutils/py-paperless-ngx/files/paperless-beat.in b/deskutils/py-paperless-ngx/files/paperless-beat.in
index 3fa2f2b4d4a6..9eb60efa0842 100755
--- a/deskutils/py-paperless-ngx/files/paperless-beat.in
+++ b/deskutils/py-paperless-ngx/files/paperless-beat.in
@@ -1,51 +1,57 @@
 #!/bin/sh
 
 # PROVIDE: paperless-beat
 # REQUIRE: LOGIN
 # BEFORE:  paperless-consumer
 # KEYWORD: shutdown
 #
 # Add the following line(s) to /etc/rc.conf to enable the paperless
 # celery beat process:
 #
 # paperless_beat_enable (bool):		Set to "NO" by default.
 #					Set it to "YES" to enable
 #					paperless_beat
 # paperless_beat_user (str):		Set to "paperless" by default.
 #					User to run beat.
 # paperless_beat_log_facility (str):	Set to "daemon" by default.
 #					Beat logging syslog facility.
 # paperless_beat_log_priority (str):	Set to "notice" by default.
 #					Beat logging syslog priority.
 # paperless_beat_log_tag (str):		Set to "paperless-beat" by default.
 #					Beat logging syslog tag.
+# paperless_beat_tmpdir (str):		If set, overrides TMPDIR
 
 . /etc/rc.subr
 
 name="paperless_beat"
 rcvar="${name}_enable"
 
 # read configuration and set defaults
 load_rc_config "$name"
 paperless_beat_enable=${paperless_beat_enable:-"NO"}
 paperless_beat_daemon_user=${paperless_beat_user:-"paperless"}
 paperless_beat_log_facility=${paperless_beat_log_facility:-"daemon"}
 paperless_beat_log_priority=${paperless_beat_log_priority:-"notice"}
 paperless_beat_log_tag=${paperless_beat_log_tag:-"paperless-beat"}
+paperless_beat_tmpdir=${paperless_beat_tmpdir:-"$TMPDIR"}
 
 paperless_beat_env="LANG=en_US.UTF-8 PATH=$PATH:%%PREFIX%%/bin \
   PYTHONPATH=%%PYTHONPREFIX_SITELIBDIR%%/paperless"
 
+if [ -n "$paperless_beat_tmpdir" ]; then
+	paperless_beat_env="$paperless_beat_env TMPDIR=$paperless_beat_tmpdir"
+fi
+
 pidfile="/var/run/paperless/beat.pid"
 procname="%%PYTHON_CMD%%"
 command="/usr/sbin/daemon"
 command_args="-cS -u ${paperless_beat_daemon_user} \
 	-p ${pidfile} \
 	-t paperless-beat \
 	-l ${paperless_beat_log_facility} \
 	-s ${paperless_beat_log_priority} \
 	-T ${paperless_beat_log_tag} \
 	%%PREFIX%%/bin/celery \
 	--app paperless beat --loglevel INFO"
 
 run_rc_command "$1"
diff --git a/deskutils/py-paperless-ngx/files/paperless-consumer.in b/deskutils/py-paperless-ngx/files/paperless-consumer.in
index 987234567de8..a3fdb84d63b4 100755
--- a/deskutils/py-paperless-ngx/files/paperless-consumer.in
+++ b/deskutils/py-paperless-ngx/files/paperless-consumer.in
@@ -1,51 +1,58 @@
 #!/bin/sh
 
 # PROVIDE: paperless-consumer
 # REQUIRE: LOGIN
 # BEFORE:  paperless-flower
 # KEYWORD: shutdown
 #
 # Add the following line(s) to /etc/rc.conf to enable the paperless
 # celery consumer process:
 #
 # paperless_consumer_enable (bool):	Set to "NO" by default.
 #					Set it to "YES" to enable
 #					paperless_consumer
 # paperless_consumer_user (str):	Set to "paperless" by default.
 #					User to run consumer.
 # paperless_consumer_log_facility(str): Set to "daemon" by default.
 #					Consumer logging syslog facility.
 # paperless_consumer_log_priority(str): Set to "notice" by default.
 #					Consumer logging syslog priority.
 # paperless_consumer_log_tag (str):	Set to "paperless-consumer" by default.
 #					Consumer logging syslog tag.
+# paperless_consumer_tmpdir (str):	If set, overrides TMPDIR
 
 . /etc/rc.subr
 
 name="paperless_consumer"
 rcvar="${name}_enable"
 
 # read configuration and set defaults
 load_rc_config "$name"
 paperless_consumer_enable=${paperless_consumer_enable:-"NO"}
 paperless_consumer_daemon_user=${paperless_consumer_user:-"paperless"}
 paperless_consumer_log_facility=${paperless_consumer_log_facility:-"daemon"}
 paperless_consumer_log_priority=${paperless_consumer_log_priority:-"notice"}
 paperless_consumer_log_tag=${paperless_consumer_log_tag:-"paperless-consumer"}
+paperless_consumer_tmpdir=${paperless_consumer_tmpdir:-"$TMPDIR"}
 
 paperless_consumer_env="LANG=en_US.UTF-8 PATH=$PATH:%%PREFIX%%/bin\
   PYTHONPATH=%%PYTHONPREFIX_SITELIBDIR%%/paperless"
 
+if [ -n "$paperless_consumer_tmpdir" ]; then
+	paperless_consumer_env="$paperless_consumer_env TMPDIR=\
+$paperless_consumer_tmpdir"
+fi
+
 sig_stop="INT"
 pidfile="/var/run/paperless/consumer.pid"
 procname="%%PYTHON_CMD%%"
 command="/usr/sbin/daemon"
 command_args="-cS -u ${paperless_consumer_daemon_user} \
 	-p ${pidfile} \
 	-t paperless-consumer \
 	-l ${paperless_consumer_log_facility} \
 	-s ${paperless_consumer_log_priority} \
 	-T ${paperless_consumer_log_tag} \
 	%%PREFIX%%/bin/paperless document_consumer"
 
 run_rc_command "$1"
diff --git a/deskutils/py-paperless-ngx/files/paperless-flower.in b/deskutils/py-paperless-ngx/files/paperless-flower.in
index 3690d41da3a8..fdc0937c4773 100755
--- a/deskutils/py-paperless-ngx/files/paperless-flower.in
+++ b/deskutils/py-paperless-ngx/files/paperless-flower.in
@@ -1,50 +1,57 @@
 #!/bin/sh
 
 # PROVIDE: paperless-flower
 # REQUIRE: LOGIN
 # KEYWORD: shutdown
 #
 # Add the following line(s) to /etc/rc.conf to enable the paperless
 # celery flower process:
 #
 # paperless_flower_enable (bool):	Set to "NO" by default.
 #					Set it to "YES" to enable
 #					paperless_flower
 # paperless_flower_user (str):		Set to "paperless" by default.
 #					User to run flower.
 # paperless_flower_log_facility (str):	Set to "daemon" by default.
 #					Flower logging syslog facility.
 # paperless_flower_log_priority (str):	Set to "notice" by default.
 #					Flower logging syslog priority.
 # paperless_flower_log_tag (str):	Set to "paperless-flower" by default.
 #					Flower logging syslog tag.
+# paperless_flower_tmpdir (str):	If set, overrides TMPDIR
 
 . /etc/rc.subr
 
 name="paperless_flower"
 rcvar="${name}_enable"
 
 # read configuration and set defaults
 load_rc_config "$name"
 paperless_flower_enable=${paperless_flower_enable:-"NO"}
 paperless_flower_daemon_user=${paperless_flower_user:-"paperless"}
 paperless_flower_log_facility=${paperless_flower_log_facility:-"daemon"}
 paperless_flower_log_priority=${paperless_flower_log_priority:-"notice"}
 paperless_flower_log_tag=${paperless_flower_log_tag:-"paperless-flower"}
+paperless_flower_tmpdir=${paperless_flower_tmpdir:-"$TMPDIR"}
 
 paperless_flower_env="LANG=en_US.UTF-8 PATH=$PATH:%%PREFIX%%/bin \
   PYTHONPATH=%%PYTHONPREFIX_SITELIBDIR%%/paperless"
 
+if [ -n "$paperless_flower_tmpdir" ]; then
+	paperless_flower_env="$paperless_flower_env TMPDIR=\
+$paperless_flower_tmpdir"
+fi
+
 pidfile="/var/run/paperless/flower.pid"
 procname="%%PYTHON_CMD%%"
 command="/usr/sbin/daemon"
 command_args="-cS -u ${paperless_flower_daemon_user} \
 	-p ${pidfile} \
 	-t paperless-flower \
 	-l ${paperless_flower_log_facility} \
 	-s ${paperless_flower_log_priority} \
 	-T ${paperless_flower_log_tag} \
 	%%PREFIX%%/bin/celery \
 	--app paperless flower --url-prefix=flower --loglevel INFO"
 
 run_rc_command "$1"
diff --git a/deskutils/py-paperless-ngx/files/paperless-migrate.in b/deskutils/py-paperless-ngx/files/paperless-migrate.in
index 91bd702d2b10..bc7a70c62361 100755
--- a/deskutils/py-paperless-ngx/files/paperless-migrate.in
+++ b/deskutils/py-paperless-ngx/files/paperless-migrate.in
@@ -1,50 +1,57 @@
 #!/bin/sh
 
 # PROVIDE: paperless-migrate
 # REQUIRE: LOGIN mysql postgresql redis
 # BEFORE:  paperless-webui
 # KEYWORD: shutdown
 #
 # Add the following line(s) to /etc/rc.conf to enable running paperless
 # migrations:
 #
 # paperless_migrate_enable (bool):	Set to "NO" by default.
 #					Set it to "YES" to enable
 #					paperless_migrate
 # paperless_migrate_user (str):		Set to "paperless" by default.
 #					User to run migrate.
 # paperless_migrate_log_facility (str):	Set to "daemon" by default.
 #					Migrate logging syslog facility.
 # paperless_migrate_log_priority (str):	Set to "notice" by default.
 #					Migrate logging syslog priority.
 # paperless_migrate_log_tag (str):	Set to "paperless-migrate" by default.
 #					Migrate logging syslog tag.
+# paperless_migrate_tmpdir (str):	If set, overrides TMPDIR
 
 . /etc/rc.subr
 
 name="paperless_migrate"
 rcvar="${name}_enable"
 
 # read configuration and set defaults
 load_rc_config "$name"
 paperless_migrate_enable=${paperless_migrate_enable:-"NO"}
 paperless_migrate_user=${paperless_migrate_user:-"paperless"}
 paperless_migrate_log_facility=${paperless_migrate_log_facility:-"daemon"}
 paperless_migrate_log_priority=${paperless_migrate_log_priority:-"notice"}
 paperless_migrate_log_tag=${paperless_migrate_log_tag:-"paperless-migrate"}
+paperless_migrate_tmpdir=${paperless_migrate_tmpdir:-"$TMPDIR"}
 
 paperless_migrate_env="LANG=en_US.UTF-8 PATH=$PATH:%%PREFIX%%/bin \
   PYTHONPATH=%%PYTHONPREFIX_SITELIBDIR%%/paperless"
 
+if [ -n "$paperless_migrate_tmpdir" ]; then
+	paperless_migrate_env="$paperless_migrate_env TMPDIR=\
+$paperless_migrate_tmpdir"
+fi
+
 start_cmd="${name}_run | logger -s -t '$paperless_migrate_log_tag'"
 stop_cmd=":"
 
 paperless_migrate_run()
 {
 	echo "Applying potential migrations to ${name}."
 	env ${paperless_migrate_env} su \
 		-m ${paperless_migrate_user} \
 		-c 'sh -c "%%PREFIX%%/bin/paperless migrate --no-color -v 0"'
 }
 
 run_rc_command "$1"
diff --git a/deskutils/py-paperless-ngx/files/paperless-webui.in b/deskutils/py-paperless-ngx/files/paperless-webui.in
index 1e191883f00b..5dc08ee981c6 100755
--- a/deskutils/py-paperless-ngx/files/paperless-webui.in
+++ b/deskutils/py-paperless-ngx/files/paperless-webui.in
@@ -1,97 +1,104 @@
 #!/bin/sh
 
 # PROVIDE: paperless-webui
 # REQUIRE: LOGIN
 # BEFORE:  paperless-worker
 # KEYWORD: shutdown
 #
 # Add the following line(s) to /etc/rc.conf to enable the paperless
 # celery webui process:
 #
 # paperless_webui_enable (bool):	Set to "NO" by default.
 #					Set it to "YES" to enable
 #					paperless_webui
 # paperless_webui_user (str):		Set to "paperless" by default.
 #					User to run webui.
 # paperless_webui_log_facility (str):	Set to "daemon" by default.
 #					WebUI logging syslog facility.
 # paperless_webui_log_priority (str):	Set to "notice" by default.
 #					WebUI logging syslog priority.
 # paperless_webui_log_tag (str):	Set to "paperless-webui" by default.
 #					WebUI logging syslog tag.
 # paperless_webui_listen_address (str):	Set to "127.0.0.1" by default.
 #					IP address to listen on.
 # paperless_webui_listen_port (int):	Set to "8000" by default.
 #					Port to listen on.
 # paperless_webui_restart_delay (int):	Set to "5" by default.
 #					WebUI automatic restart delay in
 #					seconds.
 # paperless_webui_secret_key (str):	Set to
 #					"%%PREFIX%%/etc/paperless_secret_key"
 #					by default. Load PAPERLESS_SECRET_KEY
 #					from this file from start, in case it
 #					is not in the environment already.
 #					Will be created on start in case it
 #					does not exist.
 #					Content of PAPERLESS_SECRET_KEY can be
 #					overridden in
 #					%%PREFIX%%/etc/paperless.conf.
+# paperless_webui_tmpdir (str):		If set, overrides TMPDIR
 
 . /etc/rc.subr
 
 name="paperless_webui"
 rcvar="${name}_enable"
 
 # read configuration and set defaults
 load_rc_config "$name"
 paperless_webui_enable=${paperless_webui_enable:-"NO"}
 paperless_webui_daemon_user=${paperless_webui_user:-"paperless"}
 paperless_webui_log_facility=${paperless_webui_log_facility:-"daemon"}
 paperless_webui_log_priority=${paperless_webui_log_priority:-"notice"}
 paperless_webui_log_tag=${paperless_webui_log_tag:-"paperless-webui"}
 paperless_webui_listen_address=${paperless_webui_listen_address:-"127.0.0.1"}
 paperless_webui_listen_port=${paperless_webui_listen_port:-"8000"}
 paperless_webui_restart_delay=${paperless_webui_restart_delay:-"5"}
 paperless_webui_secret_key=${\
 paperless_webui_secret_key:-"%%PREFIX%%/etc/paperless_secret_key"}
+paperless_webui_tmpdir=${paperless_webui_tmpdir:-"$TMPDIR"}
 
 paperless_webui_env="LANG=en_US.UTF-8 PATH=$PATH:%%PREFIX%%/bin\
   PYTHONPATH=%%PYTHONPREFIX_SITELIBDIR%%/paperless \
   PAPERLESS_BIND_ADDR=${paperless_webui_listen_address} \
   PAPERLESS_PORT=${paperless_webui_listen_port}"
 
+if [ -n "$paperless_webui_tmpdir" ]; then
+	paperless_webui_env="$paperless_webui_env TMPDIR=\
+$paperless_webui_tmpdir"
+fi
+
 start_precmd="paperless_webui_prestart"
 pidfile="/var/run/paperless/webui.pid"
 command="/usr/sbin/daemon"
 command_args="-cS -u ${paperless_webui_daemon_user} \
 	-P ${pidfile} \
 	-t paperless-webui \
 	-l ${paperless_webui_log_facility} \
 	-s ${paperless_webui_log_priority} \
 	-T ${paperless_webui_log_tag} \
 	-R ${paperless_webui_restart_delay} \
 	%%PREFIX%%/bin/gunicorn \
 	-c %%PYTHONPREFIX_SITELIBDIR%%/paperless/gunicorn.conf.py \
 	paperless.asgi:application"
 
 paperless_webui_prestart()
 {
 	if [ -z "$PAPERLESS_SECRET_KEY" ]; then
 		if [ ! -s "$paperless_webui_secret_key" ]; then
 			echo "Creating $paperless_webui_secret_key"
 			(
 				set -eo pipefail; umask 077
 				uuidgen -crn 10 | xargs | tr ' ' 'x' \
 				>"$paperless_webui_secret_key"
 			) || return 1
 		fi
 		PAPERLESS_SECRET_KEY=$(cat "$paperless_webui_secret_key")
 		export PAPERLESS_SECRET_KEY
 	fi
 	if [ "${#PAPERLESS_SECRET_KEY}" -lt "128" ]; then
 		>&2 echo "PAPERLESS_SECRET_KEY is shorter than 128 chars"
 		return 1
 	fi
 }
 
 run_rc_command "$1"
diff --git a/deskutils/py-paperless-ngx/files/paperless-worker.in b/deskutils/py-paperless-ngx/files/paperless-worker.in
index 1a4104ebdd16..8595c659462a 100755
--- a/deskutils/py-paperless-ngx/files/paperless-worker.in
+++ b/deskutils/py-paperless-ngx/files/paperless-worker.in
@@ -1,52 +1,59 @@
 #!/bin/sh
 
 # PROVIDE: paperless-worker
 # REQUIRE: LOGIN
 # BEFORE:  paperless-beat
 # KEYWORD: shutdown
 #
 # Add the following line(s) to /etc/rc.conf to enable the paperless
 # worker:
 #
 # paperless_worker_enable (bool):	Set to "NO" by default.
 #					Set it to "YES" to enable
 #					paperless_worker
 # paperless_worker_user (str):		Set to "paperless" by default.
 #					User to run worker.
 # paperless_worker_log_facility (str):	Set to "daemon" by default.
 #					Worker logging syslog facility.
 # paperless_worker_log_priority (str):	Set to "notice" by default.
 #					Worker logging syslog priority.
 # paperless_worker_log_tag (str):	Set to "paperless-worker" by default.
 #					Worker logging syslog tag.
+# paperless_worker_tmpdir (str):	If set, overrides TMPDIR
 
 . /etc/rc.subr
 
 name="paperless_worker"
 rcvar="${name}_enable"
 
 # read configuration and set defaults
 load_rc_config "$name"
 paperless_worker_enable=${paperless_worker_enable:-"NO"}
 paperless_worker_daemon_user=${paperless_worker_user:-"paperless"}
 paperless_worker_log_facility=${paperless_worker_log_facility:-"daemon"}
 paperless_worker_log_priority=${paperless_worker_log_priority:-"notice"}
 paperless_worker_log_tag=${paperless_worker_log_tag:-"paperless-worker"}
+paperless_worker_tmpdir=${paperless_worker_tmpdir:-"$TMPDIR"}
 
 paperless_worker_env="LANG=en_US.UTF-8 PATH=$PATH:%%PREFIX%%/bin \
   PYTHONPATH=%%PYTHONPREFIX_SITELIBDIR%%/paperless \
   OMP_NUM_THREADS=1"
 
+if [ -n "$paperless_worker_tmpdir" ]; then
+	paperless_worker_env="$paperless_worker_env TMPDIR=\
+$paperless_worker_tmpdir"
+fi
+
 pidfile="/var/run/paperless/worker.pid"
 procname="%%PYTHON_CMD%%"
 command="/usr/sbin/daemon"
 command_args="-cS -u ${paperless_worker_daemon_user} \
 	-p ${pidfile} \
 	-t paperless-worker \
 	-l ${paperless_worker_log_facility} \
 	-s ${paperless_worker_log_priority} \
 	-T ${paperless_worker_log_tag} \
 	%%PREFIX%%/bin/celery \
 	--app paperless worker --loglevel INFO --without-mingle --without-gossip"
 
 run_rc_command "$1"