If you've been updating your website by dragging files into an FTP client, you know the pain: forgotten files, long upload times when transferring everything, and the constant risk of overwriting the wrong version. It works, but it doesn't scale — especially when you're managing multiple environments or working with a team.
DeployHQ bridges the gap between your Git workflow and your FTP server. Push a commit, and only the changed files are uploaded automatically. No more manual transfers, no more missed files.
Why move from manual FTP to automated deployments
Manual FTP deployments have several problems that compound over time:
- Missed files: It's easy to forget a file when uploading manually, leading to broken functionality
- Full-site uploads are slow: If you upload everything each time, large sites can take minutes or hours
- No audit trail: You can't easily see what was deployed, when, or by whom
- Multi-environment headaches: Keeping development, staging, and production in sync manually is error-prone
- No rollback path: If a deployment breaks something, you need to manually figure out what changed
With DeployHQ, your Git history becomes your deployment history. Every deployment is logged, only changed files are transferred, and you can roll back to any previous deployment if needed.
What you'll need
- A Git repository hosted on GitHub, GitLab, Bitbucket, or another provider
- FTP or SFTP access to your web server
- A DeployHQ account (free plan available — 1 project, up to 10 deploys per day)
FTP vs SFTP: choosing the right protocol
DeployHQ supports both FTP and SFTP. If your server offers SFTP (SSH File Transfer Protocol), use it:
| Feature | FTP | SFTP |
|---|---|---|
| Encryption | None (credentials sent in plaintext) | Fully encrypted |
| Authentication | Username/password only | Username/password or SSH keys |
| Port | 21 | 22 |
| Firewall compatibility | Requires passive mode configuration | Single port |
SFTP is the secure choice for any deployment that crosses the internet. If your hosting provider only offers FTP, consider asking them about SFTP support or switching to a provider that offers SSH access.
For even more advanced file transfer options, see our comparison of SFTP vs SCP vs rsync.
Creating a DeployHQ project
After signing in to DeployHQ, click New Project and enter a name for your project.

Select your repository host and connect to the repository containing your site's source code.
Connecting your repository
Authorise DeployHQ with your repository host, then select the repository:

Keep the Add a webhook option checked to enable automatic deployments on push.
Configuring your FTP server
On the New Server screen, select FTP (or SFTP if available) as the protocol.

Enter your server details:
- Hostname: Your FTP server address (e.g.,
ftp.example.com) - Port: 21 for FTP, 22 for SFTP
- Username: Your FTP login username
- Password: Your FTP login password
- Deployment path: The directory where files should be placed (e.g.,
htdocs,public_html, orwww)
Click Create Server to save the configuration.
Running your first deployment
Click Deploy for the first time in the top right:

The start revision is set to The very first commit since no previous deployments exist. Click Deploy to begin uploading all files from your repository to the server.

Enabling automatic deployments
Navigate to Automatic Deployments in the left sidebar and enable the option for your FTP server:

Now every push to your repository triggers a deployment. Only the files changed in that commit are uploaded:

Protecting sensitive files
FTP servers often contain configuration files with database credentials, API keys, or other secrets that shouldn't be stored in your Git repository. DeployHQ's config files feature lets you define server-specific files that are placed during deployment but never stored in version control.
For a deeper look at managing secrets in your deployment workflow, see our guide on protecting your environments.
Adding build pipelines for compiled assets
If your project uses Sass, TypeScript, or any build tooling, DeployHQ's build pipeline runs your build commands before uploading files to the FTP server:
npm install --quiet
npm run build
This means you don't need to commit compiled assets to your repository. DeployHQ compiles them during the deployment and uploads only the output.
Managing multiple environments
For projects with staging and production servers, add multiple FTP servers to the same DeployHQ project. Deploy different Git branches to different servers using multi-environment management — for example, develop to your staging server and main to production.
Ready to leave manual FTP uploads behind? Sign up for DeployHQ and automate your deployments today.
If you have any questions, contact us at support@deployhq.com or reach out on X (Twitter).