Installation
Three ways to get RDFArchitect running, in order of effort.
- Docker Compose (recommended for evaluation and single-user use)
- Local development setup
- Production deployment notes
All three options assume that a SPARQL 1.1-endpoint is reachable from the backend. RDFArchitect is developed against Apache Jena Fuseki and that is the recommended choice.
1. Docker Compose
The repository ships a docker-compose.yaml that builds the backend and frontend images and puts an nginx gateway in front of them.
Prerequisites
- Docker and Docker Compose (any recent version).
- A running Apache Jena Fuseki on the host at
http://localhost:3030. The compose file expects this Fuseki to be reachable from inside the containers athost.docker.internal:3030. See Fuseki quickstart below if you do not have one yet.
Starting
From the repository root:
cd docker
docker compose up --build
Open http://localhost:3000 in your browser. The gateway routes:
/→ the frontend (SvelteKit application)/api→ the backend (Spring Boot REST API)
The first start takes a few minutes because the Spring Boot and SvelteKit images are built locally. Subsequent starts reuse the built images and are fast.
Stopping
Ctrl+C in the terminal where compose is running, then:
docker compose down
Fuseki quickstart
If you do not yet have Fuseki for snapshot storage, the simplest way to get one is:
docker run --rm -p 3030:3030 \
-e ADMIN_PASSWORD=admin \
stain/jena-fuseki
For a more durable setup, mount a volume under /fuseki in the Fuseki container so that snapshots survive restarts.
2. Local development setup
Useful if you want to modify the source, build from a branch, or run without Docker.
Prerequisites
- Java 25 or higher
- Maven 3.9.9 or higher
- Node.js 24 or higher
- npm 11 or higher
- A running Apache Jena Fuseki at
http://localhost:3030for snapshot storage.
Backend
From the repository root:
cd backend
mvn spring-boot:run
The backend starts on port 8080. Swagger UI is available at http://localhost:8080/swagger-ui.html.
Frontend
In a second terminal:
cd frontend
npm install
npm run dev
The frontend starts on port 1407 at http://localhost:1407 and talks to the backend directly (no nginx in front).
3. Production deployment notes
RDFArchitect has no built-in authentication or authorisation. For a production deployment, the following pattern is typical:
- Deploy backend, frontend, nginx, and Fuseki as four services (the compose file is a useful starting template).
- Put an SSO-capable reverse proxy in front of the nginx gateway. OAuth2 Proxy, Traefik with forward-auth, or Kubernetes Ingress with an OIDC sidecar all work.
- Configure Fuseki to persist to a mounted volume and include that volume in your snapshot backup policy.
- Set the cookie flags in
application.yml(same-site,secure,http-only) for a production environment — the defaults in the repository are development values.
File upload size
Default max upload size is 50 MB, which is sufficient for most ENTSO-E profiles. If you need larger uploads, raise both:
spring.servlet.multipart.max-file-sizespring.servlet.multipart.max-request-sizeserver.tomcat.max-http-form-post-sizeserver.tomcat.max-swallow-size
Verifying the installation
Once the application is up:
- Open the homepage at
http://localhost:3000(Docker) orhttp://localhost:1407(local dev). - Click Open Editor.
- Import a small test file (TTL or RDF/XML). If it shows up in the navigation tree, the in-memory backend path is working.
- Create a snapshot. If a snapshot link is returned, the backend is talking to Fuseki.
If any of these steps fail, see Troubleshooting and the FAQ.