Contabo Deployment with DeployHQ: Continuous Integration & Delivery for Servers
Deploying to your site hosted with Contabo is very simple with DeployHQ. Contabo is a popular budget VPS and dedicated server provider with data centres across Germany, the USA, Singapore, India, and Japan.
Firstly, you'll need to set up your DeployHQ project, then connect to your Contabo server.
Setting up your project
Head to the Projects screen in DeployHQ, then click the New Project button to get started.
You'll be prompted to enter a name for your project, then select where your repository is hosted.
![]()
Next, click Create project and you'll be taken to a screen where you can log in with your repository hosting account to authorise access and then choose your repository.
- Adding a Bitbucket repository
- Adding a Codebase repository
- Adding a GitHub repository
- Adding a GitLab repository
- Adding a repository manually
Setting up your Contabo server
Once you've configured your repository, you'll need to connect to your Contabo server.
Finding your credentials
- Log in to the Contabo Customer Control Panel (or the legacy panel at
my.contabo.com) - Click Servers & Hosting in the left menu
- Select VPS, VDS, or Dedicated Servers depending on your product
- Your server's IP address and default user are shown in the server list
- To reset your password, click the three-dot menu next to your server and select Reset credentials
The default SSH user is root. Your initial password was set during the ordering process and emailed to you in the "Your login data!" email.
Adding the SSH key
Before connecting DeployHQ, you'll need to add the project's SSH public key to your server. Copy the key from DeployHQ's server configuration page, then add it to your server:
ssh-copy-id -i deployhq_key.pub root@YOUR_SERVER_IP
Or manually append it to ~/.ssh/authorized_keys:
echo "DEPLOYHQ_PUBLIC_KEY" >> ~/.ssh/authorized_keys
Adding the server in DeployHQ
Head to Servers & Groups, and click the New Server button at the top of the screen. If you've just added your repository, you will have been taken to this page automatically.
Start by entering a name, and choosing SSH/SFTP as the protocol:
![]()

Next, enter your Contabo server's IP address as the hostname, root as the username (or a dedicated deploy user if you've created one), and leave the port blank to use the default (22).
For the deployment path, enter the directory where your files should be uploaded. Contabo servers are unmanaged, so the path depends on your web server setup:
- Nginx or Apache:
/var/www/your-domain/or/var/www/html/ - WordPress:
/var/www/your-domain/wp-content/themes/your-theme/ - Custom app:
/var/www/your-domain/or/home/deploy/your-app/
Within Deployment options, you can choose to automatically deploy your server and, if you're only deploying files from a certain directory in your repository, enter a Deployment subdirectory.
![]()
Note: Contabo servers have no firewall configured by default — all ports are open. While this means DeployHQ can connect immediately, we recommend setting up ufw or iptables on your server for security, and ensuring port 22 remains accessible from DeployHQ's IP addresses.
Click Create Server to finish, then you can proceed to start your first deployment.
Run your first deployment
By default, DeployHQ will upload the whole repository to your server on the first deployment, because there is no previously deployed commit to compare to.
If your files are already on Contabo and up to date with the latest commit, you can follow this guide to skip that first deployment:
Otherwise, just follow this guide to start your first deployment, then after the first deployment, only files that have changed will be uploaded in future.
That's it! You've now set up and run your first deployment to your Contabo server and your future changes will be uploaded for you automatically, or at the simple click of a button.
Further reading
DeployHQ has a number of very useful features to help with your deployments in general that you might wish to find out more about:
- Compiling assets and javascript with the Build pipeline
- Running commands on your server with SSH commands
- Stop certain files from being uploaded in deployments using Excluded files
- Keep important files safely away from your repository using Config files
- Keep your team in the loop and run other useful tasks during a deployment with our Integrations