mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-07-27 07:35:22 +00:00
testing and docker replacements
This commit is contained in:
parent
2f977ff250
commit
3fd52ed564
44
.github/workflows/build.yml
vendored
44
.github/workflows/build.yml
vendored
@ -2,9 +2,9 @@ name: Build repo
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: ["main"]
|
branches: ["main", "V2", "V2-gha"]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: ["main"]
|
branches: ["main", "V2", "V2-gha"]
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
@ -114,6 +114,46 @@ jobs:
|
|||||||
name: openapi-docs
|
name: openapi-docs
|
||||||
path: ./SwaggerDoc.json
|
path: ./SwaggerDoc.json
|
||||||
|
|
||||||
|
frontend-validation:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Harden Runner
|
||||||
|
uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
|
||||||
|
with:
|
||||||
|
egress-policy: audit
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
cache: 'npm'
|
||||||
|
cache-dependency-path: frontend/package-lock.json
|
||||||
|
|
||||||
|
- name: Install frontend dependencies
|
||||||
|
run: |
|
||||||
|
cd frontend
|
||||||
|
npm ci
|
||||||
|
|
||||||
|
- name: Build frontend
|
||||||
|
run: |
|
||||||
|
cd frontend
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
- name: Run frontend tests (if available)
|
||||||
|
run: |
|
||||||
|
cd frontend
|
||||||
|
npm test --passWithNoTests --watchAll=false || true
|
||||||
|
|
||||||
|
- name: Upload frontend build artifacts
|
||||||
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||||
|
with:
|
||||||
|
name: frontend-build
|
||||||
|
path: frontend/dist/
|
||||||
|
retention-days: 3
|
||||||
|
|
||||||
check-licence:
|
check-licence:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -1,11 +1,36 @@
|
|||||||
# Backend Dockerfile - Java Spring Boot with all dependencies
|
# Backend Dockerfile - Java Spring Boot with all dependencies and build stage
|
||||||
|
# Build the application
|
||||||
|
FROM gradle:8.14-jdk21 AS build
|
||||||
|
|
||||||
|
COPY build.gradle .
|
||||||
|
COPY settings.gradle .
|
||||||
|
COPY gradlew .
|
||||||
|
COPY gradle gradle/
|
||||||
|
COPY app/core/build.gradle core/.
|
||||||
|
COPY app/common/build.gradle common/.
|
||||||
|
COPY app/proprietary/build.gradle proprietary/.
|
||||||
|
RUN ./gradlew build -x spotlessApply -x spotlessCheck -x test -x sonarqube || return 0
|
||||||
|
|
||||||
|
# Set the working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy the entire project to the working directory
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Build the application with DISABLE_ADDITIONAL_FEATURES=false
|
||||||
|
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
||||||
|
STIRLING_PDF_DESKTOP_UI=false \
|
||||||
|
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
|
# Main stage
|
||||||
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
||||||
|
|
||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
COPY scripts /scripts
|
COPY scripts /scripts
|
||||||
COPY pipeline /pipeline
|
COPY pipeline /pipeline
|
||||||
COPY app/core/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
COPY app/core/src/main/resources/static/fonts/*.ttf /usr/share/fonts/opentype/noto/
|
||||||
COPY app/core/build/libs/*.jar app.jar
|
# first /app directory is for the build stage, second is for the final image
|
||||||
|
COPY --from=build /app/app/core/build/libs/*.jar app.jar
|
||||||
|
|
||||||
ARG VERSION_TAG
|
ARG VERSION_TAG
|
||||||
|
|
||||||
@ -22,7 +47,7 @@ LABEL org.opencontainers.image.version="${VERSION_TAG}"
|
|||||||
LABEL org.opencontainers.image.keywords="PDF, manipulation, backend, API, Spring Boot"
|
LABEL org.opencontainers.image.keywords="PDF, manipulation, backend, API, Spring Boot"
|
||||||
|
|
||||||
# Set Environment Variables
|
# Set Environment Variables
|
||||||
ENV DISABLE_ADDITIONAL_FEATURES=true \
|
ENV DISABLE_ADDITIONAL_FEATURES=false \
|
||||||
VERSION_TAG=$VERSION_TAG \
|
VERSION_TAG=$VERSION_TAG \
|
||||||
JAVA_BASE_OPTS="-XX:+UnlockExperimentalVMOptions -XX:MaxRAMPercentage=75 -XX:InitiatingHeapOccupancyPercent=20 -XX:+G1PeriodicGCInvokesConcurrent -XX:G1PeriodicGCInterval=10000 -XX:+UseStringDeduplication -XX:G1PeriodicGCSystemLoadThreshold=70" \
|
JAVA_BASE_OPTS="-XX:+UnlockExperimentalVMOptions -XX:MaxRAMPercentage=75 -XX:InitiatingHeapOccupancyPercent=20 -XX:+G1PeriodicGCInvokesConcurrent -XX:G1PeriodicGCInterval=10000 -XX:+UseStringDeduplication -XX:G1PeriodicGCSystemLoadThreshold=70" \
|
||||||
JAVA_CUSTOM_OPTS="" \
|
JAVA_CUSTOM_OPTS="" \
|
||||||
@ -50,7 +75,6 @@ RUN echo "@main https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/a
|
|||||||
tini \
|
tini \
|
||||||
bash \
|
bash \
|
||||||
curl \
|
curl \
|
||||||
qpdf \
|
|
||||||
shadow \
|
shadow \
|
||||||
su-exec \
|
su-exec \
|
||||||
openssl \
|
openssl \
|
||||||
@ -63,11 +87,13 @@ RUN echo "@main https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/a
|
|||||||
# pdftohtml
|
# pdftohtml
|
||||||
poppler-utils \
|
poppler-utils \
|
||||||
# OCR MY PDF (unpaper for descew and other advanced features)
|
# OCR MY PDF (unpaper for descew and other advanced features)
|
||||||
|
unpaper \
|
||||||
tesseract-ocr-data-eng \
|
tesseract-ocr-data-eng \
|
||||||
tesseract-ocr-data-chi_sim \
|
tesseract-ocr-data-chi_sim \
|
||||||
tesseract-ocr-data-deu \
|
tesseract-ocr-data-deu \
|
||||||
tesseract-ocr-data-fra \
|
tesseract-ocr-data-fra \
|
||||||
tesseract-ocr-data-por \
|
tesseract-ocr-data-por \
|
||||||
|
ocrmypdf \
|
||||||
# CV
|
# CV
|
||||||
py3-opencv \
|
py3-opencv \
|
||||||
python3 \
|
python3 \
|
||||||
|
@ -77,12 +77,13 @@ RUN echo "@main https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/a
|
|||||||
# pdftohtml
|
# pdftohtml
|
||||||
poppler-utils \
|
poppler-utils \
|
||||||
# OCR MY PDF (unpaper for descew and other advanced featues)
|
# OCR MY PDF (unpaper for descew and other advanced featues)
|
||||||
qpdf \
|
unpaper \
|
||||||
tesseract-ocr-data-eng \
|
tesseract-ocr-data-eng \
|
||||||
tesseract-ocr-data-chi_sim \
|
tesseract-ocr-data-chi_sim \
|
||||||
tesseract-ocr-data-deu \
|
tesseract-ocr-data-deu \
|
||||||
tesseract-ocr-data-fra \
|
tesseract-ocr-data-fra \
|
||||||
tesseract-ocr-data-por \
|
tesseract-ocr-data-por \
|
||||||
|
ocrmypdf \
|
||||||
font-terminus font-dejavu font-noto font-noto-cjk font-awesome font-noto-extra font-liberation font-linux-libertine \
|
font-terminus font-dejavu font-noto font-noto-cjk font-awesome font-noto-extra font-liberation font-linux-libertine \
|
||||||
# CV
|
# CV
|
||||||
py3-opencv \
|
py3-opencv \
|
||||||
|
@ -1,4 +1,28 @@
|
|||||||
# Backend ultra-lite Dockerfile - Java Spring Boot with minimal dependencies
|
# Backend ultra-lite Dockerfile - Java Spring Boot with minimal dependencies and build stage
|
||||||
|
# Build the application
|
||||||
|
FROM gradle:8.14-jdk21 AS build
|
||||||
|
|
||||||
|
COPY build.gradle .
|
||||||
|
COPY settings.gradle .
|
||||||
|
COPY gradlew .
|
||||||
|
COPY gradle gradle/
|
||||||
|
COPY app/core/build.gradle core/.
|
||||||
|
COPY app/common/build.gradle common/.
|
||||||
|
COPY app/proprietary/build.gradle proprietary/.
|
||||||
|
RUN ./gradlew build -x spotlessApply -x spotlessCheck -x test -x sonarqube || return 0
|
||||||
|
|
||||||
|
# Set the working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy the entire project to the working directory
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Build the application with DISABLE_ADDITIONAL_FEATURES=true
|
||||||
|
RUN DISABLE_ADDITIONAL_FEATURES=true \
|
||||||
|
STIRLING_PDF_DESKTOP_UI=false \
|
||||||
|
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
|
# Main stage
|
||||||
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
FROM alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715
|
||||||
|
|
||||||
ARG VERSION_TAG
|
ARG VERSION_TAG
|
||||||
@ -18,11 +42,10 @@ ENV DISABLE_ADDITIONAL_FEATURES=true \
|
|||||||
TMP=/tmp/stirling-pdf
|
TMP=/tmp/stirling-pdf
|
||||||
|
|
||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
COPY scripts/download-security-jar.sh /scripts/download-security-jar.sh
|
|
||||||
COPY scripts/init-without-ocr.sh /scripts/init-without-ocr.sh
|
COPY scripts/init-without-ocr.sh /scripts/init-without-ocr.sh
|
||||||
COPY scripts/installFonts.sh /scripts/installFonts.sh
|
COPY scripts/installFonts.sh /scripts/installFonts.sh
|
||||||
COPY pipeline /pipeline
|
COPY pipeline /pipeline
|
||||||
COPY app/core/build/libs/*.jar app.jar
|
COPY --from=build /app/app/core/build/libs/*.jar app.jar
|
||||||
|
|
||||||
# Set up necessary directories and permissions
|
# Set up necessary directories and permissions
|
||||||
RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories && \
|
RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories && \
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
backend:
|
backend:
|
||||||
build:
|
build:
|
||||||
@ -43,8 +41,8 @@ services:
|
|||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
build:
|
build:
|
||||||
context: ../../frontend
|
context: ../..
|
||||||
dockerfile: ../docker/frontend/Dockerfile
|
dockerfile: docker/frontend/Dockerfile
|
||||||
container_name: stirling-pdf-frontend-fat
|
container_name: stirling-pdf-frontend-fat
|
||||||
restart: on-failure:5
|
restart: on-failure:5
|
||||||
ports:
|
ports:
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
stirling-pdf-monolith:
|
stirling-pdf-monolith:
|
||||||
build:
|
build:
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
backend:
|
backend:
|
||||||
build:
|
build:
|
||||||
@ -38,8 +36,8 @@ services:
|
|||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
build:
|
build:
|
||||||
context: ../../frontend
|
context: ../..
|
||||||
dockerfile: ../docker/frontend/Dockerfile
|
dockerfile: docker/frontend/Dockerfile
|
||||||
container_name: stirling-pdf-frontend-ultra-lite
|
container_name: stirling-pdf-frontend-ultra-lite
|
||||||
restart: on-failure:5
|
restart: on-failure:5
|
||||||
ports:
|
ports:
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
backend:
|
backend:
|
||||||
build:
|
build:
|
||||||
@ -41,8 +39,8 @@ services:
|
|||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
build:
|
build:
|
||||||
context: ../../frontend
|
context: ../..
|
||||||
dockerfile: ../docker/frontend/Dockerfile
|
dockerfile: docker/frontend/Dockerfile
|
||||||
container_name: stirling-pdf-frontend
|
container_name: stirling-pdf-frontend
|
||||||
restart: on-failure:5
|
restart: on-failure:5
|
||||||
ports:
|
ports:
|
||||||
|
@ -4,13 +4,13 @@ FROM node:20-alpine AS build
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Copy package files
|
# Copy package files
|
||||||
COPY package*.json ./
|
COPY frontend/package*.json ./
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
||||||
# Copy source code
|
# Copy source code
|
||||||
COPY . .
|
COPY frontend .
|
||||||
|
|
||||||
# Build the application
|
# Build the application
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
@ -22,8 +22,8 @@ FROM nginx:alpine
|
|||||||
COPY --from=build /app/dist /usr/share/nginx/html
|
COPY --from=build /app/dist /usr/share/nginx/html
|
||||||
|
|
||||||
# Copy nginx configuration and entrypoint
|
# Copy nginx configuration and entrypoint
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
COPY docker/frontend/nginx.conf /etc/nginx/nginx.conf
|
||||||
COPY entrypoint.sh /entrypoint.sh
|
COPY docker/frontend/entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
# Make entrypoint executable
|
# Make entrypoint executable
|
||||||
RUN chmod +x /entrypoint.sh
|
RUN chmod +x /entrypoint.sh
|
||||||
|
@ -18,6 +18,9 @@ http {
|
|||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
index index.html index.htm;
|
index index.html index.htm;
|
||||||
|
|
||||||
|
# Global settings for file uploads
|
||||||
|
client_max_body_size 100m;
|
||||||
|
|
||||||
# Handle client-side routing - support subpaths
|
# Handle client-side routing - support subpaths
|
||||||
location / {
|
location / {
|
||||||
try_files $uri $uri/ /index.html;
|
try_files $uri $uri/ /index.html;
|
||||||
@ -32,6 +35,21 @@ http {
|
|||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header X-Forwarded-Host $host;
|
proxy_set_header X-Forwarded-Host $host;
|
||||||
proxy_set_header X-Forwarded-Port $server_port;
|
proxy_set_header X-Forwarded-Port $server_port;
|
||||||
|
|
||||||
|
# Additional headers for proper API proxying
|
||||||
|
proxy_set_header Connection '';
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_cache off;
|
||||||
|
|
||||||
|
# Timeout settings for large file uploads
|
||||||
|
proxy_connect_timeout 60s;
|
||||||
|
proxy_send_timeout 60s;
|
||||||
|
proxy_read_timeout 60s;
|
||||||
|
|
||||||
|
# Request size limits for file uploads
|
||||||
|
client_max_body_size 100m;
|
||||||
|
proxy_request_buffering off;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Cache static assets
|
# Cache static assets
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
|
|
||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
container_name: Stirling-PDF-Fat-Disable-Endpoints
|
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-fat
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 4G
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP'"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 16
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/usr/share/tessdata:rw
|
|
||||||
- ./stirling/latest/config:/configs:rw
|
|
||||||
- ./stirling/latest/logs:/logs:rw
|
|
||||||
- ../testing/allEndpointsRemovedSettings.yml:/configs/settings.yml:rw
|
|
||||||
environment:
|
|
||||||
DISABLE_ADDITIONAL_FEATURES: "false"
|
|
||||||
SECURITY_ENABLELOGIN: "false"
|
|
||||||
PUID: 1002
|
|
||||||
PGID: 1002
|
|
||||||
UMASK: "022"
|
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
|
||||||
UI_APPNAME: Stirling-PDF
|
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest-fat with all Endpoints Disabled
|
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest-fat
|
|
||||||
SYSTEM_MAXFILESIZE: "100"
|
|
||||||
METRICS_ENABLED: "true"
|
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
|
||||||
SHOW_SURVEY: "true"
|
|
||||||
restart: on-failure:5
|
|
@ -1,64 +0,0 @@
|
|||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
container_name: Stirling-PDF-Security-Fat-Postgres
|
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-fat-postgres
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 4G
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP'" ]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 16
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/usr/share/tessdata:rw
|
|
||||||
- ./stirling/latest/config:/configs:rw
|
|
||||||
- ./stirling/latest/logs:/logs:rw
|
|
||||||
environment:
|
|
||||||
DISABLE_ADDITIONAL_FEATURES: "false"
|
|
||||||
SECURITY_ENABLELOGIN: "false"
|
|
||||||
PUID: 1002
|
|
||||||
PGID: 1002
|
|
||||||
UMASK: "022"
|
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
|
||||||
UI_APPNAME: Stirling-PDF
|
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest-fat with Security and PostgreSQL
|
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest-fat-PostgreSQL
|
|
||||||
SYSTEM_MAXFILESIZE: "100"
|
|
||||||
METRICS_ENABLED: "true"
|
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
|
||||||
SYSTEM_DATASOURCE_ENABLECUSTOMDATABASE: "true"
|
|
||||||
SYSTEM_DATASOURCE_CUSTOMDATABASEURL: "jdbc:postgresql://db:5432/stirling_pdf"
|
|
||||||
SYSTEM_DATASOURCE_USERNAME: "admin"
|
|
||||||
SYSTEM_DATASOURCE_PASSWORD: "stirling"
|
|
||||||
SHOW_SURVEY: "true"
|
|
||||||
restart: on-failure:5
|
|
||||||
|
|
||||||
db:
|
|
||||||
image: 'postgres:17.2-alpine'
|
|
||||||
restart: on-failure:5
|
|
||||||
container_name: db
|
|
||||||
ports:
|
|
||||||
- "5432:5432"
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: "stirling_pdf"
|
|
||||||
POSTGRES_USER: "admin"
|
|
||||||
POSTGRES_PASSWORD: "stirling"
|
|
||||||
shm_size: "512mb"
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 512m
|
|
||||||
cpus: "0.5"
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD-SHELL", "pg_isready -U admin stirling_pdf" ]
|
|
||||||
interval: 1s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/pgdata
|
|
@ -1,34 +0,0 @@
|
|||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
container_name: Stirling-PDF-Security-Fat
|
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-fat
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 4G
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP'"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 16
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/usr/share/tessdata:rw
|
|
||||||
- ./stirling/latest/config:/configs:rw
|
|
||||||
- ./stirling/latest/logs:/logs:rw
|
|
||||||
environment:
|
|
||||||
DISABLE_ADDITIONAL_FEATURES: "false"
|
|
||||||
SECURITY_ENABLELOGIN: "false"
|
|
||||||
PUID: 1002
|
|
||||||
PGID: 1002
|
|
||||||
UMASK: "022"
|
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
|
||||||
UI_APPNAME: Stirling-PDF
|
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest-fat with Security
|
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest-fat
|
|
||||||
SYSTEM_MAXFILESIZE: "100"
|
|
||||||
METRICS_ENABLED: "true"
|
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
|
||||||
SHOW_SURVEY: "true"
|
|
||||||
restart: on-failure:5
|
|
@ -1,42 +0,0 @@
|
|||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
container_name: Stirling-PDF-Security
|
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 4G
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP' && curl -fL http://localhost:8080/ | grep -q 'Please sign in'"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 16
|
|
||||||
ports:
|
|
||||||
- "8080:8080"
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/usr/share/tessdata:rw
|
|
||||||
- ./stirling/latest/config:/configs:rw
|
|
||||||
- ./stirling/latest/logs:/logs:rw
|
|
||||||
environment:
|
|
||||||
DISABLE_ADDITIONAL_FEATURES: "false"
|
|
||||||
SECURITY_ENABLELOGIN: "true"
|
|
||||||
SECURITY_OAUTH2_ENABLED: "true"
|
|
||||||
SECURITY_OAUTH2_AUTOCREATEUSER: "true" # This is set to true to allow auto-creation of non-existing users in Stirling-PDF
|
|
||||||
SECURITY_OAUTH2_ISSUER: "https://accounts.google.com" # Change with any other provider that supports OpenID Connect Discovery (/.well-known/openid-configuration) end-point
|
|
||||||
SECURITY_OAUTH2_CLIENTID: "<YOUR CLIENT ID>.apps.googleusercontent.com" # Client ID from your provider
|
|
||||||
SECURITY_OAUTH2_CLIENTSECRET: "<YOUR CLIENT SECRET>" # Client Secret from your provider
|
|
||||||
SECURITY_OAUTH2_SCOPES: "openid,profile,email" # Expected OAuth2 Scope
|
|
||||||
SECURITY_OAUTH2_USEASUSERNAME: "email" # Default is 'email'; custom fields can be used as the username
|
|
||||||
SECURITY_OAUTH2_PROVIDER: "google" # Set this to your OAuth provider's name, e.g., 'google' or 'keycloak'
|
|
||||||
PUID: 1002
|
|
||||||
PGID: 1002
|
|
||||||
UMASK: "022"
|
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
|
||||||
UI_APPNAME: Stirling-PDF
|
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest with Security
|
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
|
||||||
SYSTEM_MAXFILESIZE: "100"
|
|
||||||
METRICS_ENABLED: "true"
|
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
|
||||||
SHOW_SURVEY: "true"
|
|
||||||
restart: on-failure:5
|
|
@ -1,34 +0,0 @@
|
|||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
container_name: Stirling-PDF-Security
|
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 4G
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP' && curl -fL http://localhost:8080/ | grep -q 'Please sign in'"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 16
|
|
||||||
ports:
|
|
||||||
- "8080:8080"
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/usr/share/tessdata:rw
|
|
||||||
- ./stirling/latest/config:/configs:rw
|
|
||||||
- ./stirling/latest/logs:/logs:rw
|
|
||||||
environment:
|
|
||||||
DISABLE_ADDITIONAL_FEATURES: "false"
|
|
||||||
SECURITY_ENABLELOGIN: "true"
|
|
||||||
PUID: 1002
|
|
||||||
PGID: 1002
|
|
||||||
UMASK: "022"
|
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
|
||||||
UI_APPNAME: Stirling-PDF
|
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest with Security
|
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
|
||||||
SYSTEM_MAXFILESIZE: "100"
|
|
||||||
METRICS_ENABLED: "true"
|
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
|
||||||
SHOW_SURVEY: "true"
|
|
||||||
restart: on-failure:5
|
|
@ -1,31 +0,0 @@
|
|||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
container_name: Stirling-PDF-Ultra-Lite-Security
|
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-ultra-lite
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 1G
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP' && curl -fL http://localhost:8080/ | grep -q 'Please sign in'"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 16
|
|
||||||
ports:
|
|
||||||
- "8080:8080"
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/usr/share/tessdata:rw
|
|
||||||
- ./stirling/latest/config:/configs:rw
|
|
||||||
- ./stirling/latest/logs:/logs:rw
|
|
||||||
environment:
|
|
||||||
DISABLE_ADDITIONAL_FEATURES: "false"
|
|
||||||
SECURITY_ENABLELOGIN: "true"
|
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
|
||||||
UI_APPNAME: Stirling-PDF-Lite
|
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Lite Latest with Security
|
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF-Lite Latest
|
|
||||||
SYSTEM_MAXFILESIZE: "100"
|
|
||||||
METRICS_ENABLED: "true"
|
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
|
||||||
SHOW_SURVEY: "true"
|
|
||||||
restart: on-failure:5
|
|
@ -1,31 +0,0 @@
|
|||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
container_name: Stirling-PDF
|
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 4G
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP' && curl -fL http://localhost:8080/ | grep -qv 'Please sign in'"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 16
|
|
||||||
ports:
|
|
||||||
- "8080:8080"
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/usr/share/tessdata:rw
|
|
||||||
- ./stirling/latest/config:/configs:rw
|
|
||||||
- ./stirling/latest/logs:/logs:rw
|
|
||||||
environment:
|
|
||||||
SECURITY_ENABLELOGIN: "false"
|
|
||||||
LANGS: "en_GB,en_US,ar_AR,de_DE,fr_FR,es_ES,zh_CN,zh_TW,ca_CA,it_IT,sv_SE,pl_PL,ro_RO,ko_KR,pt_BR,ru_RU,el_GR,hi_IN,hu_HU,tr_TR,id_ID"
|
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
|
||||||
UI_APPNAME: Stirling-PDF
|
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest
|
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
|
||||||
SYSTEM_MAXFILESIZE: "100"
|
|
||||||
METRICS_ENABLED: "true"
|
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
|
||||||
SHOW_SURVEY: "true"
|
|
||||||
restart: on-failure:5
|
|
@ -1,34 +0,0 @@
|
|||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
container_name: Stirling-PDF-Security-Fat-with-login
|
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-fat
|
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 4G
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f -H 'X-API-KEY: 123456789' http://localhost:8080/api/v1/info/status | grep -q 'UP'"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 16
|
|
||||||
ports:
|
|
||||||
- 8080:8080
|
|
||||||
volumes:
|
|
||||||
- ./stirling/latest/data:/usr/share/tessdata:rw
|
|
||||||
- ./stirling/latest/config:/configs:rw
|
|
||||||
- ./stirling/latest/logs:/logs:rw
|
|
||||||
environment:
|
|
||||||
DISABLE_ADDITIONAL_FEATURES: "false"
|
|
||||||
SECURITY_ENABLELOGIN: "true"
|
|
||||||
PUID: 1002
|
|
||||||
PGID: 1002
|
|
||||||
UMASK: "022"
|
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
|
||||||
UI_APPNAME: Stirling-PDF
|
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest-fat with Security
|
|
||||||
UI_APPNAMENAVBAR: Stirling-PDF Latest-fat
|
|
||||||
SYSTEM_MAXFILESIZE: "100"
|
|
||||||
METRICS_ENABLED: "true"
|
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
|
||||||
SECURITY_CUSTOMGLOBALAPIKEY: "123456789"
|
|
||||||
restart: on-failure:5
|
|
@ -21,7 +21,7 @@ import { pdfExportService } from "../../services/pdfExportService";
|
|||||||
import { useThumbnailGeneration } from "../../hooks/useThumbnailGeneration";
|
import { useThumbnailGeneration } from "../../hooks/useThumbnailGeneration";
|
||||||
import { calculateScaleFromFileSize } from "../../utils/thumbnailUtils";
|
import { calculateScaleFromFileSize } from "../../utils/thumbnailUtils";
|
||||||
import { fileStorage } from "../../services/fileStorage";
|
import { fileStorage } from "../../services/fileStorage";
|
||||||
import './pageEditor.module.css';
|
import './PageEditor.module.css';
|
||||||
import PageThumbnail from './PageThumbnail';
|
import PageThumbnail from './PageThumbnail';
|
||||||
import BulkSelectionPanel from './BulkSelectionPanel';
|
import BulkSelectionPanel from './BulkSelectionPanel';
|
||||||
import DragDropGrid from './DragDropGrid';
|
import DragDropGrid from './DragDropGrid';
|
||||||
|
@ -19,9 +19,8 @@ if [[ "$INSTALL_BOOK_AND_ADVANCED_HTML_OPS" == "true" && "$FAT_DOCKER" != "true"
|
|||||||
#apk add --no-cache calibre@testing
|
#apk add --no-cache calibre@testing
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$FAT_DOCKER" != "true" ]]; then
|
# Security jar is now built into the application jar during Docker build
|
||||||
/scripts/download-security-jar.sh
|
# No need to download it separately
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$LANGS" ]]; then
|
if [[ -n "$LANGS" ]]; then
|
||||||
/scripts/installFonts.sh $LANGS
|
/scripts/installFonts.sh $LANGS
|
||||||
|
63
testing/compose/docker-compose-security-with-login.yml
Normal file
63
testing/compose/docker-compose-security-with-login.yml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
services:
|
||||||
|
backend:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: docker/backend/Dockerfile
|
||||||
|
container_name: Stirling-PDF-Security-with-login
|
||||||
|
restart: on-failure:5
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 4G
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP'"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 16
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
volumes:
|
||||||
|
- ../../stirling/latest/data:/usr/share/tessdata:rw
|
||||||
|
- ../../stirling/latest/config:/configs:rw
|
||||||
|
- ../../stirling/latest/logs:/logs:rw
|
||||||
|
environment:
|
||||||
|
DISABLE_ADDITIONAL_FEATURES: "false"
|
||||||
|
DOCKER_ENABLE_SECURITY: "true"
|
||||||
|
SECURITY_ENABLELOGIN: "true"
|
||||||
|
SECURITY_INITIALLOGIN_USERNAME: "admin"
|
||||||
|
SECURITY_INITIALLOGIN_PASSWORD: "stirling"
|
||||||
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
|
UI_APPNAME: Stirling-PDF
|
||||||
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest with Security and Login
|
||||||
|
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
||||||
|
SYSTEM_MAXFILESIZE: "100"
|
||||||
|
METRICS_ENABLED: "true"
|
||||||
|
SYSTEM_GOOGLEVISIBILITY: "true"
|
||||||
|
SECURITY_CUSTOMGLOBALAPIKEY: "123456789"
|
||||||
|
SHOW_SURVEY: "true"
|
||||||
|
networks:
|
||||||
|
- stirling-network
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: docker/frontend/Dockerfile
|
||||||
|
container_name: stirling-pdf-frontend-security-login
|
||||||
|
restart: on-failure:5
|
||||||
|
ports:
|
||||||
|
- "3000:80"
|
||||||
|
environment:
|
||||||
|
BACKEND_URL: http://backend:8080
|
||||||
|
depends_on:
|
||||||
|
- backend
|
||||||
|
networks:
|
||||||
|
- stirling-network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
stirling-network:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
stirling-data:
|
||||||
|
stirling-config:
|
||||||
|
stirling-logs:
|
59
testing/compose/docker-compose-security.yml
Normal file
59
testing/compose/docker-compose-security.yml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
services:
|
||||||
|
backend:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: docker/backend/Dockerfile
|
||||||
|
container_name: Stirling-PDF-Security
|
||||||
|
restart: on-failure:5
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 4G
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP'"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 16
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
volumes:
|
||||||
|
- ../../stirling/latest/data:/usr/share/tessdata:rw
|
||||||
|
- ../../stirling/latest/config:/configs:rw
|
||||||
|
- ../../stirling/latest/logs:/logs:rw
|
||||||
|
environment:
|
||||||
|
DISABLE_ADDITIONAL_FEATURES: "false"
|
||||||
|
SECURITY_ENABLELOGIN: "false"
|
||||||
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
|
UI_APPNAME: Stirling-PDF
|
||||||
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest with Security
|
||||||
|
UI_APPNAMENAVBAR: Stirling-PDF Latest
|
||||||
|
SYSTEM_MAXFILESIZE: "100"
|
||||||
|
METRICS_ENABLED: "true"
|
||||||
|
SYSTEM_GOOGLEVISIBILITY: "true"
|
||||||
|
SHOW_SURVEY: "true"
|
||||||
|
networks:
|
||||||
|
- stirling-network
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: docker/frontend/Dockerfile
|
||||||
|
container_name: stirling-pdf-frontend-security
|
||||||
|
restart: on-failure:5
|
||||||
|
ports:
|
||||||
|
- "3000:80"
|
||||||
|
environment:
|
||||||
|
BACKEND_URL: http://backend:8080
|
||||||
|
depends_on:
|
||||||
|
- backend
|
||||||
|
networks:
|
||||||
|
- stirling-network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
stirling-network:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
stirling-data:
|
||||||
|
stirling-config:
|
||||||
|
stirling-logs:
|
@ -1,11 +1,14 @@
|
|||||||
services:
|
services:
|
||||||
stirling-pdf:
|
backend:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: docker/backend/Dockerfile.ultra-lite
|
||||||
container_name: Stirling-PDF-Ultra-Lite
|
container_name: Stirling-PDF-Ultra-Lite
|
||||||
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-ultra-lite
|
restart: on-failure:5
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 1G
|
memory: 2G
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP' && curl -fL http://localhost:8080/ | grep -qv 'Please sign in'"]
|
test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP' && curl -fL http://localhost:8080/ | grep -qv 'Please sign in'"]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
@ -14,10 +17,12 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
volumes:
|
volumes:
|
||||||
- ./stirling/latest/config:/configs:rw
|
- ../../stirling/latest/config:/configs:rw
|
||||||
- ./stirling/latest/logs:/logs:rw
|
- ../../stirling/latest/logs:/logs:rw
|
||||||
environment:
|
environment:
|
||||||
|
DISABLE_ADDITIONAL_FEATURES: "true"
|
||||||
SECURITY_ENABLELOGIN: "false"
|
SECURITY_ENABLELOGIN: "false"
|
||||||
|
ENDPOINTS_GROUPS_TO_REMOVE: "CLI"
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
UI_APPNAME: Stirling-PDF-Ultra-lite
|
UI_APPNAME: Stirling-PDF-Ultra-lite
|
||||||
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Ultra-lite Latest
|
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF-Ultra-lite Latest
|
||||||
@ -26,4 +31,29 @@ services:
|
|||||||
METRICS_ENABLED: "true"
|
METRICS_ENABLED: "true"
|
||||||
SYSTEM_GOOGLEVISIBILITY: "true"
|
SYSTEM_GOOGLEVISIBILITY: "true"
|
||||||
SHOW_SURVEY: "true"
|
SHOW_SURVEY: "true"
|
||||||
|
networks:
|
||||||
|
- stirling-network
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
build:
|
||||||
|
context: ../..
|
||||||
|
dockerfile: docker/frontend/Dockerfile
|
||||||
|
container_name: stirling-pdf-frontend-ultra-lite
|
||||||
restart: on-failure:5
|
restart: on-failure:5
|
||||||
|
ports:
|
||||||
|
- "3000:80"
|
||||||
|
environment:
|
||||||
|
BACKEND_URL: http://backend:8080
|
||||||
|
depends_on:
|
||||||
|
- backend
|
||||||
|
networks:
|
||||||
|
- stirling-network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
stirling-network:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
stirling-data:
|
||||||
|
stirling-config:
|
||||||
|
stirling-logs:
|
121
testing/test.sh
121
testing/test.sh
@ -225,8 +225,8 @@ test_compose() {
|
|||||||
|
|
||||||
echo "Testing $compose_file configuration..."
|
echo "Testing $compose_file configuration..."
|
||||||
|
|
||||||
# Start up the Docker Compose service
|
# Start up the Docker Compose service with forced rebuild
|
||||||
docker-compose -f "$compose_file" up -d
|
docker-compose -f "$compose_file" up -d --build
|
||||||
|
|
||||||
# Wait for the service to become healthy
|
# Wait for the service to become healthy
|
||||||
if check_health "$service_name" "$compose_file"; then
|
if check_health "$service_name" "$compose_file"; then
|
||||||
@ -276,22 +276,27 @@ main() {
|
|||||||
EXPECTED_VERSION=$(get_expected_version)
|
EXPECTED_VERSION=$(get_expected_version)
|
||||||
echo "Expected version: $EXPECTED_VERSION"
|
echo "Expected version: $EXPECTED_VERSION"
|
||||||
|
|
||||||
# Building Docker images
|
|
||||||
# docker build --no-cache --pull --build-arg VERSION_TAG=alpha -t stirlingtools/stirling-pdf:latest -f ./Dockerfile .
|
|
||||||
docker build --build-arg VERSION_TAG=alpha -t docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-ultra-lite -f ./Dockerfile.ultra-lite .
|
|
||||||
|
|
||||||
# Test each configuration
|
# Test each configuration
|
||||||
run_tests "Stirling-PDF-Ultra-Lite" "./exampleYmlFiles/docker-compose-latest-ultra-lite.yml"
|
run_tests "Stirling-PDF-Ultra-Lite" "./testing/compose/docker-compose-ultra-lite.yml"
|
||||||
|
|
||||||
echo "Testing webpage accessibility..."
|
echo "Testing basic frontend homepage accessibility..."
|
||||||
cd "testing"
|
if curl -f http://localhost:3000 > /dev/null 2>&1; then
|
||||||
if ./test_webpages.sh -f webpage_urls.txt -b http://localhost:8080; then
|
passed_tests+=("Frontend-Homepage-Accessibility-lite")
|
||||||
passed_tests+=("Webpage-Accessibility-lite")
|
echo "Frontend homepage accessibility check passed"
|
||||||
else
|
else
|
||||||
failed_tests+=("Webpage-Accessibility-lite")
|
failed_tests+=("Frontend-Homepage-Accessibility-lite")
|
||||||
echo "Webpage accessibility lite tests failed"
|
echo "Frontend homepage accessibility check failed"
|
||||||
fi
|
fi
|
||||||
cd "$PROJECT_ROOT"
|
|
||||||
|
# echo "Testing webpage accessibility..."
|
||||||
|
# cd "testing"
|
||||||
|
# if ./test_webpages.sh -f webpage_urls.txt -b http://localhost:8080; then
|
||||||
|
# passed_tests+=("Webpage-Accessibility-lite")
|
||||||
|
# else
|
||||||
|
# failed_tests+=("Webpage-Accessibility-lite")
|
||||||
|
# echo "Webpage accessibility lite tests failed"
|
||||||
|
# fi
|
||||||
|
# cd "$PROJECT_ROOT"
|
||||||
|
|
||||||
echo "Testing version verification..."
|
echo "Testing version verification..."
|
||||||
if verify_app_version "Stirling-PDF-Ultra-Lite" "http://localhost:8080"; then
|
if verify_app_version "Stirling-PDF-Ultra-Lite" "http://localhost:8080"; then
|
||||||
@ -302,10 +307,11 @@ main() {
|
|||||||
echo "Version verification failed for Stirling-PDF-Ultra-Lite"
|
echo "Version verification failed for Stirling-PDF-Ultra-Lite"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker-compose -f "./exampleYmlFiles/docker-compose-latest-ultra-lite.yml" down
|
docker-compose -f "./testing/compose/docker-compose-ultra-lite.yml" down
|
||||||
|
|
||||||
# run_tests "Stirling-PDF" "./exampleYmlFiles/docker-compose-latest.yml"
|
# Clean up any generated config files
|
||||||
# docker-compose -f "./exampleYmlFiles/docker-compose-latest.yml" down
|
echo "Cleaning up generated config files..."
|
||||||
|
rm -rf "$PROJECT_ROOT/stirling/" 2>/dev/null || true
|
||||||
|
|
||||||
export DISABLE_ADDITIONAL_FEATURES=false
|
export DISABLE_ADDITIONAL_FEATURES=false
|
||||||
# Run the gradlew build command and check if it fails
|
# Run the gradlew build command and check if it fails
|
||||||
@ -319,43 +325,44 @@ main() {
|
|||||||
EXPECTED_VERSION=$(get_expected_version)
|
EXPECTED_VERSION=$(get_expected_version)
|
||||||
echo "Expected version with security enabled: $EXPECTED_VERSION"
|
echo "Expected version with security enabled: $EXPECTED_VERSION"
|
||||||
|
|
||||||
# Building Docker images with security enabled
|
|
||||||
# docker build --no-cache --pull --build-arg VERSION_TAG=alpha -t stirlingtools/stirling-pdf:latest -f ./Dockerfile .
|
|
||||||
# docker build --no-cache --pull --build-arg VERSION_TAG=alpha -t stirlingtools/stirling-pdf:latest-ultra-lite -f ./Dockerfile.ultra-lite .
|
|
||||||
docker build --no-cache --pull --build-arg VERSION_TAG=alpha -t docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest-fat -f ./Dockerfile.fat .
|
|
||||||
|
|
||||||
|
|
||||||
# Test each configuration with security
|
# Test each configuration with security
|
||||||
# run_tests "Stirling-PDF-Ultra-Lite-Security" "./exampleYmlFiles/docker-compose-latest-ultra-lite-security.yml"
|
run_tests "Stirling-PDF-Security" "./testing/compose/docker-compose-security.yml"
|
||||||
# docker-compose -f "./exampleYmlFiles/docker-compose-latest-ultra-lite-security.yml" down
|
|
||||||
# run_tests "Stirling-PDF-Security" "./exampleYmlFiles/docker-compose-latest-security.yml"
|
|
||||||
# docker-compose -f "./exampleYmlFiles/docker-compose-latest-security.yml" down
|
|
||||||
|
|
||||||
|
echo "Testing basic frontend homepage accessibility..."
|
||||||
run_tests "Stirling-PDF-Security-Fat" "./exampleYmlFiles/docker-compose-latest-fat-security.yml"
|
if curl -f http://localhost:3000 > /dev/null 2>&1; then
|
||||||
|
passed_tests+=("Frontend-Homepage-Accessibility-full")
|
||||||
echo "Testing webpage accessibility..."
|
echo "Frontend homepage accessibility check passed"
|
||||||
cd "testing"
|
|
||||||
if ./test_webpages.sh -f webpage_urls_full.txt -b http://localhost:8080; then
|
|
||||||
passed_tests+=("Webpage-Accessibility-full")
|
|
||||||
else
|
else
|
||||||
failed_tests+=("Webpage-Accessibility-full")
|
failed_tests+=("Frontend-Homepage-Accessibility-full")
|
||||||
echo "Webpage accessibility full tests failed"
|
echo "Frontend homepage accessibility check failed"
|
||||||
fi
|
fi
|
||||||
cd "$PROJECT_ROOT"
|
|
||||||
|
# echo "Testing webpage accessibility..."
|
||||||
|
# cd "testing"
|
||||||
|
# if ./test_webpages.sh -f webpage_urls_full.txt -b http://localhost:8080; then
|
||||||
|
# passed_tests+=("Webpage-Accessibility-full")
|
||||||
|
# else
|
||||||
|
# failed_tests+=("Webpage-Accessibility-full")
|
||||||
|
# echo "Webpage accessibility full tests failed"
|
||||||
|
# fi
|
||||||
|
# cd "$PROJECT_ROOT"
|
||||||
|
|
||||||
echo "Testing version verification..."
|
echo "Testing version verification..."
|
||||||
if verify_app_version "Stirling-PDF-Security-Fat" "http://localhost:8080"; then
|
if verify_app_version "Stirling-PDF-Security" "http://localhost:8080"; then
|
||||||
passed_tests+=("Stirling-PDF-Security-Fat-Version-Check")
|
passed_tests+=("Stirling-PDF-Security-Version-Check")
|
||||||
echo "Version verification passed for Stirling-PDF-Security-Fat"
|
echo "Version verification passed for Stirling-PDF-Security"
|
||||||
else
|
else
|
||||||
failed_tests+=("Stirling-PDF-Security-Fat-Version-Check")
|
failed_tests+=("Stirling-PDF-Security-Version-Check")
|
||||||
echo "Version verification failed for Stirling-PDF-Security-Fat"
|
echo "Version verification failed for Stirling-PDF-Security"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker-compose -f "./exampleYmlFiles/docker-compose-latest-fat-security.yml" down
|
docker-compose -f "./testing/compose/docker-compose-security.yml" down
|
||||||
|
|
||||||
run_tests "Stirling-PDF-Security-Fat-with-login" "./exampleYmlFiles/test_cicd.yml"
|
# Clean up any generated config files
|
||||||
|
echo "Cleaning up generated config files..."
|
||||||
|
rm -rf "$PROJECT_ROOT/stirling/" 2>/dev/null || true
|
||||||
|
|
||||||
|
run_tests "Stirling-PDF-Security-with-login" "./testing/compose/docker-compose-security-with-login.yml"
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
# Create directory for file snapshots if it doesn't exist
|
# Create directory for file snapshots if it doesn't exist
|
||||||
@ -368,7 +375,7 @@ main() {
|
|||||||
DIFF_FILE="$SNAPSHOT_DIR/files_diff.txt"
|
DIFF_FILE="$SNAPSHOT_DIR/files_diff.txt"
|
||||||
|
|
||||||
# Define container name variable for consistency
|
# Define container name variable for consistency
|
||||||
CONTAINER_NAME="Stirling-PDF-Security-Fat-with-login"
|
CONTAINER_NAME="Stirling-PDF-Security-with-login"
|
||||||
|
|
||||||
capture_file_list "$CONTAINER_NAME" "$BEFORE_FILE"
|
capture_file_list "$CONTAINER_NAME" "$BEFORE_FILE"
|
||||||
|
|
||||||
@ -409,28 +416,12 @@ main() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker-compose -f "./exampleYmlFiles/test_cicd.yml" down
|
docker-compose -f "./testing/compose/docker-compose-security-with-login.yml" down
|
||||||
|
|
||||||
run_tests "Stirling-PDF-Fat-Disable-Endpoints" "./exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml"
|
# Clean up any generated config files
|
||||||
|
echo "Cleaning up generated config files..."
|
||||||
|
rm -rf "$PROJECT_ROOT/stirling/" 2>/dev/null || true
|
||||||
|
|
||||||
echo "Testing disabled endpoints..."
|
|
||||||
if ./testing/test_disabledEndpoints.sh -f ./testing/endpoints.txt -b http://localhost:8080; then
|
|
||||||
passed_tests+=("Disabled-Endpoints")
|
|
||||||
else
|
|
||||||
failed_tests+=("Disabled-Endpoints")
|
|
||||||
echo "Disabled Endpoints tests failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Testing version verification..."
|
|
||||||
if verify_app_version "Stirling-PDF-Fat-Disable-Endpoints" "http://localhost:8080"; then
|
|
||||||
passed_tests+=("Stirling-PDF-Fat-Disable-Endpoints-Version-Check")
|
|
||||||
echo "Version verification passed for Stirling-PDF-Fat-Disable-Endpoints"
|
|
||||||
else
|
|
||||||
failed_tests+=("Stirling-PDF-Fat-Disable-Endpoints-Version-Check")
|
|
||||||
echo "Version verification failed for Stirling-PDF-Fat-Disable-Endpoints"
|
|
||||||
fi
|
|
||||||
|
|
||||||
docker-compose -f "./exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml" down
|
|
||||||
|
|
||||||
# Report results
|
# Report results
|
||||||
echo "All tests completed in $SECONDS seconds."
|
echo "All tests completed in $SECONDS seconds."
|
||||||
|
@ -51,29 +51,33 @@ build_and_test() {
|
|||||||
local dockerfile_name="./Dockerfile"
|
local dockerfile_name="./Dockerfile"
|
||||||
local image_base="stirlingtools/stirling-pdf"
|
local image_base="stirlingtools/stirling-pdf"
|
||||||
local security_suffix=""
|
local security_suffix=""
|
||||||
local docker_compose_base="./exampleYmlFiles/docker-compose-latest"
|
local docker_compose_base="./testing/compose/docker-compose"
|
||||||
local compose_suffix=".yml"
|
local compose_suffix=".yml"
|
||||||
local service_name_base="Stirling-PDF"
|
local service_name_base="Stirling-PDF"
|
||||||
|
|
||||||
if [ "$enable_security" == "true" ]; then
|
|
||||||
security_suffix="-Security"
|
|
||||||
docker_compose_base+="-security" # Append to base name for Docker Compose files with security
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$build_type" in
|
case "$build_type" in
|
||||||
full)
|
full)
|
||||||
dockerfile_name="./Dockerfile"
|
dockerfile_name="./docker/backend/Dockerfile"
|
||||||
|
if [ "$enable_security" == "true" ]; then
|
||||||
|
compose_file="${docker_compose_base}-fat-security${compose_suffix}"
|
||||||
|
service_name="Stirling-PDF-Security-Fat"
|
||||||
|
else
|
||||||
|
compose_file="${docker_compose_base}-fat${compose_suffix}"
|
||||||
|
service_name="stirling-pdf-backend-fat"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
ultra-lite)
|
ultra-lite)
|
||||||
dockerfile_name="./Dockerfile.ultra-lite"
|
dockerfile_name="./docker/backend/Dockerfile.ultra-lite"
|
||||||
|
if [ "$enable_security" == "true" ]; then
|
||||||
|
compose_file="${docker_compose_base}-ultra-lite-security${compose_suffix}"
|
||||||
|
service_name="stirling-pdf-backend-ultra-lite-security"
|
||||||
|
else
|
||||||
|
compose_file="${docker_compose_base}-ultra-lite${compose_suffix}"
|
||||||
|
service_name="Stirling-PDF-Ultra-Lite"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Dynamic image tag and service name based on build type and security
|
|
||||||
local image_tag="${image_base}:latest${build_type}${security_suffix}"
|
|
||||||
local service_name="${service_name_base}${build_type^}${security_suffix}"
|
|
||||||
local compose_file="${docker_compose_base}${build_type}${compose_suffix}"
|
|
||||||
|
|
||||||
# Gradle build with or without security
|
# Gradle build with or without security
|
||||||
echo "Running ./gradlew clean build with security=$enable_security..."
|
echo "Running ./gradlew clean build with security=$enable_security..."
|
||||||
./gradlew clean build
|
./gradlew clean build
|
||||||
@ -83,10 +87,6 @@ build_and_test() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Building Docker image
|
|
||||||
echo "Building Docker image $image_tag with Dockerfile $dockerfile_name..."
|
|
||||||
docker build --build-arg VERSION_TAG=$version_tag -t $image_tag -f $dockerfile_name .
|
|
||||||
|
|
||||||
if [ "$run_compose" == "true" ]; then
|
if [ "$run_compose" == "true" ]; then
|
||||||
echo "Running Docker Compose for $build_type with security=$enable_security..."
|
echo "Running Docker Compose for $build_type with security=$enable_security..."
|
||||||
docker-compose -f "$compose_file" up -d
|
docker-compose -f "$compose_file" up -d
|
||||||
|
Loading…
x
Reference in New Issue
Block a user