<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Docling on Cloudron - Community Package]]></title><description><![CDATA[<h2><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f680.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--rocket" style="height:23px;width:auto;vertical-align:middle" title="🚀" alt="🚀" /> Docling: community package now available</h2>
<blockquote>
<p dir="auto"><strong>TL;DR:</strong> Docling converts documents (PDF, DOCX, PPTX, XLSX, HTML, images) into clean, structured <strong>Markdown and JSON</strong>, with layout analysis, table reconstruction, and OCR. It is the document-ingestion front end for a private, self-hosted RAG stack, so you can turn your own files into something an LLM can actually search and answer over. Now packaged for Cloudron and ready to install. Built and tested on Cloudron 9.1; unofficial and community-maintained.</p>
</blockquote>
<h3>Links</h3>
<ul>
<li><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f3e0.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--house" style="height:23px;width:auto;vertical-align:middle" title="🏠" alt="🏠" /> Project homepage: <a href="https://docling-project.github.io/docling/" target="_blank" rel="noopener noreferrer nofollow ugc">https://docling-project.github.io/docling/</a></li>
<li><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4e6.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--package" style="height:23px;width:auto;vertical-align:middle" title="📦" alt="📦" /> Upstream repo: <a href="https://github.com/docling-project/docling-serve" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/docling-project/docling-serve</a></li>
<li>🧱 Cloudron package repo: <a href="https://github.com/OrcVole/docling-cloudron" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/OrcVole/docling-cloudron</a></li>
</ul>
<p dir="auto">No public demo to click, Docling is something you self-host. Once you install it, it includes a browser demo at <code>/ui</code>, behind your Cloudron login, for converting a document by hand.</p>
<hr />
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4e5.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--inbox_tray" style="height:23px;width:auto;vertical-align:middle" title="📥" alt="📥" /> How to install</h3>
<p dir="auto">Community packages aren't in the App Store, so install via the CLI. The published image is on GHCR and the package ships a community versions file:</p>
<pre><code class="language-bash"># recommended: install the published community build from the versions URL
cloudron install \
  --versions-url https://raw.githubusercontent.com/OrcVole/docling-cloudron/main/CloudronVersions.json \
  --location docling.example.com

# or pin the prebuilt image directly
cloudron install --image ghcr.io/orcvole/docling-cloudron:1.0.1 --location docling.example.com

# or build it yourself from the repo
git clone https://github.com/OrcVole/docling-cloudron
cd docling-cloudron
cloudron build
cloudron install --image [your-registry]/docling-cloudron:latest --location docling.example.com
</code></pre>
<p dir="auto"><strong>Minimums:</strong> 4 GB RAM (raise it in Resources for large or heavily scanned documents), addons <code>localstorage</code> and <code>proxyAuth</code>.</p>
<p dir="auto"><strong>First run:</strong> the API key is generated for you. Read it from the app's Terminal with <code>cat /app/data/.secrets/keys.env</code> and send it as the <code>X-Api-Key</code> header on <code>POST /v1/convert/*</code>. The <code>/ui</code> demo and <code>/docs</code> sit behind your Cloudron login; <code>/health</code> is open. The pipeline models are baked into the image, so first boot is ready in seconds, offline, with no download.</p>
<hr />
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f464.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--bust_in_silhouette" style="height:23px;width:auto;vertical-align:middle" title="👤" alt="👤" /> For users</h3>
<p dir="auto"><strong>Why try it:</strong> garbage in, garbage out starts at the parser. Docling gives you a private service that turns a PDF, a scan, or an Office file into clean Markdown (or JSON) with the layout understood, tables rebuilt, and OCR over images, the exact input a retrieval pipeline needs, with nothing leaving your server.</p>
<p dir="auto">What you get out of the box:</p>
<ul>
<li>A <strong>document-conversion API</strong> (PDF, DOCX, PPTX, XLSX, HTML, images to Markdown or JSON) with layout analysis, table reconstruction, and OCR, CPU-only, models baked in.</li>
<li>A <strong>browser demo UI</strong> at <code>/ui</code> (behind your Cloudron login) to drop in a file and see the Markdown, plus interactive OpenAPI docs at <code>/docs</code>.</li>
<li><strong>Async conversion</strong> (<code>/v1/convert/source/async</code>) so a 150-page scan does not hold a request open.</li>
<li><strong>Cloudron-specific wins:</strong> the API key is generated on first run, <code>/health</code> is open for monitoring, <code>/ui</code> and <code>/docs</code> sit behind Cloudron SSO, all state lives under <code>/app/data</code> so backups cover the key and caches, and updates are one click.</li>
</ul>
<p dir="auto">Good fit if you want a self-hosted ingestion tier for RAG and semantic search (pairs directly with the TEI and Qdrant community packages), or simply a private "PDF and scan to clean Markdown" service. Probably not for you if you need GPU acceleration (this build is CPU-only) or you only convert the occasional file (the image is about 6 GB, heavy for light use).</p>
<hr />
<h3>🧰 For packagers: what we learned</h3>
<p dir="auto"><strong>What helped</strong></p>
<ul>
<li>A two-stage Dockerfile onto <code>cloudron/base:5.0.0</code>: the builder installs the pinned release and bakes the models, the runtime stage copies only the installed venv and the models across. That dropped the image from 8.74 GB to 6.05 GB, because the single-stage build had been baking <code>uv</code>'s multi-gigabyte download cache into its layers (profiling with <code>podman history</code> and <code>du</code> inside the container made this obvious).</li>
<li>Baking the pipeline models into the image (read-only under <code>/app/code</code>) so the app is ready in seconds, offline, and sidesteps the first-boot-download-versus-health-grace race.</li>
<li>Installing CPU-only torch from the PyTorch CPU index first, so the main install finds torch satisfied and never pulls the multi-gigabyte CUDA build.</li>
<li>Putting all state under <code>/app/data</code> so the <code>localstorage</code> backup just works; a real backup then restore brought the key back byte-for-byte.</li>
<li>Cribbing the two-surface auth model and the release gates from the sibling TEI and Qdrant community packages.</li>
</ul>
<p dir="auto"><strong>What was tricky and how we solved it</strong></p>
<ul>
<li>A build that imports cleanly can still fail at runtime: the import gate does not exercise the dlopen-heavy stack (torch, OpenCV, the models), so the real gate is a convert-a-PDF smoke on the assembled image, not the build.</li>
<li>A Cloudron restore returns the key file as <code>0644</code>: re-assert <code>chown</code> and <code>chmod 0600</code> on every boot, not only at first run (the <code>0700</code> parent dir still protects it meanwhile).</li>
<li>The app phones home on boot (huggingface_hub telemetry) even with models baked: set <code>HF_HUB_DISABLE_TELEMETRY=1</code> and <code>DO_NOT_TRACK=1</code>.</li>
<li>A 6 GB push to GHCR dropped mid-layer with repeated EOF: the blobs landed on retry, and re-pushing the tag only had to write the manifest and finished in seconds.</li>
</ul>
<p dir="auto"><strong>Still rough and open questions</strong></p>
<ul>
<li>A cold install from the versions URL on a fresh subdomain is the gate we'd most welcome other eyes on.</li>
<li>Trimming the image further (a build-time single-OCR-engine option) without losing capability.</li>
</ul>
<hr />
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f6e0.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--hammer_and_wrench" style="height:23px;width:auto;vertical-align:middle" title="🛠" alt="🛠" />️ For the Cloudron team</h3>
<p dir="auto"><strong>Maintenance burden:</strong> upstream <code>docling-serve</code> is active with a steady release cadence; expect periodic rebumps that track upstream. The package is a thin layer (a pinned version build-arg plus the manifest), so a rebump is a version bump and a re-run of the convert smoke.</p>
<p dir="auto"><strong>Why it would suit the App Store:</strong> clean MIT upstream, real demand (document ingestion is the missing tier for self-hosted RAG), and it completes the existing TEI and Qdrant community stack.</p>
<p dir="auto"><strong>Friction worth knowing about:</strong> the <code>iconUrl</code> field couples to the <code>minBoxVersion 9.1.0</code> floor on the versions-url channel (shared with TEI and Qdrant); the <code>proxyAuth</code> addon key is camelCase while the packaging skill reference shows it lowercase (which fails manifest validation); and a <code>cloudron update --image</code> reuses the stored manifest, so the dashboard version label lags the image actually running.</p>
<hr />
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4bb.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--computer" style="height:23px;width:auto;vertical-align:middle" title="💻" alt="💻" /> For Docling's developers and contributors</h3>
<p dir="auto">A few low-effort things that help packagers a lot:</p>
<ul>
<li><strong>Telemetry off by default, or a first-class offline switch.</strong> The models can be baked and the app run fully offline, yet huggingface_hub still fetches a telemetry manifest on boot unless <code>HF_HUB_DISABLE_TELEMETRY</code> is set.</li>
<li><strong>A slimmer CPU image, or a build-time OCR-engine selector.</strong> The full stack with both EasyOCR and RapidOCR plus the baked models is large; selecting one engine would trim it.</li>
<li><strong>Publish a minimum Python and glibc floor per release,</strong> so a slim base copy knows the target.</li>
</ul>
<p dir="auto">Package source and PRs welcome here: <a href="https://github.com/OrcVole/docling-cloudron" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/OrcVole/docling-cloudron</a>. Happy to co-maintain.</p>
<hr />
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f513.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--unlock" style="height:23px;width:auto;vertical-align:middle" title="🔓" alt="🔓" /> Unlocks</h3>
<p dir="auto">Once it's running, you can:</p>
<ul>
<li>Drop a folder of PDFs and scans and get clean, chunked Markdown your LLM stack can actually retrieve over.</li>
<li>Build "ask questions about my own documents" entirely on your box: Docling, then TEI, then Qdrant, then Ollama or OpenWebUI.</li>
<li>Turn scanned, image-only PDFs into searchable text with OCR, with no third-party OCR service.</li>
</ul>
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f517.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--link" style="height:23px;width:auto;vertical-align:middle" title="🔗" alt="🔗" /> Synergies</h3>
<p dir="auto">Pairs nicely with other Cloudron apps:</p>
<ul>
<li><strong>Docling + TEI:</strong> convert documents, then embed the clean text via TEI's OpenAI-compatible <code>/v1/embeddings</code> (default <code>bge-small-en-v1.5</code>, 384-dim).</li>
<li><strong>Docling + Qdrant:</strong> store and similarity-search the embedded chunks (the <code>knowledge</code> collection).</li>
<li><strong>Docling + n8n:</strong> automate ingestion: watch a folder or Nextcloud, convert, embed, upsert.</li>
<li><strong>Docling + OpenWebUI or agentgateway:</strong> ask an LLM questions grounded in your own documents.</li>
</ul>
<hr />
<p dir="auto">Feedback, bug reports, and "works on my install" confirmations all welcome below. <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f64f.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--pray" style="height:23px;width:auto;vertical-align:middle" title="🙏" alt="🙏" /></p>
]]></description><link>https://forum.cloudron.io/topic/15649/docling-on-cloudron-community-package</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 12:48:28 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15649.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Jun 2026 10:58:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Docling on Cloudron - Community Package on Sat, 27 Jun 2026 09:22:28 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jdaviescoates" aria-label="Profile: jdaviescoates">@<bdi>jdaviescoates</bdi></a> Thank you again. I didn't see the wood for the trees!</p>
]]></description><link>https://forum.cloudron.io/post/126184</link><guid isPermaLink="true">https://forum.cloudron.io/post/126184</guid><dc:creator><![CDATA[LoudLemur]]></dc:creator><pubDate>Sat, 27 Jun 2026 09:22:28 GMT</pubDate></item><item><title><![CDATA[Reply to Docling on Cloudron - Community Package on Sat, 27 Jun 2026 01:39:48 GMT]]></title><description><![CDATA[<p dir="auto">Ah! Thank you both!</p>
]]></description><link>https://forum.cloudron.io/post/126174</link><guid isPermaLink="true">https://forum.cloudron.io/post/126174</guid><dc:creator><![CDATA[LoudLemur]]></dc:creator><pubDate>Sat, 27 Jun 2026 01:39:48 GMT</pubDate></item><item><title><![CDATA[Reply to Docling on Cloudron - Community Package on Fri, 26 Jun 2026 14:59:30 GMT]]></title><description><![CDATA[<p dir="auto">Well said <a class="plugin-mentions-user plugin-mentions-a" href="/user/jdaviescoates" aria-label="Profile: jdaviescoates">@<bdi>jdaviescoates</bdi></a></p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/loudlemur" aria-label="Profile: loudlemur">@<bdi>loudlemur</bdi></a> The entire point of a Community App (characterised by having a CloudronVersions.json) is that it can be installed VIA the App Store, even if it is not IN the ap store.</p>
<p dir="auto">Your AI buddy may need to be corrected on this.<br />
Can you ask him to be bit more concise. I struggle to get through the detail.</p>
<p dir="auto">Nice work on packaging. <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--+1" style="height:23px;width:auto;vertical-align:middle" title="👍" alt="👍" /><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f64f.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--pray" style="height:23px;width:auto;vertical-align:middle" title="🙏" alt="🙏" /><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f3fb.png?v=8b6d81684d0" class="not-responsive emoji emoji-android emoji--skin-tone-2" style="height:23px;width:auto;vertical-align:middle" title="🏻" alt="🏻" /></p>
]]></description><link>https://forum.cloudron.io/post/126154</link><guid isPermaLink="true">https://forum.cloudron.io/post/126154</guid><dc:creator><![CDATA[timconsidine]]></dc:creator><pubDate>Fri, 26 Jun 2026 14:59:30 GMT</pubDate></item><item><title><![CDATA[Reply to Docling on Cloudron - Community Package on Fri, 26 Jun 2026 14:30:27 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/loudlemur" aria-label="Profile: LoudLemur">@<bdi>LoudLemur</bdi></a> <a href="/post/126145">said</a>:</p>
<p dir="auto">Community packages aren't in the App Store, so install via the CLI.</p>
</blockquote>
<p dir="auto">I've not actually tried any community apps yet, but you don't need to use the CLI.</p>
<p dir="auto">The standard way is to click on the Add custom app drop down top right in the App Store and choose Community app:</p>
<p dir="auto"><img src="/assets/uploads/files/1782484141036-816426b2-ca44-4a94-83a5-a406ee702ae0-image-resized.jpeg" alt="816426b2-ca44-4a94-83a5-a406ee702ae0-image.jpeg" class=" img-fluid img-markdown" /></p>
<p dir="auto">And then paste in the CloudronVersions.json URL into the box that pops up:</p>
<p dir="auto"><img src="/assets/uploads/files/1782484197352-d4909557-f6fc-45b5-9e04-c86e4cdc0fd9-image.jpeg" alt="d4909557-f6fc-45b5-9e04-c86e4cdc0fd9-image.jpeg" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.cloudron.io/post/126153</link><guid isPermaLink="true">https://forum.cloudron.io/post/126153</guid><dc:creator><![CDATA[jdaviescoates]]></dc:creator><pubDate>Fri, 26 Jun 2026 14:30:27 GMT</pubDate></item></channel></rss>