---
id: deployment-methods
title: Deployment Methods
sidebar_label: Deployment Methods
---
Regardless of your deployment method, make sure that you have a 'captain-definition' file in your project. See docs on [Captain Definition](captain-definition-file.md) for more details.
## Deploy via CLI
Simply run `captainduckduck deploy` in your git repo and follow the steps. This is the best method as it's the only method that reports potential build failures to you. Read more about it here:
[Get Started - Step 4](get-started.md#step-4-deploy-the-test-app).
## Deploy via Web Dashboard
Zip the content of your project into a tarball (`.tar`), go to your Captain web dashboard and upload the tar file.
## Deploy using Github, Bitbucket and etc.
This method is perhaps the most convinient one. This method automatically triggers a build when you push your repo to a specific branch (like `master` or `staging` or etc). To setup this, go to your apps settings and enter the repo information:
- github/bitbucket username(email address): This is username that will be used when Captain downloads the repo.
- github/bitbucket password: You can enter any non-empty text, like `123456`, for public projects.
- repo: This is the main HTTPS address of repo, in case of github, it is in `github.com/someone/something` format.
- branch: The branch you want to be tracked, for example `master` or `production`...
After you enter this information, save your configuration. And go to your apps page again. Now, you'll see a new field call webhook. Simply copy this webhook to your github/bitbucket repo. Captain listens to `POST` requests on this link and triggers a build.
On Github, webhooks can be added here:
- Project > Settings > Add Webhook > URL: Captain Webhook from your apps page, Content Type: `application/json`,
Secret: , Just the `push` event.
On Bitbucket, webhooks can be added here:
- Project > Settings > Webhooks > Add Webhook > Title: Captain Server, URL: Captain Webhook from your apps page.