Installation¶
Add the starter to an existing Spring Boot application. The console appears at /admin/ on the next start.
Requirements¶
| Java | 17 or newer |
| Spring Boot | 4.0 (the version this project is built and tested with). Spring Boot 3 is not verified. |
| Application type | Servlet web application (Spring MVC). WebFlux is not supported. |
| Persistence | Spring Data JPA / Hibernate with your own datasource and entities |
| Runtime | No Node.js needed; the starter includes the UI dependency. |
The starter brings Spring Web, Spring Data JPA, Validation and Spring Security.
1. Add the dependency¶
Use the com.substringtechnologies coordinates for the 0.1.0 Maven Central release. Maven uses Central by default; Gradle needs mavenCentral().
Version 0.1.0 is published on Maven Central. The parent POM and all four library modules are publicly available. No JitPack repository is needed.
Requires JDK 17+, Node.js 20+ and npm. From a checkout whose root POM declares 0.1.0:
git clone https://github.com/substring-projects/jpa-admin.git
cd jpa-admin
npm ci --prefix jpa-admin-ui
./mvnw clean install
Then use the same Maven dependency above. For Gradle local testing, add mavenLocal() before mavenCentral().
The starter downloads core, auto-configuration and UI modules transitively. The UI assets live in the jpa-admin-ui JAR; consumers do not build React or install Node.js.
Older JitPack builds used com.github.substring-projects.jpa-admin. When migrating, replace the old dependency with the Central coordinates above and remove the JitPack repository if no other dependency needs it. The version sequences differ: 0.1.0 is the first Central release, not a downgrade of the older JitPack tags.
Using Amazon S3 for uploads?
Also add the AWS SDK. It's optional, so applications that don't use S3 don't pay for it:
2. Set the admin login¶
The starter refuses to start without a password, so there is no insecure default.
These credentials are for the admin console only. They are separate from your datasource credentials and from any users in your own application. See Configuration for every option.
3. Make sure your entities are scanned¶
The console shows every entity in your EntityManagerFactory, so no extra scanning is needed. If your entities live outside the package of your @SpringBootApplication class, register them as usual:
@SpringBootApplication
@EntityScan("com.example.shop.domain")
public class ShopApplication {
public static void main(String[] args) {
SpringApplication.run(ShopApplication.class, args);
}
}
4. Open the console¶
Open http://localhost:8080/admin/ and sign in. Every entity is listed in the sidebar, grouped and ready to use.
Next steps
- Take the tour to see everything the console can do.
- Customize entities with labels, groups, badges and actions.
- Add file uploads for images and documents.
Troubleshooting dependency resolution¶
| Problem | Fix |
|---|---|
Could not find artifact … in central |
Check the coordinates and publication status. Once available, run ./mvnw -U compile to retry a cached failure. |
| Gradle cannot resolve the starter | Add mavenCentral(); use --refresh-dependencies after publication. |
| A local source build works but another machine fails | Local install is not publication. Verify Central availability using a fresh local repository (see Release guide). |