diff --git a/.gitignore b/.gitignore
index 9473a536..6b6baf03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,4 +21,7 @@ yarn-error.log*
-/.idea
\ No newline at end of file
+/.idea
+
+# Claude Code
+.claude/worktrees/
\ No newline at end of file
diff --git a/docs/API.md b/docs/API.md
index 77c9e4f7..9bdcea06 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -13,7 +13,7 @@ import TabItem from '@theme/TabItem';
Stirling PDF exposes a simple API for easy integration with external scripts. You can access the API documentation in two ways:
-1. Local Swagger UI at `/swagger-ui/index.html` on your Stirling-PDF instance
+1. Local Swagger UI at `/swagger-ui/index.html` on your Stirling PDF instance
2. Online [Swagger Documentation](https://app.swaggerhub.com/apis-docs/Frooodle/Stirling-PDF/)
You can also access the documentation through the settings menu (gear icon in the top-right corner).
@@ -21,9 +21,9 @@ You can also access the documentation through the settings menu (gear icon in th
## Accessing API Documentation
### Local Swagger UI
-Your Stirling-PDF instance includes built-in API documentation:
+Your Stirling PDF instance includes built-in API documentation:
1. Navigate to `http://your-instance:port/swagger-ui/index.html`
-2. Or append `/swagger-ui/index.html` to your Stirling-PDF URL
+2. Or append `/swagger-ui/index.html` to your Stirling PDF URL
3. This provides an interactive documentation interface where you can:
- View all available endpoints
- Test API calls directly
@@ -41,7 +41,7 @@ When security is enabled, all API requests require authentication. There are two
### User-Specific API Keys
1. Obtain your API key:
- - Log into Stirling-PDF
+ - Log into Stirling PDF
- Go to Account Settings (via the gear icon)
- Find your API key in the account details
@@ -67,9 +67,9 @@ This allows you to set a single API key that works regardless of user authentica
## API Limitations
-Stirling-PDF's feature set is not entirely confined to the backend, hence not all functionalities are accessible via the API. Certain operations, such as the "view-pdf" or "visually sign", are executed exclusively on the front-end, and as such, they are only available through the Web-UI. If you encounter a situation where some API endpoints appear to be absent, it is likely attributable to these front-end exclusive features.
+Stirling PDF's feature set is not entirely confined to the backend, hence not all functionalities are accessible via the API. Certain operations, such as the "view-pdf" or "visually sign", are executed exclusively on the front-end, and as such, they are only available through the Web-UI. If you encounter a situation where some API endpoints appear to be absent, it is likely attributable to these front-end exclusive features.
-Stirling-PDF also has statistic and health endpoints to integrate with monitoring/dashboard applications.
+Stirling PDF also has statistic and health endpoints to integrate with monitoring/dashboard applications.
## Example CURL Commands
diff --git a/docs/Advanced Configuration/Other Customisations.md b/docs/Advanced Configuration/Other Customisations.md
index da565cae..8bcceb7d 100644
--- a/docs/Advanced Configuration/Other Customisations.md
+++ b/docs/Advanced Configuration/Other Customisations.md
@@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem';
Stirling PDF offers various other customisation options, such as:
### Defaulting Language
-Default language selection via the `SYSTEM_DEFAULTLOCALE` environment variable. Accepted values include `de-DE`, `fr-FR`, `ar-AR` and all other languages codes that are within Stirling-PDFs current list.
+Default language selection via the `SYSTEM_DEFAULTLOCALE` environment variable. Accepted values include `de-DE`, `fr-FR`, `ar-AR` and all other languages codes that are within Stirling PDFs current list.
### Google Search Visibility (robots.txt)
Enable or disable search engine visibility with the `ALLOW_GOOGLE_VISIBILITY` variable.
diff --git a/docs/Advanced Configuration/PDF to CBR Conversion.md b/docs/Advanced Configuration/PDF to CBR Conversion.md
index a37d326d..f8a7b4ab 100644
--- a/docs/Advanced Configuration/PDF to CBR Conversion.md
+++ b/docs/Advanced Configuration/PDF to CBR Conversion.md
@@ -1,14 +1,14 @@
-# Enabling PDF to CBR Conversion in Stirling-PDF
+# Enabling PDF to CBR Conversion in Stirling PDF
## Overview
-Stirling-PDF can convert PDF files into the Comic Book RAR (`.cbr`) format. This process relies on an external command-line utility, `rar`, which is not included by default. To enable this feature, you must first install the `rar` utility on your system and then make it accessible to Stirling-PDF.
+Stirling PDF can convert PDF files into the Comic Book RAR (`.cbr`) format. This process relies on an external command-line utility, `rar`, which is not included by default. To enable this feature, you must first install the `rar` utility on your system and then make it accessible to Stirling PDF.
### What is a CBR file?
A CBR (Comic Book RAR) file is an archive used for distributing digital comic books. It is essentially a collection of sequential image files (e.g., JPEG, PNG) compressed into a single file using RAR compression.
-While CBR is a popular format, it requires the proprietary `rar` utility for creation. Its more common, open-standard alternative is CBZ (Comic Book ZIP), which is supported by Stirling-PDF out of the box.
+While CBR is a popular format, it requires the proprietary `rar` utility for creation. Its more common, open-standard alternative is CBZ (Comic Book ZIP), which is supported by Stirling PDF out of the box.
-----
@@ -63,7 +63,7 @@ sudo yum install rar # For CentOS 7
1. Download the "WinRAR and RAR command line tools" from [rarlab.com/download.htm](https://www.rarlab.com/download.htm).
2. Extract the downloaded archive.
3. Copy the `rar.exe` file to a folder that is included in your system's `PATH` environment variable. A common and reliable location is `C:\Windows\System32`.
-4. If Stirling-PDF is already running, restart it to ensure it recognizes the updated `PATH`.
+4. If Stirling PDF is already running, restart it to ensure it recognizes the updated `PATH`.
### macOS
@@ -75,13 +75,13 @@ brew install rar
-----
-## Step 2: Configure Stirling-PDF
+## Step 2: Configure Stirling PDF
After installing `rar` on your host system, follow the appropriate instructions for your environment.
### For Non-Docker Users
-If you installed Stirling-PDF directly on your operating system (without Docker), no further configuration is needed. As long as the `rar` command is available in your system's `PATH`, Stirling-PDF will automatically (after restart) detect and use it.
+If you installed Stirling PDF directly on your operating system (without Docker), no further configuration is needed. As long as the `rar` command is available in your system's `PATH`, Stirling PDF will automatically (after restart) detect and use it.
### For Docker Users
@@ -117,7 +117,7 @@ The host path must use forward slashes. For example, if you placed `rar.exe` in
## Step 3: Verification
-Confirm that Stirling-PDF can access the `rar` command.
+Confirm that Stirling PDF can access the `rar` command.
* **For Docker Users:** Execute a command inside the running container.
@@ -150,5 +150,5 @@ RAR is shareware. While it is free to use for personal, non-commercial purposes,
For broader compatibility and to avoid proprietary software, using the **CBZ (Comic Book ZIP)** format is highly recommended.
* CBZ uses the open and universal ZIP standard.
-* The **PDF to CBZ** tool is enabled in Stirling-PDF by default and requires no extra software.
+* The **PDF to CBZ** tool is enabled in Stirling PDF by default and requires no extra software.
* CBZ is supported by virtually all modern comic book reader applications.
diff --git a/docs/Analytics-and-telemetry.md b/docs/Analytics-and-telemetry.md
index 1e4fe2e8..b5b1fabd 100644
--- a/docs/Analytics-and-telemetry.md
+++ b/docs/Analytics-and-telemetry.md
@@ -19,8 +19,8 @@ Stirling‑PDF uses analytics to understand usage patterns and improve the appli
Stirling‑PDF uses two analytics services:
-1. **[Scarf](https://scarf.sh)** — a privacy‑friendly tool designed for open‑source projects.
-2. **[PostHog](https://posthog.com)** — an open‑source product analytics platform for detailed usage insights.
+1. **[Scarf](https://scarf.sh)** - a privacy‑friendly tool designed for open‑source projects.
+2. **[PostHog](https://posthog.com)** - an open‑source product analytics platform for detailed usage insights.
Both services are designed with privacy in mind and can be completely disabled.
@@ -164,7 +164,7 @@ Controls **all** analytics and whether a consent banner appears.
**Behavior**
- `false`: Disables **all** analytics (no consent banner; PostHog & Scarf are off).
- `true`: Allows analytics (banner still required for user consent before any capture).
-- `null`/unset: **First‑run admin choice** — on the first ever connection to a self‑hosted instance, the first visitor (assumed admin) is prompted to choose, and that choice sets the global behavior for all users (either disabling analytics or enabling the consent banner for others).
+- `null`/unset: **First‑run admin choice** - on the first ever connection to a self‑hosted instance, the first visitor (assumed admin) is prompted to choose, and that choice sets the global behavior for all users (either disabling analytics or enabling the consent banner for others).
### 2) Component toggles
diff --git a/docs/Configuration/Audit Logging.md b/docs/Configuration/Audit Logging.md
new file mode 100644
index 00000000..ff6fd550
--- /dev/null
+++ b/docs/Configuration/Audit Logging.md
@@ -0,0 +1,84 @@
+---
+sidebar_position: 18
+title: Audit Logging
+tags: [enterprise, management, feature, advanced feature]
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Audit Logging
+
+> **Tier**: Enterprise
+
+Logs every operation, who ran it, what tool, which files, when. All data is stored in the database.
+We recommend external database setup when using this feature due to the potential volume.
+Please note the data stored is customisable based on you and your organisations needs and legal requirements.
+
+
+Settings are under `premium.enterpriseFeatures.audit`.
+
+| Setting | Default | Description |
+|---|---|---|
+| `enabled` | `true` | Turn audit logging on or off |
+| `level` | `2` | Verbosity: `0` = off, `1` = basic, `2` = standard, `3` = verbose |
+| `retentionDays` | `90` | Days to keep audit records before purging (`0` = infinite retention) |
+| `captureFileHash` | `false` | Store a SHA-256 hash of each processed file |
+| `capturePdfAuthor` | `false` | Extract and store PDF author metadata |
+| `captureOperationResults` | `false` | Store operation return values - high volume, use sparingly |
+
+## Audit levels
+
+| Level | What's recorded |
+|---|---|
+| `0` - OFF | Nothing |
+| `1` - BASIC | File modifications only - PDF operations (compress, split, merge, etc.) and settings changes |
+| `2` - STANDARD | BASIC + user actions (login/logout, account changes, general GET requests) |
+| `3` - VERBOSE | STANDARD + continuous polling calls and all GET requests |
+
+## Example
+
+
+
+ ```yaml
+ premium:
+ enabled: true
+ key: your-enterprise-license-key
+ enterpriseFeatures:
+ audit:
+ enabled: true
+ level: 2
+ retentionDays: 365
+ captureFileHash: true
+ capturePdfAuthor: false
+ captureOperationResults: false
+ ```
+
+
+ ```bash
+ PREMIUM_ENABLED=true
+ PREMIUM_KEY=your-enterprise-license-key
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_ENABLED=true
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_LEVEL=2
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_RETENTIONDAYS=365
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_CAPTUREFILEHASH=true
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_CAPTUREPDFAUTHOR=false
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_CAPTUREOPERATIONRESULTS=false
+ ```
+
+
+ ```yaml
+ services:
+ stirling-pdf:
+ image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
+ environment:
+ PREMIUM_ENABLED: true
+ PREMIUM_KEY: your-enterprise-license-key
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_ENABLED: true
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_LEVEL: 2
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_RETENTIONDAYS: 365
+ PREMIUM_ENTERPRISEFEATURES_AUDIT_CAPTUREFILEHASH: true
+ ```
+
+
+
+> **Note on performance:** `captureFileHash` adds a SHA-256 calculation for every file processed - noticeable overhead at high volume. `captureOperationResults` stores full operation output in the database and can grow very large; only enable it when specifically needed.
diff --git a/docs/Configuration/Configuration.md b/docs/Configuration/Configuration.md
index 478f8bb3..53f4d0ad 100644
--- a/docs/Configuration/Configuration.md
+++ b/docs/Configuration/Configuration.md
@@ -2,14 +2,14 @@
sidebar_position: 0
slug: /Configuration
title: Configuration Guide
-description: Configure Stirling-PDF using environment variables, settings files, or in-app settings
+description: Configure Stirling PDF using environment variables, settings files, or in-app settings
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Configuration Guide
-Stirling-PDF can be configured in three ways, depending on your deployment and preferences.
+Stirling PDF can be configured in three ways, depending on your deployment and preferences.
## Configuration Methods
@@ -114,7 +114,7 @@ For more details, see [System and Security Configuration](./System%20and%20Secur
**How language selection works:**
-Stirling-PDF determines the interface language using this priority order:
+Stirling PDF determines the interface language using this priority order:
1. **User's manual selection** (highest priority)
- When a user clicks the language globe icon and selects a language
diff --git a/docs/Configuration/Endpoint or Feature Customisation.md b/docs/Configuration/Endpoint or Feature Customisation.md
index 7e800226..9ea3a48e 100644
--- a/docs/Configuration/Endpoint or Feature Customisation.md
+++ b/docs/Configuration/Endpoint or Feature Customisation.md
@@ -6,13 +6,19 @@ sidebar_position: 6
You can selectively disable and remove endpoints and functionalities from Stirling PDF as per your requirements.
There are many use-cases for this such as
- Avoid confusion for users for functionality you/your business don't use.
-- Running a reduced version of Stirling-PDF that doesn't have the necessary server power to support the more advanced features.
+- Running a reduced version of Stirling PDF that doesn't have the necessary server power to support the more advanced features.
- Cleanup interface for features you don't use
-To do this `ENDPOINTS_TOREMOVE` and `ENDPOINTS_GROUPSTOREMOVE` have been set up.
-They can include comma-separated lists of endpoints and groups to disable. For example, `ENDPOINTS_TOREMOVE=merge,removePages` would disable both the "merge PDFs" and "remove pages" functionalities.
-`ENDPOINTS_GROUPSTOREMOVE=LibreOffice` Would disable a group of endpoints, in this case all endpoints which use LibreOffice in the backend.
+You have two ways to disable endpoints:
+
+1. **Environment Variables** (`ENDPOINTS_TOREMOVE` and `ENDPOINTS_GROUPSTOREMOVE`):
+ - Example: `ENDPOINTS_TOREMOVE=merge-pdfs,remove-pages` disables merge and remove page tools
+ - Example: `ENDPOINTS_GROUPSTOREMOVE=LibreOffice` disables all LibreOffice-dependent tools
+
+2. **Settings File** (`settings.yml` under `endpoints.toRemove` and `endpoints.groupsToRemove`):
+ - Example: `toRemove: [merge-pdfs, remove-pages]`
+ - Example: `groupsToRemove: [LibreOffice]`
## Available Endpoint Groups
@@ -34,95 +40,19 @@ You can disable entire groups of related endpoints using `ENDPOINTS_GROUPSTOREMO
ENDPOINTS_GROUPSTOREMOVE=LibreOffice,Calibre,Weasyprint
```
-## Complete Tool ID Reference
-
-Use these exact tool IDs with `ENDPOINTS_TOREMOVE` to disable specific features:
-
-### Recommended Tools
-- `multiTool` - Multi-tool workbench
-- `merge` - Merge PDFs
-- `compare` - Compare PDFs
-- `compress` - Compress PDFs
-- `convert` - Convert to/from PDF
-- `ocr` - OCR processing
-- `redact` - Redact information
-
-### Signing
-- `certSign` - Certificate-based signing
-- `sign` - Draw/text/image signature
-
-### Document Security
-- `addPassword` - Add password protection
-- `removePassword` - Remove password
-- `watermark` - Add watermark
-- `addStamp` - Add stamp
-- `sanitize` - Remove harmful elements
-- `flatten` - Flatten form fields
-- `unlockPDFForms` - Unlock PDF forms
-- `changePermissions` - Change document permissions
-
-### Verification
-- `getPdfInfo` - Get PDF information
-- `validateSignature` - Validate digital signature
-
-### Document Review
-- `read` - PDF viewer and annotation
-- `changeMetadata` - Change metadata
-- `editTableOfContents` - Edit table of contents
-
-### Page Formatting
-- `crop` - Crop pages
-- `rotate` - Rotate pages
-- `split` - Split PDFs
-- `reorganizePages` - Reorganize pages
-- `scalePages` - Scale pages
-- `addPageNumbers` - Add page numbers
-- `pageLayout` - Multi-page layout
-- `bookletImposition` - Booklet imposition
-- `pdfToSinglePage` - PDF to single page
-- `addAttachments` - Add file attachments
-
-### Extraction
-- `extractPages` - Extract pages
-- `extractImages` - Extract images
-
-### Removal
-- `removePages` - Remove pages
-- `removeBlanks` - Remove blank pages
-- `removeAnnotations` - Remove annotations
-- `removeImage` - Remove images
-- `removeCertSign` - Remove certificate signature
-
-### Automation
-- `automate` - Automation workflows (Pipeline)
-- `autoRename` - Auto-rename PDFs
-
-### Advanced Formatting
-- `adjustContrast` - Adjust colors/contrast
-- `repair` - Repair corrupted PDFs
-- `scannerImageSplit` - Detect & split scanned photos
-- `overlayPdfs` - Overlay PDFs
-- `replaceColor` - Replace & invert colors
-- `addImage` - Add image to PDF
-- `scannerEffect` - Apply scanner effect
-
-### Developer Tools
-- `showJS` - Show JavaScript in PDF
-- `devApi` - API documentation link
-- `devFolderScanning` - Folder scanning guide link
-- `devSsoGuide` - SSO guide link
-- `devAirgapped` - Air-gapped setup guide link
## Usage Examples
+### Environment Variables
+
**Disable specific tools:**
```bash
# Docker Run
-docker run -e ENDPOINTS_TOREMOVE=sign,watermark,addStamp stirlingtools/stirling-pdf:latest
+docker run -e ENDPOINTS_TOREMOVE=sign,add-watermark,add-stamp stirlingtools/stirling-pdf:latest
# Docker Compose
environment:
- - ENDPOINTS_TOREMOVE=sign,watermark,addStamp
+ - ENDPOINTS_TOREMOVE=sign,add-watermark,add-stamp
```
**Disable entire groups:**
@@ -135,9 +65,160 @@ ENDPOINTS_GROUPSTOREMOVE=LibreOffice,OCRmyPDF
```bash
# Disable groups AND specific tools
ENDPOINTS_GROUPSTOREMOVE=LibreOffice,Calibre
-ENDPOINTS_TOREMOVE=sign,compare,multiTool
+ENDPOINTS_TOREMOVE=sign,compare,multi-tool
+```
+
+### Settings File (settings.yml)
+
+If you're editing `settings.yml` directly, use the kebab-case endpoint IDs:
+
+**Disable specific tools:**
+```yaml
+endpoints:
+ toRemove:
+ - sign
+ - add-watermark
+ - add-stamp
+ - compare
+ - merge-pdfs
```
+**Disable entire groups:**
+```yaml
+endpoints:
+ groupsToRemove:
+ - LibreOffice
+ - OCRmyPDF
+```
+
+**Combine both methods:**
+```yaml
+endpoints:
+ toRemove:
+ - sign
+ - compare
+ - multi-tool
+ - merge-pdfs
+ groupsToRemove:
+ - LibreOffice
+ - Calibre
+```
+
+## Complete Endpoint Reference for settings.yml
+
+Use these exact kebab-case IDs with `endpoints.toRemove` in settings.yml.
+
+### Page Operations
+- `merge-pdfs` - Merge PDFs
+- `split-pages` - Split PDFs
+- `extract-pages` - Extract Pages
+- `remove-pages` - Remove Pages
+- `rearrange-pages` - Rearrange Pages
+- `rotate-pdf` - Rotate PDFs
+- `crop` - Crop Pages
+- `scale-pages` - Scale Pages
+- `add-page-numbers` - Add Page Numbers
+- `pdf-to-single-page` - PDF to Single Page
+- `multi-page-layout` - Multi-Page Layout
+- `booklet-imposition` - Booklet Imposition
+- `overlay-pdf` - Overlay PDFs
+- `split-pdf-by-sections` - Split by Sections
+- `split-pdf-by-chapters` - Split by Chapters
+- `auto-split-pdf` - Auto Split PDF
+- `split-by-size-or-count` - Split by Size/Count
+- `add-attachments` - Add Attachments
+
+### Conversion
+- `pdf-to-img` - PDF to Image
+- `img-to-pdf` - Image to PDF
+- `file-to-pdf` - File to PDF
+- `pdf-to-word` - PDF to Word
+- `pdf-to-presentation` - PDF to Presentation
+- `pdf-to-text` - PDF to Text
+- `pdf-to-html` - PDF to HTML
+- `pdf-to-xml` - PDF to XML
+- `pdf-to-markdown` - PDF to Markdown
+- `pdf-to-csv` - PDF to CSV
+- `pdf-to-epub` - PDF to EPUB
+- `pdf-to-vector` - PDF to Vector
+- `pdf-to-video` - PDF to Video
+- `pdf-to-json` - PDF to JSON
+- `pdf-to-rtf` - PDF to RTF
+- `pdf-to-cbz` - PDF to CBZ
+- `pdf-to-cbr` - PDF to CBR
+- `pdf-to-pdfa` - PDF to PDF/A
+- `html-to-pdf` - HTML to PDF
+- `url-to-pdf` - URL to PDF
+- `markdown-to-pdf` - Markdown to PDF
+- `eml-to-pdf` - Email to PDF
+- `cbz-to-pdf` - CBZ to PDF
+- `json-to-pdf` - JSON to PDF
+- `vector-to-pdf` - Vector to PDF
+
+### Security & Signing
+- `add-password` - Add Password Protection
+- `remove-password` - Remove Password
+- `change-permissions` - Change Permissions
+- `add-watermark` - Add Watermark
+- `add-stamp` - Add Stamp
+- `sanitize-pdf` - Sanitize PDF
+- `flatten` - Flatten Form Fields
+- `unlock-pdf-forms` - Unlock PDF Forms
+- `cert-sign` - Certificate Sign
+- `sign` - Draw/Text/Image Signature
+- `remove-cert-sign` - Remove Certificate Signature
+- `validate-signature` - Validate Signature
+- `verify-pdf` - Verify PDF
+- `redact` - Redact Information
+- `auto-redact` - Auto Redact
+
+### Content Extraction & Removal
+- `extract-images` - Extract Images
+- `extract-image-scans` - Extract Image Scans
+- `remove-image-pdf` - Remove Images
+- `remove-annotations` - Remove Annotations
+- `remove-blanks` - Remove Blank Pages
+- `ocr-pdf` - OCR
+
+### Document Editing & Analysis
+- `text-editor-pdf` - Text Editor
+- `edit-table-of-contents` - Edit Table of Contents
+- `update-metadata` - Change Metadata
+- `get-info-on-pdf` - Get PDF Info
+- `compare` - Compare PDFs
+- `adjust-contrast` - Adjust Contrast
+- `replace-invert-pdf` - Replace/Invert Colors
+- `scanner-effect` - Scanner Effect
+- `repair` - Repair PDF
+- `add-image` - Add Image to PDF
+
+### Form Fields
+- `fields` - Form Fields
+- `fill` - Fill Form Fields
+- `modify-fields` - Modify Form Fields
+- `delete-fields` - Delete Form Fields
+
+### Multi-Tool & Automation
+- `multi-tool` - Multi-Tool Workbench
+- `compare` - Compare PDFs
+- `compress-pdf` - Compress PDFs
+- `automate` - Automation/Pipeline
+- `pipeline` - Pipeline
+- `auto-rename` - Auto Rename
+
+### Viewing & Display
+- `view-pdf` - PDF Viewer
+- `show-javascript` - Show JavaScript in PDF
+
+### Developer Tools
+- `dev-api-docs` - API Documentation
+- `dev-folder-scanning-docs` - Folder Scanning Guide
+- `dev-sso-guide-docs` - SSO Guide
+- `dev-airgapped-docs` - Air-gapped Setup Guide
+
+### Internal
+- `handleData` - Handle Data
+
## Notes
- Tool IDs are case-sensitive (use exact names from the reference above)
diff --git a/docs/Configuration/Extra-Settings.md b/docs/Configuration/Extra-Settings.md
index 4551381d..95846b9c 100644
--- a/docs/Configuration/Extra-Settings.md
+++ b/docs/Configuration/Extra-Settings.md
@@ -7,7 +7,7 @@ import TabItem from '@theme/TabItem';
# Custom Settings Configuration
-Stirling-PDF provides a `/configs/custom_settings.yml` file where users can configure additional settings beyond the standard configuration. This file follows standard YAML format and supports Spring Boot application properties, allowing you to customize the application without modifying core files.
+Stirling PDF provides a `/configs/custom_settings.yml` file where users can configure additional settings beyond the standard configuration. This file follows standard YAML format and supports Spring Boot application properties, allowing you to customize the application without modifying core files.
## Logging Configuration
diff --git a/docs/Configuration/Fail2Ban.md b/docs/Configuration/Fail2Ban.md
index 379ab26b..51501ed1 100644
--- a/docs/Configuration/Fail2Ban.md
+++ b/docs/Configuration/Fail2Ban.md
@@ -7,16 +7,16 @@ title: Fail2Ban Integration
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Fail2Ban Setup for Stirling-PDF
-This document provides instructions on how to set up Fail2Ban with Stirling-PDF to protect against unauthorized login attempts. (Note Stirling-PDF blocks IPs after a set retry count regardless of Fail2Ban, This configuration is only useful for users specifically wanting Fail2Ban configuration)
+# Fail2Ban Setup for Stirling PDF
+This document provides instructions on how to set up Fail2Ban with Stirling PDF to protect against unauthorized login attempts. (Note Stirling PDF blocks IPs after a set retry count regardless of Fail2Ban, This configuration is only useful for users specifically wanting Fail2Ban configuration)
-## How does Fail2Ban Work with Stirling-PDF
-Stirling-PDF logs failed authentication attempts to a log file which Fail2Ban monitors. When it detects multiple failed login attempts from the same IP address, Fail2Ban automatically blocks that IP address for a configured period of time.
+## How does Fail2Ban Work with Stirling PDF
+Stirling PDF logs failed authentication attempts to a log file which Fail2Ban monitors. When it detects multiple failed login attempts from the same IP address, Fail2Ban automatically blocks that IP address for a configured period of time.
## Prerequisites
- Fail2Ban installed on your system
-- Access to Stirling-PDF log directory
+- Access to Stirling PDF log directory
- Security settings configured:
diff --git a/docs/Configuration/FolderScanning.md b/docs/Configuration/FolderScanning.md
index 337a155f..50ec9341 100644
--- a/docs/Configuration/FolderScanning.md
+++ b/docs/Configuration/FolderScanning.md
@@ -16,7 +16,7 @@ Folder scanning uses settings configured from our pipeline tool, it is advised y
### Configuring Processing with JSON Files
- In each directory you want processed (e.g., `./pipeline/watchedFolders/officePrinter`), include a JSON configuration file.
-- This JSON file should specify how you want the files in the directory to be handled (e.g., what operations to perform on them). This can be made, configured, and downloaded from the Stirling-PDF Pipeline interface. For JSON creation guide please see [Pipeline setup](./Pipeline.md)
+- This JSON file should specify how you want the files in the directory to be handled (e.g., what operations to perform on them). This can be made, configured, and downloaded from the Stirling PDF Pipeline interface. For JSON creation guide please see [Pipeline setup](./Pipeline.md)
### Automatic Scanning and Processing
diff --git a/docs/Configuration/Google Drive File Picker.md b/docs/Configuration/Google Drive File Picker.md
index 9cf5507b..8e6fa669 100644
--- a/docs/Configuration/Google Drive File Picker.md
+++ b/docs/Configuration/Google Drive File Picker.md
@@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem';
# Google Drive File Picker
> **Tier**: Server
-Stirling-PDF allows users to select Files for processing through tools via google drive.
+Stirling PDF allows users to select Files for processing through tools via google drive.
## Google Api Access
To enable this features for your users, you must first set up your Google environment. This includes creating a Google Cloud project. Follow the **Setting up your environment** section of [this guide](https://developers.google.com/workspace/drive/picker/guides/overview#setup) to do so.
diff --git a/docs/Configuration/Keyboard-Shortcuts.md b/docs/Configuration/Keyboard-Shortcuts.md
new file mode 100644
index 00000000..a02100f3
--- /dev/null
+++ b/docs/Configuration/Keyboard-Shortcuts.md
@@ -0,0 +1,81 @@
+---
+sidebar_position: 19
+---
+
+# Keyboard Shortcuts
+
+Stirling PDF supports keyboard shortcuts for quick tool access and PDF viewer navigation. Custom shortcuts are saved in your browser's local storage, with plans to bind to your account in the future.
+
+## Tool Shortcuts
+
+### Default shortcuts
+
+Tools in the Quick Access bar (the "Recommended Tools" category) automatically receive shortcuts:
+
+| Windows / Linux | Mac | Action |
+|---|---|---|
+| `Ctrl + Alt + 1` | `⌘ + ⌥ + 1` | First Quick Access tool |
+| `Ctrl + Alt + 2` | `⌘ + ⌥ + 2` | Second Quick Access tool |
+| `Ctrl + Alt + 3` | `⌘ + ⌥ + 3` | Third Quick Access tool |
+| … up to `9` | | |
+
+All other tools have no default shortcut but can be assigned one.
+
+### Customising shortcuts
+
+1. Open **Settings** (gear icon, top right)
+2. Go to **Keyboard Shortcuts**
+3. Find the tool you want
+4. Click **Change shortcut**, then press your key combination
+5. Press **Esc** to cancel
+
+Your shortcut must include at least one modifier key (`Ctrl`, `Alt`, or `Cmd`). `Shift` alone does not count as a modifier. If the combination is already taken by another tool, you'll see a conflict warning.
+
+### Resetting a shortcut
+
+Click **Reset** next to any tool to restore its default. If a tool has no default, Reset clears the custom binding.
+
+## PDF Viewer Shortcuts
+
+These shortcuts work when the PDF viewer is active (hovered), except for Print which works whenever the viewer is mounted.
+
+### Modifier shortcuts (Ctrl / Cmd + key)
+
+| Windows / Linux | Mac | Action |
+|---|---|---|
+| `Ctrl + P` | `⌘ + P` | Print (works globally when viewer is mounted) |
+| `Ctrl + F` | `⌘ + F` | Open / focus search |
+| `Ctrl + S` | `⌘ + S` | Save / apply changes |
+| `Ctrl + Z` | `⌘ + Z` | Undo |
+| `Ctrl + Shift + Z` | `⌘ + ⇧ + Z` | Redo |
+| `Ctrl + Y` | `⌘ + Y` | Redo (alternative) |
+| `Ctrl + =` / `Ctrl + +` | `⌘ + =` / `⌘ + +` | Zoom in |
+| `Ctrl + -` | `⌘ + -` | Zoom out |
+| `Ctrl + 0` | `⌘ + 0` | Reset zoom (fit width) |
+
+### Navigation shortcuts (no modifier needed)
+
+| Key | Action |
+|---|---|
+| `Home` | Jump to first page |
+| `End` | Jump to last page |
+| `Page Up` | Previous page |
+| `Page Down` | Next page |
+| `Escape` | Close search |
+
+### Rotate tool
+
+When the Rotate tool is active:
+
+| Key | Action |
+|---|---|
+| `←` (Left Arrow) | Rotate left |
+| `→` (Right Arrow) | Rotate right |
+
+## Desktop App
+
+The desktop app adds one extra shortcut:
+
+| Windows / Linux | Mac | Action |
+|---|---|---|
+| `Ctrl + S` | `⌘ + S` | Save selected files to disk |
diff --git a/docs/Configuration/Mobile-Scanner.md b/docs/Configuration/Mobile-Scanner.md
new file mode 100644
index 00000000..05056cff
--- /dev/null
+++ b/docs/Configuration/Mobile-Scanner.md
@@ -0,0 +1,69 @@
+---
+sidebar_position: 20
+title: Mobile Scanner Configuration
+description: Enable and configure Mobile Scanner for document scanning via phone camera
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Mobile Scanner Configuration
+
+Enable and configure the Mobile Scanner feature, which lets users scan documents with their phone camera and upload them directly to Stirling PDF via QR code.
+
+## Settings
+
+
+
+ ```yaml
+ system:
+ enableMobileScanner: true
+ mobileScannerSettings:
+ convertToPdf: true # Convert images to PDF (true/false)
+ imageResolution: full # 'full' (original size) or 'reduced' (max 1200px)
+ pageFormat: A4 # 'keep' (original dimensions), 'A4', or 'letter'
+ stretchToFit: false # Stretch images to fill page (may distort)
+ ```
+
+
+ ```bash
+ SYSTEM_ENABLEMOBILESCANNER=true
+ SYSTEM_MOBILESCANNERSETTINGS_CONVERTTOPDF=true
+ SYSTEM_MOBILESCANNERSETTINGS_IMAGERESOLUTION=full
+ SYSTEM_MOBILESCANNERSETTINGS_PAGEFORMAT=A4
+ SYSTEM_MOBILESCANNERSETTINGS_STRETCHTOFIT=false
+ ```
+
+
+ ```bash
+ docker run -d \
+ -p 8080:8080 \
+ -e SYSTEM_ENABLEMOBILESCANNER=true \
+ -e SYSTEM_MOBILESCANNERSETTINGS_CONVERTTOPDF=true \
+ -e SYSTEM_MOBILESCANNERSETTINGS_IMAGERESOLUTION=full \
+ -e SYSTEM_MOBILESCANNERSETTINGS_PAGEFORMAT=A4 \
+ -e SYSTEM_MOBILESCANNERSETTINGS_STRETCHTOFIT=false \
+ stirlingtools/stirling-pdf:latest
+ ```
+
+
+ ```yaml
+ environment:
+ SYSTEM_ENABLEMOBILESCANNER: true
+ SYSTEM_MOBILESCANNERSETTINGS_CONVERTTOPDF: true
+ SYSTEM_MOBILESCANNERSETTINGS_IMAGERESOLUTION: full
+ SYSTEM_MOBILESCANNERSETTINGS_PAGEFORMAT: A4
+ SYSTEM_MOBILESCANNERSETTINGS_STRETCHTOFIT: false
+ ```
+
+
+
+## Configuration Options
+
+| Setting | Values | Description |
+|---------|--------|-------------|
+| `enableMobileScanner` | `true` / `false` | Enable/disable Mobile Scanner feature |
+| `convertToPdf` | `true` / `false` | Automatically convert uploaded images to PDF. If false, images are kept as-is. |
+| `imageResolution` | `full` / `reduced` | Image resolution for PDF conversion: `full` = original size, `reduced` = max 1200px on longest side. Only applies when `convertToPdf` is true. |
+| `pageFormat` | `keep` / `A4` / `letter` | Page format for converted PDFs: `keep` = original image dimensions, `A4` = A4 page size, `letter` = US Letter page size. Only applies when `convertToPdf` is true. |
+| `stretchToFit` | `true` / `false` | Stretch images to fill entire page (may distort aspect ratio). If false, images are centered with preserved aspect ratio. Only applies when `convertToPdf` is true. |
diff --git a/docs/Configuration/OAuth SSO Configuration.md b/docs/Configuration/OAuth SSO Configuration.md
index 1aa26a40..fb000df4 100644
--- a/docs/Configuration/OAuth SSO Configuration.md
+++ b/docs/Configuration/OAuth SSO Configuration.md
@@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem';
# OAuth 2.0 Single Sign-On Configuration
> **Tier**: Server
-Stirling-PDF supports Single Sign-On (SSO) using OAuth 2.0 OpenID Connect (OIDC). This allows users to log in using accounts from external providers such as Google, GitHub, Keycloak, Authentik, and others.
+Stirling PDF supports Single Sign-On (SSO) using OAuth 2.0 OpenID Connect (OIDC). This allows users to log in using accounts from external providers such as Google, GitHub, Keycloak, Authentik, and others.
> **Looking for SAML 2.0 SSO?** See [SAML SSO Configuration](./SAML%20SSO%20Configuration/SAML%20SSO%20Configuration.md) (Enterprise tier).
@@ -17,7 +17,7 @@ Stirling-PDF supports Single Sign-On (SSO) using OAuth 2.0 OpenID Connect (OIDC)
Before configuring OAuth 2.0 SSO, ensure you have:
-- [ ] Stirling-PDF with login enabled (`security.enableLogin: true`)
+- [ ] Stirling PDF with login enabled (`security.enableLogin: true`)
- [ ] Valid license for Professional tier or higher
- [ ] An OAuth 2.0 provider account (Google, GitHub, Keycloak, etc.)
- [ ] Registered OAuth application with your provider
@@ -79,7 +79,7 @@ Before enabling OAuth, create an initial admin account using one of these method
**Option B: Create admin manually**
-1. Access Stirling-PDF with OAuth disabled
+1. Access Stirling PDF with OAuth disabled
2. Create an admin user through the UI
3. Then enable OAuth
@@ -317,7 +317,7 @@ https://your-domain.com/login/oauth2/code/authentik
### Step 5: Test OAuth Login and Promote User
-1. Restart Stirling-PDF
+1. Restart Stirling PDF
2. Test OAuth login in an incognito/private browser window
3. Verify you can log in with your OAuth provider
4. Log in with your initial admin account (username/password)
@@ -402,7 +402,7 @@ oauth2:
### Backend URL Configuration
-If your Stirling-PDF backend is accessible at a different URL than the frontend, configure the backend URL:
+If your Stirling PDF backend is accessible at a different URL than the frontend, configure the backend URL:
@@ -423,7 +423,7 @@ Verify the backend URL is correct by checking that `https://your-domain.com/api/
### Auto-Login Feature
> **Tier**: Enterprise
-Automatically redirect users to OAuth login page, bypassing the Stirling-PDF login screen.
+Automatically redirect users to OAuth login page, bypassing the Stirling PDF login screen.
@@ -474,7 +474,7 @@ Once OAuth is configured, users will see the SSO login button:
**"Invalid issuer"**
- Confirm issuer URL is correct
- Test `https://your-issuer/.well-known/openid-configuration` returns valid JSON
-- Check network connectivity from Stirling-PDF container to provider
+- Check network connectivity from Stirling PDF container to provider
**"User not created"**
- Set `autoCreateUser: true`
diff --git a/docs/Configuration/OCR.md b/docs/Configuration/OCR.md
index ec4f6d2c..e441aa45 100644
--- a/docs/Configuration/OCR.md
+++ b/docs/Configuration/OCR.md
@@ -7,10 +7,10 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# OCR Language Packs and Setup
-This document provides instructions on how to add additional language packs for the OCR tab in Stirling-PDF, both inside and outside of Docker.
+This document provides instructions on how to add additional language packs for the OCR tab in Stirling PDF, both inside and outside of Docker.
## How does the OCR Work
-Stirling-PDF uses Tesseract for its text recognition. All credit goes to them for this awesome work!
+Stirling PDF uses Tesseract for its text recognition. All credit goes to them for this awesome work!
## Language Packs
@@ -19,7 +19,7 @@ Tesseract OCR supports a variety of languages. You can find additional language
- [tessdata_fast](https://github.com/tesseract-ocr/tessdata_fast): These language packs are smaller and faster to load but may provide lower recognition accuracy.
- [tessdata](https://github.com/tesseract-ocr/tessdata): These language packs are larger and provide better recognition accuracy, but may take longer to load.
-Depending on your requirements, you can choose the appropriate language pack for your use case. By default, Stirling-PDF uses `tessdata_fast` for English, but this can be replaced.
+Depending on your requirements, you can choose the appropriate language pack for your use case. By default, Stirling PDF uses `tessdata_fast` for English, but this can be replaced.
### Installing Language Packs manually
diff --git a/docs/Configuration/Other Customisations.md b/docs/Configuration/Other Customisations.md
index ed0ead5e..a3f26b88 100644
--- a/docs/Configuration/Other Customisations.md
+++ b/docs/Configuration/Other Customisations.md
@@ -11,7 +11,7 @@ You can override static files (logos, images, favicons, etc.) by placing custom
### How It Works
-Stirling-PDF checks for files in this order:
+Stirling PDF checks for files in this order:
1. **First:** `customFiles/static/` (your custom files)
2. **Fallback:** Built-in static files embedded in the application
@@ -118,7 +118,7 @@ If you have `logoStyle: modern` set, override files in `modern-logo/` instead!
### Example: Complete Branding Customization
-To fully rebrand Stirling-PDF with your company logo, override multiple variants:
+To fully rebrand Stirling PDF with your company logo, override multiple variants:
```bash
customFiles/
@@ -155,7 +155,7 @@ Or via environment variable: `UI_LOGOSTYLE=classic`
Files like `index.html`, JavaScript bundles, and CSS are **generated** by the build process from `frontend/src/`. To override these:
-1. Clone the Stirling-PDF repository
+1. Clone the Stirling PDF repository
2. Make your changes to the React source code in `frontend/src/`
3. Build the frontend: `npm run build` (from the `frontend/` directory)
4. The built files appear in `frontend/dist/`
@@ -172,7 +172,7 @@ cp frontend/dist/index.html customFiles/static/index.html
---
## Defaulting Language
-Default language selection via the `SYSTEM_DEFAULTLOCALE` environment variable. Accepted values include `de-DE`, `fr-FR`, `ar-AR` and all other languages codes that are within Stirling-PDFs current list.
+Default language selection via the `SYSTEM_DEFAULTLOCALE` environment variable. Accepted values include `de-DE`, `fr-FR`, `ar-AR` and all other languages codes that are within Stirling PDFs current list.
## Google Search Visibility (robots.txt)
Enable or disable search engine visibility with the `ALLOW_GOOGLE_VISIBILITY` variable.
diff --git a/docs/Configuration/Pipeline.md b/docs/Configuration/Pipeline.md
index c6fa4d39..ce14690e 100644
--- a/docs/Configuration/Pipeline.md
+++ b/docs/Configuration/Pipeline.md
@@ -579,7 +579,7 @@ Create `config.json` in each watched folder:
## Summary
-Pipeline automation (Automate tool) transforms Stirling-PDF into a workflow engine:
+Pipeline automation (Automate tool) transforms Stirling PDF into a workflow engine:
- 🔗 **Chain operations** - Combine multiple PDF tools sequentially
- 💾 **Save workflows** - Reusable pipeline configurations
diff --git a/docs/Configuration/Process-Limits.md b/docs/Configuration/Process-Limits.md
new file mode 100644
index 00000000..066ea1be
--- /dev/null
+++ b/docs/Configuration/Process-Limits.md
@@ -0,0 +1,145 @@
+---
+sidebar_position: 17
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Process Limits
+
+Stirling PDF sometimes runs external tools to handle tools such as conversions or advanced operations
+Tools like LibreOffice, Tesseract, Ghostscript, and others. All these tools are optional to Stirling PDFs general operation.
+
+> Some tools listed here may not be actively used in the current version of Stirling PDF. Their configuration is kept in place for potential re-introduction in future updates.
+
+Two types of limits are customised for every external tool:
+
+- **Session limits** - how many of a given process can run at the same time
+- **Timeouts** - how long a single process can run before it's killed
+
+Both sit under `processExecutor` in `settings.yml`. A value of `0` means "use the default."
+
+---
+
+## Session limits
+
+Controls how many concurrent instances of each process are allowed. Extra requests queue up and wait.
+
+| Setting | Default | What it controls |
+|---|---|---|
+| `sessionLimit.libreOfficeSessionLimit` | `1` | Word/Excel/PowerPoint/HTML → PDF |
+| `sessionLimit.tesseractSessionLimit` | `1` | OCR (Tesseract is single-threaded) |
+| `sessionLimit.pdfToHtmlSessionLimit` | `1` | PDF → HTML |
+| `sessionLimit.ghostscriptSessionLimit` | `8` | PDF compression, repair, manipulation |
+| `sessionLimit.pythonOpenCvSessionLimit` | `8` | Image processing |
+| `sessionLimit.imageMagickSessionLimit` | `4` | Image conversion |
+| `sessionLimit.qpdfSessionLimit` | `2` | Split, merge, encrypt PDFs |
+| `sessionLimit.ocrMyPdfSessionLimit` | `2` | Add OCR overlay to existing PDFs |
+| `sessionLimit.weasyPrintSessionLimit` | `16` | HTML/CSS → PDF (WeasyPrint) |
+| `sessionLimit.calibreSessionLimit` | `1` | E-book conversions |
+| `sessionLimit.ffmpegSessionLimit` | `2` | Video/audio processing |
+| `sessionLimit.installAppSessionLimit` | `1` | Internal install tasks |
+
+**Increase** limits on a beefy server with concurrent users. **Decrease** them on low-RAM servers - LibreOffice in particular is memory-hungry.
+
+:::info
+Be mindful of memory and CPU usage when raising session limits. Each concurrent process consumes resources, and setting limits too high can starve the host or cause out-of-memory issues possibly killing the instance. Start with the defaults and increase gradually while monitoring your server.
+:::
+
+---
+
+## Timeouts
+
+How long (in minutes) a process can run before it's forcibly killed and an error is returned.
+
+| Setting | Default |
+|---|---|
+| `timeoutMinutes.libreOfficeTimeoutMinutes` | `30` |
+| `timeoutMinutes.tesseractTimeoutMinutes` | `30` |
+| `timeoutMinutes.ghostscriptTimeoutMinutes` | `30` |
+| `timeoutMinutes.pythonOpenCvTimeoutMinutes` | `30` |
+| `timeoutMinutes.imageMagickTimeoutMinutes` | `30` |
+| `timeoutMinutes.qpdfTimeoutMinutes` | `30` |
+| `timeoutMinutes.ocrMyPdfTimeoutMinutes` | `30` |
+| `timeoutMinutes.weasyPrintTimeoutMinutes` | `30` |
+| `timeoutMinutes.calibreTimeoutMinutes` | `30` |
+| `timeoutMinutes.ffmpegTimeoutMinutes` | `30` |
+| `timeoutMinutes.pdfToHtmlTimeoutMinutes` | `20` |
+| `timeoutMinutes.installAppTimeoutMinutes` | `60` |
+
+**Increase** timeouts if users process very large files that legitimately take longer. **Decrease** them if you want faster failure and tighter resource control.
+
+---
+
+## Examples
+
+### Conservative - low-resource server
+
+
+
+ ```yaml
+ processExecutor:
+ sessionLimit:
+ libreOfficeSessionLimit: 1
+ tesseractSessionLimit: 1
+ ghostscriptSessionLimit: 2
+ imageMagickSessionLimit: 2
+ pythonOpenCvSessionLimit: 2
+ weasyPrintSessionLimit: 4
+ qpdfSessionLimit: 1
+ ocrMyPdfSessionLimit: 1
+ timeoutMinutes:
+ libreOfficeTimeoutMinutes: 10
+ tesseractTimeoutMinutes: 15
+ ```
+
+
+ ```bash
+ PROCESSEXECUTOR_SESSIONLIMIT_LIBREOFFICESSESSIONLIMIT=1
+ PROCESSEXECUTOR_SESSIONLIMIT_TESSERACTSESSIONLIMIT=1
+ PROCESSEXECUTOR_SESSIONLIMIT_GHOSTSCRIPTSESSIONLIMIT=2
+ PROCESSEXECUTOR_TIMEOUTMINUTES_LIBREOFFICETIMEOUTMINUTES=10
+ PROCESSEXECUTOR_TIMEOUTMINUTES_TESSERACTTIMEOUTMINUTES=15
+ ```
+
+
+ ```yaml
+ services:
+ stirling-pdf:
+ image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
+ environment:
+ PROCESSEXECUTOR_SESSIONLIMIT_LIBREOFFICESSESSIONLIMIT: 1
+ PROCESSEXECUTOR_SESSIONLIMIT_TESSERACTSESSIONLIMIT: 1
+ PROCESSEXECUTOR_TIMEOUTMINUTES_LIBREOFFICETIMEOUTMINUTES: 10
+ ```
+
+
+
+### High-throughput - powerful server
+
+
+
+ ```yaml
+ processExecutor:
+ sessionLimit:
+ libreOfficeSessionLimit: 4
+ tesseractSessionLimit: 4
+ ghostscriptSessionLimit: 16
+ imageMagickSessionLimit: 8
+ pythonOpenCvSessionLimit: 16
+ qpdfSessionLimit: 8
+ ocrMyPdfSessionLimit: 4
+ timeoutMinutes:
+ libreOfficeTimeoutMinutes: 60
+ tesseractTimeoutMinutes: 60
+ ocrMyPdfTimeoutMinutes: 60
+ ```
+
+
+ ```bash
+ PROCESSEXECUTOR_SESSIONLIMIT_LIBREOFFICESSESSIONLIMIT=4
+ PROCESSEXECUTOR_SESSIONLIMIT_TESSERACTSESSIONLIMIT=4
+ PROCESSEXECUTOR_TIMEOUTMINUTES_LIBREOFFICETIMEOUTMINUTES=60
+ ```
+
+
+
diff --git a/docs/Configuration/SAML SSO Configuration/SAML SSO Configuration.md b/docs/Configuration/SAML SSO Configuration/SAML SSO Configuration.md
index ce4aa6bd..91cd8953 100644
--- a/docs/Configuration/SAML SSO Configuration/SAML SSO Configuration.md
+++ b/docs/Configuration/SAML SSO Configuration/SAML SSO Configuration.md
@@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem';
# SAML 2.0 Single Sign-On Configuration
> **Tier**: Enterprise
-Stirling-PDF supports SAML 2.0 Single Sign-On for enterprise deployments. This allows integration with Identity Providers (IdP) like Okta, Azure AD, Google Workspace, OneLogin, Authentik, and others.
+Stirling PDF supports SAML 2.0 Single Sign-On for enterprise deployments. This allows integration with Identity Providers (IdP) like Okta, Azure AD, Google Workspace, OneLogin, Authentik, and others.
> **Looking for OAuth 2.0 SSO?** See [OAuth SSO Configuration](../OAuth%20SSO%20Configuration.md) (Server tier).
@@ -45,7 +45,7 @@ SAML requires 3 certificate files for mutual trust:
#### 1a. Generate Service Provider (SP) Keypair
-Stirling-PDF needs a keypair to sign SAML requests and verify responses.
+Stirling PDF needs a keypair to sign SAML requests and verify responses.
> ℹ️ **If you don't have a keypair**, generate one using OpenSSL:
>
@@ -85,7 +85,7 @@ Place all 3 certificates inside your mounted configs directory:
> ⚠️ **Critical**: Use absolute paths in configuration: `/configs/filename.pem` (no `file:` or `classpath:` prefix for Docker)
-### Step 2: Configure Stirling-PDF
+### Step 2: Configure Stirling PDF
Configure SAML authentication by providing:
- **IdP URLs and certificate** - Get these from your Identity Provider (obtained from IdP admin panel)
@@ -203,7 +203,7 @@ https://your-domain.com/logout
3. Upload or paste `certificate.crt` contents
4. Save IdP configuration
-> Without uploading the SP certificate, your IdP cannot verify requests from Stirling-PDF.
+> Without uploading the SP certificate, your IdP cannot verify requests from Stirling PDF.
**Configure NameID and Attributes:**
- NameID format: `email` or `unspecified`
@@ -216,7 +216,7 @@ https://your-domain.com/logout
3. Click "Login via Single Sign-On" button
4. You'll be redirected to your IdP login page
5. Enter your IdP credentials
-6. You'll be redirected back to Stirling-PDF
+6. You'll be redirected back to Stirling PDF
7. A new user account is automatically created (if `autoCreateUser: true`)
> ⚠️ **If login fails**, check application logs for SAML errors. See [Troubleshooting](#troubleshooting) section.
@@ -240,7 +240,7 @@ security:
loginMethod: saml2 # Disables username/password login
```
-Restart Stirling-PDF.
+Restart Stirling PDF.
## Configuration Reference
@@ -271,7 +271,7 @@ Restart Stirling-PDF.
### SAML Attribute Mapping
-Stirling-PDF attempts to determine the username in the following priority order:
+Stirling PDF attempts to determine the username in the following priority order:
1. **`username`** attribute
2. **`emailaddress`** attribute (or full URI: `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`)
@@ -310,7 +310,7 @@ Check logs for:
Extracted SAML Attributes: {username=[john.doe], emailaddress=[john.doe@example.com], ...}
```
-> 💡 **Note**: Currently, Stirling-PDF only uses attributes for username identification. Other attributes (first name, last name, groups, roles) are extracted but not used.
+> 💡 **Note**: Currently, Stirling PDF only uses attributes for username identification. Other attributes (first name, last name, groups, roles) are extracted but not used.
### Understanding Registration ID
@@ -339,12 +339,12 @@ Your URLs become:
> ⚠️ **Critical**: If you change `registrationId` after configuring your IdP, you must update ALL URLs in your IdP configuration. The registration ID must match exactly in all places, or SAML login will fail.
-> 💡 **Recommendation**: Keep the default `stirling` value unless you have a specific reason to change it (e.g., running multiple Stirling-PDF instances with the same IdP).
+> 💡 **Recommendation**: Keep the default `stirling` value unless you have a specific reason to change it (e.g., running multiple Stirling PDF instances with the same IdP).
### Auto-Login Feature
> **Tier**: Enterprise
-Automatically redirect users to SAML login, bypassing the Stirling-PDF login screen:
+Automatically redirect users to SAML login, bypassing the Stirling PDF login screen:
```yaml
premium:
diff --git a/docs/Configuration/SSRF-Protection.md b/docs/Configuration/SSRF-Protection.md
new file mode 100644
index 00000000..27944446
--- /dev/null
+++ b/docs/Configuration/SSRF-Protection.md
@@ -0,0 +1,52 @@
+---
+sidebar_position: 16
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# SSRF Protection
+
+## What is SSRF and why does it matter?
+
+SSRF (Server-Side Request Forgery) is when someone tricks your server into making HTTP requests on their behalf - to your internal network, cloud metadata endpoints, or other places they shouldn't be able to reach.
+
+In Stirling PDF, the risk is tools like **URL to PDF**: a user could supply `http://192.168.1.1/admin` or `http://169.254.169.254/` and your server would fetch it. For self-hosted deployments on a private network, that's a real concern.
+
+SSRF protection is **enabled by default** at `MEDIUM` level. For most deployments, you don't need to touch it.
+
+:::warning
+The URL to PDF feature is **disabled by default** (`system.enableUrlToPDF: false`) due to the SSRF risks described above. It is intended for internal use only and should not be exposed externally. If you enable it, make sure SSRF protection is properly configured.
+:::
+
+---
+
+## Settings
+
+All settings are under `system.html.urlSecurity` in `settings.yml`.
+
+| Setting | Default | Description |
+|---|---|---|
+| `enabled` | `true` | Master on/off switch |
+| `level` | `MEDIUM` | `OFF`, `MEDIUM`, or `MAX` - see below |
+| `allowedDomains` | `[]` | Domains to always allow |
+| `blockedDomains` | `[]` | Domains to always block |
+| `internalTlds` | `.local`, `.internal`, `.corp`, `.home` | TLD suffixes treated as internal |
+| `blockPrivateNetworks` | `true` | Block RFC1918 private IP ranges |
+| `blockLocalhost` | `true` | Block 127.x / ::1 |
+| `blockLinkLocal` | `true` | Block 169.254.x.x / fe80:: |
+| `blockCloudMetadata` | `true` | Block AWS/GCP/Azure/Oracle/IBM metadata IPs |
+
+### Protection levels
+
+**`MEDIUM`** (default) - Blocks private IPs, localhost, cloud metadata, and internal TLDs. Public internet URLs are allowed by default.
+
+**`MAX`** - Only URLs explicitly listed in `allowedDomains` are allowed. Everything else is blocked. Unlike MEDIUM, subdomain matching is not supported in MAX mode - each domain and subdomain must be listed individually. Use this if you know exactly which external domains your users need.
+
+**`OFF`** - No SSRF checking at all. Only appropriate if you have network-level controls elsewhere.
+
+### Domain allow and block lists
+
+The `allowedDomains` and `blockedDomains` settings work alongside whichever protection level you choose.
+
+- **`allowedDomains`** - When set at MEDIUM level, only these domains (and their subdomains) are permitted in addition to the default public-internet access. At MAX level, this is the exclusive list of permitted domains (no subdomain matching).
+- **`blockedDomains`** - Domains to always deny, regardless of level. Uses exact matching - blocking `example.com` will not block `sub.example.com`.
\ No newline at end of file
diff --git a/docs/Configuration/Single Sign-On Configuration.md b/docs/Configuration/Single Sign-On Configuration.md
index 0ecb0aa8..3ab31f03 100644
--- a/docs/Configuration/Single Sign-On Configuration.md
+++ b/docs/Configuration/Single Sign-On Configuration.md
@@ -5,7 +5,7 @@ tags: [enterprise, management, feature, advanced feature]
# Single Sign-On (SSO) Overview
-Stirling-PDF supports Single Sign-On (SSO) authentication through two protocols:
+Stirling PDF supports Single Sign-On (SSO) authentication through two protocols:
## OAuth 2.0 / OpenID Connect (OIDC)
> **Tier**: Server
diff --git a/docs/Configuration/System and Security.md b/docs/Configuration/System and Security.md
index f427cfd7..45ab1d18 100644
--- a/docs/Configuration/System and Security.md
+++ b/docs/Configuration/System and Security.md
@@ -14,6 +14,9 @@ Stirling PDF allows customization of system and security settings. For security
- `csrfDisabled`: Set to 'true' to disable CSRF protection (not recommended for production)
- `defaultLocale`: Set the default language (e.g. 'de-DE', 'fr-FR', etc)
- `googlevisibility`: 'true' to allow Google visibility (via robots.txt), 'false' to disallow
+- `xFrameOptions`: Controls whether your instance can be embedded in an iframe. Set to `DENY` to prevent clickjacking. Use `SAMEORIGIN` only if you embed the UI in your own application.
+- `loginAttemptCount`: Number of failed login attempts before an account is locked (e.g. `5`)
+- `loginResetTimeMinutes`: Minutes before a locked account is automatically unlocked (e.g. `10`)
## Authentication Setup
@@ -135,7 +138,7 @@ java -jar Stirling-PDF.jar
## Split Deployment Configuration
-Stirling-PDF supports separating frontend and backend for better scalability and deployment flexibility.
+Stirling PDF supports separating frontend and backend for better scalability and deployment flexibility.
### Deployment Modes
@@ -194,7 +197,7 @@ SYSTEM_CORSALLOWEDORIGINS=https://pdf.example.com,https://pdf-staging.example.co
## Server Certificates
-Stirling-PDF can auto-generate certificates for the "Sign with Stirling-PDF" feature.
+Stirling PDF can auto-generate certificates for the "Sign with Stirling PDF" feature.
### Configuration
@@ -219,7 +222,7 @@ SYSTEM_SERVERCERTIFICATE_REGENERATEONSTARTUP=false
1. **First Startup:** Server generates self-signed certificate, stored in `/configs` directory
2. **Subsequent Startups:** Reuses existing certificate (unless `regenerateOnStartup: true`)
-3. **User Signs:** PDFs signed using this certificate via "Sign with Stirling-PDF" option
+3. **User Signs:** PDFs signed using this certificate via "Sign with Stirling PDF" option
### Custom Certificates
@@ -370,7 +373,7 @@ Configure SMTP for sending email invitations and notifications. Enable `mail.ena
> - Manual user creation by admins
> - Normal application operation
>
-> You can run Stirling-PDF without any email configuration if you create users manually or use SSO.
+> You can run Stirling PDF without any email configuration if you create users manually or use SSO.
### Email Invites
diff --git a/docs/Configuration/UI Customisation.md b/docs/Configuration/UI Customisation.md
index 03a1aea1..f149e73a 100644
--- a/docs/Configuration/UI Customisation.md
+++ b/docs/Configuration/UI Customisation.md
@@ -7,7 +7,7 @@ import TabItem from '@theme/TabItem';
# UI Customisation
-Stirling PDF allows straightforward customization of the application name and appearance to make Stirling-PDF your own.
+Stirling PDF allows straightforward customization of the application name and appearance to make Stirling PDF your own.
## Application Name Settings
These settings control the visible application name:
@@ -65,7 +65,7 @@ Then place your custom files in `customFiles/static/` matching the path structur
### Fork the Frontend (Developers)
For complete UI customization:
-1. Clone the Stirling-PDF repository
+1. Clone the Stirling PDF repository
2. Modify the React components in `frontend/src/`
3. Build the frontend: `cd frontend && npm install && npm run build`
4. Use static file overrides or build your own Docker image
diff --git a/docs/Configuration/Usage Monitoring.md b/docs/Configuration/Usage Monitoring.md
index 33b83c58..818d54fb 100644
--- a/docs/Configuration/Usage Monitoring.md
+++ b/docs/Configuration/Usage Monitoring.md
@@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem';
# Usage Monitoring
> **Tier**: Enterprise
-Stirling-PDF provides robust usage monitoring capabilities through its API, allowing you to track application usage patterns and performance metrics.
+Stirling PDF provides robust usage monitoring capabilities through its API, allowing you to track application usage patterns and performance metrics.
## Non-Persistent Usage Monitoring API
@@ -44,13 +44,62 @@ Enterprise license holders can access the enhanced usage monitoring dashboard at
This dashboard provides graphical representations and detailed tables of the usage data, similar to the Endpoint Statistics interface shown in the documentation.
+## Persistent Metrics
+
+> **Tier**: Enterprise
+
+By default, usage statistics are held in memory and lost on restart. Persistent metrics stores them in the database instead.
+
+Settings are under `premium.enterpriseFeatures.persistentMetrics`.
+
+| Setting | Default | Description |
+|---|---|---|
+| `enabled` | `false` | Enable persistent metrics storage |
+| `retentionDays` | (none) | Days to keep metrics data. Leave unset to keep indefinitely. |
+
+
+
+ ```yaml
+ premium:
+ enabled: true
+ key: your-enterprise-license-key
+ enterpriseFeatures:
+ persistentMetrics:
+ enabled: true
+ retentionDays: 180
+ ```
+
+
+ ```bash
+ PREMIUM_ENABLED=true
+ PREMIUM_KEY=your-enterprise-license-key
+ PREMIUM_ENTERPRISEFEATURES_PERSISTENTMETRICS_ENABLED=true
+ PREMIUM_ENTERPRISEFEATURES_PERSISTENTMETRICS_RETENTIONDAYS=180
+ ```
+
+
+ ```yaml
+ services:
+ stirling-pdf:
+ image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
+ environment:
+ PREMIUM_ENABLED: true
+ PREMIUM_KEY: your-enterprise-license-key
+ PREMIUM_ENTERPRISEFEATURES_PERSISTENTMETRICS_ENABLED: true
+ PREMIUM_ENTERPRISEFEATURES_PERSISTENTMETRICS_RETENTIONDAYS: 180
+ ```
+
+
+
+---
+
## Prometheus Monitoring Configuration
-Stirling-PDF supports application metrics monitoring using Prometheus. This feature allows you to track application performance, usage patterns, and health metrics.
+Stirling PDF supports application metrics monitoring using Prometheus. This feature allows you to track application performance, usage patterns, and health metrics.
### Prerequisites
-1. A valid Stirling-PDF enterprise license
+1. A valid Stirling PDF enterprise license
2. Enterprise mode enabled in your configuration
3. Running with additional features enabled (DISABLE_ADDITIONAL_FEATURES=false)
@@ -138,7 +187,7 @@ scrape_configs:
### Available Metrics
-With Prometheus integration enabled, Stirling-PDF exposes the following types of metrics:
+With Prometheus integration enabled, Stirling PDF exposes the following types of metrics:
- **JVM metrics**: Memory usage, garbage collection, thread utilization
- **System metrics**: CPU usage, file descriptors
- **Application metrics**: Request rates, processing times
diff --git a/docs/Contribute.md b/docs/Contribute.md
index 8c37925e..0bd4d68c 100644
--- a/docs/Contribute.md
+++ b/docs/Contribute.md
@@ -64,10 +64,6 @@ Translation files are located in `frontend/public/locales/`
- Files are organized by feature (e.g., `common.json`, `tools.json`)
- Use standard JSON format
-### Legacy Translations (Properties)
-For V1.5 and backend translations:
-- See [How To Add New Language guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
-
## Development Resources
- **API Documentation**: Access at `/swagger-ui/index.html` on your local instance
- **Developer Guide**: See `DeveloperGuide.md` in the repository
diff --git a/docs/FAQ.md b/docs/FAQ.md
index 1f23287c..92207537 100644
--- a/docs/FAQ.md
+++ b/docs/FAQ.md
@@ -23,8 +23,8 @@ You can also reach out in discord but without a ticket to track it the request c
### Q5: I found a bug in Stirling PDF. Where can I report it?
Please report any bugs or issues you encounter through our GitHub Issues page. Be sure to include as much detail as possible so we can diagnose and resolve the issue quickly.
-### Q6: My Stirling-PDF Using high RAM at idle, How can I optimize memory usage?
-Stirling-PDF's memory usage can be optimized in several ways:
+### Q6: My Stirling PDF Using high RAM at idle, How can I optimize memory usage?
+Stirling PDF's memory usage can be optimized in several ways:
Disable additional features: Set DISABLE_ADDITIONAL_FEATURES=true to reduce RAM consumption. This can significantly lower memory usage, especially during idle periods.
@@ -39,17 +39,17 @@ If you experience connection issues, use these alternative endpoints:
All endpoints provide the same functionality.
-### Q8: Does Stirling-PDF track my data?
+### Q8: Does Stirling PDF track my data?
No, we track no data without your explicit consent. You can see how, when, and why at our [Analytics and Telemetry](./analytics-telemetry) page.
### Q9: When I upload a file, where is it processed?
-Uploads go to the server or desktop instance you're using, not to Stirling servers. The macOS/Windows desktop apps process files locally—even when you pick the Stirling Cloud sign-in today—so your PDFs stay on your device unless you point the app to a remote self-hosted server. Planned SaaS-assisted features (for desktop app) will be opt-in when they arrive.
+Uploads go to the server or desktop instance you're using, not to Stirling servers. The macOS/Windows desktop apps process files locally - even when you pick the Stirling Cloud sign-in today - so your PDFs stay on your device unless you point the app to a remote self-hosted server. Planned SaaS-assisted features (for desktop app) will be opt-in when they arrive.
### Q10: What are the different JAR files and which should I use?
-Stirling-PDF comes in three different JAR files:
+Stirling PDF comes in three different JAR files:
**Stirling-PDF-with-login.jar** (Recommended - Full Features):
- Bundles frontend UI + backend server
diff --git a/docs/Functionality/Advanced-Tools.md b/docs/Functionality/Advanced-Tools.md
index 8bf1b8b1..2381cb2f 100644
--- a/docs/Functionality/Advanced-Tools.md
+++ b/docs/Functionality/Advanced-Tools.md
@@ -294,7 +294,7 @@ Display any embedded JavaScript code within a PDF document.
**Tool ID:** `devApi`
-Quick link to complete API documentation for integrating Stirling-PDF into your applications.
+Quick link to complete API documentation for integrating Stirling PDF into your applications.
**Access:** [API Documentation](../API.md)
@@ -324,7 +324,7 @@ Link to Single Sign-On (SSO) configuration guide for enterprise deployments.
**Tool ID:** `devAirgapped`
-Link to guide for deploying Stirling-PDF in offline/air-gapped environments.
+Link to guide for deploying Stirling PDF in offline/air-gapped environments.
**Access:** [Configuration](../Configuration/Configuration.md)
diff --git a/docs/Functionality/Compare.md b/docs/Functionality/Compare.md
index af786497..b359f66d 100644
--- a/docs/Functionality/Compare.md
+++ b/docs/Functionality/Compare.md
@@ -317,7 +317,7 @@ Generated comparison report includes:
### Comparison Algorithm
-Stirling-PDF uses advanced comparison algorithms:
+Stirling PDF uses advanced comparison algorithms:
- **Text extraction** - Extract text from both PDFs
- **Diff algorithm** - Compute differences
- **Visual rendering** - Highlight changes
@@ -411,7 +411,7 @@ See [API Documentation](../API.md) for complete endpoint reference.
## Summary
-Stirling-PDF's Compare tool provides:
+Stirling PDF's Compare tool provides:
✅ **Side-by-side comparison** - View both documents simultaneously
✅ **Visual highlighting** - Color-coded difference markers
diff --git a/docs/Functionality/Compress.md b/docs/Functionality/Compress.md
index 88ff673e..c9440e6e 100644
--- a/docs/Functionality/Compress.md
+++ b/docs/Functionality/Compress.md
@@ -9,7 +9,7 @@ description: Reduce PDF file size while maintaining quality
**Tool ID:** `compress-pdf`
-Reduce PDF file size while maintaining acceptable quality for your needs. Stirling-PDF's compression tool optimizes images, removes unnecessary data, and applies various compression techniques to significantly reduce file sizes.
+Reduce PDF file size while maintaining acceptable quality for your needs. Stirling PDF's compression tool optimizes images, removes unnecessary data, and applies various compression techniques to significantly reduce file sizes.
---
@@ -271,7 +271,7 @@ Compress multiple PDFs at once with consistent settings:
### Compression Methods
-Stirling-PDF uses multiple compression techniques:
+Stirling PDF uses multiple compression techniques:
**Image Compression:**
- JPEG compression for photos
@@ -357,7 +357,7 @@ See [API Documentation](../API.md) for complete endpoint reference.
## Summary
-Stirling-PDF's Compress tool provides:
+Stirling PDF's Compress tool provides:
✅ **Significant size reduction** - 10-90% smaller files
✅ **Quality control** - Choose your size/quality balance
diff --git a/docs/Functionality/Convert/Convert.md b/docs/Functionality/Convert/Convert.md
index a1da4468..8efb635e 100644
--- a/docs/Functionality/Convert/Convert.md
+++ b/docs/Functionality/Convert/Convert.md
@@ -5,7 +5,7 @@ description: Convert files to and from PDF format
# Convert
-Stirling-PDF's Convert tool provides powerful file format conversion with support for 50+ file types. Convert documents, images, web pages, and more to PDF, or export PDFs to other formats.
+Stirling PDF's Convert tool provides powerful file format conversion with support for 50+ file types. Convert documents, images, web pages, and more to PDF, or export PDFs to other formats.
---
@@ -202,7 +202,7 @@ Convert multiple files at once:
### Processing Engine
-Stirling-PDF uses industry-standard tools for conversions:
+Stirling PDF uses industry-standard tools for conversions:
- **Office Conversions** - LibreOffice (document fidelity)
- **Image Processing** - ImageMagick, OpenCV
@@ -277,7 +277,7 @@ See [API Documentation](../../API.md) for complete endpoint reference.
## Summary
-Stirling-PDF's Convert tool provides:
+Stirling PDF's Convert tool provides:
✅ **50+ file format conversions**
✅ **Batch processing** - Convert multiple files at once
diff --git a/docs/Functionality/Functionality.md b/docs/Functionality/Functionality.md
index 11646e43..71bfb0c4 100644
--- a/docs/Functionality/Functionality.md
+++ b/docs/Functionality/Functionality.md
@@ -8,7 +8,7 @@ description: Explore 60+ PDF tools for all your document needs
# PDF Tools
-Stirling-PDF provides **60+ powerful PDF tools** organized by category. Find the tool you need below.
+Stirling PDF provides **60+ powerful PDF tools** organized by category. Find the tool you need below.
---
diff --git a/docs/Functionality/Mobile-Scanner.md b/docs/Functionality/Mobile-Scanner.md
new file mode 100644
index 00000000..ce0ba2e2
--- /dev/null
+++ b/docs/Functionality/Mobile-Scanner.md
@@ -0,0 +1,31 @@
+---
+sidebar_position: 11
+title: Mobile Scanner
+description: Scan documents from your mobile phone and upload them directly to your desktop or server
+---
+
+# Mobile Scanner (Phone Upload)
+
+The Mobile Scanner lets you scan documents using your phone camera and upload them directly to your Stirling PDF instance. Generate a QR code on your desktop, scan it with your phone, and your photos are transferred automatically — no cables, no cloud services, no manual file handling.
+
+Depending on your [server settings](/Configuration/Mobile-Scanner), uploaded images can be automatically converted to PDF with configurable page format, resolution, and scaling options.
+
+## How It Works
+
+1. Desktop generates a QR code with a unique session ID
+2. Mobile device scans the QR code
+3. Mobile uploads photos or images
+4. Desktop retrieves files
+5. Files auto-delete after 10 minutes of inactivity or upon download
+
+## Privacy & Security
+
+- Files stored temporarily in system temp directory only
+- No permanent storage on server
+- Auto-deleted after 10 minutes
+- Works on local network or HTTPS tunnel
+- No cloud storage involved
+
+## Configuration
+
+See [Mobile Scanner Configuration](/Configuration/Mobile-Scanner) for enable/disable and PDF conversion settings.
diff --git a/docs/Functionality/Multi-Tool.md b/docs/Functionality/Multi-Tool.md
index d74d39bb..1e7036bf 100644
--- a/docs/Functionality/Multi-Tool.md
+++ b/docs/Functionality/Multi-Tool.md
@@ -9,7 +9,7 @@ description: Chain multiple PDF operations together without re-uploading files
**Tool ID:** `multiTool`
-Multi-Tool is Stirling-PDF's page editor workspace. Upload your PDFs and manipulate pages visually - rotate, reorder, delete, and split pages with an intuitive interface.
+Multi-Tool is Stirling PDF's page editor workspace. Upload your PDFs and manipulate pages visually - rotate, reorder, delete, and split pages with an intuitive interface.
:::tip V2.0 Feature
Multi-Tool takes advantage of browser file storage, allowing you to upload files once and work with them across multiple page operations without re-uploading.
@@ -414,7 +414,7 @@ Not directly, but you can:
No, browser storage is device-specific. Options:
- Download files and transfer them
- Use cloud storage between devices
-- Self-host Stirling-PDF on your network
+- Self-host Stirling PDF on your network
### Does Multi-Tool work offline?
- **Browser:** No, requires server connection for processing
@@ -427,7 +427,7 @@ Yes! Select multiple files and most operations will process them in batch.
## Summary
-Multi-Tool is your **PDF command center** in Stirling-PDF V2:
+Multi-Tool is your **PDF command center** in Stirling PDF V2:
- 📁 Upload once, use everywhere
- 🔄 Chain unlimited operations
- ⏮️ Undo/redo for experimentation
diff --git a/docs/Functionality/OCR.md b/docs/Functionality/OCR.md
index 7747c8e0..b2b6210a 100644
--- a/docs/Functionality/OCR.md
+++ b/docs/Functionality/OCR.md
@@ -9,7 +9,7 @@ description: Make scanned PDFs searchable and editable with OCR
**Tool ID:** `ocr-pdf`
-Make scanned PDFs searchable and editable by recognizing text in images. Stirling-PDF's OCR tool uses Tesseract OCR engine to extract text from image-based PDFs and convert them into searchable, selectable documents.
+Make scanned PDFs searchable and editable by recognizing text in images. Stirling PDF's OCR tool uses Tesseract OCR engine to extract text from image-based PDFs and convert them into searchable, selectable documents.
---
@@ -39,7 +39,7 @@ OCR (Optical Character Recognition) is technology that recognizes text within im
## Language Support
-Stirling-PDF supports OCR in **100+ languages** including:
+Stirling PDF supports OCR in **100+ languages** including:
### Common Languages
- **English** - eng
@@ -195,7 +195,7 @@ Improve OCR accuracy by preprocessing images:
### OCR Engine
-Stirling-PDF uses **Tesseract OCR**, an industry-standard open-source OCR engine originally developed by HP and now maintained by Google.
+Stirling PDF uses **Tesseract OCR**, an industry-standard open-source OCR engine originally developed by HP and now maintained by Google.
**Key Features:**
- Over 100 languages supported
@@ -225,7 +225,7 @@ OCR produces a **PDF with embedded text layer**:
### Installing Language Packs
-By default, Stirling-PDF includes common language packs. To add additional languages:
+By default, Stirling PDF includes common language packs. To add additional languages:
**Docker:**
```dockerfile
@@ -318,7 +318,7 @@ See [API Documentation](../API.md) for complete endpoint reference.
## Summary
-Stirling-PDF's OCR tool provides:
+Stirling PDF's OCR tool provides:
✅ **100+ language support** - Recognize text in any language
✅ **Layout preservation** - Maintain original document formatting
diff --git a/docs/Functionality/Read-and-Annotate.md b/docs/Functionality/Read-and-Annotate.md
index 7768a0b2..b347131e 100644
--- a/docs/Functionality/Read-and-Annotate.md
+++ b/docs/Functionality/Read-and-Annotate.md
@@ -9,7 +9,7 @@ description: Interactive PDF viewer with annotation tools for reading and markup
**Tool ID:** `read`
-The Read & Annotate tool is Stirling-PDF V2's interactive PDF viewer and annotation system. Read PDFs directly in your browser while adding comments, highlights, drawings, and other markup - all without leaving the application.
+The Read & Annotate tool is Stirling PDF V2's interactive PDF viewer and annotation system. Read PDFs directly in your browser while adding comments, highlights, drawings, and other markup - all without leaving the application.
:::tip V2.0 Feature
Built with **[EmbedPDF](https://www.embedpdf.com/)**, an advanced open-source PDF viewer, the Read tool provides a fluid reading and annotation experience with full support for PDF standards.
@@ -352,7 +352,7 @@ Modify existing annotations:
## Compatibility
### Annotation Standards
-Stirling-PDF uses standard PDF annotation formats:
+Stirling PDF uses standard PDF annotation formats:
- ✅ **Adobe Acrobat** - Full compatibility
- ✅ **Foxit Reader** - All annotations supported
- ✅ **PDF-XChange** - Complete support
@@ -407,7 +407,7 @@ Some advanced features may not work everywhere:
## Read Tool vs. Other Viewers
### vs. Adobe Acrobat Reader
-**Stirling-PDF Read:**
+**Stirling PDF Read:**
- ✅ No installation needed (browser)
- ✅ Integrated with other Stirling tools
- ✅ Open source and free
@@ -422,7 +422,7 @@ Some advanced features may not work everywhere:
- ❌ Paid features
### vs. Browser Default PDF Viewer
-**Stirling-PDF Read:**
+**Stirling PDF Read:**
- ✅ Full annotation tools
- ✅ Save annotations in PDF
- ✅ Professional markup options
@@ -472,13 +472,13 @@ Some advanced features may not work everywhere:
## Summary
-The Read & Annotate tool transforms Stirling-PDF into a powerful PDF review platform:
+The Read & Annotate tool transforms Stirling PDF into a powerful PDF review platform:
- 📖 **Full-featured viewer** - Professional reading experience
- ✏️ **Complete annotation tools** - Highlights, comments, drawings, shapes
- 💬 **Collaboration ready** - Standard format, multi-user support
- 💾 **Save and share** - Annotated PDFs compatible everywhere
-- 🚀 **Integrated workflow** - Part of Stirling-PDF V2 ecosystem
+- 🚀 **Integrated workflow** - Part of Stirling PDF V2 ecosystem
**Perfect for:** Document review, contract markup, student notes, design feedback, form filling, and collaborative editing.
diff --git a/docs/Functionality/Recommended-Tools.md b/docs/Functionality/Recommended-Tools.md
index e9297d07..a5f22044 100644
--- a/docs/Functionality/Recommended-Tools.md
+++ b/docs/Functionality/Recommended-Tools.md
@@ -2,12 +2,12 @@
sidebar_position: 1
id: Recommended-Tools
title: Recommended Tools
-description: The 7 most commonly used PDF tools in Stirling-PDF V2
+description: The 7 most commonly used PDF tools in Stirling PDF V2
---
# Recommended Tools
-These are the **7 most frequently used PDF operations** in Stirling-PDF, prominently featured for quick access. Perfect for everyday PDF tasks.
+These are the **7 most frequently used PDF operations** in Stirling PDF, prominently featured for quick access. Perfect for everyday PDF tasks.
---
@@ -86,7 +86,7 @@ Compare two PDF documents side-by-side and visually highlight the differences be
**Tool ID:** `compress-pdf`
-Reduce PDF file size while maintaining acceptable quality for your needs. Stirling-PDF's compression tool optimizes images, removes unnecessary data, and applies various compression techniques.
+Reduce PDF file size while maintaining acceptable quality for your needs. Stirling PDF's compression tool optimizes images, removes unnecessary data, and applies various compression techniques.
### What it does
- Significantly reduce PDF file size (10-90% reduction)
@@ -152,7 +152,7 @@ Convert between PDF and 50+ other file formats including images, Office document
**Tool ID:** `ocr-pdf`
-Make scanned PDFs searchable and editable by recognizing text in images. Stirling-PDF's OCR tool uses Tesseract OCR engine to extract text from image-based PDFs.
+Make scanned PDFs searchable and editable by recognizing text in images. Stirling PDF's OCR tool uses Tesseract OCR engine to extract text from image-based PDFs.
### What it does
- Recognize text from scanned documents
@@ -239,7 +239,7 @@ These 7 tools represent the most common PDF operations that users perform daily:
## Quick Access
-In Stirling-PDF V2, these recommended tools are:
+In Stirling PDF V2, these recommended tools are:
- ✨ Featured prominently on the home page
- 🔍 Easier to find in search
- ⭐ Marked with special indicators
diff --git a/docs/Functionality/Security/Certificate-Signing.md b/docs/Functionality/Security/Certificate-Signing.md
index 39b5ebaf..d2050ab9 100644
--- a/docs/Functionality/Security/Certificate-Signing.md
+++ b/docs/Functionality/Security/Certificate-Signing.md
@@ -7,7 +7,7 @@ description: Sign and validate PDF certificates
# Certificate Signing
-Stirling-PDF provides comprehensive PDF certificate signing and validation capabilities. Digitally sign PDFs with X.509 certificates and validate existing signatures against trusted certificate chains.
+Stirling PDF provides comprehensive PDF certificate signing and validation capabilities. Digitally sign PDFs with X.509 certificates and validate existing signatures against trusted certificate chains.
---
@@ -31,7 +31,7 @@ Stirling-PDF provides comprehensive PDF certificate signing and validation capab
### Methods
-#### 1. Sign with Stirling-PDF (Server Certificate)
+#### 1. Sign with Stirling PDF (Server Certificate)
**Easiest option** - Use auto-generated server certificate.
@@ -50,7 +50,7 @@ Stirling-PDF provides comprehensive PDF certificate signing and validation capab
**Steps:**
1. Go to **Certificate Sign** tool
2. Upload PDF
-3. Select "Sign with Stirling-PDF"
+3. Select "Sign with Stirling PDF"
4. Configure signature appearance (optional):
- Position on page
- Size
@@ -225,7 +225,7 @@ Verify that:
### Trust Chains
-Stirling-PDF checks multiple trust sources:
+Stirling PDF checks multiple trust sources:
#### 1. Server-Generated Certificates
```yaml
@@ -235,7 +235,7 @@ security:
serverAsAnchor: true # Trust server-generated certs
```
-**Use case:** Trust PDFs signed by your Stirling-PDF instance.
+**Use case:** Trust PDFs signed by your Stirling PDF instance.
---
@@ -666,7 +666,7 @@ curl -X POST http://stirling-pdf:8080/api/v1/security/validate-signature \
### Server certificate not generated
-**Symptom:** "Sign with Stirling-PDF" option not available.
+**Symptom:** "Sign with Stirling PDF" option not available.
**Solutions:**
1. Check configuration:
@@ -776,7 +776,7 @@ curl -X POST http://stirling-pdf:8080/api/v1/security/validate-signature \
## Legal Considerations
-**Disclaimer:** Stirling-PDF provides tools for PDF signing and validation. Legal validity depends on jurisdiction and use case.
+**Disclaimer:** Stirling PDF provides tools for PDF signing and validation. Legal validity depends on jurisdiction and use case.
### When Certificates Are Legally Binding
@@ -827,7 +827,7 @@ curl -X POST http://stirling-pdf:8080/api/v1/security/validate-signature \
## Summary
-**Stirling-PDF certificate signing provides:**
+**Stirling PDF certificate signing provides:**
✅ **Easy signing** - Server certificates work out-of-box
✅ **Custom certificates** - Use your own for legal documents
diff --git a/docs/Functionality/Security/Security.md b/docs/Functionality/Security/Security.md
index 0a2d86c0..426eb46e 100644
--- a/docs/Functionality/Security/Security.md
+++ b/docs/Functionality/Security/Security.md
@@ -52,7 +52,7 @@ description: Security features for PDFs and deployment configurations
## Certificate Signature Validation
-Stirling-PDF provides enterprise-grade PDF signature validation with configurable trust chains.
+Stirling PDF provides enterprise-grade PDF signature validation with configurable trust chains.
### Trust Sources
diff --git a/docs/Functionality/Security/Sign.md b/docs/Functionality/Security/Sign.md
index 132641e7..bc7428d2 100644
--- a/docs/Functionality/Security/Sign.md
+++ b/docs/Functionality/Security/Sign.md
@@ -82,7 +82,7 @@ There are two types of PDF signatures:
## Using Pre-stored Signatures
-You can configure Stirling-PDF to load pre-stored signature files for quick access. This is useful for:
+You can configure Stirling PDF to load pre-stored signature files for quick access. This is useful for:
- Consistent signature appearance
- Quick signing of multiple documents
- Team/organization signature standards
@@ -358,7 +358,7 @@ See [API Documentation](../../API.md) for complete endpoint reference.
## Summary
-Stirling-PDF's Sign tool provides:
+Stirling PDF's Sign tool provides:
✅ **Three signature methods** - Draw, type, or upload
✅ **Easy positioning** - Drag and drop placement
diff --git a/docs/Functionality/The Technologies.md b/docs/Functionality/The Technologies.md
index 0d893258..232cc667 100644
--- a/docs/Functionality/The Technologies.md
+++ b/docs/Functionality/The Technologies.md
@@ -1,10 +1,10 @@
---
sidebar_position: 0
-description: What makes Stirling-PDF powerful - technologies and capabilities!
+description: What makes Stirling PDF powerful - technologies and capabilities!
---
-# What Makes Stirling-PDF Powerful
+# What Makes Stirling PDF Powerful
-Stirling-PDF combines server-side processing power with modern browser capabilities to give you the best PDF experience possible.
+Stirling PDF combines server-side processing power with modern browser capabilities to give you the best PDF experience possible.
## Key Features
@@ -26,7 +26,7 @@ Stirling-PDF combines server-side processing power with modern browser capabilit
### Desktop Applications
- **Windows, Mac, and Linux** native applications available
-- **Open PDFs directly** - Double-click PDF files to open them in Stirling-PDF
+- **Open PDFs directly** - Double-click PDF files to open them in Stirling PDF
- **No browser needed** - Standalone application with all features
- **Automatic updates** - Stay up to date with the latest features
@@ -45,7 +45,7 @@ Stirling-PDF combines server-side processing power with modern browser capabilit
## The Technology Behind It
### Processing Power (Server-Side)
-Stirling-PDF uses powerful open-source tools to handle complex PDF operations:
+Stirling PDF uses powerful open-source tools to handle complex PDF operations:
- **[PDFBox](https://pdfbox.apache.org/)** - Core PDF manipulation for most operations
- **[LibreOffice](https://www.libreoffice.org/)** - Advanced file conversions (Office documents, images, etc.)
@@ -82,7 +82,7 @@ A fast, modern interface built with powerful frontend technologies:
Native applications built with modern desktop technology:
- **[Tauri](https://tauri.app/)** - Rust-based native app framework
- - **Automatic PDF file association** - Open PDFs directly in Stirling-PDF
+ - **Automatic PDF file association** - Open PDFs directly in Stirling PDF
- **Bundled processing tools** - Everything you need included
- **System integration** - Feels like a native application
- **One-click installers** - Easy installation on all platforms
diff --git a/docs/Getting Started.md b/docs/Getting Started.md
index 58f75f75..16773b70 100644
--- a/docs/Getting Started.md
+++ b/docs/Getting Started.md
@@ -3,7 +3,7 @@ sidebar_position: 0
slug: /
---
-## Benefits of Stirling-PDF
+## Benefits of Stirling PDF
- **Extensive PDF Functionality:** Access 60+ tools, including signing, converting, merging, and more.
- **Advanced Customization:** Deep customization, themes, and environment variables.
- **Enterprise Features:** SSO, user management, and permission controls.
@@ -13,13 +13,13 @@ slug: /
- **Open-Source:** Community-driven with frequent updates and GitHub support.
- **Multi-Language Support:** Available in 38+ languages with active translations.
-## Welcome to Stirling-PDF
+## Welcome to Stirling PDF
:::tip Upgrading from V1?
See the **[Migration Guide](./Migration/Overview)** for what's new and how to upgrade smoothly.
:::
-Stirling-PDF is a locally hosted web application that allows you to perform various operations on PDF files. With 60+ tools, flexible deployment options, and enterprise features, it's the comprehensive PDF solution for individuals and organizations.
+Stirling PDF is a locally hosted web application that allows you to perform various operations on PDF files. With 60+ tools, flexible deployment options, and enterprise features, it's the comprehensive PDF solution for individuals and organizations.
---
@@ -60,19 +60,19 @@ All configuration options for Docker and server deployments
### 🔧 For Developers & Integration
**[API Documentation](./API.md)**
-Integrate Stirling-PDF into your applications and workflows
+Integrate Stirling PDF into your applications and workflows
**[Configuration](./Configuration/System%20and%20Security.md)**
SSO, split deployment, certificates, security settings, and more
**[Contribute Guide](./Contribute.md)**
-Help improve Stirling-PDF - development setup and guidelines
+Help improve Stirling PDF - development setup and guidelines
---
## Installation
-Choose how you want to run Stirling-PDF based on your needs:
+Choose how you want to run Stirling PDF based on your needs:
### 🖥️ Desktop Applications
diff --git a/docs/Installation/Development Setup.md b/docs/Installation/Development Setup.md
index b9857f3d..dd156171 100644
--- a/docs/Installation/Development Setup.md
+++ b/docs/Installation/Development Setup.md
@@ -4,9 +4,9 @@ id: Development Setup
title: Development Setup Guide
---
-# Development Setup for Stirling-PDF
+# Development Setup for Stirling PDF
-This guide covers setting up a local development environment for Stirling-PDF, including both backend and frontend (V2.0+) development.
+This guide covers setting up a local development environment for Stirling PDF, including both backend and frontend (V2.0+) development.
## Prerequisites
@@ -50,7 +50,7 @@ The backend will start on `http://localhost:8080`
#### Code Formatting
-Stirling-PDF uses Spotless for code formatting:
+Stirling PDF uses Spotless for code formatting:
```bash
# Apply formatting (run before committing)
@@ -105,7 +105,7 @@ The frontend will start on `http://localhost:5173`
### 4. Desktop Application Development
-Stirling-PDF V2.0 uses Tauri for native desktop applications:
+Stirling PDF V2.0 uses Tauri for native desktop applications:
```bash
# Navigate to frontend directory
@@ -198,7 +198,7 @@ See `ADDING_TOOLS.md` in the repository for detailed tool development guide.
### Testing Different Versions
-Stirling-PDF offers three Docker variants:
+Stirling PDF offers three Docker variants:
- **Ultra-lite**: Basic PDF operations only
- **Standard** (latest): Full feature set
- **Fat** (latest-fat): Pre-downloaded dependencies for air-gapped environments
diff --git a/docs/Installation/Docker Install.md b/docs/Installation/Docker Install.md
index a2cb9130..47473d62 100644
--- a/docs/Installation/Docker Install.md
+++ b/docs/Installation/Docker Install.md
@@ -6,9 +6,9 @@ title: Docker Guide
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Docker Installation for Stirling-PDF
+# Docker Installation for Stirling PDF
-Run Stirling-PDF in Docker for easy self-hosting, automatic updates, and flexible deployment.
+Run Stirling PDF in Docker for easy self-hosting, automatic updates, and flexible deployment.
## Quick Start
@@ -52,7 +52,7 @@ Then open `http://localhost:8080` in your browser!
## Choosing Your Version
-Stirling-PDF offers three versions depending on your needs:
+Stirling PDF offers three versions depending on your needs:
| Version | Tag | What's Included | Best For |
|---------|-----|-----------------|----------|
@@ -86,7 +86,7 @@ docker run -d stirlingtools/stirling-pdf:latest-ultra-lite
## Deployment Options (V2.0+)
-V2.0 lets you run Stirling-PDF in different ways depending on your needs:
+V2.0 lets you run Stirling PDF in different ways depending on your needs:
### Simple Deployment (Recommended)
@@ -194,7 +194,7 @@ docker-compose up -d
- `/pipeline` - Automation configurations
**What this does:**
-- Runs Stirling-PDF on port 8080
+- Runs Stirling PDF on port 8080
- Stores data in `./stirling-data` folder
- Automatically restarts if it crashes
- Everything in one container (MODE=BOTH is default)
@@ -248,7 +248,7 @@ services:
- Microservices architecture
- Need independent scaling
-## Updating Stirling-PDF
+## Updating Stirling PDF
### Docker Run
```bash
diff --git a/docs/Installation/Mac.md b/docs/Installation/Mac.md
index 46d9a354..d3116009 100644
--- a/docs/Installation/Mac.md
+++ b/docs/Installation/Mac.md
@@ -40,7 +40,7 @@ Native Mac desktop app with all PDF tools available.
**2. Install the application:**
1. Open the downloaded `.dmg` file
-2. Drag Stirling-PDF to your Applications folder
+2. Drag Stirling PDF to your Applications folder

@@ -50,12 +50,12 @@ macOS will block the app on first launch because it's not from the App Store:

-**To allow Stirling-PDF:**
+**To allow Stirling PDF:**
1. Open **System Settings** → **Privacy & Security**
2. Scroll down to the **Security** section
-3. Click **"Open Anyway"** next to the Stirling-PDF message
+3. Click **"Open Anyway"** next to the Stirling PDF message
4. Enter your password if prompted
-5. Go back to Applications and launch Stirling-PDF again
+5. Go back to Applications and launch Stirling PDF again

@@ -63,14 +63,14 @@ The app will now open normally every time!
### Using the Desktop App
-1. Launch Stirling-PDF
+1. Launch Stirling PDF
2. Sign in with your Stirling Cloud account or enter the URL for your self-hosted server.
3. After login, use the in-app interface to upload or drag-and-drop files into the window.
-**Making Stirling-PDF your default PDF viewer:**
+**Making Stirling PDF your default PDF viewer:**
1. Right-click (or Control+click) any PDF file
2. Select **"Get Info"**
-3. Under **"Open with"**, choose **Stirling-PDF**
+3. Under **"Open with"**, choose **Stirling PDF**
4. Click **"Change All"** to apply to all PDFs
5. Confirm when prompted
@@ -84,7 +84,7 @@ The app will now open normally every time!
## Server Version (For Hosting and Sharing)
-Want to host Stirling-PDF on a Mac server for multiple users? Use the JAR file version.
+Want to host Stirling PDF on a Mac server for multiple users? Use the JAR file version.
### Prerequisites
@@ -103,7 +103,7 @@ export PATH="/usr/local/opt/openjdk@21/bin:$PATH"
### JAR Downloads
-Stirling-PDF comes in three different JAR files:
+Stirling PDF comes in three different JAR files:
**Stirling-PDF-with-login.jar** (Recommended - Full Features):
- Download: [Stirling-PDF-with-login.jar](https://files.stirlingpdf.com/Stirling-PDF-with-login.jar)
@@ -132,7 +132,7 @@ Stirling-PDF comes in three different JAR files:
cd ~/Downloads # Or wherever you saved the JAR
```
-3. **Run Stirling-PDF**:
+3. **Run Stirling PDF**:
```bash
java -jar Stirling-PDF.jar
```
diff --git a/docs/Installation/Unix.md b/docs/Installation/Unix.md
index dc29d5cb..106e066e 100644
--- a/docs/Installation/Unix.md
+++ b/docs/Installation/Unix.md
@@ -182,9 +182,9 @@ Install the following software:
-### Step 4: Grab latest Stirling-PDF Jar
+### Step 4: Grab latest Stirling PDF Jar
-Stirling-PDF comes in three different JAR files:
+Stirling PDF comes in three different JAR files:
**Stirling-PDF-with-login.jar** (Recommended - Full Features):
- Download: [Stirling-PDF-with-login.jar](https://files.stirlingpdf.com/Stirling-PDF-with-login.jar)
@@ -296,7 +296,7 @@ If you plan to use the OCR (Optical Character Recognition) functionality, you mi
-### Step 7: Run Stirling-PDF
+### Step 7: Run Stirling PDF
@@ -366,7 +366,7 @@ SERVER_PORT="3000"
**Note:** The file `custom_settings.yml` is created after the first application launch. To have it before that, you can create the directory and add the file yourself.
-### Optional: Run Stirling-PDF as a service (requires root).
+### Optional: Run Stirling PDF as a service (requires root).
First create a .env file, where you can store environment variables:
diff --git a/docs/Installation/Windows.md b/docs/Installation/Windows.md
index d6aefc1c..f78c8768 100644
--- a/docs/Installation/Windows.md
+++ b/docs/Installation/Windows.md
@@ -14,7 +14,7 @@ Stirling PDF for Windows comes in two versions: a **Desktop Application** for pe
### What You Get
- ✅ **Native Windows application** - Feels like a built-in Windows program
-- ✅ **Open PDFs directly** - Double-click any PDF to open in Stirling-PDF
+- ✅ **Open PDFs directly** - Double-click any PDF to open in Stirling PDF
- ✅ **Sign in to start** - Choose Stirling Cloud or your self-hosted server on first launch (required before using tools)
- ✅ **Processes files locally after sign-in** - All your PDF processing stays on your device
- ✅ **All features included** - Every PDF tool available
@@ -24,9 +24,9 @@ Stirling PDF for Windows comes in two versions: a **Desktop Application** for pe
### Quick Installation
-1. **Download**: [Stirling-PDF Desktop Installer](https://files.stirlingpdf.com/win-installer.exe)
+1. **Download**: [Stirling PDF Desktop Installer](https://files.stirlingpdf.com/win-installer.exe)
2. **Run the installer** - Follow the prompts (installs to `C:\Program Files\Stirling-PDF`)
-3. **Launch from Start Menu** - Search for "Stirling-PDF"
+3. **Launch from Start Menu** - Search for "Stirling PDF"
4. **Sign in** - Choose how to connect (see [Choosing your connection](#choosing-your-connection) below)
5. **Start working with PDFs!**
@@ -40,22 +40,22 @@ On first launch, you'll be prompted to choose how to connect:
- Login is required because optional cloud assists for advanced tasks are planned for a future release
**Self-hosted Server**
-- Enter the URL of your own Stirling-PDF server instance (e.g., `http://192.168.1.53:8080`)
+- Enter the URL of your own Stirling PDF server instance (e.g., `http://192.168.1.53:8080`)
- Files are processed on your server, keeping data under your control
-- Useful for team deployments or running your own Stirling-PDF server
+- Useful for team deployments or running your own Stirling PDF server
### Using the Desktop App
**Opening PDFs:**
-- **Double-click any PDF file** - Opens in Stirling-PDF
-- **Right-click → Open with → Stirling-PDF**
+- **Double-click any PDF file** - Opens in Stirling PDF
+- **Right-click → Open with → Stirling PDF**
- **Drag and drop** files into the application
- **File → Open** from the menu
-**Making Stirling-PDF your default PDF viewer:**
+**Making Stirling PDF your default PDF viewer:**
1. Right-click any PDF file
2. Select "Open with" → "Choose another app"
-3. Select "Stirling-PDF"
+3. Select "Stirling PDF"
4. Check "Always use this app to open .pdf files"
5. Click OK
@@ -114,11 +114,11 @@ msiexec /i "Stirling-PDF-windows-x86_64.msi" /qn STIRLING_SERVER_URL="http://192
## Server Version (For Hosting and Sharing)
-Want to host Stirling-PDF on a Windows server for multiple users? Use the server version.
+Want to host Stirling PDF on a Windows server for multiple users? Use the server version.
### Server Downloads
-Stirling-PDF comes in three different JAR files:
+Stirling PDF comes in three different JAR files:
**Stirling-PDF-with-login.jar** (Recommended - Full Features):
- Download: [Stirling-PDF-with-login.jar](https://files.stirlingpdf.com/Stirling-PDF-with-login.jar)
diff --git a/docs/Migration/Breaking-Changes.md b/docs/Migration/Breaking-Changes.md
index be6af95d..eac00888 100644
--- a/docs/Migration/Breaking-Changes.md
+++ b/docs/Migration/Breaking-Changes.md
@@ -105,7 +105,7 @@ The file paths are different because V2 serves the **compiled React app** instea
For complete UI customization:
**Steps:**
-1. Fork Stirling-PDF repository
+1. Fork Stirling PDF repository
2. Modify React components in `frontend/src/`
3. Build custom frontend
4. Deploy in split mode with custom frontend
diff --git a/docs/Migration/New-Features.md b/docs/Migration/New-Features.md
index 60713d12..6ac5cabe 100644
--- a/docs/Migration/New-Features.md
+++ b/docs/Migration/New-Features.md
@@ -94,7 +94,7 @@ Original.pdf → [Compress] → v1 → [Add Pages] → v2 → [Watermark] → v3
### What's New
- **Lightning Fast:** 0.3 second startup time
-- **Native Integration:** "Open with Stirling-PDF" in file explorer
+- **Native Integration:** "Open with Stirling PDF" in file explorer
- **System Default:** Set as default PDF viewer
- **Sign in with Stirling Cloud or self-hosted server** - Choose your connection on launch
- **Resource Efficient:** Uses ~50MB RAM vs browser ~200MB
@@ -122,7 +122,7 @@ Original.pdf → [Compress] → v1 → [Add Pages] → v2 → [Watermark] → v3
After installation:
1. Right-click any PDF in file explorer
-2. Select "Open with Stirling-PDF"
+2. Select "Open with Stirling PDF"
3. PDF opens directly in app
4. Sign in (if needed)
5. Process immediately
@@ -381,7 +381,7 @@ security:
- **Customizable:** Configure organization name, validity period
- **No Manual Setup:** Works out of the box
- **Renewable:** Regenerate certificates as needed
-- **"Sign with Stirling-PDF" Feature:** Users can sign with server cert
+- **"Sign with Stirling PDF" Feature:** Users can sign with server cert
### Configuration
@@ -399,14 +399,14 @@ system:
1. **First Startup:**
- Server generates self-signed certificate
- Stored in `configs/` directory
- - Used for "Sign with Stirling-PDF" feature
+ - Used for "Sign with Stirling PDF" feature
2. **Subsequent Startups:**
- Uses existing certificate (unless `regenerateOnStartup: true`)
- Certificate persists across restarts
3. **User Signs PDF:**
- - Selects "Sign with Stirling-PDF"
+ - Selects "Sign with Stirling PDF"
- Server signs using generated certificate
- Signature embedded in PDF
diff --git a/docs/Migration/Overview.md b/docs/Migration/Overview.md
index feb601d6..d9ef71cf 100644
--- a/docs/Migration/Overview.md
+++ b/docs/Migration/Overview.md
@@ -2,12 +2,12 @@
sidebar_position: 0
id: Overview
title: Migrating from V1 to V2
-description: Complete guide for upgrading from Stirling-PDF V1 to V2
+description: Complete guide for upgrading from Stirling PDF V1 to V2
---
# Migrating from V1 to V2
-Upgrading to Stirling-PDF V2 is straightforward for most users. This guide will walk you through the upgrade process.
+Upgrading to Stirling PDF V2 is straightforward for most users. This guide will walk you through the upgrade process.
:::warning Backup Your Configuration
Before upgrading, **back up your configuration folder** (usually mounted as `/configs`) to ensure you can restore your settings if needed:
@@ -211,4 +211,4 @@ If you encounter issues:
4. Review [Settings Changes](./Settings-Changes.md) for any needed updates
5. Check [Breaking Changes](./Breaking-Changes.md) if you have customizations
-**Welcome to V2!** Enjoy the faster, more modern Stirling-PDF experience.
+**Welcome to V2!** Enjoy the faster, more modern Stirling PDF experience.
diff --git a/docs/Migration/Settings-Changes.md b/docs/Migration/Settings-Changes.md
index 21de3206..b82d20a9 100644
--- a/docs/Migration/Settings-Changes.md
+++ b/docs/Migration/Settings-Changes.md
@@ -58,7 +58,7 @@ system:
regenerateOnStartup: false
```
-**What it does:** Auto-generates signing certificates for "Sign with Stirling-PDF" feature.
+**What it does:** Auto-generates signing certificates for "Sign with Stirling PDF" feature.
**Migration:** Works automatically with defaults.
diff --git a/docs/Paid-Offerings.md b/docs/Paid-Offerings.md
index cdd89c91..092ff632 100644
--- a/docs/Paid-Offerings.md
+++ b/docs/Paid-Offerings.md
@@ -2,7 +2,7 @@
sidebar_position: 5
id: Paid-Offerings
title: Paid Offerings
-description: Server and Enterprise paid plans for Stirling-PDF
+description: Server and Enterprise paid plans for Stirling PDF
tags:
- Enterprise
- Server
@@ -10,9 +10,9 @@ tags:
- Pricing
---
-# Stirling-PDF Paid Offerings
+# Stirling PDF Paid Offerings
-Stirling-PDF offers Server and Enterprise paid plans. These provide the same great software with added features, streamlined license management, and support options.
+Stirling PDF offers Server and Enterprise paid plans. These provide the same great software with added features, streamlined license management, and support options.
## Available Plans
@@ -51,7 +51,7 @@ Stirling-PDF offers Server and Enterprise paid plans. These provide the same gre
- [Advanced SSO](./Configuration/Single%20Sign-On%20Configuration.md), OAuth2 and SAML with automated login handling
- Custom automated metadata handling
- Priority support tickets via support@stirlingpdf.com
- - 1:1 meetings with the Stirling-PDF team (from registered email domain)
+ - 1:1 meetings with the Stirling PDF team (from registered email domain)
- Priority feature enhancements
- Prometheus endpoint for advanced usage monitoring
- Usage Monitoring UI
@@ -123,7 +123,7 @@ premium:
4. Replace the key with your license key
5. Change `enabled` from `false` to `true`
-6. Restart Stirling-PDF
+6. Restart Stirling PDF
For 100% offline air-gapped environments (Enterprise only), you can request a certificate file:
@@ -209,7 +209,7 @@ You can upgrade from Free → Server or Server → Enterprise at any time:
### Enterprise Support
- Priority email support
-- 1:1 meetings with Stirling-PDF team
+- 1:1 meetings with Stirling PDF team
- Dedicated account manager
- SLA guarantees