Deployment

Every acme deploy creates an immutable deployment with its own URL.

Deploy from CLI

acme deploy

Output:

Deploying my-app...
✓ Built in 3.2s
✓ Deployed to https://my-app-abc123.acme.sh
✓ Aliased to https://my-app.acme.sh

Deploy from GitHub

  1. Go to your Acme dashboard
  2. Click Connect Repository
  3. Select your GitHub repo
  4. Every push to main auto-deploys

Preview deployments

Pull requests get their own preview URL automatically:

https://my-app-pr-42.acme.sh

Rollbacks

Every deployment is immutable. Roll back to any previous version:

# List deployments
acme deployments list

# Roll back
acme rollback abc123

Custom domains

acme domains add docs.example.com

Then add a CNAME record:

docs.example.com → cname.acme.sh

SSL is provisioned automatically. No config needed.

CI/CD

Use our GitHub Action:

# .github/workflows/deploy.yml
name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: acme/deploy-action@v1
        with:
          token: ${{ secrets.ACME_TOKEN }}