Running Locally¶
This guide will help you run the project locally for development or testing purposes.
EUDIPLO is now organized as a monorepo workspace containing:
- Backend (
apps/backend/
) - NestJS API server - Client (
apps/client/
) - Angular web interface - Webhook (
apps/webhook/
) - Cloudflare Worker for testing
Prerequisites¶
Before you start, make sure you have the following tools installed:
- Node.js (version 22+ recommended)
- pnpm (package manager for monorepo workspaces)
- Git
- ngrok (optional, for exposing a public URL)
- Docker (optional, for supporting services or containerized deployment)
1. Clone the Repository¶
2. Install Dependencies¶
Install all workspace dependencies:
This will install dependencies for all applications in the workspace.
3. Set Up Environment Variables¶
Create a .env
file in the root of the project:
Configure Python environment for documentation (optional):
To allow your wallet to interact with your service, a public HTTPS URL is required. You can use ngrok to expose your local server:
TODO: check if it also runs in a local network when using wallets.
ngrok will display a public HTTPS URL like:
Use this value in your .env
:
💡 The project validates your environment variables on startup using Joi. If
PUBLIC_URL
is missing or invalid, the app may fail to register with external services.
Check out the Key Management or Database sections for more information on how to configure key storage and database options beyond the default settings.
4. Start the Applications¶
Option A: Start All Services with Docker Compose¶
Option B: Start Individual Applications¶
Start the Backend (NestJS API):
Start the Client (Angular UI) - in another terminal:
Start the Webhook (for testing) - in another terminal:
Option C: Start All Applications Locally¶
This will:
- Compile and watch your TypeScript code
- Reload on changes
- Use your
.env
configuration for keys, database, and registrar access
Make sure any external services (like PostgreSQL or Vault) are available, either locally or through Docker.
5. Access the Services¶
Once running, the applications are accessible at:
Backend API:
Client Web Interface:
Or via the public URL configured with ngrok:
6. Troubleshooting¶
- Double-check
.env
values for typos or missing entries. Changes in the.env
file require a restart of the application. - Ensure required external services (e.g. Vault, PostgreSQL) are running.
- Clear NestJS cache with
rm -rf dist node_modules && pnpm install
. - If ngrok fails, make sure port 3000 isn't blocked or already in use.