Merge branch 'dev' into remove-treenode

This commit is contained in:
shamoon committed 2026-11-04 15:51:38 -08:00
commit 057472c18e
423 files changed
+14471 -12839

No files matched your search

+3 -3
View File
@@ -4,7 +4,7 @@
# correct networking for the tests
services:
gotenberg:
image: docker.io/gotenberg/gotenberg:8.37
image: docker.io/gotenberg/gotenberg:8.38
hostname: gotenberg
container_name: gotenberg
network_mode: host
@@ -24,7 +24,7 @@ services:
network_mode: host
restart: unless-stopped
greenmail:
image: docker.io/greenmail/standalone:2.1.14
image: docker.io/greenmail/standalone:2.1.15
hostname: greenmail
container_name: greenmail
environment:
@@ -35,7 +35,7 @@ services:
- "3143:3143" # IMAP
restart: unless-stopped
nginx:
image: docker.io/nginx:1.31.6-alpine
image: docker.io/nginx:1.31.7-alpine
hostname: nginx
container_name: nginx
ports:
@@ -71,7 +71,7 @@ services:
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: docker.io/gotenberg/gotenberg:8.37
image: docker.io/gotenberg/gotenberg:8.38
restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
@@ -67,7 +67,7 @@ services:
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: docker.io/gotenberg/gotenberg:8.37
image: docker.io/gotenberg/gotenberg:8.38
restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
@@ -56,7 +56,7 @@ services:
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: docker.io/gotenberg/gotenberg:8.37
image: docker.io/gotenberg/gotenberg:8.38
restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

+57
View File
@@ -0,0 +1,57 @@
# Container init flow
Startup order of the s6-rc oneshot services under `docker/rootfs/etc/s6-overlay/s6-rc.d/`. An arrow `A --> B` means B lists A in its `dependencies.d/`, so B waits for A. Redundant (transitive) edges are omitted.
Each labelled box is a group of services that can run in parallel: every service in it starts as soon as its own dependencies finish, so services in the same box run in parallel. A service does not wait for the rest of its group, only for the arrows pointing at it. Long-running services such as `init-tesseract-langs` (package installs) overlap with several later steps.
```mermaid
flowchart TD
subgraph w3 ["Run in parallel"]
init-tesseract-langs
init-modify-user
init-wait-for-db
init-wait-for-redis
end
subgraph w4 ["Run in parallel"]
init-folders
init-compile-bytecode
end
subgraph w6 ["Run in parallel"]
init-search-index
init-llmindex-migrate
init-superuser
end
base --> init-start --> init-env-file
init-env-file --> init-tesseract-langs
init-env-file --> init-modify-user
init-env-file --> init-wait-for-db
init-env-file --> init-wait-for-redis
init-start --> init-compile-bytecode
init-modify-user --> init-folders
init-modify-user --> init-compile-bytecode
init-folders --> init-migrations
init-compile-bytecode --> init-migrations
init-wait-for-db --> init-migrations
init-migrations --> init-search-index
init-migrations --> init-llmindex-migrate
init-migrations --> init-superuser
init-tesseract-langs --> init-search-index
init-tesseract-langs --> init-llmindex-migrate
init-tesseract-langs --> init-system-checks
init-superuser --> init-system-checks
init-search-index --> init-custom-init
init-system-checks --> init-custom-init
init-wait-for-redis --> init-custom-init
init-custom-init --> init-complete
init-llmindex-migrate --> init-complete
```
`init-search-index` and `init-llmindex-migrate` run `manage.py`, which runs the Django system checks, including the check that the configured OCR languages are installed, so they wait for `init-tesseract-langs`.
@@ -10,9 +10,11 @@ if [[ -n "${PAPERLESS_CONSUMER_DISABLE}" ]]; then
else
cd ${PAPERLESS_SRC_DIR}
# Django system checks already ran once in init-system-checks, skip repeating them
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
exec python3 manage.py document_consumer
exec python3 manage.py document_consumer --skip-checks
else
exec s6-setuidgid paperless python3 manage.py document_consumer
exec s6-setuidgid paperless python3 manage.py document_consumer --skip-checks
fi
fi
@@ -3,8 +3,9 @@
cd ${PAPERLESS_SRC_DIR}
# Django system checks already ran once in init-system-checks, skip repeating them
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
exec /usr/local/bin/celery --app paperless beat --loglevel INFO
exec /usr/local/bin/celery --skip-checks --app paperless beat --loglevel INFO
else
exec s6-setuidgid paperless /usr/local/bin/celery --app paperless beat --loglevel INFO
exec s6-setuidgid paperless /usr/local/bin/celery --skip-checks --app paperless beat --loglevel INFO
fi
@@ -3,8 +3,9 @@
cd ${PAPERLESS_SRC_DIR}
# Django system checks already ran once in init-system-checks, skip repeating them
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
exec /usr/local/bin/celery --app paperless worker --loglevel INFO --without-mingle --without-gossip
exec /usr/local/bin/celery --skip-checks --app paperless worker --loglevel INFO --without-mingle --without-gossip
else
exec s6-setuidgid paperless /usr/local/bin/celery --app paperless worker --loglevel INFO --without-mingle --without-gossip
exec s6-setuidgid paperless /usr/local/bin/celery --skip-checks --app paperless worker --loglevel INFO --without-mingle --without-gossip
fi