georchestra-console is a Spring Boot rewrite of the geOrchestra Console webapp.
The project aims to replace the legacy console while keeping the same functional scope for user self-service, delegated administration, and platform administration.
The application exposes three main functional areas:
- Public account workflows under
/console/account/* - User self-service under
/console/account/userdetails - Administration screens under
/console/manager/*
The manager interface covers:
- Users
- Organizations
- Roles
- Delegations
- Administration logs
- User messaging
This project is an ongoing replacement of the historical geOrchestra console.
It is actively developed, but some areas are still under migration or stabilization. See TECHNICAL_NOTES.md for project history, migration notes, and remaining work.
- Java 21
- Maven Wrapper (
./mvnw) - Docker and Docker Compose for the local development stack
Start the local dependencies:
cd docker/dev
docker compose -f docker-compose-dev.yaml up -dRun the application locally from the repository root:
./mvnw spring-boot:run \
-Dspring-boot.run.jvmArguments="-Dgeorchestra.datadir=$(pwd)/docker/dev/datadir" \
-Dspring-boot.run.arguments=--server.port=8081Typical URLs:
- Direct access:
http://localhost:8081/console - Through the local gateway:
http://localhost:8080/console
Test execution is split between unit/slice tests and integration tests:
./mvnw testruns fast tests through Surefire./mvnw verifyruns fast tests and integration tests through Failsafe
Useful examples:
./mvnw test
./mvnw verify
./mvnw -Dtest=org.georchestra.console.boot.ConsoleApplicationTests test
./mvnw -Dit.test=org.georchestra.console.boot.AxeCoreAccessibilityIT verifyThe project currently has no schema migration tool such as Flyway or Liquibase.
Some Console-specific PostgreSQL objects are not managed by JPA and must be created during the first installation with:
psql -f src/main/sql/console-bootstrap.sqlThis script is not executed automatically by the application and is not packaged in the application jar.
The application exposes Swagger UI and grouped OpenAPI specs for the main URL families:
internalfor/internal/*publicfor/public/*accountfor/account/*privatefor/private/*
Useful URLs in local development:
- Direct Swagger UI:
http://localhost:8081/console/swagger-ui/index.html - Gateway Swagger UI:
http://localhost:8080/console/swagger-ui/index.html - Direct OpenAPI specs:
http://localhost:8081/console/v3/api-docs/internalhttp://localhost:8081/console/v3/api-docs/publichttp://localhost:8081/console/v3/api-docs/accounthttp://localhost:8081/console/v3/api-docs/private
- Gateway OpenAPI specs:
http://localhost:8080/console/v3/api-docs/internalhttp://localhost:8080/console/v3/api-docs/publichttp://localhost:8080/console/v3/api-docs/accounthttp://localhost:8080/console/v3/api-docs/private
Some private and public endpoints are legacy JSON contracts. When applicable, their OpenAPI descriptions explicitly mention that their usage outside the current Thymeleaf UI should be verified before removal or incompatible changes.
Project documentation is maintained with MkDocs in docs.
Main entry points:
- User and operator docs:
docs/index.en.md - Contribution and technical guides:
docs/technical_guides/contribute/index.en.md
Run the documentation locally:
python3 -m venv .venv
source .venv/bin/activate
pip install -r mkdocs_requirements.txt
mkdocs serveThen open http://127.0.0.1:8000/.
src/main/java: application codesrc/main/resources/templates: Thymeleaf viewssrc/main/resources/static: static assetssrc/test/java: unit, slice, and integration testsdocker/dev: local development stackdocs: MkDocs documentation
Please read CONTRIBUTING.md before opening a pull request.
Project discussions and coordination happen in the geOrchestra community channels and issue tracker.
This project is distributed under the GNU GPL v3. See LICENSE.