temporal-server start command starts one or more Temporal Server services.
Synopsis
Description
Starts Temporal Server with the specified services. By default, starts all four core services:- frontend: Public-facing API service
- history: Workflow execution orchestration
- matching: Task queue management and distribution
- worker: System workflows (archival, replication, etc.)
- internal-frontend: Internal API service for admin operations
Options
—service, —svc
Specifies which service(s) to start. Can be specified multiple times.- Type: String (repeatable)
- Default:
frontend,history,matching,worker - Valid values:
frontend,history,matching,worker,internal-frontend
—config-file
Path to the configuration file.- Type: String (file path)
- Default: None (uses embedded configuration)
- Environment variable:
TEMPORAL_SERVER_CONFIG_FILE_PATH
--config, --env, --zone, or --root.
—allow-no-auth
Allows the server to start without an authorizer configured.- Type: Boolean
- Default:
false - Environment variable:
TEMPORAL_ALLOW_NO_AUTH
Deprecated Options
The following options are deprecated. Use--config-file instead.
—root, -r
Root directory of execution environment.- Type: String
- Default:
. - Environment variable:
TEMPORAL_ROOT - Deprecated: Use
--config-file
—config, -c
Config directory path relative to root.- Type: String
- Default:
config - Environment variable:
TEMPORAL_CONFIG_DIR - Deprecated: Use
--config-file
—env, -e
Runtime environment.- Type: String
- Default:
development - Environment variable:
TEMPORAL_ENVIRONMENT - Deprecated: Use
--config-file
—zone, —az
Availability zone.- Type: String
- Default: None
- Environment variable:
TEMPORAL_AVAILABILITY_ZONE - Deprecated: Use
--config-file
—services, -s
Comma-separated list of services (legacy format).- Type: String
- Deprecated: Use
--serviceflag multiple times instead
Examples
Start with Default Configuration
Uses embedded development configuration:Start with Custom Configuration
Start Specific Services
Run only frontend and history on separate hosts:Development Mode
Start with no authentication for local development:Using Environment Variables
Docker Deployment
Kubernetes Deployment
Service Roles
Frontend Service
- Handles client API requests
- Performs authentication and authorization
- Routes requests to internal services
- Exposes both gRPC (port 7233) and HTTP (port 7243) endpoints
History Service
- Manages workflow execution state
- Persists workflow history
- Coordinates workflow task execution
- Handles workflow signals, queries, and updates
Matching Service
- Manages task queues
- Distributes tasks to workers
- Handles task queue partitioning
- Manages worker versioning
Worker Service
- Executes system workflows
- Handles archival of closed workflows
- Manages cross-cluster replication
- Processes background tasks
Internal-Frontend Service (Optional)
- Provides internal APIs for system workers
- Separates internal traffic from external clients
- Recommended for production with authorization
Startup Process
- Configuration Loading: Loads config from file or embedded defaults
- Dynamic Config: Initializes dynamic configuration client
- Authorization: Sets up authorizer, claim mapper, and audience mapper
- Service Initialization: Starts requested services
- Health Checks: Services report healthy once initialized
- Ready to Serve: Server begins accepting requests
Shutdown Behavior
The server handles graceful shutdown on signals:- SIGTERM: Graceful shutdown with drain period
- SIGINT (Ctrl+C): Immediate shutdown
- Stops accepting new requests
- Drains in-flight requests
- Closes database connections
- Exits cleanly
Exit Codes
- 0: Successful shutdown
- 1: Configuration error or startup failure
- 2: Invalid command-line arguments
Troubleshooting
Service Won’t Start
-
Check configuration file syntax:
-
Verify database connectivity:
-
Check port availability:
- Review server logs for errors
Authorization Errors
- Verify authorizer configuration in config file
- Check JWT key provider settings
- Ensure
--allow-no-authis set for development - Review authorization logs
Database Connection Issues
- Verify database credentials
- Check network connectivity
- Ensure database schema is initialized:
Performance Issues
- Check resource limits (CPU, memory)
- Monitor database performance
- Review dynamic config settings
- Check for network latency
See Also
- temporal-server validate-dynamic-config - Validate dynamic configuration
- temporal-server render-config - Render configuration template
- Server Configuration Reference
- Environment Variables