Composite GitHub Action for deploying Docker Compose applications via SSH.
- uses: alphaomegateam/deploy-action@v1
with:
tool-name: my-app
server-path: ~/tools/my-app
health-url: https://my-app.example.com/health
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}| Input | Required | Default | Description |
|---|---|---|---|
tool-name |
Yes | - | Name of the tool (e.g., n8n, calcom) |
server-path |
Yes | - | Path to tool on server (e.g., ~/tools/n8n) |
health-url |
Yes | - | URL to check for health after deployment |
build |
No | false |
Run docker compose build before up |
These must be set at the organization level:
SSH_HOST- Server IP addressSSH_USER- SSH username (typicallydeploy)SSH_PRIVATE_KEY- Private SSH key for authenticationSLACK_WEBHOOK_URL- Slack webhook for failure notifications
- Connects to server via SSH
- Saves current commit hash (for rollback)
- Pulls latest changes from main
- Pulls Docker images
- (Optional) Builds Docker images if
build: true - Restarts containers with
docker compose up -d - Waits 30 seconds for startup
- Runs health check
- On failure: rolls back to previous commit and notifies Slack
- uses: alphaomegateam/deploy-action@v1
with:
tool-name: my-custom-app
server-path: ~/tools/my-custom-app
health-url: https://my-custom-app.example.com/health
build: true
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}