| Frontend | Backend | Deployment |
|---|---|---|
This is the repository for the public portal of NeuRIS. You can learn more about NeuRIS on our website.
Clone this repo:
git clone git@github.com:digitalservicebund/ris-search.gitIf you're already familiar with our stack and the project, here is a list of the most important commands for running frequent tasks. You will find more detailed instructions below.
# Run Docker containers (working dir: project root)
docker compose up -d
# Run backend (working dir: ./backend)
# Include `e2e` profile if you want test data for E2E tests
./gradlew bootRun --args='--spring.profiles.active=default,e2e'
# Install frontend dependencies and run frontend (working dir: ./frontend)
pnpm install
pnpm devYou will find the following services at these addresses:
- Frontend at http://localhost:3000
- OpenSearch at http://localhost:9200
- OpenSearch Dashboards at http://localhost:5601
- Backend at http://localhost:8090
- Swagger API documentation at http://localhost:8090/swagger-ui/index.html
Backend:
./gradlew test # Unit tests
./gradlew integrationTest # Integration testsFrontend:
pnpm test # Unit tests (once)
pnpm test:watch # Unit tests (watch mode)E2E tests (backend and frontend must be running separately):
pnpm exec playwright test # E2E tests
pnpm exec playwright test --project chromium # E2E tests for Chromium only
pnpm exec playwright test --ui # Opens the Playwright UIBackend:
./gradlew spotlessApply # Format codeFrontend:
pnpm style:fix # Check code conventions + formatting, attempt to fix
pnpm typecheck # Check TypeScript validityBackend:
./gradlew buildFrontend:
pnpm build
# Optionally, preview the build output (requires a running backend):
pnpm nuxt previewThis is a mono-repository containing:
| Directory | Description |
|---|---|
backend |
The backend service (Java 21 + Spring Boot) |
doc |
Additional documentation, including Architecture Decision Records |
frontend |
A browser-based interface for users (TypeScript + Vue + Nuxt + Tailwind) |
scripts |
Utility scripts |
To build and run the application, you'll need:
- Docker, for services like OpenSearch
- A Java 21-compatible JDK
- Node.js and pnpm (you'll find the exact versions here)
If you would like to make changes to the application, you'll also need:
jq, for parsing license datalefthook, for running Git hooks- (optional)
adr-tools, for scaffolding new ADRs - (optional)
nvm, for managing Node versions
If you use Homebrew, you can install all of them like this:
brew install openjdk@21 lefthook nvm pnpm adr-tools
brew install --cask docker # or `brew install docker` if you don't want the desktop appOnce you installed the prerequisites, make sure to initialize Git hooks. This will ensure any code you commit follows our coding standards, is properly formatted, and has a commit message adhering to our conventions:
lefthook installFinally, there are some environment variables that need to be set locally. As a starting point, copy the frontend/.env.example file and rename it to .env.
You will find more information about each module in the respective folders. If you're getting started, the READMEs of the backend and frontend will be the most relevant resources.
Additional guides:
- Container image
- Vulnerability scanning
- Dump case law data to OpenSearch
- OpenSearch index swap
- API keys
When installing dependencies, make sure they are licensed under one of the allowed licenses. This will be checked in the pipeline for both frontend and backend dependencies. The pipeline will fail if licenses not included in the list are used by any dependency.
If you would like to contribute, check out CONTRIBUTING.md. Please also consider our Code of Conduct.
Program name: NeuRIS (Neues Rechtsinformationsportal)
Description: An intuitive legal information system aimed at simplifying access to laws, regulations, and court decisions in Germany.
Copyright (C) 2025 DigitalService GmbH des Bundes
Author's Contact Information
DigitalService GmbH des Bundes
Prinzessinnenstraße 8-14,
10969 Berlin, Germany
Email: hallo@digitalservice.bund.de
Website: https://digitalservice.bund.de\