This project supports development inside a Docker container using VS Code Dev Containers. This allows developers to work on the project without installing Node.js or other dependencies on their local machine.
- Docker installed and running
- Visual Studio Code with the Dev Containers extension
-
Open in VS Code
git clone https://github.com/openwallet-foundation/eudiplo.git cd eudiplo code .
-
Reopen in Container
- Press
F1and select "Dev Containers: Reopen in Container" - Or click the green button in the bottom-left corner and select "Reopen in Container"
- Press
-
Wait for Setup
- The container will build and dependencies will be installed automatically
- This may take a few minutes on first run
-
Start Development
pnpm dev # Start both backend and client # Or run separately: pnpm dev:backend # Start backend only (port 3000) pnpm dev:client # Start client only (port 4200)
You can also develop using GitHub Codespaces:
- Go to the repository on GitHub
- Click the green "Code" button
- Select "Codespaces" tab
- Click "Create codespace on main"
The codespace will automatically use the devcontainer configuration.
If you prefer not to use VS Code Dev Containers:
# Build and start the development container
docker compose -f .devcontainer/docker-compose.yml up -d
# Execute commands inside the container
docker compose -f .devcontainer/docker-compose.yml exec devcontainer bash
# Inside the container:
pnpm install
pnpm devThe development container includes:
- Node.js 24 with pnpm
- Python 3 (for documentation)
- Git and GitHub CLI
- Zsh with Oh My Zsh
- Pre-configured VS Code extensions:
- ESLint & Biome (linting/formatting)
- Angular Language Service
- Docker extension
- GitLens
- REST Client
The following ports are automatically forwarded:
| Port | Service | Description |
|---|---|---|
| 3000 | Backend API | NestJS API server |
| 4200 | Client UI | Angular web interface |
Default development environment variables are set in the docker-compose.yml:
PUBLIC_URL=http://localhost:3000DATABASE_TYPE=sqlite(no external database needed)MASTER_SECRETandAUTH_CLIENT_SECRETare pre-set for development
For custom configuration, create a .env file in the project root.
- Ensure Docker is running
- Try rebuilding:
F1→ "Dev Containers: Rebuild Container"
- Stop any local services using ports 3000 or 4200
- Or modify the port mappings in
.devcontainer/docker-compose.yml
- The devcontainer uses volume caching for better performance
- Consider using Docker's "Use the WSL 2 based engine" on Windows
- Delete the
node_modulesvolume:docker volume rm eudiplo_node_modules - Rebuild the container