How to Run Reeve
The Reeve Application is the reference implementation of the Reeve Platform. It provides a complete, production-ready setup that includes all necessary services and configurations to run the platform. This guide explains how to get started with the Reeve Application using the cf-reeve-application repository.
Prerequisites
Before running Reeve, ensure you have the following installed:
- Docker and Docker Compose (recommended for easiest setup)
- Java 21+ and Gradle (for local development)
- Git (to clone the repository)
Quick Start with Docker Compose
The easiest way to run the complete Reeve stack is using Docker Compose. This will start all necessary services in containers.
1. Clone the Repository
git clone https://github.com/cardano-foundation/cf-reeve-application.git
cd cf-reeve-application2. Configure Environment Variables (Optional)
By default, all services are configured to run on localhost. You can customize the configuration by creating a .env file:
cp .envTemplate .env
# Edit .env with your custom values if needed3. Start the Application Stack
Run the entire Reeve stack with the frontend profile:
docker compose up -d --buildThe --build flag rebuilds the Docker images if you’ve made changes to the Dockerfiles.
Services Started
When using the docker compose up command, the following services will be started:
| Service | Description | Port |
|---|---|---|
| cf-lob-api | API service (Accounting Core & Organisation modules) | 9000 |
| cf-lob-publisher | Publisher service (Blockchain Publisher & ERP Adapter modules) | 9001 |
| cf-ledger-follower | Blockchain ledger follower service | - |
| postgres | PostgreSQL database | 5432 |
| kafka | Message broker for event-driven communication | 9092 |
| zookeeper | Coordination service for Kafka | 2181 |
| keycloak | Identity and access management (SSO) | 8080 |
| yaci-devkit | Cardano development blockchain (single node) | 8090 |
| yaci-viewer | Blockchain explorer for Yaci DevKit | 5173 |
Access the Application
Once the stack is running:
- Frontend: http://localhost:3000
- API Swagger: http://localhost:9000/swagger-ui.html
- Keycloak: http://localhost:8080
- Yaci Viewer (Blockchain Explorer): http://localhost:5173
Local Development Setup
To develop Reeve locally while running services in Docker:
1. Start the Base Services
docker compose up -d postgres kafka keycloak yaci-devkit2. Configure Environment
In the cf-application directory, create and configure your environment:
cd cf-application
cp .env.template .env
# Edit .env to use the dev profile
export SPRING_PROFILES_ACTIVE=dev--yaci-dev-kit3. Build Platform Artifacts
If you’re modifying the cf-reeve-platform :
./gradlew clean build publishMavenJavaPublicationToLocalM2Repository4. Start the Application
./gradlew clean bootRunConfiguration Files
The application is configured through YAML files and environment variables:
- Main Configuration:
cf-application/src/main/resources/application.yml - Profile Configurations:
application-dev--yaci-dev-kit.yml- Development with local Yaci blockchainapplication-prod.yml- Production configurationapplication-kafka-ssl.yml- Kafka with SSL/TLSapplication-blockfrost.yml- Integration with Blockfrost Cardano node
Additional Resources
- Platform Repository: cf-reeve-platform
- Application Repository: cf-reeve-application
- Keycloak Configuration:
keycloak-config/realm-export.json - Postman Collection:
postman/directory for API testing