mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-02 21:03:34 +03:00
## Summary - Add a scheduled GitHub Actions workflow that checks for the latest stable Gradle release. - Update the Gradle wrapper and pinned Gradle Docker build images automatically. - Open an automated pull request when an update is available. - Update the developer prerequisites to Node.js 22+ and Gradle 9.0+. ## Details The workflow runs every Monday at 03:00 UTC and can also be triggered manually. It: 1. Resolves the latest stable Gradle version. 2. Finds the matching `gradle:<version>-jdk25` Docker image digest. 3. Updates the Gradle wrapper and Dockerfiles. 4. Verifies the resolved wrapper version and checks the resulting diff. 5. Creates or updates an automated dependency pull request. The current wrapper and Docker image changes are included as the initial update generated by this workflow. ## Testing - Verified the generated changes with `git diff --check`. - The workflow validates the wrapper version before opening the automated pull request.
Docker Setup for Stirling-PDF
This directory contains the organized Docker configurations for the split frontend/backend architecture.
Using Taskfile (Recommended)
All Docker commands can be run from the project root using Task:
task docker:build # Build standard image
task docker:build:fat # Build fat image (all features)
task docker:build:ultra-lite # Build ultra-lite image
task docker:build:frontend # Build frontend-only image
task docker:build:engine # Build engine image
task docker:up # Start standard compose stack
task docker:up:fat # Start fat compose stack
task docker:up:ultra-lite # Start ultra-lite compose stack
task docker:down # Stop all running stacks
task docker:logs # Tail compose logs
Directory Structure
docker/
├── backend/ # Backend Docker files
│ ├── Dockerfile # Standard backend
│ ├── Dockerfile.ultra-lite # Minimal backend
│ └── Dockerfile.fat # Full-featured backend
├── frontend/ # Frontend Docker files
│ ├── Dockerfile # React/Vite frontend with nginx
│ ├── nginx.conf # Nginx configuration
│ └── entrypoint.sh # Dynamic backend URL setup
└── compose/ # Docker Compose files
├── docker-compose.yml # Standard setup
├── docker-compose.ultra-lite.yml # Ultra-lite setup
└── docker-compose.fat.yml # Full-featured setup
Usage
Separate Containers (Recommended)
From the project root directory:
# Standard version
docker-compose -f docker/compose/docker-compose.yml up --build
# Ultra-lite version
docker-compose -f docker/compose/docker-compose.ultra-lite.yml up --build
# Fat version
docker-compose -f docker/compose/docker-compose.fat.yml up --build
Access Points
- Frontend: http://localhost:3000
- Backend API (debugging): http://localhost:8080 (TODO: Remove in production)
- Backend API (via frontend): http://localhost:3000/api/*
Configuration
- Backend URL: Set
VITE_API_BASE_URLenvironment variable for custom backend locations - Custom Ports: Modify port mappings in docker-compose files
- Memory Limits: Adjust memory limits per variant (2G ultra-lite, 4G standard, 6G fat)
Google Drive Integration
- VITE_GOOGLE_DRIVE_CLIENT_ID: OAuth 2.0 Client ID
- VITE_GOOGLE_DRIVE_API_KEY: Create New API
- VITE_GOOGLE_DRIVE_APP_ID: This is your project number in the GoogleCloud Settings
Development vs Production
- Development: Keep backend port 8080 exposed for debugging
- Production: Remove backend port exposure, use only frontend proxy