Skip to content

Installation

This is the complete local setup: prerequisites, getting the code, and running both the backend and the Vue admin UI. If you just want the backend and its OpenAPI explorer running fast, the Quick Start is shorter.

ToolVersionFor
JDK21Backend (the default and only supported major)
Maven3.9+Building the backend
Dockerany recentMySQL + Redis (and optionally PostgreSQL / MinIO)
Node.js24 (>=24 <27)Admin UI
pnpm11Admin UI package manager

StackRivet is a multi-repository workspace: the backend and the admin UI are independent git repositories that you clone side by side. (This mirrors the project’s “not a monorepo” structure — each repo has its own release cycle and license.)

Terminal window
git clone https://github.com/zkmall/stackrivet-server.git
git clone https://github.com/zkmall/stackrivet-admin-ui.git

Gitee mirrors are also available:

Terminal window
git clone https://gitee.com/zkmall/stackrivet-server.git
git clone https://gitee.com/zkmall/stackrivet-admin-ui.git

Keep the two repositories as siblings in the same parent folder; the admin UI expects the backend next to it.

From stackrivet-server, bring up MySQL and Redis. Redis backs JWT revocation and the Actuator health check, so it is required.

Terminal window
cd stackrivet-server
docker compose up -d mysql redis

Add postgres only if you set STACKRIVET_DB_VENDOR=postgresql; add minio only if you set STACKRIVET_STORAGE_TYPE=s3.

Terminal window
mvn install -DskipTests=true # build all 16 modules once
mvn -pl stackrivet-app spring-boot:run # run the Spring Boot app

The API comes up on port 8080. Open the OpenAPI explorer to confirm:

Terminal window
open http://127.0.0.1:8080/swagger-ui.html

(On Linux or Windows, visit the URL in your browser.)

In the stackrivet-admin-ui repository:

Terminal window
cd stackrivet-admin-ui
pnpm install
pnpm dev # http://127.0.0.1:5173/

The dev server proxies /api/* and /actuator/* to the backend on port 8080, so start the backend first. You can also open the design-system showcase at http://127.0.0.1:5173/design-system.

The backend reads its database and storage settings from environment variables, with sensible local defaults:

VariablePurposeExample
STACKRIVET_DB_VENDORDatabase dialectmysql (default) / postgresql
STACKRIVET_STORAGE_TYPEAsset Service backendlocal (default) / s3 / aliyun_oss

Common environment variables are documented in Configuration.