The Prefect CLI is the easiest way to start a local instance of Prefect server. Start the server
  - Spin up a self-hosted Prefect server instance UI with the prefect server startCLI command in the terminal:
 - Open the URL for the Prefect server UI (http://127.0.0.1:4200 by default) in a browser.
 
  - Shut down the Prefect server with ctrl + c in the terminal.
Go to your terminal session and run this command to set the API URL to point to a self-hosted Prefect server instance:prefect config set PREFECT_API_URL="http://127.0.0.1:4200/api" 
Database configuration
 Use SQLite (default)
 By default, Prefect uses a SQLite database stored at ~/.prefect/prefect.db. No additional configuration is needed for basic use. Use PostgreSQL
 To use PostgreSQL as your database backend:  - Set the database connection URL:
prefect config set PREFECT_API_DATABASE_CONNECTION_URL="postgresql+asyncpg://postgres:yourTopSecretPassword@localhost:5432/prefect" 
 - Start the server:
For more database configuration options, see the database settings reference.Database management commands
 Reset the database
 Clear all data and reapply the schema: prefect server database reset -y 
Manage migrations
 Apply database migrations: # Upgrade to the latest version prefect server database upgrade -y  # Downgrade to the previous version prefect server database downgrade -y -r -1  # Downgrade to a specific revision prefect server database downgrade -y -r d20618ce678e 
export PREFECT_API_DATABASE_TIMEOUT=600 prefect server database upgrade -y 
Multi-worker API server
 For high-throughput scenarios, you can run the server with multiple worker processes to handle concurrent requests more efficiently: prefect server start --workers 4 
Requirements for multi-worker mode
 Multi-worker mode has specific infrastructure requirements:  - PostgreSQL database - SQLite is not supported due to database locking issues
- Redis messaging - In-memory messaging doesn’t work across processes
Configuration example
 # Set PostgreSQL connection prefect config set PREFECT_API_DATABASE_CONNECTION_URL="postgresql+asyncpg://postgres:password@localhost:5432/prefect"  # Configure Redis messaging prefect config set PREFECT_SERVER_EVENTS_MESSAGING_CACHE="prefect.server.utilities.messaging.redis" prefect config set PREFECT_SERVER_EVENTS_MESSAGING_BROKER="prefect.server.utilities.messaging.redis"  # Configure Redis messaging host and port export PREFECT_REDIS_MESSAGING_HOST="redis" export PREFECT_REDIS_MESSAGING_PORT="6379"  # Start server with 4 workers prefect server start --workers 4 
The number of workers should typically match the number of CPU cores available to your server process, but you may need to experiment to find the optimal value for your workload.
Advanced configuration
 For advanced deployment scenarios including:  - Running behind a reverse proxy
- Configuring SSL certificates
- Multi-server deployments
- Handling migration issues
See How to scale self-hosted Prefect.