<?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[Github Actions documentation&#x2F;example for Surfer]]></title><description><![CDATA[<p dir="auto">I'd like to auto deploy some code from a Github repo, using Github actions after a commit happens, to copy files to Surfer.</p>
<p dir="auto">Has anyone documented this?</p>
]]></description><link>https://forum.cloudron.io/topic/11970/github-actions-documentation-example-for-surfer</link><generator>RSS for Node</generator><lastBuildDate>Wed, 17 Jun 2026 14:00:02 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/11970.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Jun 2024 18:13:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Github Actions documentation&#x2F;example for Surfer on Sun, 15 Feb 2026 23:55:47 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/rosano" aria-label="Profile: rosano">@<bdi>rosano</bdi></a><br />
The GitHub action is for pushing code from a GitHub repo directly into an app.<br />
Like for surfer or LAMP.</p>
]]></description><link>https://forum.cloudron.io/post/120258</link><guid isPermaLink="true">https://forum.cloudron.io/post/120258</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Sun, 15 Feb 2026 23:55:47 GMT</pubDate></item><item><title><![CDATA[Reply to Github Actions documentation&#x2F;example for Surfer on Sun, 15 Feb 2026 20:41:48 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/james" aria-label="Profile: james">@<bdi>james</bdi></a> i didn't get an email notification for this reply, good to know!</p>
<p dir="auto">i think the use case described previously is more for static sites with surfer (my personal preference as github pages can be super slow to create and upload artifacts).</p>
<p dir="auto">but nonetheless, could you clarify why it seems to push without any docker build step? i'm used to installing custom apps from registries after building so this "push code" concept seems novel.</p>
<p dir="auto">(edit: my email was outdated… just updated)</p>
]]></description><link>https://forum.cloudron.io/post/120252</link><guid isPermaLink="true">https://forum.cloudron.io/post/120252</guid><dc:creator><![CDATA[rosano]]></dc:creator><pubDate>Sun, 15 Feb 2026 20:41:48 GMT</pubDate></item><item><title><![CDATA[Reply to Github Actions documentation&#x2F;example for Surfer on Wed, 11 Feb 2026 11:36:20 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="plugin-mentions-user plugin-mentions-a" href="/user/rosano" aria-label="Profile: rosano">@<bdi>rosano</bdi></a><br />
We actually published a GitHub action for a more generic use-case.<br />
<a href="https://github.com/cloudron-io/cloudron-push-to-app" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/cloudron-io/cloudron-push-to-app</a></p>
]]></description><link>https://forum.cloudron.io/post/120033</link><guid isPermaLink="true">https://forum.cloudron.io/post/120033</guid><dc:creator><![CDATA[james]]></dc:creator><pubDate>Wed, 11 Feb 2026 11:36:20 GMT</pubDate></item><item><title><![CDATA[Reply to Github Actions documentation&#x2F;example for Surfer on Wed, 11 Feb 2026 10:04:57 GMT]]></title><description><![CDATA[<p dir="auto">Got this working for myself:</p>
<ol>
<li>create an environment and define your <code>SURFER_TOKEN</code> / <code>SURFER_HOST</code> secrets there</li>
<li>set the environment in your job</li>
<li>expose the secrets to the <code>run</code> command</li>
</ol>
<p dir="auto">My example assumes:</p>
<ul>
<li>environment name <code>alfa</code></li>
<li>you want to upload the <code>bravo</code> directory…</li>
<li>to your server under <code>/charlie/delta</code></li>
</ul>
<pre><code class="language-yaml">name: Deploy

on: [push]

