mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-11-03 21:39:22 +00:00
* Fix: make index and llmindex init wait for tesseract language install * Updates this out of date diagram and makes it Mermaid
58 lines
2.2 KiB
Markdown
58 lines
2.2 KiB
Markdown
# 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`.
|