<?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[Can a packaged app run headless Chromium with its sandbox on?]]></title><description><![CDATA[<p dir="auto">We are preparing a community package for Crawl4AI, which fetches web pages with a real headless Chromium and returns them as clean text for language models.</p>
<p dir="auto">Chromium protects the host by running each page's renderer inside its own sandbox. On Linux that sandbox needs either unprivileged user namespaces or the setuid <code>chrome-sandbox</code> helper. When neither is available, the only way to start Chromium is <code>--no-sandbox</code>, and upstream's image ships exactly that flag, with a comment saying a renderer exploit can then reach the container.</p>
<p dir="auto">Upstream suggests two ways to turn the sandbox back on: allow unprivileged user namespaces on the host, or run the container with a custom seccomp profile. As far as we can tell, a package can do neither: the manifest has no seccomp setting, and host sysctls are outside the package.</p>
<p dir="auto">A crawler is software that deliberately opens untrusted pages, so we would rather not ship it unsandboxed without asking first. Three questions:</p>
<ol>
<li>
<p dir="auto">Inside an app container on Cloudron 9.x, are unprivileged user namespaces (<code>unshare --user</code>) allowed, or are they blocked by Docker's default seccomp profile or AppArmor on the host?</p>
</li>
<li>
<p dir="auto">Is <code>no-new-privileges</code> set on app containers? If not, would a setuid <code>chrome-sandbox</code> helper be an acceptable route, or does the platform discourage setuid binaries in packages?</p>
</li>
<li>
<p dir="auto">How do existing apps that bundle Chromium handle this? Do they all run <code>--no-sandbox</code>, and is that the accepted practice here?</p>
</li>
</ol>
<p dir="auto">If the answer is that <code>--no-sandbox</code> is the only option, we plan to say so plainly in the app description, keep the API token mandatory, and rely on the container's own isolation. If there is a better route, we would like to use it.</p>
<p dir="auto">We can test whatever is suggested on our staging Cloudron and report back here.</p>
]]></description><link>https://forum.cloudron.io/topic/15999/can-a-packaged-app-run-headless-chromium-with-its-sandbox-on</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 03:35:16 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15999.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Sep 2026 08:46:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Can a packaged app run headless Chromium with its sandbox on? on Wed, 23 Sep 2026 10:13:51 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/james" aria-label="Profile: james">@<bdi>james</bdi></a> <a href="/post/129891">said</a>:</p>
<p dir="auto">Not sure if helpful,</p>
</blockquote>
<p dir="auto">Brilliant Brutal Birdie and thanks, that helps a lot!</p>
]]></description><link>https://forum.cloudron.io/post/129892</link><guid isPermaLink="true">https://forum.cloudron.io/post/129892</guid><dc:creator><![CDATA[LoudLemur]]></dc:creator><pubDate>Wed, 23 Sep 2026 10:13:51 GMT</pubDate></item><item><title><![CDATA[Reply to Can a packaged app run headless Chromium with its sandbox on? on Wed, 23 Sep 2026 10:08:40 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/loudlemur" aria-label="Profile: loudlemur">@<bdi>loudlemur</bdi></a><br />
Not sure if helpful, but <a class="plugin-mentions-user plugin-mentions-a" href="/user/brutalbirdie" aria-label="Profile: brutalbirdie">@<bdi>brutalbirdie</bdi></a> did package <a href="https://git.cloudron.io/elias/browserless-cloudron-app/" target="_blank" rel="noopener noreferrer nofollow ugc">https://git.cloudron.io/elias/browserless-cloudron-app/</a> which uses playwright chrome, msedge, chromium, firefox, webkit browsers.<br />
If I remember correctly browserless runs all browsers inside docker with <code>--no-sandbox</code></p>
]]></description><link>https://forum.cloudron.io/post/129891</link><guid isPermaLink="true">https://forum.cloudron.io/post/129891</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Wed, 23 Sep 2026 10:08:40 GMT</pubDate></item></channel></rss>