This guide explains how to quickly set up a local development environment for Marble. This setup is optimized for fast testing and development, not for production use.
-
Clone the Repository
git clone [email protected]:checkmarble/marble.git cd marble
-
Start the Environment
docker compose -f docker-compose-dev.yaml --env-file .env.dev.example up
💡 Tip: Create your own
.env.devfile based on.env.dev.examplefor custom configuration.
The development environment includes everything needed to run Marble locally:
- Marble API (Backend)
- Marble Worker
- Marble Frontend
- PostgreSQL database
- Firebase Auth Emulator
- Elasticsearch instance
- Object storage emulation
The .env.dev.example provides a minimal configuration that works out of the box.
If you need to modify this configuration, note that the .env files are not inherited by the containers created by Docker Compose directly. Only select variables from the files are passed to the containers. If you need to add new variables (for example, if you want to configure file storage to point at your own S3 bucket), you will also need to edit the Docker Compose file to pass those variables to the appropriate container.
You can enhance your development environment by configuring:
-
Webhooks Testing
- Configure Convoy settings
- See Production Deployment Guide
- Set webhook endpoints
-
Sanctions Screening
- Enable Motiva integration
- Configure Elasticsearch
-
Storage Features
- Set up local storage
- Or connect to cloud storage
-
Port Conflicts
# Check for port usage lsof -i :8080 lsof -i :3000 -
Database Connection
- Ensure PostgreSQL is running
- Check connection settings
- Verify database exists
-
Firebase Emulator
- Wait for complete startup
- Check emulator logs
- Verify port accessibility
Access service logs:
# All services
docker compose logs -f
# Specific service
docker compose logs -f apiSee the following files for configuration options:
.env.dev.example: Development defaults.env.example: All available optionsdocker-compose.yaml: Service configuration
⚠️ Remember: This setup is for development only. See the Production Deployment Guide for production setup.