From 3152f217cd6554d68e210dd8ebc7b4496dba0da1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 01:57:10 +0000 Subject: [PATCH 01/11] chore(deps): update altran1502/immich-server docker tag to v1.76.0 (#1097) --- apps/immich/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 6454d427..c9922103 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -43,7 +43,7 @@ services: immich-server: container_name: immich-server - image: altran1502/immich-server:v1.75.2 + image: altran1502/immich-server:v1.76.0 command: ["start-server.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload @@ -68,7 +68,7 @@ services: immich-microservices: container_name: immich-microservices - image: altran1502/immich-server:v1.75.2 + image: altran1502/immich-server:v1.76.0 command: ["start-microservices.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload From 061ea584b16ccda58f645f901ec17b4c6511ca5e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 01:57:40 +0000 Subject: [PATCH 02/11] chore(deps): update ghcr.io/diced/zipline docker tag to v3.7.4 (#1096) --- apps/zipline/config.json | 4 ++-- apps/zipline/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/zipline/config.json b/apps/zipline/config.json index 57a5099c..8d0b8edd 100644 --- a/apps/zipline/config.json +++ b/apps/zipline/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "zipline", - "tipi_version": 4, - "version": "3.7.3", + "tipi_version": 5, + "version": "3.7.4", "categories": [ "media" ], diff --git a/apps/zipline/docker-compose.yml b/apps/zipline/docker-compose.yml index 7383e75b..0ee0bdb7 100644 --- a/apps/zipline/docker-compose.yml +++ b/apps/zipline/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.7' services: zipline: container_name: zipline - image: ghcr.io/diced/zipline:3.7.3 + image: ghcr.io/diced/zipline:3.7.4 ports: - '${APP_PORT}:3000' restart: unless-stopped From ce7e7dd0a2cfbd2d2cb7402ea35814d294588173 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 05:09:39 +0000 Subject: [PATCH 03/11] chore(deps): update altran1502/immich-web docker tag to v1.76.0 (#1098) --- apps/immich/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index c9922103..07bd957f 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -114,7 +114,7 @@ services: immich-web: container_name: immich-web - image: altran1502/immich-web:v1.75.2 + image: altran1502/immich-web:v1.76.0 restart: unless-stopped networks: - tipi_main_network From 6d41a7e473c015967d3aa4315da5a61dac2f41d0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 08:10:59 +0000 Subject: [PATCH 04/11] chore(deps): update lscr.io/linuxserver/transmission docker tag to v4.0.4 (#1099) --- apps/transmission/config.json | 4 ++-- apps/transmission/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/transmission/config.json b/apps/transmission/config.json index f49923e7..90003e07 100644 --- a/apps/transmission/config.json +++ b/apps/transmission/config.json @@ -10,8 +10,8 @@ ] }, "id": "transmission", - "tipi_version": 7, - "version": "4.0.3", + "tipi_version": 8, + "version": "4.0.4", "categories": [ "utilities" ], diff --git a/apps/transmission/docker-compose.yml b/apps/transmission/docker-compose.yml index 5c058ed6..cff63cce 100644 --- a/apps/transmission/docker-compose.yml +++ b/apps/transmission/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: transmission: - image: lscr.io/linuxserver/transmission:4.0.3 + image: lscr.io/linuxserver/transmission:4.0.4 container_name: transmission dns: - ${DNS_IP} From b7889272884f2133173f2149dd4b2b6456e5b4ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 14:49:36 +0000 Subject: [PATCH 05/11] chore(deps): update altran1502/immich-machine-learning docker tag to v1.76.1 (#1101) --- apps/immich/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 07bd957f..54adea94 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -93,7 +93,7 @@ services: immich-machine-learning: container_name: immich-machine-learning - image: altran1502/immich-machine-learning:v1.76.0 + image: altran1502/immich-machine-learning:v1.76.1 volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload - ${APP_DATA_DIR}/data/immich-ml-cache:/cache From 8e1dbec7272b1ae95ae0a829a0469dc2a7352cc1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 14:50:09 +0000 Subject: [PATCH 06/11] chore(deps): update altran1502/immich-proxy docker tag to v1.76.1 (#1102) --- apps/immich/config.json | 4 ++-- apps/immich/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/immich/config.json b/apps/immich/config.json index 392d9f1a..4de53fce 100644 --- a/apps/immich/config.json +++ b/apps/immich/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8128, "id": "immich", - "tipi_version": 39, - "version": "1.76.0", + "tipi_version": 40, + "version": "1.76.1", "categories": [ "data", "photography" diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 54adea94..1bc93640 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.7" services: immich: container_name: immich - image: altran1502/immich-proxy:v1.76.0 + image: altran1502/immich-proxy:v1.76.1 ports: - ${APP_PORT}:8080 depends_on: From 243895478569afc101e57cae8d6b939e10c8da71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 15:22:12 +0000 Subject: [PATCH 07/11] chore(deps): update altran1502/immich-server docker tag to v1.76.1 (#1104) --- apps/immich/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 1bc93640..59eba079 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -43,7 +43,7 @@ services: immich-server: container_name: immich-server - image: altran1502/immich-server:v1.76.0 + image: altran1502/immich-server:v1.76.1 command: ["start-server.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload @@ -68,7 +68,7 @@ services: immich-microservices: container_name: immich-microservices - image: altran1502/immich-server:v1.76.0 + image: altran1502/immich-server:v1.76.1 command: ["start-microservices.sh"] volumes: - ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload From 1da59d0505b45cf01969ab04ae4b084f0b0b4e7d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 15:22:27 +0000 Subject: [PATCH 08/11] chore(deps): update altran1502/immich-web docker tag to v1.76.1 (#1105) --- apps/immich/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index 59eba079..57e03410 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -114,7 +114,7 @@ services: immich-web: container_name: immich-web - image: altran1502/immich-web:v1.76.0 + image: altran1502/immich-web:v1.76.1 restart: unless-stopped networks: - tipi_main_network From c60a31a6118f90db3d99bc2ba46ac2a7e4f103d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 18:39:11 +0000 Subject: [PATCH 09/11] chore(deps): update lscr.io/linuxserver/bookstack docker tag to v23.08.20230830 (#1106) --- apps/bookstack/config.json | 4 ++-- apps/bookstack/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/bookstack/config.json b/apps/bookstack/config.json index d8274bb4..c3bd64a5 100644 --- a/apps/bookstack/config.json +++ b/apps/bookstack/config.json @@ -5,8 +5,8 @@ "exposable": true, "port": 8119, "id": "bookstack", - "tipi_version": 11, - "version": "23.06.20230703", + "tipi_version": 12, + "version": "23.08.20230830", "description": "BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. Default login: admin@admin.com password: password", "short_desc": "BookStack is a self-hosted platform for organising and storing information.", "author": "Dan Brown", diff --git a/apps/bookstack/docker-compose.yml b/apps/bookstack/docker-compose.yml index c2caaca6..917790df 100644 --- a/apps/bookstack/docker-compose.yml +++ b/apps/bookstack/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.7" services: bookstack: - image: lscr.io/linuxserver/bookstack:23.06.20230703 + image: lscr.io/linuxserver/bookstack:23.08.20230830 container_name: bookstack environment: - APP_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN} From 87c4f851db0fb4a77c8287f5980e03dd722b6989 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 18:39:18 +0000 Subject: [PATCH 10/11] chore(deps): update svhd/logto docker tag to v1.8.0 (#1107) --- apps/logto/config.json | 4 ++-- apps/logto/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/logto/config.json b/apps/logto/config.json index 96098e61..4aaf6f95 100644 --- a/apps/logto/config.json +++ b/apps/logto/config.json @@ -5,8 +5,8 @@ "available": true, "exposable": true, "id": "logto", - "tipi_version": 6, - "version": "1.7.0", + "tipi_version": 7, + "version": "1.8.0", "force_expose": true, "categories": [ "security" diff --git a/apps/logto/docker-compose.yml b/apps/logto/docker-compose.yml index 006f3a50..2ab4dac3 100644 --- a/apps/logto/docker-compose.yml +++ b/apps/logto/docker-compose.yml @@ -4,7 +4,7 @@ services: depends_on: logto-db: condition: service_healthy - image: svhd/logto:1.7.0 + image: svhd/logto:1.8.0 container_name: logto entrypoint: ["sh", "-c", "npm run cli db seed -- --swe && npm start"] ports: From 381af8166481367934b2f5acf64ebc376b67754e Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Wed, 30 Aug 2023 22:03:20 +0300 Subject: [PATCH 11/11] Add stirling-pdf and fix filebrowser. (#1100) * Add stirling-pdf. * Delete apps/stirling-pdf/metadata/stirling.png * Update description.md * Update description.md * Update docker-compose.yml * Update docker-compose.yml --- README.md | 1 + apps/filebrowser/docker-compose.yml | 4 +- apps/filebrowser/metadata/description.md | 4 +- apps/stirling-pdf/config.json | 20 +++++++ apps/stirling-pdf/docker-compose.yml | 40 ++++++++++++++ apps/stirling-pdf/metadata/description.md | 64 ++++++++++++++++++++++ apps/stirling-pdf/metadata/logo.jpg | Bin 0 -> 18046 bytes 7 files changed, 128 insertions(+), 5 deletions(-) create mode 100644 apps/stirling-pdf/config.json create mode 100644 apps/stirling-pdf/docker-compose.yml create mode 100644 apps/stirling-pdf/metadata/description.md create mode 100644 apps/stirling-pdf/metadata/logo.jpg diff --git a/README.md b/README.md index 1b730980..7ad20717 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [SimpleX SMP](https://github.com/simplex-chat/simplexmq) - A reference implementation of the SimpleX Messaging Protocol for simplex queues over public networks. - [Sonarr](https://github.com/Sonarr/Sonarr) - TV show manager for Usenet and BitTorrent - [Sshwifty](https://github.com/nirui/sshwifty/) - Web SSH & Telnet (WebSSH & WebTelnet client) +- [Stirling-PDF](https://github.com/Frooodle/Stirling-PDF) - Locally hosted web application that allows you to perform various operations on PDF files. - [Syncthing](https://github.com/syncthing/syncthing) - Continuous File Synchronization - [Tailscale](https://github.com/tailscale/tailscale) - The easiest, most secure way to use WireGuard and 2FA - [Tandoor](https://github.com/TandoorRecipes/recipes) - Drop your collection of links and notes. Get Tandoor and never look back onto a time without recipe management, storage, sharing and collaborative cooking! diff --git a/apps/filebrowser/docker-compose.yml b/apps/filebrowser/docker-compose.yml index 00cc0598..d3421d18 100644 --- a/apps/filebrowser/docker-compose.yml +++ b/apps/filebrowser/docker-compose.yml @@ -5,12 +5,10 @@ services: image: filebrowser/filebrowser:s6 ports: - ${APP_PORT}:80 - environment: - - PUID=1000 - - PGID=1000 volumes: - ${ROOT_FOLDER_HOST}/app-data:/srv/app-data - ${ROOT_FOLDER_HOST}/media:/srv/media + - ${APP_DATA_DIR}/data/general:/srv/general - ${APP_DATA_DIR}/data/db:/database - ${APP_DATA_DIR}/data/config:/config networks: diff --git a/apps/filebrowser/metadata/description.md b/apps/filebrowser/metadata/description.md index 3c7355e1..8160c31e 100644 --- a/apps/filebrowser/metadata/description.md +++ b/apps/filebrowser/metadata/description.md @@ -4,9 +4,9 @@ filebrowser provides a file managing interface within a specified directory and - **username**: admin - **password**: admin -
+ ## Features Please refer to our docs at [https://filebrowser.org/features](https://filebrowser.org/features) -![Preview](https://user-images.githubusercontent.com/5447088/50716739-ebd26700-107a-11e9-9817-14230c53efd2.gif) \ No newline at end of file +![Preview](https://user-images.githubusercontent.com/5447088/50716739-ebd26700-107a-11e9-9817-14230c53efd2.gif) diff --git a/apps/stirling-pdf/config.json b/apps/stirling-pdf/config.json new file mode 100644 index 00000000..11db4928 --- /dev/null +++ b/apps/stirling-pdf/config.json @@ -0,0 +1,20 @@ +{ + "$schema": "../schema.json", + "name": "Stirling-PDF", + "port": 8234, + "available": true, + "exposable": true, + "id": "stirling-pdf", + "tipi_version": 1, + "version": "0.13.0", + "categories": [ + "data", + "utilities" + ], + "description": "Locally hosted web application that allows you to perform various operations on PDF files.", + "short_desc": "Powerful locally hosted web based PDF manipulation tool.", + "author": "Frooodle", + "source": "https://github.com/Frooodle/Stirling-PDF/", + "form_fields": [] + } + \ No newline at end of file diff --git a/apps/stirling-pdf/docker-compose.yml b/apps/stirling-pdf/docker-compose.yml new file mode 100644 index 00000000..ec57f2ff --- /dev/null +++ b/apps/stirling-pdf/docker-compose.yml @@ -0,0 +1,40 @@ +version: "3.7" +services: + stirling-pdf: + image: ghcr.io/frooodle/s-pdf:0.13.0 + restart: unless-stopped + container_name: stirling-pdf + privileged: true + ports: + - ${APP_PORT}:8080 + volumes: + - ${APP_DATA_DIR}/datatrainingData:/usr/share/tesseract-ocr/4.00/tessdata #Required for extra OCR languages + - ${APP_DATA_DIR}/dataextraConfigs:/configs + - ${APP_DATA_DIR}/datacustomFiles:/customFiles/ + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.stirling-pdf-web-redirect.redirectscheme.scheme: https + traefik.http.services.stirling-pdf.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.stirling-pdf-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.stirling-pdf-insecure.entrypoints: web + traefik.http.routers.stirling-pdf-insecure.service: stirling-pdf + traefik.http.routers.stirling-pdf-insecure.middlewares: stirling-pdf-web-redirect + # Websecure + traefik.http.routers.stirling-pdf.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.stirling-pdf.entrypoints: websecure + traefik.http.routers.stirling-pdf.service: stirling-pdf + traefik.http.routers.stirling-pdf.tls.certresolver: myresolver + # Local domain + traefik.http.routers.stirling-pdf-local-insecure.rule: Host(`stirling-pdf.${LOCAL_DOMAIN}`) + traefik.http.routers.stirling-pdf-local-insecure.entrypoints: web + traefik.http.routers.stirling-pdf-local-insecure.service: stirling-pdf + traefik.http.routers.stirling-pdf-local-insecure.middlewares: stirling-pdf-web-redirect + # Local domain secure + traefik.http.routers.stirling-pdf-local.rule: Host(`stirling-pdf.${LOCAL_DOMAIN}`) + traefik.http.routers.stirling-pdf-local.entrypoints: websecure + traefik.http.routers.stirling-pdf-local.service: stirling-pdf + traefik.http.routers.stirling-pdf-local.tls: true diff --git a/apps/stirling-pdf/metadata/description.md b/apps/stirling-pdf/metadata/description.md new file mode 100644 index 00000000..94a53866 --- /dev/null +++ b/apps/stirling-pdf/metadata/description.md @@ -0,0 +1,64 @@ +


Stirling-PDF

+

+ +This is a powerful locally hosted web based PDF manipulation tool using docker that allows you to perform various operations on PDF files, such as splitting merging, converting, reorganizing, adding images, rotating, compressing, and more. This locally hosted web application started as a 100% ChatGPT-made application and has evolved to include a wide range of features to handle all your PDF needs. + +Stirling PDF makes no outbound calls for any record keeping or tracking. + +All files and PDFs are either purely client side, in server memory only during the execution of the task or within a temporay file only for execution of the task. +Any file which has been downloaded by the user will have already been deleted from the server by that time. + +Feel free to request any features or bug fixes either in github issues or our [Discord](https://discord.gg/Cn8pWhQRxZ) + +## Features +- Full interactive GUI for merging/splitting/rotating/moving PDFs and their pages. +- Split PDFs into multiple files at specified page numbers or extract all pages as individual files. +- Merge multiple PDFs together into a single resultant file +- Convert PDFs to and from images +- Reorganize PDF pages into different orders. +- Add/Generate signatures +- Format PDFs into a multi-paged page +- Scale page contents size by set % +- Adjust Contrast +- Crop PDF +- Auto Split PDF (With physically scanned page dividers) +- Flatten PDFs +- Repair PDFs +- Detect and remove blank pages +- Compare 2 PDFs and show differences in text +- Add images to PDFs +- Rotating PDFs in 90 degree increments. +- Compressing PDFs to decrease their filesize. (Using OCRMyPDF) +- Add and remove passwords +- Set PDF Permissions +- Add watermark(s) +- Convert Any common file to PDF (using LibreOffice) +- Convert PDF to Word/Powerpoint/Others (using LibreOffice) +- Convert HTML to PDF +- URL to PDF +- Extract images from PDF +- Extract images from Scans +- Add page numbers +- Auto rename file by detecting PDF header text +- OCR on PDF (Using OCRMyPDF) +- PDF/A conversion (Using OCRMyPDF) +- Edit metadata +- Dark mode support. +- Custom download options (see [here](https://github.com/Frooodle/Stirling-PDF/blob/main/images/settings.png) for example) +- Parallel file processing and downloads +- API for integration with external scripts + +For a overview of the tasks and the technology each uses please view [groups.md](https://github.com/Frooodle/Stirling-PDF/blob/main/Groups.md) +Hosted instance/demo of the app can be seen [here](https://pdf.adminforge.de/) hosted by the team at adminforge.de + +## Technologies used +- Spring Boot + Thymeleaf +- PDFBox +- IText7 +- [LibreOffice](https://www.libreoffice.org/discover/libreoffice/) for advanced conversions +- [OcrMyPdf](https://github.com/ocrmypdf/OCRmyPDF) +- HTML, CSS, JavaScript +- Docker +- PDF.js +- PDF-LIB.js + diff --git a/apps/stirling-pdf/metadata/logo.jpg b/apps/stirling-pdf/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ee8682a909ccff5d9fc8abfa9e3d7cf688a8612 GIT binary patch literal 18046 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 F{|D&t%D(^r literal 0 HcmV?d00001