Self-hosted Temporal Service guide
Welcome to the self-hosted Temporal Service guide. This guide shows you how to self-host open source infrastructure software that orchestrates your durable applications.
Do you need a production Temporal Service?
If you're still developing and testing your application locally, you may not need a production Temporal Service. Use the Temporal CLI development server — a single binary with no external dependencies:
temporal server start-dev
This starts a complete Temporal Service with Web UI on your local machine. We recommend this for local development regardless of whether you plan to use Temporal Cloud or self-host in production. See the Temporal CLI server page for configuration options.
Plan and deploy your service
- Deployment: Choose a deployment approach (Docker, Kubernetes, or manual) and set up a production-ready Temporal Service.
- Embedded server: Run Temporal in-process as a Go library for local development and testing scenarios.
- Defaults: Review platform limits and default settings that can affect Workflow and Activity behavior.
- Production checklist: Validate readiness for scale, reliability, operations, and long-term maintainability.
Operate your self-hosted service
- Namespaces: Create and manage Namespace isolation, retention, and related configuration.
- Security: Configure TLS/mTLS, authentication, authorization, and related hardening controls.
- Monitoring: Collect and visualize service and SDK metrics to troubleshoot and track health.
- Visibility: Configure Visibility storage so you can list, filter, and search Workflow Executions.
- Upgrading server: Perform safe, sequential server and schema upgrades.
Protect data and enable advanced features
- Data encryption: Use Payload Codecs and Codec Server patterns to protect sensitive Workflow data.
- Archival: Move closed Event Histories and Visibility records to blob storage for longer retention.
- Multi-Cluster Replication: Replicate Workflow state across clusters for failover and disaster recovery.
- Temporal Nexus: Enable Nexus in self-hosted environments to connect Temporal Applications across boundaries.