Using SENDR. with your providers
SENDR. turns a Git push into a deployed build on any traditional host. This guide walks through connecting a repo, configuring environments, wiring up each provider, and shipping your first deploy.
Connect a repository
From a project, open Connect Repository. SENDR. reads repositories from the GitHub or GitLab account you signed in with — no manual owner/repo typing. On connect, SENDR. automatically creates an environment for the repo's default branch and a starter target, so push-to-deploy works immediately.
What gets created automatically:
- An environment tracking the default branch.
- A target using the repo name (adapter: ssh, status: provisioning).
- A webhook secret you paste into your git host.
Environments & branches
An environment maps a git branch to a deploy target. When a push lands on a branch with auto-deploy enabled, SENDR. enqueues a deployment to that environment's target. Edit the environment to track a different branch, or toggle auto-deploy off for branches you only want to build manually.
Provider setup
Each connected repo shows a webhook URL + secret. Register them in your git host so pushes reach SENDR.
GitHub
- Go to your project → Connect Repository and pick GitHub.
- Choose the repo (owner/name). SENDR lists repos from your connected GitHub account.
- SENDR auto-creates an environment tracking the repo's default branch, plus a target.
- Copy the generated webhook URL and the secret.
- In GitHub: repo → Settings → Webhooks → Add webhook. Paste the URL, choose `application/json`, and send “Pushes”.
GitLab
- Connect Repository → pick GitLab and choose the project.
- SENDR creates the environment + target for the default branch.
- Copy the webhook URL + secret.
- In GitLab: project → Settings → Webhooks. Paste the URL, set the secret token, and enable “Push events”.
Target adapters
A target is where files actually land. Pick the adapter that matches your host:
shared_hosting / cPanel
Free/paid cPanel hosts (e.g. InfinityFree, Namecheap, Hostinger).
- Host
- ftpupload.net (InfinityFree). Do NOT use the site IP.
- Port
- 21 (plain FTP over explicit TLS).
- Path
- /htdocs (or the host's docroot).
Username + password only. No SSH key needed.
sftp
Any host with SFTP access (VMs, AlwaysData, Railway services).
- Host
- The server's public IP or hostname.
- Port
- 22.
- Path
- An absolute deploy path, e.g. /var/www/html.
SSH key or password.
ftp
Hosts that only expose plain FTP (no SFTP).
- Host
- The FTP host.
- Port
- 21.
- Path
- Docroot, e.g. /htdocs.
Username + password.
ssh
Full VPS/bare-metal with shell access.
- Host
- Server IP.
- Port
- 22.
- Path
- Docroot, e.g. /var/www/html.
Runs pre/post-deploy hooks and symlink swaps.
docker
Container workloads.
- Host
- Docker host (tcp://host:2375 or a socket).
- Port
- 2375 (or leave default).
- Path
- Container mount path.
Container name required.
ftpupload.net on port 21 (not the site IP, where port 21 is refused), adapter shared_hosting, docroot /htdocs.Trigger a deploy
Push a commit to a tracked branch — that's it. SENDR. receives the webhook, builds the artifact, uploads it to the target, and atomically swaps the release. You can also deploy manually from a project's Deployments tab. Watch live logs in the dashboard.
Rollbacks
Each release is kept warm (retention is configurable per project). Roll back from the Deployments tab to instantly point the live directory at the previous release — no rebuild, no downtime.
CLI
The SENDR CLI (@sendr-dev/cli) lets you trigger deploys, check status, and stream logs straight from your terminal or CI — no dashboard required. Install it with your package manager:
# install globally
npm install -g @sendr-dev/cli
# or run without installing
npx @sendr-dev/cli loginCommands
After sendr login opens your browser to authenticate, run sendr init to link the CLI to a project. From there you can drive deployments:
sendr login # sign in via your browser
sendr init # link the CLI to a project
sendr deploy # deploy the current git HEAD
sendr deploy --wait # deploy and block until it finishes
sendr status # list recent deployments
sendr logs --follow # stream live deploy logs
sendr whoami # show the signed-in account
sendr logout # remove the stored tokendeploy
Triggers a deployment. Defaults to the current git HEAD; pass --commit, --target or --environment to override. Add --wait to block until the deploy finishes.
status
Lists recent deployments ( --limit) or shows a single deployment with --deployment <id>.
logs
Fetches deployment logs. Add --follow to tail new lines live (like tail -f).
auth
Manage sessions: sendr login, sendr logout and sendr whoami.
Use --token <token> with login or init for non-interactive CI environments.
Security
Target credentials and environment variables are encrypted with AES-256-GCM before they touch the database — only the worker decrypts them at deploy time. Webhook deliveries are verified against the per-repo secret. Each delivery is recorded once (idempotent) so retries never double-deploy.