A deployment turns a commit from your repository into a running application on your server. Each deployment follows an 8-step pipeline, tracked in real time.
Deployment steps
| # | Step | Description |
|---|---|---|
| 1 | clone | Clone the repository at the target branch and commit |
| 2 | dockerfile | Generate the Docker configuration (Dockerfile + .env.production) |
| 3 | upload | Upload the files to the server over SSH |
| 4 | proxy | Configure the reverse proxy (Traefik/Caddy) if a domain is set |
| 5 | build | Build the Docker images (VITE_*, NEXT_PUBLIC_*, REACT_APP_* variables injected) |
| 6 | deploy | Start the containers (docker compose up) |
| 7 | healthcheck | Verify the application health (up to 60 seconds) |
| 8 | done | Deployment completed successfully |
Capture à venir
en/projects-deployments
Cette capture illustrera la vue correspondante. Elle est générée automatiquement par le pipeline Playwright.
Between deploy and healthcheck, Paylood runs migrations and seeds for Laravel and Node.js stacks (on the backend container).
Launching a deployment
- Manual: open the project then click Deploy at the top right.
- Automatic: every push on the environment’s branch (see Auto-deploy).
- No cache: the
noCacheoption forces a full build without the Docker cache.
Tracking a deployment
The Logs tab shows the paginated history. During an active deployment:
- The Live button streams the logs continuously.
- A browser notification is sent on completion (success or failure).
- The status goes through:
queued → running → building → success | failed | cancelled.
Cancelling a deployment
- Open the running deployment.
- Click Cancel deployment.
- The pipeline stops cleanly: running SSH processes are killed.
Warning
Cancelling stops the running deployment but does not remove already-built images. A later deployment will reuse the cache.
Rolling back
If something goes wrong after a successful deployment:
- Go to the Logs tab.
- Pick the previous deployment.
- Use the restore action: Paylood reuses the previous Docker image (
previousImageTag) and restarts the containers.
Tip
Rollback does not rebuild: it runs docker compose up with the previous image. It is nearly instant.
On failure
- Check the last log lines of the failing step (logs button).
- Paylood automatically analyzes the logs and provides a diagnostic (missing dependency, port already in use, failed migration\u2026).
- Fix the issue in the repository and redeploy, or apply the shown suggestion.
Build environment variables
Variables with these prefixes are injected at build time:
VITE_* (Vite / frontend)
NEXT_PUBLIC_* (Next.js)
REACT_APP_* (Create React App)
NUXT_* (Nuxt)
The application port is detected via PORT, APP_PORT or SERVER_PORT (default 3000).