From 136ff1b4089349434e15cee0af07bcd4650d81a6 Mon Sep 17 00:00:00 2001 From: sclaren Date: Wed, 26 Apr 2023 19:49:16 +0200 Subject: [PATCH] Paperless ngx (#392) * Added paperless-ngx with Tika support * Squashed commit of the following: commit 1c0b3abb0dbce97d5b37aec1543b9f46c57aeb87 Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Wed Apr 26 08:08:49 2023 -0400 chore(deps): update grafana/grafana-oss docker tag to v9.5.1 (#398) * chore(deps): update grafana/grafana-oss docker tag to v9.5.1 * Update app version --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: github-action update-app-version commit c86bbe91613cc6ed837a8ce3ab4fea5e26a133e1 Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Wed Apr 26 08:06:37 2023 -0400 chore(deps): update lscr.io/linuxserver/jackett docker tag to v0.20.3996 (#396) * chore(deps): update lscr.io/linuxserver/jackett docker tag to v0.20.3996 * Update app version --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: github-action update-app-version commit fe1dcaefedcb9673212cdd824f754820e2a68a09 Author: DrMxrcy <58747968+DrMxrcy@users.noreply.github.com> Date: Tue Apr 25 16:30:29 2023 -0400 Add Package Rules to ignore Dependency Images (#394) commit c0e1bcc18ba5ce95a0135909c4f2a0c14dde08c3 Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Date: Tue Apr 25 15:21:45 2023 -0400 chore(deps): update 1dev/server docker tag to v8.1.3 (#389) * chore(deps): update 1dev/server docker tag to v8.1.3 * Update app version --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: github-action update-app-version commit 8779ff2f3ad6e510e018da3333bbf49926d42688 Author: imgbot[bot] <31301654+imgbot[bot]@users.noreply.github.com> Date: Tue Apr 25 15:20:45 2023 -0400 [ImgBot] Optimize images (#391) *Total -- 176.57kb -> 165.21kb (6.43%) /apps/lidarr-deemix/metadata/logo.jpg -- 111.09kb -> 102.11kb (8.09%) /apps/kanboard/metadata/logo.jpg -- 52.36kb -> 50.06kb (4.4%) /apps/actual-budget/metadata/logo.jpg -- 13.11kb -> 13.05kb (0.49%) Signed-off-by: ImgBotApp Co-authored-by: ImgBotApp commit 8f516245614195eceb274d0ac4a650e5664c97be Author: DrMxrcy <58747968+DrMxrcy@users.noreply.github.com> Date: Tue Apr 25 13:11:00 2023 -0400 Update Homarr to v0.12.1 (#393) * chore(paperless-ngx): update logo and container name --------- Co-authored-by: Sascha Claren Co-authored-by: DrMxrcy --- apps/paperless-ngx/config.json | 46 +++++++++++++ apps/paperless-ngx/docker-compose.yml | 75 +++++++++++++++++++++ apps/paperless-ngx/metadata/description.md | 39 +++++++++++ apps/paperless-ngx/metadata/logo.jpg | Bin 0 -> 34959 bytes 4 files changed, 160 insertions(+) create mode 100644 apps/paperless-ngx/config.json create mode 100644 apps/paperless-ngx/docker-compose.yml create mode 100644 apps/paperless-ngx/metadata/description.md create mode 100644 apps/paperless-ngx/metadata/logo.jpg diff --git a/apps/paperless-ngx/config.json b/apps/paperless-ngx/config.json new file mode 100644 index 00000000..69388977 --- /dev/null +++ b/apps/paperless-ngx/config.json @@ -0,0 +1,46 @@ +{ + "$schema": "../schema.json", + "name": "Paperless-ngx", + "available": true, + "exposable": true, + "port": 8012, + "id": "paperless-ngx", + "tipi_version": 1, + "version": "1.14.0", + "categories": [ + "utilities" + ], + "description": "Paperless-ngx is a community-supported open-source document management system that transforms your physical documents into a searchable online archive so you can keep, well, less paper.", + "short_desc": "Document Management System (DMS)", + "author": "Daniel Quinn, Jonas Winkler, and the Paperless-ngx team", + "source": "https://github.com/paperless-ngx/paperless-ngx", +"form_fields": [ + { + "type": "text", + "label": "Administrator Username", + "required": true, + "min": 5, + "max": 20, + "hint": "Username for the paperless-ngx Admin user", + "env_variable": "PAPERLESS_ADMIN_USERNAME" + }, + { + "type": "password", + "label": "Administrator password", + "required": true, + "min": 5, + "max": 64, + "hint": "Password for the paperless-ngx Admin user", + "env_variable": "PAPERLESS_ADMIN_PASSWORD" + }, + { + "type": "text", + "label": "Enable Tika (1 or 0)", + "required": true, + "min": 1, + "max": 1, + "hint": "1 = yes, 2= no", + "env_variable": "PAPERLESS_TIKA_ENABLED" + } + ] + } diff --git a/apps/paperless-ngx/docker-compose.yml b/apps/paperless-ngx/docker-compose.yml new file mode 100644 index 00000000..705ff995 --- /dev/null +++ b/apps/paperless-ngx/docker-compose.yml @@ -0,0 +1,75 @@ +version: '3.7' +services: + # Redis + broker: + image: docker.io/library/redis:7 + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/redis:/data + networks: + - tipi_main_network + + # Postgres SQL + db: + image: docker.io/library/postgres:13 + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + environment: + POSTGRES_DB: paperless + POSTGRES_USER: paperless + POSTGRES_PASSWORD: paperless + networks: + - tipi_main_network + + gotenberg: + image: docker.io/gotenberg/gotenberg:7.8 + 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. + command: + - "gotenberg" + - "--chromium-disable-javascript=true" + - "--chromium-allow-list=file:///tmp/.*" + networks: + - tipi_main_network + + tika: + image: ghcr.io/paperless-ngx/tika:latest + restart: unless-stopped + networks: + - tipi_main_network + + paperless-ngx: + container_name: paperless-ngx + image: ghcr.io/paperless-ngx/paperless-ngx:1.14 + restart: unless-stopped + depends_on: + - db + - broker + ports: + - ${APP_PORT}:8000 + volumes: + - ${APP_DATA_DIR}/data/paperless_data:/usr/src/paperless/data + - ${APP_DATA_DIR}/data/paperless_media:/usr/src/paperless/media + - ${APP_DATA_DIR}/data/paperless_export:/usr/src/paperless/export + - ${APP_DATA_DIR}/data/paperless_consume:/usr/src/paperless/consume + environment: + PAPERLESS_REDIS: redis://broker:6379 + PAPERLESS_DBHOST: db + PAPERLESS_ADMIN_USER: ${PAPERLESS_ADMIN_USERNAME} + PAPERLESS_ADMIN_PASSWORD: ${PAPERLESS_ADMIN_PASSWORD} + PAPERLESS_TIKA_ENABLED: ${PAPERLESS_TIKA_ENABLED} + PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 + PAPERLESS_TIKA_ENDPOINT: http://tika:9998 + PAPERLESS_URL: ${APP_PROTOCOL:-http}://${APP_DOMAIN} + COMPOSE_PROJECT_NAME: paperless-ngx + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.paperless-ngx.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.paperless-ngx.entrypoints: websecure + traefik.http.routers.paperless-ngx.service: paperless-ngx + traefik.http.routers.paperless-ngx.tls.certresolver: myresolver + traefik.http.services.paperless-ngx.loadbalancer.server.port: 8000 \ No newline at end of file diff --git a/apps/paperless-ngx/metadata/description.md b/apps/paperless-ngx/metadata/description.md new file mode 100644 index 00000000..76245faf --- /dev/null +++ b/apps/paperless-ngx/metadata/description.md @@ -0,0 +1,39 @@ +# Paperless-ngx +Paperless-ngx is a document management system that transforms your physical documents into a searchable online archive so you can keep, well, less paper. + +## ! IMPORTANT - PLEASE READ ! +- Please **be patient** during installation, it may take a few minutes to download and install all dependencies. + +- Please wait a few seconds after Tipi says that the installation was finished, because Paperless-ngx needs some time to start. + +- **Tika** is available in this App, however you need to decide if you want to use it or not. You may disable it because of performance reasons. + - Tika allows you to upload Office documents (MSOffice, LibreOffice, etc) and automatically creates PDF versions of these documents. + - If you disable Tika, you will not be able to upload these document types. + - See here for more Information about Tika: https://docs.paperless-ngx.com/configuration/#tika + +![Dashboard](https://github.com/paperless-ngx/paperless-ngx/raw/main/resources/logo/web/png/Black%20logo%20-%20no%20background.png#gh-light-mode-only) + +![Dashboard](https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docs/assets/screenshots/documents-smallcards.png#gh-light-mode-only) + +- Organize and index your scanned documents with tags, correspondents, types, and more. +- Performs OCR on your documents, adds selectable text to image only documents and adds tags, correspondents and document types to your documents. +- Supports PDF documents, images, plain text files, and Office documents (Word, Excel, Powerpoint, and LibreOffice equivalents). + - Office document support is optional and provided by Apache Tika (see [configuration](https://docs.paperless-ngx.com/configuration/#tika)) +- Paperless stores your documents plain on disk. Filenames and folders are managed by paperless and their format can be configured freely. +- Single page application front end. + - Includes a dashboard that shows basic statistics and has document upload. + - Filtering by tags, correspondents, types, and more. + - Customizable views can be saved and displayed on the dashboard. +- Full text search helps you find what you need. + - Auto completion suggests relevant words from your documents. + - Results are sorted by relevance to your search query. + - Highlighting shows you which parts of the document matched the query. + - Searching for similar documents ("More like this") +- Email processing: Paperless adds documents from your email accounts. + - Configure multiple accounts and filters for each account. + - When adding documents from mail, paperless can move these mail to a new folder, mark them as read, flag them as important or delete them. +- Machine learning powered document matching. + - Paperless-ngx learns from your documents and will be able to automatically assign tags, correspondents and types to documents once you've stored a few documents in paperless. +- Optimized for multi core systems: Paperless-ngx consumes multiple documents in parallel. +- The integrated sanity checker makes sure that your document archive is in good health. +- [More screenshots are available in the documentation](https://docs.paperless-ngx.com/#screenshots). diff --git a/apps/paperless-ngx/metadata/logo.jpg b/apps/paperless-ngx/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d192c8f4a7531958c347a8200fb6300c11f78018 GIT binary patch literal 34959 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 literal 0 HcmV?d00001