Edit an existing server via API
This method allows you to edit a server.
URL
/projects/<project>/servers/<identifier>
- Replace
<project>
with thepermalink
of the project. - Replace
<identifier>
with theidentifier
of 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
,failure
oralways
root_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, eithertrue
orfalse
notification_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
hostname
username
password
port
passive
force_hidden_files
FTPS
In addition to the FTP parameters, the following parameters are available for FTPS servers.
implicit
ignore_certificate_errors
SSH/SFTP
hostname
username
password
port
use_ssh_keys
atomic
atomic_strategy
unlink_before_upload
Amazon S3
bucket_name
access_key_id
secret_access_key
Rackspace Cloud
username
api_key
region
container_name
Cloudflare R2
account_id
bucket_name
access_key_id
secret_access_key
Shopify
store_url
access_token
theme_name
DigitalOcean
personal_access_token
droplet_id
droplet_name
username
Shell Server
command
timeout
Netlify (Beta)
Note: This protocol type requires an account with beta features enabled.
site_id
access_token
Heroku (Beta)
Note: This protocol type requires an account with beta features enabled.
app_name
api_key_heroku
AWS ElasticBeanstalk (Beta)
Note: This protocol type requires an account with beta features enabled.
application_name
environment_name
region
access_key_id
secret_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": "...."
}