CapRover

CapRover

  • Docs
  • GitHub
  • Slack Group

›Basics

Basics

  • Getting Started
  • CaptainDuckDuck Upgrade
  • Captain Definition File
  • Deployment Methods
  • App Configuration
  • Persistent Apps
  • CLI Commands
  • One-Click Apps
  • Complete Webapp Tutorial

Do More

  • Resource Monitoring
  • NGINX Config
  • Service Update Override
  • App Scaling & Cluster
  • Pre-deploy Script
  • Play with CapRover
  • Run Locally
  • Certbot Overrides
  • Custom Themes

Recipes and Tips

  • Sample Apps
  • Zero Downtime
  • Database Connection
  • Best Practices
  • Backup & Restore
  • Static React App
  • Stateless with Persistent data
  • Docker Compose
  • CI/CD Integration

    • Intro
    • Deploy from GitHub
    • Deploy from GitLab

Help

    Server Purchase

    • DigitalOcean
    • OpenStack
  • Disk Clean-Up
  • Firewall & Port Forwarding
  • Troubleshooting
  • Troubleshooting (Pro)
  • Help and Support
Edit

Deployment Methods


Regardless of your deployment method, make sure that you have a 'captain-definition' file in your project. See docs on Captain Definition for more details.

Deploy via CLI

Simply run caprover 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 5.

Deploy via Web Dashboard

Convert the content of your project into a tarball (.tar), go to your Captain web dashboard and upload the tar file. This deployment method is typically used for testing purposes only.

For captain-definition files that do not require any source code, like this, you can simply copy and paste the captain-definition content on web dashboard.

deployapp

One Click Rollback

Let's say you deployed a new version of your app. But you realize that it's buggy. You don't have time to go back, revert your changes or fix the bug, what would you do? Simple! Just go to deployment tab and click on the revert icon next to the version that you want to revert to. CapRover automatically starts a new build and deploy that version! Note that this DOES NOT revert changes that you made to Environment Variables, and other app configs such as persistent directories and etc. It just reverts your image (deployed source code).

Automatic Deploy using Github, Bitbucket and etc.

This method is perhaps the most convenient one. This method automatically triggers a build with a captain-definiton file when you push your repo to a specific branch (like master or staging or release or etc). To setup this, go to your apps settings and enter the repo information:

  • repo: This is the main HTTPS address of repo, in case of github, it is in github.com/someone/something format. Make sure it does NOT include https:// prefix and .git suffix.
  • branch: The branch you want to be tracked, for example master or staging or release...
  • 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.
  • Or, instead of username/password, use SSH Key: Make sure to use PEM format as other formats may not work. Use the following command if unsure:
ssh-keygen -m PEM -t ed25519 -C "yourname@example.com" -f ./deploykey -q -N ""

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 webhooks (see below). Captain listens to POST requests on this link and triggers a build.

Github

Create a webhook here:

  • Project > Settings > Add Webhook > URL: Captain Webhook from your apps page, Content Type: application/json, Secret: , Just the push event. Furthermore add the contents of your generated public key to your repositories deploy keys.

WARNING: Github has recently introduced a bug where the webhooks are trimmed at 255 characters, please see this issue: https://github.com/caprover/caprover/issues/2079

Bitbucket

Webhooks can be added here:

  • Project > Settings > Webhooks > Add Webhook > Title: Captain Server, URL: Captain Webhook from your apps page.

GitLab and Others

Webhooks can be added in a similar fashion. As long as the webhook fires a POST request, CapRover is able to pick it up and starts a build from the latest commit on the specified branch.

← Captain Definition FileApp Configuration →
  • Deploy via CLI
  • Deploy via Web Dashboard
  • One Click Rollback
  • Automatic Deploy using Github, Bitbucket and etc.
CapRover
Docs
Getting Started
Community
TwitterSlack Group
More
GitHubStar
Copyright © 2025 githubsaturn