GitHub Actions
-
Create a deploy token in the dashboard with the account or organization selected that owns the app.
-
Store it in the repository (or organization) as the secret
VIBE_TOKEN:Terminal window gh secret set VIBE_TOKEN -
Add
.github/workflows/deploy.yml:name: Deployon:push:branches: [main]concurrency: deployjobs:deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v4- id: vibeuses: vibe-deploy/deploy-action@v1with:token: ${{ secrets.VIBE_TOKEN }}- run: echo "Live at ${{ steps.vibe.outputs.url }}"
The action installs the vibe CLI and runs vibe deploy exactly as you would. A failed deploy fails the job and adds vibe status to the log. The deploy history shows these deploys as coming from github-actions, with the commit.
Inputs
Section titled “Inputs”| Input | Default | |
|---|---|---|
token |
required | the deploy token |
path |
. |
folder to deploy, for monorepos |
name |
from vibe.json |
app name |
env |
KEY=VALUE lines, set before the deploy |
Output: url, the app’s address.
- Commit
vibe.json, so CI deploys to the same app name you use locally. - A token of a different account gets 403 belongs to another user: the token’s account or organization must own the app.
concurrency: deploystops two pushes from deploying at the same time.
Without the action
Section titled “Without the action”The action’s repository is private for now, so it works only in repositories of the vibe-deploy organization. Anywhere else, run the CLI directly:
- uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - run: npm install -g https://dashboard.tja.nrw/vibedeploy-cli.tgz - run: vibe deploy env: VIBE_TOKEN: ${{ secrets.VIBE_TOKEN }}