Getting Started
This guide walks you through setting up the Tarasol development environment from scratch.
Prerequisites
| Requirement | Version | Purpose |
|---|---|---|
| Node.js | 18+ | Runtime for NestJS services |
| Python | 3.8+ | File Service |
| .NET SDK | 6.0+ | Syncfusion Service (F#) |
| Docker | 20+ | Infrastructure services |
| Git | 2.x | Source code management |
Infrastructure Setup
Start the infrastructure services first using Docker:
# Start Redis
docker run -d --name redis -p 6379:6379 redis:7-alpine
# Start RabbitMQ
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
# Start SQL Server
docker run -d --name mssql -p 1433:1433 \
-e ACCEPT_EULA=Y \
-e SA_PASSWORD=YourStrong!Pass \
mcr.microsoft.com/mssql/server:2022-latest
# Start MongoDB
docker run -d --name mongodb -p 27017:27017 mongo:6
# Start Elasticsearch
docker run -d --name elasticsearch -p 9200:9200 \
-e discovery.type=single-node \
-e xpack.security.enabled=false \
elasticsearch:8.12.0
Service Startup Order
Service Startup Order
Loading diagram...
⚠Warning
Services must be started in this order. The Identity and Tenant services must be running before any other service can start, as they provide authentication and tenant resolution.
Starting a Service
Each NestJS service follows the same pattern:
cd <service-directory>
npm install
cp .env.example .env # Configure environment variables
npm run start:dev
Environment Variables
All services share common environment variables:
| Name | Type | Default | Description |
|---|---|---|---|
| NODE_ENV | string | development | Environment mode |
| DB_HOST | string | localhost | SQL Server host |
| DB_USERNAME | string | sa | Database username |
| DB_PASSWORD | string | - | Database password |
| REDIS_HOST | string | localhost | Redis host |
| REDIS_PORT | number | 6379 | Redis port |
| RABBITMQ_URIS | string | amqp://guest:guest@localhost:5672 | RabbitMQ connection URI |
Verifying Setup
After all services are running:
- Check Gateway health:
GET http://localhost/health - Access RabbitMQ Management:
http://localhost:15672 - Test login:
POST http://localhost/api/identity/login