Stirling-Tools

Stars and mentions

Last 30 days, Oct 4 – Nov 2

GitHub stars1,683
mentions25
0295887116Oct 4Oct 18Nov 2
UTC days · repositories Stirling-Tools owns6 repositories

Package downloads

Cumulative recorded downloads

PyPI—
01234Oct 4Oct 18Nov 2No observations in this range
Oct 4PyPI: 0/1 packages observed

Across 1 known packages in repositories Stirling-Tools owns. Cumulative totals include recorded downloads before the selected range. Missing observations leave gaps; totals may be incomplete. PyPI excludes known mirrors.

Top repositories

Stirling-Tools’s repositories ranked by new forks, as on trending.

Loading

Contributes to

Repositories outside Stirling-Tools’s account where Stirling-Tools opened or reviewed pull requests in the past 365 days.

Who noticed Stirling-Tools

Everyone who starred or forked Stirling-Tools’s repositories since the archive began in 2011.

Notable accounts

Ordered by the stars their own repositories have received.

Biggest fans

Accounts that starred the most of these repositories.

Breakout weeks

Each repository’s best week of new stars, with the release published around it.

Mentions

25posts
Nov 30 posts
  1. YouTube · · YouTube description · git.clipper · Stirling-Tools/Stirling-PDF

    Edit PDFs privately on any device for free #Shorts Stirling PDF lets you edit PDFs locally with 50+ tools, no cloud required. Free and open-source. 🌐: Stirling-Tools/Stirling-PDF ⭐: 95,248 #PDF #privacy #opensource #automation #docker #selfhosted

    1 like · 246 views
  2. YouTube · · YouTube description · Ali Tech Stack · Stirling-Tools/Stirling-PDF

    5 GitHub Projects That Feel Too Good to Be Free 🔥 5 GitHub Projects That Feel Too Good to Be Free! What if you could edit PDFs, monitor websites, back up your photos, and transfer files between devices — without paying for expensive software? In this video, we're exploring 5 amazing open-source GitHub projects that offer powerful features for free. Whether you're a developer, student, content creator, or tech enthusiast, these tools are worth checking out! 🚀 THE 5 PROJECTS: ✅ 1. Excalidraw – Create diagrams, flowcharts, and sketches. 🔗 excalidraw/excalidraw ✅ 2. Stirling PDF – Merge, split, compress, and manage PDF documents. 🔗 Stirling-Tools/Stirling-PDF ✅ 3. Uptime Kuma – Monitor your websites, APIs, and services. 🔗 louislam/uptime-kuma ✅ 4. Immich – Build your own photo and video library. 🔗 immich-app/immich ✅ 5. LocalSend – Transfer files between nearby devices without relying on cloud uploads. 🔗 localsend/localsend #GitHub #OpenSource #FreeSoftware ☺ Thanks For Watching! ☺ If you find this helpful, 💙Like and ✅ Subscribe

    511 views
  3. அட. PDF-க்கு paid app வேணாம்.. Stirling PDF-ல merge, split, compress, OCR எல்லாம் free-யா இருக்கு. Docker-ல run பண்ணுங்கள். முதல்ல எதை try பண்ணுவீங்களா ? Stirling-Tools/Stirling-PDF Instagram-லும் பின்தொடருங்கள்: instagram.com

    39 likes · 4 reposts · 1,245 views
  4. Stirling-PDF: The 94k-Star Open-Source PDF Platform That Actually Challenges Adobe Acrobat Stirling-PDF: The 94k-Star Open-Source PDF Platform That Actually Challenges Adobe Acrobat Most developers know Stirling-PDF by name. Few understand what it actually replaces. You've seen the GitHub stars. You've seen the Docker pull counts. But here's what nobody explains properly: Stirling-PDF isn't just a "PDF tool." It's a complete, self-hosted document processing platform that covers 90% of what teams pay Adobe $20-30/user/month for — and it runs on a $4 VPS. What Stirling-PDF Actually Is Stirling-PDF is a web-based PDF manipulation platform with three deployment modes: - Cloud: Their hosted SaaS (free tier, paid for automation credits) - Desktop: Native Tauri apps for Windows, macOS, Linux — works offline - Server: Self-hosted Docker container with REST API, MCP server, and optional SSO The server mode is what matters for teams. One container. 50+ PDF operations. REST API for every tool. MCP server so AI agents can drive it. No per-seat licensing until you exceed 5 users. The Architecture Nobody Talks About Stirling 2.0 is a complete rewrite. Here's the stack: Backend (Spring Boot, JDK 25) - Apache PDFBox — core PDF reading, editing, form filling - JPDFium — PDFium-based engine for merge, split, text/table extraction - LibreOffice (via unoserver) — Office → PDF conversions - Tesseract OCR — text recognition via OCRmyPDF - qpdf, Ghostscript, Calibre, ImageMagick — compression, linearization, ebook conversion, image processing - FastAPI + Pydantic AI — Python AI engine for smart operations Frontend (React SPA, TypeScript, Vite) - PDF.js — client-side rendering - pdf-lib (Cantoo fork) — client-side PDF manipulation - IndexedDB — local file storage with thumbnails - Mantine + TailwindCSS — UI - i18next — 40+ languages Desktop (Tauri + Rust) - Native file associations - Bundled JRE via JLink - Open-with support Infrastructure - Docker images: latest (4GB), latest-fat (6GB+AI), latest-ultra-lite (2GB, no OCR/Office) - ProcessExecutor pattern — concurrency limits, timeouts per tool - UnoServerPool — manages LibreOffice UNO server pool for conversions 50+ Operations, One API Pattern Every server-side tool exposes a REST endpoint: POST /api/v1/misc/compress-pdf POST /api/v1/security/add-watermark POST /api/v1/convert/pdf-to-img POST /api/v1/pages/merge Send multipart/form-data. Get the processed file back. Add ?async=true for long jobs — poll /api/v1/general/job/{jobId}. The Pipeline API chains operations: upload once, run multiple tools, download once. MCP: AI Agents That Can Actually Edit PDFs This is the part most people miss. Stirling-PDF includes a built-in MCP server (disabled by default). Enable it: mcp: enabled: true scopesEnabled: true auth: mode: oauth # or apikey It exposes 7 tools over JSON-RPC 2.0: | Tool | Purpose | |------|---------| | stirling_describe_operation | Look up parameters/schema for any operation | | stirling_pages | Merge, split, rotate, reorder, add blank pages | | stirling_convert | Convert to/from PDF (images, Office, etc.) | | stirling_misc | Compress, flatten, repair | | stirling_security | Encrypt, decrypt, permissions | | stirling_upload / stirling_download | Large file handling via fileId | | stirling_ai | AI engine capabilities | An AI assistant can now: "Take this scanned contract, OCR it, extract the tables, redact the SSN fields, and save as PDF/A." All local. No document leaves your server. The Open-Core Reality Check Stirling moved to open-core in 2025. Here's what that actually means: | Feature | Free (≤5 users) | Team ($99/mo) | Enterprise | |---------|-----------------|---------------|------------| | All PDF tools, REST API, OAuth2/OIDC | ✓ | ✓ | ✓ | | External DB, clustering, S3 storage | ✗ | ✓ | ✓ | | Prometheus metrics, custom metadata | ✗ | ✓ | ✓ | | SAML2, audit logs, DB backup alerts | ✗ | ✗ | ✓ | | Offline activation (air-gapped) | ✗ | ✗ | ✓ | | Text editing (alpha) | ✗ | ✓ | ✓ | Critical: The core 50+ tools stay free. The paid tiers unlock multi-user admin, enterprise integrations, and the alpha text editing feature. Individual users and teams ≤5 see zero change. Deploying on a $4 VPS (Hetzner CX22) # docker-compose.yml services: stirling-pdf: image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest container_name: stirling-pdf ports: - '8080:8080' volumes: - ./stirling-data/configs:/configs - ./stirling-data/logs:/logs - ./stirling-data/customFiles:/customFiles - ./stirling-data/pipeline:/pipeline - ./stirling-data/storage:/storage - ./stirling-data/tessdata:/usr/share/tessdata mem_limit: 4g restart: unless-stopped docker compose up -d Open http://your-vps:8080. Default login: admin / stirling (change immediately). For production behind a reverse proxy, set X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port so MCP resource metadata resolves correctly. When to Use Stirling vs. Adobe vs. Smallpdf | Scenario | Use | |----------|-----| | Occasional personal PDF edits | Stirling Cloud (free) or Desktop app | | Team ≤5, self-hosted, no SSO needed | Stirling Server Free | | Team >5, need SSO/audit/clustering | Stirling Team ($99/mo, unlimited seats) | | Air-gapped, regulated, custom SLA | Stirling Enterprise | | Already deep in Adobe ecosystem, need cloud sync | Adobe Acrobat Pro | | One-off online conversion, no privacy concern | Smallpdf / iLovePDF | The Mental Model Shift Stop thinking "PDF tool." Start thinking document processing platform. - Automation: Pipeline API + REST API = CI/CD for documents - AI integration: MCP server = agents that can actually manipulate PDFs - Data sovereignty: Self-hosted = documents never leave your network - Cost model: $99/mo for unlimited seats vs. $20-30/user/mo = break-even at 4-5 users What's Still Missing - Text editing is alpha (paid only, improving) - No real-time collaborative editing - Mobile UI is functional but not polished - ARM64 images exist but some binaries (unoserver) are amd64-only in older versions TL;DR Stirling-PDF is the only open-source PDF platform that covers the full lifecycle: view, edit, convert, OCR, sign, redact, automate, API, MCP — all self-hostable on commodity hardware. 94k stars isn't hype. It's developers realizing they've been overpaying for PDF infrastructure. --- Try it: docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf Docs: docs.stirlingpdf.com GitHub: Stirling-Tools/Stirling-PDF

  5. YouTube · · YouTube description · Alvaro Cruz · Stirling-Tools/Stirling-PDF

    Edite PDF sem mandar pra ninguém #shorts 📄 Chega de subir contrato em site aleatório pra editar PDF! O Stirling PDF tem mais de 50 ferramentas: editar, juntar, dividir, assinar, converter, comprimir e OCR. Roda no seu computador, no navegador ou no seu próprio servidor, sem enviar seus documentos pra serviços de fora. Projeto de código aberto com quase 95 mil estrelas no GitHub e interface em mais de 40 idiomas. #pdf #opensource #codigoaberto #produtividade #selfhosted #privacidade #dicasdetecnologia 🔗 Stirling-Tools/Stirling-PDF

    125 views
  6. YouTube · · YouTube description · Pull Rank · Stirling-Tools/Stirling-PDF

    Stop Paying for These 5 Apps (Free on GitHub) #shorts Stop paying for these 5 apps. Which subscription would you cancel first? 👇 1. Stirling-PDF → instead of Acrobat Pro ($19.99/mo) 2. Immich → instead of Google One storage (from $1.99/mo) 3. Jan → instead of ChatGPT Plus ($20/mo), runs offline 4. NocoDB → instead of Airtable Team ($20/seat/mo) 5. Actual Budget → instead of YNAB ($14.99/mo) Example: drop 3 invoices into Stirling-PDF, hit Merge, and you get one clean PDF, free, on your own machine. The catch: some need self-hosting, and the features aren't identical. US list prices, 21 Oct 2026 (Acrobat and Airtable on annual plans). #opensource #github #savemoney #productivity #selfhosted Stirling-Tools/Stirling-PDF immich-app/immich janhq/jan nocodb/nocodb actualbudget/actual

    29 likes · 1,268 views
  7. 6 подписок за $973 в год и их бесплатные двойники на GitHub #shorts Сложил годовые цены шести популярных подписок за одного человека. Получилось $973,80. У каждой есть бесплатная замена с открытым кодом на GitHub. Три разобрал в ролике: Adobe Acrobat Pro ($19,99/мес при оплате за год) → Stirling-PDF Stirling-Tools/Stirling-PDF Notion Plus ($10/мес при оплате за год) → AppFlowy AppFlowy-IO/AppFlowy Loom Business ($15/мес при оплате за год) → Cap CapSoftware/Cap Замены для Wispr Flow, Calendly и Zoom пришлю по слову «РЕПО» в комментариях. Весь список со ссылками есть в моём Telegram @ailex_zykin. Цены на 20.10.2026, с официальных страниц тарифов. У платных сервисов есть и бесплатные тарифы с лимитами. #AI #GitHub #opensource #подписки #shorts [en-US] 6 subscriptions for $973 a year and their free GitHub alternatives #shorts I added up the annual prices of six popular subscriptions for one user. The result was $973.80. Each has a free, open-source replacement on GitHub. I discussed three in the video: Adobe Acrobat Pro ($19.99/month billed annually) → Stirling-PDF Stirling-Tools/Stirling-PDF Notion Plus ($10/month billed annually) → AppFlowy AppFlowy-IO/AppFlowy Loom Business ($15/month billed annually) → Cap CapSoftware/Cap Replacements for Wispr Flow, Calendly, and Zoom will be sent by typing "REPO" in the comments. The full list with links is on my Telegram channel @ailex_zykin. Prices as of October 20, 2026, from the official pricing pages. Paid services also have free plans with limits. #AI #GitHub #opensource #subscriptions #shorts

    29 likes · 2 comments · 1,236 views
  8. 【PDFの結合や黒塗り、無料サイトに上げなくていい】 Stirling PDF(スター約9.5万) ・結合、OCR、圧縮、黒塗りなど50以上の機能 ・PCか自社サーバーで動く。書類を外に出さない ・10/16の新版でパスワード付きPDFも解除せず扱える 見積書や契約書を触るなら、まずこれ Stirling-Tools/Stirling-PDF

    1 like · 14 views
  9. Stirling-PDF Docker Setup: Login, OCR Languages and Updates --- title: "Stirling-PDF Docker Setup: Login, OCR Languages and Updates" published: true description: "Run Stirling-PDF 3.2 with Docker Compose: pin the image, replace the admin/stirling default login, add OCR languages like Spanish and update safely." tags: selfhosted, docker, pdf, ocr canonical_url: deploylark.com --- Stirling-PDF is a self-hosted toolbox for PDFs. Merge, split, compress, sign, redact, convert and OCR run on your own server, so the files never go to an online PDF site. On October 17, 2026, the GitHub repository had about 94,300 stars, and the stirlingtools/stirling-pdf image had about 16.3 million pulls on Docker Hub, plus 22.5 million under the older frooodle/s-pdf name, which still gets new releases. This guide runs Stirling-PDF 3.2.0 with Docker Compose and fixes the parts the quick start leaves to you. The default login is shown on the login page to anyone who opens it, extra OCR languages need a volume, and uploads through nginx fail above 1 MB until you change one setting. I ran every step on a Debian 13 test server with Docker 29.9.1, OCR'd scans I generated in English and Spanish, and upgraded a second install from 3.1.0 to 3.2.0. TL;DR: - Use the official compose file with a pinned tag such as docker.stirlingpdf.com/stirlingtools/stirling-pdf:3.2.0, publish the port on 127.0.0.1:8080, and keep mem_limit: 4g. - A fresh install creates admin with the password stirling and prints both on the login page. Set SECURITY_INITIALLOGIN_USERNAME and SECURITY_INITIALLOGIN_PASSWORD before the first start, or log in and change the password right away. - The standard image can OCR English, German, French, Portuguese and Simplified Chinese. For any other language, put its .traineddata file in the folder mounted at /usr/share/tessdata and restart. - Behind nginx, set client_max_body_size 2000M. To update, change the tag, then run docker compose pull and docker compose up -d. What Stirling-PDF runs and which image to pick What's in the container Stirling-PDF is one container. It holds a Java web app plus the command-line tools that do the heavy work. The diagram shows the setup this guide builds: !Diagram of the Stirling-PDF setup on one Docker host. Your browser, or curl with an API token, reaches the server through an SSH tunnel or a reverse proxy with HTTPS and client_max_body_size 2000M. The proxy connects to the stirling-pdf 3.2.0 container, published on 127.0.0.1:8080 only. The container runs the Java app with login on, OCRmyPDF 17.13.0 with Tesseract 5.3.4, and LibreOffice 26.2.6.3 started on first use, with mem_limit 4g sizing the Java heap. Below it, the ./stirling-data bind mounts hold configs (settings.yml, database, keys), storage, tessdata for extra OCR languages, logs, customFiles and pipeline. The 3.2.0 container logs its tool versions at startup. Mine listed OpenJDK 25.0.4, OCRmyPDF 17.13.0, Tesseract 5.3.4, LibreOffice 26.2.6.3, Ghostscript 10.08.0, qpdf 12.4.2 and calibre 9.15.0. LibreOffice doesn't start until the first Office conversion, so it uses no memory until you need it. One feature is off out of the box. The log said Missing dependency: rar - Disabling group: rar (Affected features: PDF To Cbr), which matches the docs. Settings, the user database and generated keys go in /configs. On first start the app also creates credential-encryption.key there and logs a warning to back it up, because losing it makes stored integration secrets unrecoverable. Standard, fat or ultra-lite The Docker install docs list three images: | Tag | Login | What's included | Suggested memory | | --- | --- | --- | --- | | 3.2.0 | Yes | OCR plus Office, HTML and ebook conversion | 4 GB | | 3.2.0-fat | Yes | The same plus a bundled AI engine, off until you turn it on | 6 GB | | 3.2.0-ultra-lite | No | Core PDF tools only, no OCR or conversions | 2 GB | Use the standard image. It's the one I tested end to end. The compressed download on Docker Hub was 1.17 GB for 3.2.0 and 394 MB for 3.2.0-ultra-lite. On disk they took 3.58 GB and 1.04 GB. Ultra-lite is lighter, and my test showed what you give up. It used 357 MiB of RAM after starting, against 795 MiB to 1.08 GiB for the standard image. But it has no login at all. The browser went straight to the editor, API calls worked without credentials, and the OCR endpoint answered 403 This endpoint is disabled. Only run it on a network you trust. The docs use latest in their examples, but latest moves with every release. Pin a version tag instead. All three tags above exist on docker.stirlingpdf.com, Docker Hub and ghcr.io. Docker Compose setup The compose file This is the compose file from the install docs with three changes. The tag is pinned to the version I tested, the port listens on 127.0.0.1 only, and the first admin account comes from a .env file. Create the folder and the .env first: mkdir -p ~/stirling-pdf/stirling-data/tessdata && cd ~/stirling-pdf umask 077 cat > .env <<EOF SECURITY_INITIALLOGIN_USERNAME=pdfadmin SECURITY_INITIALLOGIN_PASSWORD=$(openssl rand -base64 18 | tr -d '/+=') EOF umask 022 cat .env umask 077 makes .env readable only by you. Save the generated password in your password manager. Then save this as compose.yaml: services: stirling-pdf: image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:3.2.0 container_name: stirling-pdf ports: - "127.0.0.1:8080:8080" environment: SECURITY_INITIALLOGIN_USERNAME: ${SECURITY_INITIALLOGIN_USERNAME} SECURITY_INITIALLOGIN_PASSWORD: ${SECURITY_INITIALLOGIN_PASSWORD} volumes: - ./stirling-data/configs:/configs - ./stirling-data/logs:/logs - ./stirling-data/customFiles:/customFiles - ./stirling-data/pipeline:/pipeline - ./stirling-data/storage:/storage - ./stirling-data/tessdata:/usr/share/tessdata mem_limit: 4g restart: unless-stopped Keep mem_limit. The image sizes the Java heap from it. My container logged Detected container memory: 4096MB and let Java use up to 70% of that. Without a limit, the server FAQ says the heap is sized from the host's RAM, which is why people see Stirling-PDF use a lot of memory while idle. The mkdir creates the tessdata folder in advance on purpose. When I let Docker create it, the folder belonged to root, so I needed sudo to copy language files in later. The other folders ended up owned by UID 1000, the user the container runs as. If your files belong to a different user, the install docs say to set PUID and PGID. First start docker compose pull docker compose up -d curl -s http://127.0.0.1:8080/api/v1/info/status The pull took 17 seconds on my server. About 19 seconds after up -d, the status endpoint answered: {"version":"3.2.0","status":"UP"} That endpoint needs no login, so it's a good target for an Uptime Kuma HTTP monitor. Port 8080 now only answers on the server itself. To use the web UI from your computer, open an SSH tunnel with ssh -L 8080:127.0.0.1:8080 you@your-server and browse to http://localhost:8080, or put a reverse proxy in front (see below). Lock down the default login What a fresh install shows Login is on by default in the standard image. When I started a fresh install without the .env variables, the log said Default admin user created: admin, and the login page showed this to every visitor: !Stirling-PDF 3.2.0 login page with username and password fields and a Login button. Below them, a box titled Default Login Credentials shows Username: admin and Password: stirling, with the note Please change your password after logging in for the first time. The page prints the password, so anyone who reaches it before you change it can log in as admin. Upstream's compose file publishes '8080:8080' on every interface, and Docker's published ports skip ufw rules, so a host firewall won't save you. That's the reason for the 127.0.0.1 binding. Logging in as admin with stirling first asked whether to send anonymous usage data, then forced a new password: !Stirling-PDF Set Your Password dialog with the message For security reasons, you must change your password on your first login, the line Logged in as: admin, fields for New Password with a minimum of 8 characters and Confirm New Password, and a Change Password button. After the change, Stirling-PDF logged me out, and the credentials box was gone from the login page. The sign-in docs add that an account locks for 120 minutes after 5 failed attempts. Set your own first admin The .env approach above skips all of that. On a fresh 3.1.0 install with SECURITY_INITIALLOGIN_USERNAME=pdfadmin, the log said Admin user created: pdfadmin. The login page had no credentials box, logging in went straight to the editor with no password prompt, and admin with stirling got a 401. The docs say both variables are ignored once the database has users, so changing them later does nothing. Change the password in the app instead. Don't turn login off unless only you can reach the server. The server overview puts it plainly for SECURITY_ENABLELOGIN=false: "Anyone who can reach the server can then use it." With login on, the API is protected too. A POST to /api/v1/misc/ocr-pdf without credentials got a 401. The API description at /v1/api-docs and the Swagger page answered 200 without login, but they only describe the endpoints. Add OCR languages What's bundled, and what a missing language looks like The standard image ships Tesseract data for Simplified Chinese, English, French, German and Portuguese. tesseract --list-langs in my container showed chi_sim, deu, eng, fra, osd and por. The ultra-lite image has no OCR. I generated an image-only scan of an English invoice and OCR'd it through the API in 2.2 seconds. The invoice number, date and amounts came back right. Then I tried a scanned Spanish letter. Asking for Spanish before it was installed got an error: HTTP 400 {"detail":"Invalid OCR languages format: none of the selected languages are valid", ... "errorCode":"E041"} Per the docs, the web UI only lists installed languages. Running the Spanish letter with English worked, but every accent was gone, and "señora Núñez" became "sefiora Niifiez". Add a language with the tessdata volume The OCR languages docs describe two ways. The in-app download under Settings, Server, Advanced puts files inside the container, so they disappear when the container is recreated. The volume survives that. Download the .traineddata file from tesseract-ocr/tessdata (larger, more accurate) or tessdata_fast (smaller, faster) and restart: cd ~/stirling-pdf curl -fL -o stirling-data/tessdata/spa.traineddata \ https://github.com/tesseract-ocr/tessdata/raw/main/spa.traineddata docker compose restart docker exec stirling-pdf tesseract --list-langs The file was 18 MB. At startup, the log said Found user-mounted tessdata in /usr/share/tessdata, copying to /usr/share/tesseract-ocr/5/tessdata, and spa joined the list. Spanish then showed up in the OCR tool: !Stirling-PDF OCR / Cleanup scans tool with the scanned Spanish letter carta-scan-es.pdf open in the viewer. The settings panel shows OCR Mode Auto (skip text layers) and an open Languages list with Chinese, English (checked), French, German, Portuguese and Spanish, plus a link to the setup guide for additional languages. Here's what the two runs stored for the same scan: !Terminal capture of the OCR text Stirling-PDF 3.2.0 produced for the same scanned Spanish letter. With languages=eng the lines read Ayuntamiento de Malaga, Notificacion de pago, Estimada sefiora Niifiez, recibo del afio and Oficina de Recaudacion. With languages=spa after adding spa.traineddata they read Málaga, Notificación, señora Núñez, año and Recaudación, with a few remaining errors such as infofrnamos, esfá and pendiehte. With spa, the accents and the ñ came out right, but three words were still wrong. OCR on a noisy scan isn't perfect in any language, so check important documents. If you want every scan OCR'd and filed automatically, Paperless-ngx uses the same OCRmyPDF and Tesseract tools on each document it imports. Stirling-PDF fits one-off jobs better. The volume path is the most common mistake. In a GitHub issue where a user had mounted language files at /data/tessdata, maintainer Frooodle answered: "Your path is wrong, all our docs show it as /usr/share/tessdata". The docs add that files already in Tesseract's folder aren't replaced, and that eng.traineddata must stay, because English is always needed. Reverse proxy, updates and backups Big uploads behind nginx For HTTPS, put Stirling-PDF behind a reverse proxy that forwards to 127.0.0.1:8080. Nginx Proxy Manager does that with a free certificate, and the Umami guide shows the same 127.0.0.1 pattern behind Caddy. With nginx, check the upload size first. nginx accepts 1 MB request bodies by default, and PDFs are often bigger. I sent a 2.6 MB four-page scan through nginx 1.30.6 with a plain proxy_pass and got 413 Request Entity Too Large. The nginx log said client intended to send too large body: 2602334 bytes. The production checklist has the settings that fixed it: server { # listen 443 ssl, server_name and certificates as usual client_max_body_size 2000M; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; proxy_buffering off; proxy_read_timeout 1800s; proxy_send_timeout 1800s; } } The same request then returned 200 in 2.2 seconds with all four pages OCR'd. 2000 MB matches Stirling-PDF's own default upload limit. The long timeouts and proxy_buffering off are for slow jobs. Nginx Proxy Manager already sets client_max_body_size 2000m in the main nginx.conf of its 2.16.0 image, so this limit mostly bites hand-written nginx configs. The checklist also says to set SYSTEM_FRONTENDURL to your public address, because invite emails and share links use it. Update and back up Back up before you update. The production checklist names the folders. configs holds settings, keys and the built-in database, which also writes a nightly backup to configs/backup/db/. storage holds files users saved on the server. A tarball is enough: cd ~/stirling-pdf sudo tar czf stirling-backup-$(date +%F).tgz stirling-data/configs stirling-data/storage Then change the tag and recreate the container. I tested this on a second install that started on 3.1.0 with its own admin account: sed -i 's/stirling-pdf:3.1.0/stirling-pdf:3.2.0/' compose.yaml docker compose pull docker compose up -d curl -s http://127.0.0.1:8080/api/v1/info/status 22 seconds later the status said 3.2.0, and the admin from the first start could still log in. Read the release notes before each bump. Releases come fast: 3.0.0 came out on September 24, 2026, 3.1.0 on October 5 and 3.2.0 on October 15. Coming from V1, read the upgrade guide the install docs link to first. If you'd rather deploy from a dashboard, the same compose file works as a Docker Compose resource in Coolify. FAQ Login and access What is the default username and password for Stirling-PDF? admin and stirling. A fresh standard image creates that account and shows it on the login page until you change the password, which the first login forces. To skip the default account, set SECURITY_INITIALLOGIN_USERNAME and SECURITY_INITIALLOGIN_PASSWORD before the first start. They only apply while the user database is empty. Can I run Stirling-PDF without a login? Yes. Set SECURITY_ENABLELOGIN=false, or use the ultra-lite image, which has no login at all. Then anyone who can reach the port can use every tool and the API, as my ultra-lite test showed. Keep it on 127.0.0.1 or a private network if you do this. Is Stirling-PDF free to self-host? Yes. The repository is MIT licensed, with some folders, such as the proprietary and SaaS code, under their own licenses. Per the plans page, a self-hosted server runs on the Free plan, with all PDF tools, the REST API and OAuth2 single sign-on, for up to 5 users. Team and Enterprise add more users and features like an external database. OCR and performance Why doesn't my OCR language show up in Stirling-PDF? The .traineddata file isn't where the app looks. Mount your folder at /usr/share/tessdata inside the container, restart, and check with docker exec stirling-pdf tesseract --list-langs. If the API returns Invalid OCR languages format, the language you asked for isn't installed. Why does Stirling-PDF use so much RAM? Java sizes its heap from the memory it sees. Set mem_limit in compose or --memory with docker run. With a 4 GB limit, my standard container used between 795 MiB and 1.08 GiB while idle. If that's too much and you don't need OCR or conversions, ultra-lite used 357 MiB. Why do large uploads fail behind a reverse proxy? The proxy is rejecting the upload. nginx allows 1 MB by default and returned 413 Request Entity Too Large for my 2.6 MB scan. Set client_max_body_size 2000M in the server block and reload nginx. Nginx Proxy Manager already allows 2000 MB. --- Originally published on DeployLark: Stirling-PDF Docker Setup: Login, OCR Languages and Updates

  10. 只拿到 PDF,又想改里面的表格,可以留意 Stirling PDF 3.1.0。 10月5日的官方更新加入了直接改单元格、增删行列,也支持编辑已做 OCR 的扫描件文字。纯图片页得先识别文字;重要文件先留一份原件。 github.com/Stirling-Tools/Stirling-PDF/releases/t…

    3 likes · 216 views
Trending awards, every completed day and week
Gold
41st place finishes
Silver
42nd place finishes
Bronze
43rd place finishes
Awarded repositories
1Owned by Stirling-Tools now

Repositories

Ordered by gold, then silver, then bronze.

  1. Stirling-PDFBest: 1st by stars, 8,103 stars444

A repository earns an award for finishing first, second or third in a completed trending day or week, ranked by new stars, new forks or pull request authors. Awards follow a repository through renames and transfers and count toward its current owner. Weeks run Monday to Sunday, UTC.