This guide walks you through cloning the repository, configuring environment variables, starting the full Docker Compose stack, and making your first authenticated API request. By the end you will have a running local wallet platform and a JWT token in hand.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Gianluca-X/DigitalMoney/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Make sure the following tools are installed and available in your
PATH before you begin:| Tool | Minimum Version | Purpose |
|---|---|---|
| Docker | 24.x | Runs all service containers |
| Docker Compose | v2.x (docker compose) | Orchestrates the multi-service stack |
| Git | Any recent version | Clones the repository |
Configure Environment Variables
The Docker Compose file reads sensitive configuration from a
.env file in the project root. Create it before starting the stack:Database schemas (
auth_service_db, user_service_db, account_service_db) and their dedicated users are created automatically when MySQL starts for the first time, courtesy of init.sql which is mounted as a Docker init script.Start the Stack
Build all service images and start the entire platform in one command:Docker Compose respects the
depends_on health-check conditions defined in docker-compose.yml, so services come up in this order:- MySQL — waits until
mysqladmin pingsucceeds (health-check every 30 s, up to 5 retries) - Eureka Server — starts immediately; no MySQL dependency
- Config Server — waits for Eureka Server to start
- Auth Service — waits for MySQL (healthy) and Eureka (started)
- User Service, Accounts Service — wait for MySQL (healthy), Eureka (started), and Config Server (started)
- API Gateway — waits for Eureka and Config Server to start
- RabbitMQ — starts in parallel with everything; management UI available on port 15672
Register a User
With the stack running, register a new user through the API Gateway:A successful response returns the created user object. A digital account with a unique CVU and alias is automatically provisioned for the new user by the Accounts Service (called internally via a Feign client).
Log In and Retrieve Your JWT
Exchange credentials for a signed JWT token:Example response:Copy the value of
token — you will include it in every subsequent request.Tokens are valid for 24 hours (86 400 000 ms) as configured in
auth-service/application.yml. After expiry, log in again to obtain a fresh token.Make an Authenticated API Call
Pass the JWT in the Example response:You now have a fully operational Digital Money House instance and a valid token to explore the rest of the API.
Authorization header to access protected endpoints. The following example retrieves account information for account ID 1:Service Port Reference
| Service | Host Port | Description |
|---|---|---|
| API Gateway | 8085 | Single entry point for all client requests |
| Auth Service | 8082 | JWT issuance, login, logout |
| User Service | 8087 | User registration and profile management |
| Accounts Service | 8084 | Accounts, cards, transfers, activity |
| Eureka Server | 8761 | Service registry dashboard |
| Config Server | 8888 | Centralised Spring Cloud Config |
| RabbitMQ AMQP | 5672 | Broker for async inter-service events |
| RabbitMQ Management UI | 15672 | Web dashboard (guest / guest) |
| MySQL | 3308 | Database (mapped from container port 3306) |
Swagger UI
Interactive API documentation is served by each service via SpringDoc. The recommended entry point is through the gateway:Individual service Swagger UIs are also available directly on their own ports, e.g.
http://localhost:8084/swagger-ui.html for the Accounts Service.Postman Collection
A maintained Postman collection covering all Auth, User, Account, Transfer, and Card endpoints is publicly available: Open in Postman → Import the collection and set thebaseUrl variable to http://localhost:8085 and the token variable to the JWT you obtained in step 6 above.