> ## Documentation Index
> Fetch the complete documentation index at: https://www.qovery.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Auto-Deploy

> Automatically deploy on Git commits

Qovery can automatically update your applications to the latest version of your Git branch. Each time a commit is done on your Git repository, Qovery will receive a webhook call with the commit information and will determine which applications should be automatically re-deployed.

## Activation

You can activate the auto-deploy flag either within the application settings or during the service creation flow.

<img src="https://mintcdn.com/qovery/ziWdn5St6rf4bcBc/images/deployment/auto-deploy-settings.png?fit=max&auto=format&n=ziWdn5St6rf4bcBc&q=85&s=4ec2eaa1f167a21f5b32d29a7b76aa52" alt="Auto-Deploy Settings" width="3164" height="2070" data-path="images/deployment/auto-deploy-settings.png" />

<img src="https://mintcdn.com/qovery/ziWdn5St6rf4bcBc/images/deployment/auto-deploy-creation-flow.png?fit=max&auto=format&n=ziWdn5St6rf4bcBc&q=85&s=63daeb56cd079bb453fadbf5565473aa" alt="Auto-Deploy Creation Flow" width="3164" height="2070" data-path="images/deployment/auto-deploy-creation-flow.png" />

Once activated, each commit on the application branch will automatically trigger the deployment of the new version of your application.

## Filtering Commits

The "Deployment restrictions" feature allows you to better control which commits should trigger a new deployment and which should not.

<img src="https://mintcdn.com/qovery/yDPPPWPKgIjFS10L/images/deployment/deployment_restrictions.png?fit=max&auto=format&n=yDPPPWPKgIjFS10L&q=85&s=445200e1efc05177ff1a95acc9a63ab0" alt="Deployment Restrictions" width="3164" height="2070" data-path="images/deployment/deployment_restrictions.png" />

There are two modes:

* **EXCLUDE**: the deployment will be triggered for all commits EXCEPT the one that have changed ONLY the specified files/folders
* **MATCH**: the deployment will be triggered ONLY if the commit has changed the specified files/folders. If multiple MATCH conditions exist, only one of them has to be true to trigger the deployment.

<Warning>
  Important notes:

  * The value must be the complete path of the file/folder to be excluded/matched
  * The path must NOT start with a forward slash `/`
  * Wildcards (`*`) are not supported
  * You can use path prefixes for partial matching (e.g., `docs/` will match any file within the docs folder)
</Warning>

## Container Image Auto-Deploy

For container images (not Git repositories), you need to configure your CI/CD pipeline to notify Qovery when a new image tag is available. This can be done through:

* The Qovery API using the `autoDeployContainerEnvironments` endpoint for containers
* The Qovery API using the `autoDeployJobEnvironments` endpoint for lifecycle jobs and cronjobs

See the [API documentation](https://api-doc.qovery.com/) for more details.

## FAQ

<AccordionGroup>
  <Accordion title="Can I exclude commits from triggering a deployment?">
    Yes, you can use the "Deployment restrictions" feature with EXCLUDE mode to specify files or folders that should not trigger deployments when they are the only changes in a commit.
  </Accordion>

  <Accordion title="Will a stopped service be restarted if auto-deploy is active?">
    No, auto-deploy will not restart a stopped service. The service must be running for auto-deploy to trigger a deployment.
  </Accordion>

  <Accordion title="Is mono-repository supported?">
    Yes, mono-repositories are fully supported. You can have multiple services connected to the same Git repository. Use the "Deployment restrictions" feature with MATCH mode to limit auto-deploy triggers to specific subfolders for each service.
  </Accordion>

  <Accordion title="Does Qovery automatically check the container registry for new image tags?">
    No, Qovery does not automatically monitor container registries. You must notify Qovery when a new image tag is available through:

    * The Qovery Console
    * The Qovery CLI using `qovery deploy --tag <tag-name>`
    * The Qovery API endpoints (`autoDeployContainerEnvironments` or `autoDeployJobEnvironments`)
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="CI/CD Integration" icon="code-branch" href="/configuration/integrations/ci-cd/github-actions">
    Deploy with external CI/CD pipelines
  </Card>

  <Card title="Deployment Actions" icon="gears" href="/configuration/deployment/actions">
    Control your deployments
  </Card>

  <Card title="Deployment History" icon="clock-rotate-left" href="/configuration/deployment/history">
    Review deployment history
  </Card>

  <Card title="Deployment Logs" icon="file-lines" href="/configuration/deployment/logs">
    Access deployment logs
  </Card>
</CardGroup>
