diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index dddeec42..dd9efe74 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -75,22 +75,6 @@ jobs: labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64/v8 - - name: Build and push Dockerfile-lite - uses: docker/build-push-action@v4.0.0 - with: - context: . - dockerfile: ./Dockerfile-lite - push: true - cache-from: type=gha - cache-to: type=gha,mode=max - tags: | - ${{ secrets.DOCKER_HUB_USERNAME }}/stirling-pdf-lite:${{ steps.versionNumber.outputs.versionNumber }} - ghcr.io/${{ github.repository_owner }}/stirling-pdf-lite:${{ steps.versionNumber.outputs.versionNumber }} - labels: | - ${{ steps.meta.outputs.labels }} - type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }} - type=raw,value=alpha,enable=${{ github.ref == 'refs/heads/main' }} - - name: Build and push Dockerfile-ultralite uses: docker/build-push-action@v4.0.0 with: @@ -100,9 +84,11 @@ jobs: cache-from: type=gha cache-to: type=gha,mode=max tags: | - ${{ secrets.DOCKER_HUB_USERNAME }}/stirling-pdf-ultralite:${{ steps.versionNumber.outputs.versionNumber }} - ghcr.io/${{ github.repository_owner }}/stirling-pdf-ultralite:${{ steps.versionNumber.outputs.versionNumber }} + ${{ secrets.DOCKER_HUB_USERNAME }}/s-pdf:ultra-light-latest + ghcr.io/${{ github.repository_owner }}/s-pdf:ultra-light-latest labels: | ${{ steps.meta.outputs.labels }} - type=raw,value=latest,enable=${{ github.ref == 'refs/heads/master' }} - type=raw,value=alpha,enable=${{ github.ref == 'refs/heads/main' }} \ No newline at end of file + type=raw,value=ultra-light-latest,enable=${{ github.ref == 'refs/heads/master' }} + type=raw,value=ultra-light-alpha,enable=${{ github.ref == 'refs/heads/main' }} + platforms: linux/amd64,linux/arm64/v8 + diff --git a/Dockerfile-lite b/Dockerfile-lite deleted file mode 100644 index 8cd84c8d..00000000 --- a/Dockerfile-lite +++ /dev/null @@ -1,20 +0,0 @@ -# Build jbig2enc in a separate stage -FROM frooodle/stirling-pdf-base:beta2 - -# Create scripts folder and copy local scripts -RUN mkdir /scripts -COPY ./scripts/* /scripts/ - -# Copy the application JAR file -COPY build/libs/*.jar app.jar - -# Expose the application port -EXPOSE 8080 - -# Set environment variables -ENV GROUPS_TO_REMOVE=LibreOffice - -# Run the application -RUN chmod +x /scripts/init.sh -ENTRYPOINT ["/scripts/init.sh"] -CMD ["java", "-jar", "/app.jar"] diff --git a/DockerfileBase-lite b/DockerfileBase-lite deleted file mode 100644 index ebe3c31b..00000000 --- a/DockerfileBase-lite +++ /dev/null @@ -1,57 +0,0 @@ -# Build jbig2enc in a separate stage -FROM debian:bullseye-slim as jbig2enc_builder - -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - git \ - automake \ - autoconf \ - libtool \ - libleptonica-dev \ - pkg-config \ - ca-certificates \ - zlib1g-dev \ - make \ - g++ - -RUN git clone https://github.com/agl/jbig2enc && \ - cd jbig2enc && \ - ./autogen.sh && \ - ./configure && \ - make && \ - make install - - -# Main stage -FROM openjdk:17-jdk-slim AS base -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - python3-uno \ - python3-pip \ - unoconv \ - pngquant \ - unpaper \ - ocrmypdf && \ - rm -rf /var/lib/apt/lists/* && \ - mkdir /usr/share/tesseract-ocr-original && \ - cp -r /usr/share/tesseract-ocr/* /usr/share/tesseract-ocr-original && \ - rm -rf /usr/share/tesseract-ocr - -# Python packages stage -FROM base AS python-packages -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - build-essential \ - libffi-dev \ - libssl-dev \ - zlib1g-dev \ - libjpeg-dev && \ - pip install --upgrade pip && \ - pip install --no-cache-dir \ - opencv-python-headless && \ - rm -rf /var/lib/apt/lists/* - -# Final stage: Copy necessary files from the previous stage -FROM base -COPY --from=python-packages /usr/local /usr/local -COPY --from=jbig2enc_builder /usr/local/bin/jbig2 /usr/local/bin/jbig2 \ No newline at end of file diff --git a/README.md b/README.md index 15e51cfb..864788b8 100644 --- a/README.md +++ b/README.md @@ -151,3 +151,24 @@ Using the same method you can also change ## API For those wanting to use Stirling-PDFs backend API to link with their own custom scripting to edit PDFs you can view all existing API documentation [here](https://app.swaggerhub.com/apis-docs/Frooodle/Stirling-PDF/) or navigate to /swagger-ui/index.html of your stirling-pdf instance for your versions documentation + + +## FAQ + +### Q1: Where is the authentication for Stirling PDF +There is no Auth within Stirling PDF and there is none planned. This feature will not be added. Instead its recommended to use trusted and secure auth software like Authentik or Authelia. + +### Q2: What are your planned features +- Crop +- Progress bar/Tracking +- Annotations (Sign/draw logic directly on page) +- Full custom logic pipelines to combine multiple operations together. +- Folder support with auto scanning to perform operations on +- Redact text +- Add page numbers +- Auto rename (Renames file based on file title text) +- URL to PDF +- Change contrast + +### Q3: Why is my application download .htm files +This is a issue caused commonly by your NGINX congifuration. The default file upload size for NGINX is 1MB, you need to add the following in your Nginx sites-available file. client_max_body_size SIZE; Where "SIZE" is 50M for example for 50MB files. \ No newline at end of file diff --git a/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java b/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java index a81a9130..a98edbb2 100644 --- a/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java +++ b/src/main/java/stirling/software/SPDF/config/EndpointConfiguration.java @@ -117,6 +117,7 @@ public class EndpointConfiguration { addEndpointToGroup("CLI", "pdf-to-text"); addEndpointToGroup("CLI", "pdf-to-html"); addEndpointToGroup("CLI", "pdf-to-xml"); + addEndpointToGroup("CLI", "ocr-pdf"); //python addEndpointToGroup("Python", "extract-image-scans"); @@ -142,6 +143,7 @@ public class EndpointConfiguration { //OCRmyPDF addEndpointToGroup("OCRmyPDF", "compress-pdf"); addEndpointToGroup("OCRmyPDF", "pdf-to-pdfa"); + addEndpointToGroup("OCRmyPDF", "ocr-pdf"); //Java addEndpointToGroup("Java", "merge-pdfs"); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6130f481..be16c7ec 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -22,4 +22,7 @@ server.servlet.context-path=${APP_ROOT_PATH:/} spring.devtools.restart.enabled=true spring.devtools.livereload.enabled=true -spring.thymeleaf.encoding=UTF-8 \ No newline at end of file +spring.thymeleaf.encoding=UTF-8 + +server.connection-timeout=${CONNECTION_TIMEOUT:5m} +spring.mvc.async.request-timeout=${ASYNC_CONNECTION_TIMEOUT:300000}