# Test

Learn how to run FusionAuth instances for local development, automated tests, and staging.

> For the index of this section of the site, see [llms.txt](https://fusionauth.io/docs/llms.txt)

Most teams run FusionAuth in more places than production:

*   A local instance on each developer machine.
*   Short-lived instances that start and stop with each CI run.
*   A long-lived staging instance that mirrors production.

Each environment needs a reliable way to reach a known configuration.

## Choose a Setup Tool

Use [Kickstart](https://fusionauth.io/docs/get-started/develop/kickstart.md) for local and CI instances. Kickstart only runs on an instance with no API keys, users, or tenants, so every new instance starts from the same configuration. To reset a local instance, delete the database and restart FusionAuth.

Use [Terraform](https://fusionauth.io/docs/deploy/production/terraform.md) for staging and production. A staging instance lives as long as production does and needs ongoing changes. Kickstart can't apply changes to an instance that already has configuration. Apply the same Terraform configuration to staging first, then to production. For more about keeping environments in sync, see [Deploy](https://fusionauth.io/docs/deploy.md).

## Update Test Instances

Update local and CI instances whenever you update production. Test against the new version before production does. See [Update a Development Instance](https://fusionauth.io/docs/update/dev-instance.md).

[Test Against FusionAuth Learn how to run end-to-end tests against a real FusionAuth instance, reset the instance between runs, and run the same tests in CI.](https://fusionauth.io/docs/deploy/test/test-against-fusionauth.md)

[Test and Deploy with GitHub Actions How to use CI/CD with FusionAuth in GitHub.](https://fusionauth.io/docs/deploy/test/ci-workflow.md)

[GitHub Actions Learn how to use FusionAuth with the GitHub Actions Marketplace.](https://fusionauth.io/docs/deploy/test/github-actions.md)

Related

[Deploy Test Against FusionAuth Learn how to run end-to-end tests against a real FusionAuth instance, reset the instance between runs, and run the same tests in CI. testingci/cdkickstart](https://fusionauth.io/docs/deploy/test/test-against-fusionauth.md)

[Deploy Test and Deploy with GitHub Actions How to use CI/CD with FusionAuth in GitHub. ci/cdtesting](https://fusionauth.io/docs/deploy/test/ci-workflow.md)

[Deploy Manage FusionAuth Configuration Across Environments Learn how to keep FusionAuth configuration in code and promote changes from one environment to another. staging](https://fusionauth.io/docs/deploy.md)

[Deploy Manage FusionAuth With Terraform Learn how to create and change FusionAuth configuration with the FusionAuth Terraform provider. terraform](https://fusionauth.io/docs/deploy/production/terraform.md)
---

## Other pages in Deploy

> For the full index of this section, see [Deploy](https://fusionauth.io/docs/llms-deploy.txt).

- [Secure a FusionAuth Instance](https://fusionauth.io/docs/deploy/harden.md): Learn how to secure the network, database, and configuration of a self-hosted FusionAuth instance.
- [Monitor](https://fusionauth.io/docs/deploy/monitor.md): Understand how your FusionAuth instance operates through logs, alerts, and measurements.
