Files
zitadel/docs/docs/self-hosting/manage/productionchecklist.md
T
+6 07ce3b6905 chore!: Introduce ZITADEL v3 (#9645)
This PR summarizes multiple changes specifically only available with
ZITADEL v3:

- feat: Web Keys management
(https://github.com/zitadel/zitadel/pull/9526)
- fix(cmd): ensure proper working of mirror
(https://github.com/zitadel/zitadel/pull/9509)
- feat(Authz): system user support for permission check v2
(https://github.com/zitadel/zitadel/pull/9640)
- chore(license): change from Apache to AGPL
(https://github.com/zitadel/zitadel/pull/9597)
- feat(console): list v2 sessions
(https://github.com/zitadel/zitadel/pull/9539)
- fix(console): add loginV2 feature flag
(https://github.com/zitadel/zitadel/pull/9682)
- fix(feature flags): allow reading "own" flags
(https://github.com/zitadel/zitadel/pull/9649)
- feat(console): add Actions V2 UI
(https://github.com/zitadel/zitadel/pull/9591)

BREAKING CHANGE
- feat(webkey): migrate to v2beta API
(https://github.com/zitadel/zitadel/pull/9445)
- chore!: remove CockroachDB Support
(https://github.com/zitadel/zitadel/pull/9444)
- feat(actions): migrate to v2beta API
(https://github.com/zitadel/zitadel/pull/9489)

---------

Co-authored-by: Livio Spring <[email protected]>
Co-authored-by: Stefan Benz <[email protected]>
Co-authored-by: Silvan <[email protected]>
Co-authored-by: Ramon <[email protected]>
Co-authored-by: Elio Bischof <[email protected]>
Co-authored-by: Kenta Yamaguchi <[email protected]>
Co-authored-by: Harsha Reddy <[email protected]>
Co-authored-by: Livio Spring <[email protected]>
Co-authored-by: Max Peintner <[email protected]>
Co-authored-by: Iraq <[email protected]>
Co-authored-by: Florian Forster <[email protected]>
Co-authored-by: Tim Möhlmann <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Max Peintner <[email protected]>
2025-04-02 16:53:06 +02:00

3.6 KiB

title, sidebar_label
title sidebar_label
ZITADEL Production Checklist Production Checklist

To apply best practices to your production setup we created a step by step checklist you may wish to follow.

Infrastructure Configuration

  • Make use of configuration management tools such as Terraform to provision all of the below
  • Use a secrets manager to store your confidential information
  • Reduce the manual interaction with your platform to an absolute minimum

HA Setup

  • High Availability for ZITADEL containers
    • Use a container orchestrator such as Kubernetes
    • Use serverless platform such as Knative or a hyperscaler equivalent (e.g. CloudRun from Google)
    • Split zitadel init and zitadel setup for fast start-up times when scaling ZITADEL
  • High Availability for database
    • Follow this guide to set up the database.
    • Configure logging
    • Configure timeouts
    • Configure backups on a regular basis for the database
    • Test the restore scenarios before going live
    • Secure database connections from outside your network and/or use an internal subnet for database connectivity
  • High Availability for critical infrastructure components (depending on your setup)

Networking

  • Use a Layer 7 Web Application Firewall to secure ZITADEL that supports HTTP/2
    • Limit the access by IP addresses if needed
    • Secure the access by rate limits for specific endpoints (e.g. API vs frontend) to secure availability on high load. See the ZITADEL Cloud rate limits for reference.
    • Check that your firewall also filters IPv6 traffic

ZITADEL configuration

  • Configure a valid SMTP Server and test the email delivery
  • Add Custom Branding if required
  • Configure a valid SMS Service such as Twilio if needed
  • Configure your privacy policy, terms of service and a help Link if needed
  • Keep your masterkey in a secure storage
  • Declare and apply zitadel configuration using the zitadel terraform provider

Security

  • Ensure that your ZITADEL does not use the default, example or easy-to-guess credentials
  • Use a FQDN and a trusted valid certificate for external TLS connections
  • Create service accounts for applications that interact with ZITADEL's APIs
  • Make use of a CDN service to decrease the load for static assets served by ZITADEL
  • Make use of a security scanner to test your application and deployment environment

Monitoring

Use an appropriate monitoring solution to have an overview about your ZITADEL instance. In particular you may want to watch out for things like:

  • CPU and memory of ZITADEL and the database
  • Open database connections
  • Running instances of ZITADEL and the database
  • Latency of requests
  • Requests per second
  • Requests by URL/endpoint
  • Lifetime of TLS certificates
  • ZITADEL and database logs
  • ZITADEL metrics