jobs:
  build_site:
    runs-on: ubuntu-latest
    environment: alfa
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      # … other steps for install, build, etc…

      - name: Install surfer
        run: npm -g install cloudron-surfer

      - name: Upload
        env:
          SURFER_TOKEN: ${{ secrets.SURFER_TOKEN }}
          SURFER_HOST: ${{ secrets.SURFER_HOST }}
        run: surfer put --token "$SURFER_TOKEN" --server "$SURFER_HOST" bravo/* /charlie/delta
</code></pre>
]]></description><link>https://forum.cloudron.io/post/120028</link><guid isPermaLink="true">https://forum.cloudron.io/post/120028</guid><dc:creator><![CDATA[rosano]]></dc:creator><pubDate>Wed, 11 Feb 2026 10:04:57 GMT</pubDate></item><item><title><![CDATA[Reply to Github Actions documentation&#x2F;example for Surfer on Wed, 03 Jul 2024 07:50:33 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/bmann" aria-label="Profile: bmann">@<bdi>bmann</bdi></a> said in <a href="/post/90806">Github Actions documentation/example for Surfer</a>:</p>
<blockquote>
<p dir="auto">/website/*</p>
</blockquote>
<p dir="auto">This is a bit weird. In the output above it complains that it cannot find <code>/website/</code>, while in your yaml you are passing <code>website/</code>. The first one would be no surprise if it does not work, the second one however should work as ci tools usually open a shell where you will be directly in your git checkout.</p>
<p dir="auto">I would try to debug this with inserting a few <code>ls</code> and <code>pwd</code> into your yaml to see where you actually are and if this might be a permission issue of some kind.</p>
]]></description><link>https://forum.cloudron.io/post/90817</link><guid isPermaLink="true">https://forum.cloudron.io/post/90817</guid><dc:creator><![CDATA[fbartels]]></dc:creator><pubDate>Wed, 03 Jul 2024 07:50:33 GMT</pubDate></item><item><title><![CDATA[Reply to Github Actions documentation&#x2F;example for Surfer on Wed, 03 Jul 2024 06:26:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/fbartels" aria-label="Profile: fbartels">@<bdi>fbartels</bdi></a> awesome, thank you! Will try this out.</p>
<p dir="auto">Update: very close!</p>
<pre><code>Using server https://localhost.dwebyvr.org
node:fs:1659
  const stats = binding.stat(
                        ^
Error: ENOENT: no such file or directory, stat '/website/*'
    at Object.statSync (node:fs:1659:25)
    at collectFiles (/usr/local/lib/node_modules/cloudron-surfer/cli/actions.js:60:19)
    at /usr/local/lib/node_modules/cloudron-surfer/cli/actions.js:225:40
    at Array.forEach (&lt;anonymous&gt;)
    at Command.put (/usr/local/lib/node_modules/cloudron-surfer/cli/actions.js:221:15)
    at Command.listener [as _actionHandler] (/usr/local/lib/node_modules/cloudron-surfer/node_modules/commander/lib/command.js:494:17)
    at /usr/local/lib/node_modules/cloudron-surfer/node_modules/commander/lib/command.js:1296:65
    at Command._chainOrCall (/usr/local/lib/node_modules/cloudron-surfer/node_modules/commander/lib/command.js:1193:12)
    at Command._parseCommand (/usr/local/lib/node_modules/cloudron-surfer/node_modules/commander/lib/command.js:1296:27)
    at /usr/local/lib/node_modules/cloudron-surfer/node_modules/commander/lib/command.js:1082:27 {
  errno: -2,
  code: 'ENOENT',
  syscall: 'stat',
  path: '/website/*'
}
</code></pre>
<p dir="auto">So somehow have to give it context of the checked out repo I guess?</p>
<p dir="auto">Here's the file in the repo I'm working with: <a href="https://github.com/DWebYVR/localhost_vancouver_webring/blob/main/.github/workflows/surfer.yml" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/DWebYVR/localhost_vancouver_webring/blob/main/.github/workflows/surfer.yml</a></p>
]]></description><link>https://forum.cloudron.io/post/90806</link><guid isPermaLink="true">https://forum.cloudron.io/post/90806</guid><dc:creator><![CDATA[bmann]]></dc:creator><pubDate>Wed, 03 Jul 2024 06:26:05 GMT</pubDate></item><item><title><![CDATA[Reply to Github Actions documentation&#x2F;example for Surfer on Tue, 25 Jun 2024 10:51:30 GMT]]></title><description><![CDATA[<p dir="auto">I did not test it, as all my ci is still either in Drone at home or Gitlab at work. But from my understanding it should look like this:</p>
<pre><code>    - name: Deploy to Surfer
      uses: addnab/docker-run-action@v3
      with:
        image: git.9wd.eu/9wd/surfer-action:latest
        run: |
          surfer --version
          surfer put --token $SURFTOKEN --server $SURFURL public/* /
</code></pre>
<p dir="auto">(the referenced container is the surfer image I built and have been using for years)</p>
]]></description><link>https://forum.cloudron.io/post/90343</link><guid isPermaLink="true">https://forum.cloudron.io/post/90343</guid><dc:creator><![CDATA[fbartels]]></dc:creator><pubDate>Tue, 25 Jun 2024 10:51:30 GMT</pubDate></item><item><title><![CDATA[Reply to Github Actions documentation&#x2F;example for Surfer on Tue, 25 Jun 2024 10:33:07 GMT]]></title><description><![CDATA[<p dir="auto">I don't have any example on hand, but would also be curious how this looks like. Never set up custom Github actions as such. I would assume the surfer cli or just the rest API would be utilized?</p>
]]></description><link>https://forum.cloudron.io/post/90341</link><guid isPermaLink="true">https://forum.cloudron.io/post/90341</guid><dc:creator><![CDATA[nebulon]]></dc:creator><pubDate>Tue, 25 Jun 2024 10:33:07 GMT</pubDate></item></channel></rss>