<?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[n8n - Puppeteer - shared libraries failure]]></title><description><![CDATA[<p dir="auto">I'm trying to use Puppeteer in n8n and getting an error. Normally I would just install the package, but since these are in a docker container and <code>/var/lib/dpkg</code> is read-only, that doesn't seem like it will work. Does anyone have a workaround, either for getting puppeteer to work or to install packages in an app? I don't want to use a 3rd party browserless/headless service.</p>
<blockquote>
<p dir="auto">Problem in node ‘Puppeteer‘</p>
<p dir="auto">Failed to launch/connect to browser: Failed to launch the browser process! /home/cloudron/.cache/puppeteer/chrome/linux-135.0.7049.84/chrome-linux64/chrome: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory TROUBLESHOOTING: <a href="https://pptr.dev/troubleshooting" target="_blank" rel="noopener noreferrer nofollow ugc">https://pptr.dev/troubleshooting</a></p>
</blockquote>
<p dir="auto"><img src="/assets/uploads/files/1745019373372-1bfaf9a0-bca1-4b18-8356-9d24ae533935-image.png" alt="1bfaf9a0-bca1-4b18-8356-9d24ae533935-image.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.cloudron.io/topic/13667/n8n-puppeteer-shared-libraries-failure</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 08:09:22 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/13667.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Apr 2025 23:38:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to n8n - Puppeteer - shared libraries failure on Mon, 21 Apr 2025 23:36:59 GMT]]></title><description><![CDATA[<p dir="auto">Yes, I've been doing this for years, you just have to make /app/data friendly enough for apps to find what they need. This generally involves setting a few env variables:</p>
<ol>
<li>HOME</li>
<li>PATH (including NODE_PATH avoiding npm i -g)</li>
<li>LD_LIBRARY_PATH (less common)</li>
<li>other app specific ENVs</li>
</ol>
<p dir="auto">All of these changes do not affect the running app since it's already running with its own ENVs.<br />
So these are great for additional services.</p>
<p dir="auto">Nice work <a class="plugin-mentions-user plugin-mentions-a" href="/user/djxx" aria-label="Profile: djxx">@<bdi>djxx</bdi></a></p>
]]></description><link>https://forum.cloudron.io/post/106004</link><guid isPermaLink="true">https://forum.cloudron.io/post/106004</guid><dc:creator><![CDATA[robi]]></dc:creator><pubDate>Mon, 21 Apr 2025 23:36:59 GMT</pubDate></item><item><title><![CDATA[Reply to n8n - Puppeteer - shared libraries failure on Sat, 19 Apr 2025 08:23:16 GMT]]></title><description><![CDATA[<p dir="auto">OH WOW! This is one impressive hack I've not seen or thought of yet.<br />
Impressive!<br />
I don't think this is how the <code>/app/data/env.sh</code> was ever intended to extend the <code>PATH</code> variable.<br />
But it works! <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f631.png?v=223f9defb2f" class="not-responsive emoji emoji-android emoji--scream" style="height:23px;width:auto;vertical-align:middle" title=":scream:" alt="😱" /></p>
<p dir="auto">I believe, I do not have to tell you that these librarys do not get automatically updated. And thus might be a security risk. If you are able to pull off this stunt, you must know this <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=223f9defb2f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/djxx" aria-label="Profile: djxx">@<bdi>djxx</bdi></a> said in <a href="/post/105951">n8n - Puppeteer - shared libraries failure</a>:</p>
<blockquote>
<p dir="auto">because my hack will get overwritten at each application update.</p>
</blockquote>
<p dir="auto">No, no it will not <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f62c.png?v=223f9defb2f" class="not-responsive emoji emoji-android emoji--grimacing" style="height:23px;width:auto;vertical-align:middle" title=":grimacing:" alt="😬" /> since you store everything in <code>/app/data/</code> this is part of the backup.<br />
Nothing in <code>/app/data/</code> will be overwritten with an app update.</p>
]]></description><link>https://forum.cloudron.io/post/105954</link><guid isPermaLink="true">https://forum.cloudron.io/post/105954</guid><dc:creator><![CDATA[BrutalBirdie]]></dc:creator><pubDate>Sat, 19 Apr 2025 08:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to n8n - Puppeteer - shared libraries failure on Sat, 19 Apr 2025 08:04:18 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/brutalbirdie" aria-label="Profile: BrutalBirdie">@<bdi>BrutalBirdie</bdi></a>  - thanks, but these are Node modules and not OS modules. Luckily, I did find a workaround. Step by step, I found all the missing modules, downloaded the deb files from <a href="https://packages.debian.org/" target="_blank" rel="noopener noreferrer nofollow ugc">https://packages.debian.org/</a>, then extracted them into = <code>/app/data/libatk/</code> (because that was the first missing library)</p>
<p dir="auto"><img src="/assets/uploads/files/1745049284190-f4e99437-2a55-4546-a116-f145740b55be-image.png" alt="f4e99437-2a55-4546-a116-f145740b55be-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">After this, I discovered the entrypoint script calls an editable script and edited <code>/app/data/env.sh</code> with these lines:</p>
<pre><code>export PATH="/app/data/libatk:$PATH"
export LD_LIBRARY_PATH="/app/data/libatk"
</code></pre>
<p dir="auto">Once I did this, I was able to enable <code>Add Container Arguments</code> on the Puppeteer nodes options in n8n and it worked just fine. The "container arguments" has it ignore all sandboxing best practices (which is OK since we're running in a container).</p>
<p dir="auto">It would be good if the base n8n application for Cloudron would include the dependencies mentioned above, because my hack will get overwritten at each application update.</p>
]]></description><link>https://forum.cloudron.io/post/105951</link><guid isPermaLink="true">https://forum.cloudron.io/post/105951</guid><dc:creator><![CDATA[djxx]]></dc:creator><pubDate>Sat, 19 Apr 2025 08:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to n8n - Puppeteer - shared libraries failure on Sat, 19 Apr 2025 06:29:10 GMT]]></title><description><![CDATA[<p dir="auto">Hey <a class="plugin-mentions-user plugin-mentions-a" href="/user/djxx" aria-label="Profile: djxx">@<bdi>djxx</bdi></a><br />
Please see: <a href="https://docs.cloudron.io/apps/n8n/#custom-node-modules" target="_blank" rel="noopener noreferrer nofollow ugc">https://docs.cloudron.io/apps/n8n/#custom-node-modules</a><br />
This might solve your issue already <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=223f9defb2f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">For the forum seo and searchability tho <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f60f.png?v=223f9defb2f" class="not-responsive emoji emoji-android emoji--smirk" style="height:23px;width:auto;vertical-align:middle" title=":smirk:" alt="😏" /></p>
<hr />
<h1>Custom node modules</h1>
<p dir="auto">To install custom node modules, edit <code>/app/data/env.sh</code> using the <a href="https://docs.cloudron.io/apps/#file-manager" target="_blank" rel="noopener noreferrer nofollow ugc">File manager</a>:</p>
<pre><code># note: this is a space separated list
export EXTRA_NODE_MODULES="handlebars@4.7.7 jsonata@2.0.2 marked@4.3.0"
</code></pre>
<p dir="auto">The modules have to be whitelisted for use:</p>
<pre><code># note: this is a comma separated list
export NODE_FUNCTION_ALLOW_EXTERNAL=handlebars,jsonata,marked
</code></pre>
<p dir="auto">Restart the app and use the module in Function nodes. Restarting the app will install the modules specified in <code>EXTRA_NODE_MODULES</code> automatically. See <a href="https://docs.n8n.io/hosting/configuration/configuration-methods/#use-built-in-and-external-modules-in-function-nodes" target="_blank" rel="noopener noreferrer nofollow ugc">upstream</a> docs for more information.</p>
]]></description><link>https://forum.cloudron.io/post/105949</link><guid isPermaLink="true">https://forum.cloudron.io/post/105949</guid><dc:creator><![CDATA[BrutalBirdie]]></dc:creator><pubDate>Sat, 19 Apr 2025 06:29:10 GMT</pubDate></item></channel></rss>