<?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[🚀 Crawl4AI: community package now available]]></title><description><![CDATA[<blockquote>
<p dir="auto"><strong>TL;DR:</strong> Crawl4AI fetches web pages with a real headless browser and returns clean Markdown, HTML, a screenshot or a PDF, for feeding into language models or automation workflows. Now packaged for Cloudron and ready to install. Built and tested on Cloudron 9.x; unofficial and community-maintained.</p>
</blockquote>
<p dir="auto"><img src="/assets/uploads/files/1790177113598-screenshot_20260923_162417-resized.png" alt="Screenshot_20260923_162417.png" class=" img-fluid img-markdown" width="1590" height="822" /></p>
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/2728.png?v=5de145fdea7" class="not-responsive emoji emoji-android emoji--sparkles" style="height:23px;width:auto;vertical-align:middle" title="✨" alt="✨" /> Headline features</h3>
<ul>
<li>Real Chromium rendering, so JavaScript-heavy pages work, not just static HTML.</li>
<li>Four output shapes from the same request: Markdown, cleaned HTML, a screenshot, or a PDF.</li>
<li>A REST API and an MCP endpoint, so an AI agent tool can call it directly.</li>
<li>A Redis-backed job queue for larger crawl batches, alongside the synchronous endpoints.</li>
<li>Every request requires an API token, generated automatically on first start; there is no way to reach it without one.</li>
</ul>
<h3>Links</h3>
<ul>
<li><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f3e0.png?v=5de145fdea7" class="not-responsive emoji emoji-android emoji--house" style="height:23px;width:auto;vertical-align:middle" title="🏠" alt="🏠" /> Project homepage: <a href="https://github.com/unclecode/crawl4ai" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/unclecode/crawl4ai</a></li>
<li><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4e6.png?v=5de145fdea7" 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/unclecode/crawl4ai" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/unclecode/crawl4ai</a></li>
<li>🧱 Cloudron package repo: <a href="https://github.com/OrcVole/crawl4ai-cloudron" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/OrcVole/crawl4ai-cloudron</a></li>
</ul>
<p dir="auto">There is a small built-in playground UI once installed (shown above), for trying requests by hand before wiring them into a script.</p>
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4e5.png?v=5de145fdea7" 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"><img src="/assets/uploads/files/1782552307466-community-package.jpeg" alt="community-package.jpeg" class=" img-fluid img-markdown" width="1024" height="471" /></p>
<p dir="auto"><img src="/assets/uploads/files/1782552321764-cloudronversions.jpeg" alt="cloudronversions.jpeg" class=" img-fluid img-markdown" width="631" height="249" /></p>
<p dir="auto">Click the <strong>Add custom app</strong> dropdown (top right in the App Store) and choose <strong>Community app</strong>, then paste this URL into the box that pops up. Apps installed this way receive automatic updates.</p>
<pre><code>https://raw.githubusercontent.com/OrcVole/crawl4ai-cloudron/main/CloudronVersions.json
</code></pre>
<p dir="auto">Or from the CLI:</p>
<pre><code class="language-bash">cloudron install \
  --versions-url https://raw.githubusercontent.com/OrcVole/crawl4ai-cloudron/main/CloudronVersions.json \
  --location crawl4ai.example.com
</code></pre>
<p dir="auto"><strong>Minimums:</strong> 2 GiB RAM, <code>localstorage</code> addon only; no other subdomain claimed.</p>
<p dir="auto"><strong>First run:</strong> there is no login page. Read the auto-generated API token from <code>/app/data/.secrets/api-token</code> via the Cloudron file manager or the app's web terminal, then send it as a Bearer token on every request.</p>
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f464.png?v=5de145fdea7" 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> you want clean Markdown or a screenshot from a page, including pages that need JavaScript to render, without running a scraping stack yourself. What you get: a REST API for one-off requests, a job queue for batches, and an MCP endpoint so an AI agent tool can crawl on your behalf. <strong>Cloudron wins:</strong> no separate server to provision, managed updates, everything under <code>/app/data</code>. Good fit if you already automate against APIs or run agent tooling; probably not if you only need to read one page occasionally, where a browser extension is simpler.</p>
<h3>🧰 For packagers: what we learned</h3>
<p dir="auto"><strong>What helped:</strong> upstream ships a single self-contained image with Python, the app and the Playwright browser cache already in place, so the build is a straight copy onto <code>cloudron/base</code> plus <code>playwright install-deps</code>, the same shape used for our other Chromium-based packages.</p>
<p dir="auto"><strong>What was tricky:</strong> no Chromium sandbox is available inside a Cloudron container (no <code>CAP_SYS_ADMIN</code>, restricted user namespaces, 64 MiB <code>/dev/shm</code>); we asked about this here first (see the earlier thread) and ship <code>--no-sandbox</code> with the mandatory API token and a default refusal of internal-network URLs as compensating controls, which is the same situation every headless-browser app faces on this platform. Redis needed relocating to a writable directory outside <code>/var/lib/redis</code>. The upstream <code>memory_threshold_percent</code> setting does not protect the HTTP endpoints, only the internal dispatcher, so we size <code>memoryLimit</code> and the default concurrency by measurement instead.</p>
<p dir="auto"><strong>Still rough:</strong> the default concurrency (10 pages) and the 2 GiB default memory limit have thin headroom under sustained load in our own testing; we are tightening one or the other before the next release.</p>
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f6e0.png?v=5de145fdea7" 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 ships frequently, including at least one security release during this package's first day, so the package needs active per-release pin verification rather than an occasional glance. <strong>Why it suits the App Store:</strong> clear demand for self-hosted AI tooling, a clean Apache-2.0 upstream, and it completes an AI stack alongside existing store packages for vector databases and inference. <strong>Friction worth knowing:</strong> <code>cloudron versions init</code> suggests adding <code>packageUrl</code> to the manifest, which then conflicts with <code>minBoxVersion</code> below 10.0.0; removing the field again fixes it.</p>
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4bb.png?v=5de145fdea7" class="not-responsive emoji emoji-android emoji--computer" style="height:23px;width:auto;vertical-align:middle" title="💻" alt="💻" /> For Crawl4AI's developers</h3>
<p dir="auto">A couple of low-effort things that would help future packaging: a documented minimum glibc/Ubuntu base for the bundled Playwright browsers, and a config knob (or documented behaviour) for <code>memory_threshold_percent</code> to also gate the synchronous HTTP endpoints, not only the internal dispatcher. Package source and PRs welcome: <a href="https://github.com/OrcVole/crawl4ai-cloudron" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/OrcVole/crawl4ai-cloudron</a>.</p>
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f513.png?v=5de145fdea7" class="not-responsive emoji emoji-android emoji--unlock" style="height:23px;width:auto;vertical-align:middle" title="🔓" alt="🔓" /> Unlocks</h3>
<p dir="auto">Now you can run your own crawling and extraction API without a third-party scraping service, and point any MCP-capable AI agent at it for real web access with no separate stack to run.</p>
<h3><img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f517.png?v=5de145fdea7" class="not-responsive emoji emoji-android emoji--link" style="height:23px;width:auto;vertical-align:middle" title="🔗" alt="🔗" /> Synergies</h3>
<p dir="auto"><strong>Windmill + Crawl4AI:</strong> a Windmill script can call Crawl4AI's REST API as a workflow step, turning a scheduled crawl, a content pipeline, or a page-change check into a few lines of Python against a URL you already trust.</p>
<p dir="auto"><strong>A self-hosted or local AI setup + Crawl4AI's MCP endpoint:</strong> point any MCP-capable agent at <code>/mcp/sse</code> with the API token and it gains real web-crawling as a tool call, no separate crawling stack to run alongside the model.</p>
<p dir="auto"><strong>A self-hosted knowledge base or note-taking app + Crawl4AI:</strong> feed crawled pages in as plain Markdown files, using whichever folder-watching or import mechanism the target app already supports.</p>
<p dir="auto">Feedback, bug reports, and "works on my install" confirmations welcome.</p>
]]></description><link>https://forum.cloudron.io/topic/16000/crawl4ai-community-package-now-available</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 13:18:23 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/16000.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Sep 2026 15:27:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 🚀 Crawl4AI: community package now available on Wed, 23 Sep 2026 16:13:58 GMT]]></title><description><![CDATA[<p dir="auto">Big thanks to the brilliant <a class="plugin-mentions-user plugin-mentions-a" href="/user/timconsidine" aria-label="Profile: timconsidine">@<bdi>timconsidine</bdi></a> for his interest and vigilance and for immediately notifying we were initially on an older base image of cloudron.</p>
<p dir="auto">This crawl4ai is now on Cloudron 5.1 and we will be moving the rest of our fleet to the new base when they need updates, too.</p>
]]></description><link>https://forum.cloudron.io/post/129918</link><guid isPermaLink="true">https://forum.cloudron.io/post/129918</guid><dc:creator><![CDATA[LoudLemur]]></dc:creator><pubDate>Wed, 23 Sep 2026 16:13:58 GMT</pubDate></item></channel></rss>