Edit an existing server via API
This method allows you to edit a server.
Tip: You can explore and test this endpoint interactively using our OpenAPI documentation.
URL
/projects/<project>/servers/<identifier>
- Replace
<project>with either thepermalinkoridentifierof the project. - Replace
<identifier>with theidentifierof the server.
HTTP Method
PUT
Supported Parameters
name- Friendly name for your serverprotocol_type- Connection protocol (this field is required on all PUT requests so that DeployHQ can execute its test process correctly)server_path- Where on the server should your files be placed (for example,public_html/or/absolute/path/here)email_notify_on- When do you want to receive email notifications, eithernever,failureoralwaysroot_path- The subdirectory in your repository that you wish to deploy. Leave blank to use the default specified in the project.auto_deploy- Should auto deployments be enabled, eithertrueorfalsenotification_email- Custom notification e-mail address, leave blank to use the user who started the deployment's addressbranch- Branch to deploy from, leave blank to use the project defaultenvironment- Production, Testing, Development etc. can be substituted into SSH commands.server_group_identifier- The server group that this server belongs toagent_id- The ID of the network agent that you wish to connect through (omit, or send nil if you're connecting directly)
Protocol Types
Standard protocol types available to all accounts:
* ssh - SSH/SFTP
* ftp - FTP
* ftps - FTPS (SSL/TLS)
* s3 - Amazon S3
* rackspace - Rackspace Cloud Files
* r2 - Cloudflare R2
* shopify - Shopify
* digital_ocean - DigitalOcean
* shell - Shell Server
Beta protocol types (requires account with beta features enabled):
* netlify - Netlify
* heroku - Heroku
* elastic_beanstalk - AWS ElasticBeanstalk
In addition to the above parameters, the following parameters are available depending on the protocol selected:
FTP
hostnameusernamepasswordportpassiveforce_hidden_files
FTPS
In addition to the FTP parameters, the following parameters are available for FTPS servers.
implicitignore_certificate_errors
SSH/SFTP
hostnameusernamepasswordportuse_ssh_keysatomicatomic_strategyunlink_before_uploaduse_accelerated_transfer-trueorfalse- enable Turbo Deployments (compressed TAR-based deployments). Requirestar,gzip,rsync,jq, andawkto be installed on your server. See the Turbo Deployments guide for more details.
Amazon S3
bucket_nameaccess_key_idsecret_access_key
Rackspace Cloud
usernameapi_keyregioncontainer_name
Cloudflare R2
account_idbucket_nameaccess_key_idsecret_access_key
Shopify
store_urlaccess_tokentheme_name
DigitalOcean
personal_access_tokendroplet_iddroplet_nameusernameunlink_before_uploaduse_accelerated_transfer-trueorfalse- enable Turbo Deployments (compressed TAR-based deployments). Requirestar,gzip,rsync,jq, andawkto be installed on your server. See the Turbo Deployments guide for more details.
Shell Server
commandtimeout
Netlify (Beta)
Note: This protocol type requires an account with beta features enabled.
site_idaccess_token
Heroku (Beta)
Note: This protocol type requires an account with beta features enabled.
app_nameapi_key_heroku
AWS ElasticBeanstalk (Beta)
Note: This protocol type requires an account with beta features enabled.
application_nameenvironment_nameregionaccess_key_idsecret_access_key
Example Payload
curl -H "Content-type: application/json" \
-H "Accept: application/json" \
--user user@example.com:your-api-key \
-X PUT \
-d '{ \
"server": { \
"name": "Development", \
"protocol_type": "ftp", \
"hostname": "ftp.example.com", \
"username": "deployhq", \
"password": "test" \
} \
}' \
https://test.deployhq.com/projects/project/servers/19bdc2ea-1c96-e09f-f3bf-4473990841b7
Example Response
{
"identifier": "19bdc2ea-1c96-e09f-f3bf-4473990841b7",
"name": "Development",
"protocol_type": "ssh",
"server_path": "",
"auto_deploy_url": "https://test.deployhq.com/deploy/project/to/development/fewfwef",
"last_revision": null,
"preferred_branch": "master",
"notify_email": null,
"server_group_identifier": null,
"hostname": "185.22.208.149",
"username": "root",
"port": 22,
"host_key": "...."
}