Files, code and terminal

Deploy from GitHub, GitLab or Bitbucket (Git deployments, CI/CD)

Connect a repository once; every push builds, deploys, health-checks and can roll back.

  1. Connect the repository
  2. Private repository: add the deploy key
  3. Deploy on every push
  4. What happens on each deploy
  5. Watch, redeploy, roll back
  6. Shared paths
  7. Build settings
  8. Keep secrets out of git
  9. By hand in the terminal (optional)

1. Connect the repository

Open Git deployments, choose the app or website, pick GitHub, GitLab, Bitbucket or Other, and enter the repository address and branch (usually main). Press Test connection, then Connect repository.

2. Private repository: add the deploy key

Tick Private repository and press Create deploy key. Copy the key and add it as a read-only deploy key:

  • GitHub: repository → Settings → Deploy keys → Add deploy key (leave write access off)
  • GitLab: project → Settings → Repository → Deploy keys
  • Bitbucket: Repository settings → Access keys → Add key

3. Deploy on every push

Copy the Payload URL and Secret from Git deployments into your repository's webhook settings — GitHub: Settings → Webhooks (content type application/json, push events); GitLab: Settings → Webhooks (Secret token, Push events); Bitbucket: Repository settings → Webhooks (Repository push). From then on, a push to your branch deploys by itself.

What happens on each deploy

  • Source — the exact commit is fetched
  • Build — install and build run in a fresh release folder (npm/yarn/pnpm, pip with its own virtualenv, Maven/Gradle, Composer); your live site keeps running
  • Deploy — the site switches to the new release in one step and the app restarts
  • Health check — if the new release does not answer, the previous one goes back live automatically

Watch, redeploy, roll back

The pipeline and the full build log update live. Deployment history lists every run with its commit and duration; Redeploy any commit; Releases on the server → Make live rolls back instantly. You get an email when a deploy fails (Settings → Email me about).

Shared paths

Folders and files that must survive deploys — uploads, storage, .env — go in Shared paths. They live outside the releases and are linked into each one. WordPress starts with wp-content/uploads.

Build settings

For Node.js, Python and Java, the install, build and start commands come from App settings (framework presets). For PHP, composer install runs automatically when composer.json is in the repository, or set your own build command. A WordPress theme or plugin can deploy into a subfolder, e.g. wp-content/themes/my-theme.

Keep secrets out of git

Put passwords and API keys in Environment variables (App settings) or a shared .env, never in the repository.

By hand in the terminal (optional)

cd ~/web/yourdomain.com/app
git pull
mkdir -p tmp && touch tmp/restart.txt   # restart the app

Stuck? Our engineers answer support tickets around the clock. Contact us, or create an account and open a ticket from the dashboard — the same guides are there too.

Next step

Move your site, or your whole cloud estate

Shared hosting you can buy in two minutes. Infrastructure and managed services quoted by an engineer within one business day.