Implementation:Risingwavelabs Risingwave Risedev Configuration
| Knowledge Sources | |
|---|---|
| Domains | DeveloperTooling, Configuration, Infrastructure |
| Last Updated | 2026-02-09 07:00 GMT |
Overview
YAML configuration file (risedev.yml) that defines named service profiles and component templates for the risedev developer tool, controlling which RisingWave components and external services to start in local and CI environments.
Description
The risedev.yml file is the central configuration for the RiseDev developer tool. It contains two main sections: profile and template. The profile section defines named configurations (e.g., default, full, ci-1cn-1fe, ci-kafka) that specify a sequence of component steps to launch. The template section defines the default configuration parameters for each component type (meta-node, compute-node, frontend, compactor, minio, kafka, prometheus, grafana, etc.). Profiles can override template defaults, specify config files, and mark components as user-managed to indicate they are started externally (e.g., by Docker Compose in CI).
Usage
Profiles are selected when starting a RisingWave dev cluster via ./risedev d <profile-name>. The default profile starts a minimal cluster with one meta node, one compute node, and one frontend. CI profiles configure multi-node topologies with specific backends (SQLite, PostgreSQL, MySQL) and external services (Kafka, Redis, MinIO).
Code Reference
Source Location
- Repository: risingwave
- File: risedev.yml
- Lines: L1-1611
Signature
profile:
default:
steps:
- use: meta-node
- use: compute-node
- use: frontend
full:
steps:
- use: minio
- use: postgres
port: 8432
- use: meta-node
meta-backend: postgres
- use: compute-node
- use: frontend
- use: compactor
- use: prometheus
- use: grafana
- use: kafka
- use: lakekeeper
template:
meta-node:
address: "127.0.0.1"
port: 5690
# ...
compute-node:
address: "127.0.0.1"
port: 5688
# ...
Import
# Used implicitly by risedev
./risedev d # Start with 'default' profile
./risedev d full # Start with 'full' profile
./risedev d ci-kafka # Start with CI Kafka profile
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| Profile name | CLI argument | No | Name of the profile to start (defaults to "default") |
| config-path | Profile field | No | Path to a TOML config file to override RisingWave settings |
| env | Profile field | No | Custom environment variables for the profile |
Outputs
| Name | Type | Description |
|---|---|---|
| Running services | tmux sessions | Each component runs in a named tmux window |
| risedev-env | File | Environment file at .risingwave/config/risedev-env with connection parameters |
| Log files | Files | Per-component log files in .risingwave/log/ |
Key Profile Categories
Developer Profiles:
- default -- Minimal: meta + compute + frontend (in-memory backend)
- full -- All components: minio, postgres, meta, compute, frontend, compactor, prometheus, grafana, kafka, lakekeeper
- for-ctl -- Minimal with compactor for risectl usage
- dev-compute-node / dev-frontend / dev-meta -- User-managed variants for debugging individual components
- standalone-full-peripherals -- All peripherals running, all RW components user-managed
Storage Backend Profiles:
- fs / hdfs / webhdfs -- OpenDAL file system backends
- gcs / obs / oss / azblob -- Cloud storage backends
CI Profiles:
- ci-1cn-1fe -- Single compute node, single frontend
- ci-3cn-1fe -- Three compute nodes, single frontend
- ci-3cn-3fe -- Three compute nodes, three frontends
- ci-kafka -- With user-managed Kafka (from Docker Compose)
- ci-inline-source-test -- With multiple user-managed external services
- ci-backfill-* -- Backfill testing with various configurations
Component Templates
| Component | Default Port | Key Options |
|---|---|---|
| meta-node | 5690 | meta-backend (memory/sqlite/postgres/mysql/env), dashboard-port |
| compute-node | 5688 | parallelism, total-memory-bytes, role (both/streaming/serving), enable-tiered-cache |
| frontend | 4566 | health-check-port, exporter-port |
| compactor | 6660 | compactor-mode (dedicated/dedicated-iceberg) |
| minio | 9301 | hummock-bucket, api-requests-max |
| kafka | 29092 | persist-data, node-id, image |
| prometheus | 9500 | remote-write, scrape-interval |
| grafana | 3001 | (provides dashboards) |
| postgres | 8432 | user, password, database, latency-ms |
| mysql | 8306 | user, password, database, application |
| lakekeeper | 8181 | catalog-backend, encryption-key |
Usage Examples
Starting a Custom Profile
# Start the full profile with all services
./risedev d full
# Connect to the running instance
./risedev psql -c "CREATE TABLE t1 (id INT PRIMARY KEY, name VARCHAR);"
# View running services
./risedev ls
# Follow logs for a specific component
./risedev follow compute-node-5688.log
# Stop everything
./risedev k
Creating a Custom Profile
# In risedev-profiles.user.yml (auto-created by risedev):
my-custom-profile:
config-path: src/config/my_config.toml
steps:
- use: minio
- use: meta-node
meta-backend: sqlite
- use: compute-node
parallelism: 8
- use: frontend
- use: compactor
- use: kafka
persist-data: true
Related Pages
Implements Principle
Related Implementations
- Implementation:Risingwavelabs_Risingwave_Makefile_Task_Runner -- Task runner that invokes risedev-dev with selected profiles
- Implementation:Risingwavelabs_Risingwave_CI_Docker_Compose -- External services referenced by CI profiles as user-managed
- Implementation:Risingwavelabs_Risingwave_Cargo_Workspace_Configuration -- Build configuration for the binaries launched by profiles