Connecting the LAMP app with Git
-
Hello @privsec
This could be done in multiple ways.
You get set a simple cron for your lamp app that just pulls every 5 minutes.
But this is not reactive to updates to your master branch. It just pulls every 5 minutes.
A more complex approach would be to set up a GitHub action that pushes the changes to the LAMP app with the cloudron cli.
-
HeyO

Now there is this GitHub Repository: https://github.com/cloudron-io/cloudron-push-to-app which publishes this action to the GitHub Marketplace https://github.com/marketplace/actions/cloudron-push-to-app
The README should explain how to use it.
Still, this can be confusing for people who never used GitHub actions.I have created a demo repo https://github.com/BrutalBirdie/github-action-test-repo and added the workflow according to my README.
Added an Environment:

and the secrets:

Now if I update the
README.md, add a simpleindex.htmlandindex.cssit will be deployed to https://default-lamp.cloudron.dev/ when accessing https://default-lamp.cloudron.dev you should see some neon 404 page and you can access theREADME.mdhttps://default-lamp.cloudron.dev/README.mdAnd in the action view you can see the executed action and logs https://github.com/BrutalBirdie/github-action-test-repo/actions/runs/19704245518/job/56447718391
-
Oh nice, this is incredible. Can you also make a guide @BrutalBirdie ? A PR to https://docs.cloudron.io/guides/ would be awesome .
Not a PHP dev but when/where does one run "composer install" in the workflow ? Maybe in the action itself?
-
I keep getting this error message

I have ensured that the URL, Token, and App ID are correct.
Here is my YAML file
on: push: branches: - main jobs: deploy-to-cloudron-app: runs-on: ubuntu-latest environment: my.domain.com steps: - name: Checkout Repository uses: actions/checkout@v6 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.3' extensions: pdo_mysql, pdo, json, mbstring, curl coverage: none - name: Verify PHP Extensions run: | echo "PHP Version:" php -v echo -e "\nInstalled Extensions:" php -m | grep -E "(pdo_mysql|pdo|json|mbstring|curl)" || echo "Some extensions not found" echo -e "\nAll PHP Extensions:" php -m - name: Install composer dependencies run: | composer install --no-interaction --prefer-dist --optimize-autoloader - name: Verify Cloudron Connection run: | if [ -z "${{ secrets.CLOUDRON_URL }}" ]; then echo "Error: CLOUDRON_URL secret is not set" exit 1 fi echo "Cloudron URL configured: ${{ secrets.CLOUDRON_URL }}" echo "App ID: ${{ secrets.CLOUDRON_APP_ID }}" - name: Cloudron Push to App uses: cloudron-io/cloudron-push-to-app@latest with: CLOUDRON_URL: "${{ secrets.CLOUDRON_URL }}" CLOUDRON_TOKEN: "${{ secrets.CLOUDRON_TOKEN }}" CLOUDRON_APP_ID: "${{ secrets.CLOUDRON_APP_ID }}" CLOUDRON_PUSH_DESTINATION: "/app/data" (I want to push to this directory, rather then to public) CLOUDRON_CREATE_APP_BACKUP: "false"