Getting started

From zero to a running admin backend in about ten minutes.

1. Run the demo (Docker Compose builds the images locally)

git clone https://github.com/simplezac1995/strata.git
cd strata
docker compose up --build

The demo starts PostgreSQL, applies the framework schema and seeds the RBAC data. It is for local evaluation only; change the secrets before any real deployment.

2. Create your own application

Add the starter to a Spring Boot 4.1 project running on JDK 25 (the toolchain targets Java 21 bytecode, so the built application runs on Java 21+):

<dependency>
  <groupId>io.github.simplezac1995</groupId>
  <artifactId>strata-spring-boot-starter</artifactId>
  <version>0.11.1</version>
</dependency>

Write a plain application class — no component/entity scan is needed:

@SpringBootApplication
public class MyAdminApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyAdminApplication.class, args);
    }
}

Point it at PostgreSQL and provide the two required secrets:

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/my_admin
    username: my_admin
    password: change-me
  flyway:
    locations: classpath:db/strata-framework,classpath:db/migration

strata:
  security:
    jwt:
      secret: ${STRATA_JWT_SECRET}     # at least 32 characters
  system:
    seed:
      admin-password: ${STRATA_ADMIN_PASSWORD}

The starter applies db/strata-framework (the framework schema: V1__strata_framework.sql and V2__idempotency_record.sql). Flyway versions are global across all spring.flyway.locations, so append your own migrations starting at V3.

3. Call the framework API

# login (returns accessToken) — for this application use admin / your STRATA_ADMIN_PASSWORD;
# for the demo stack from step 1 use admin / demo-admin-password
curl -s -X POST http://localhost:8080/api/v1/system/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"<your-admin-password>"}'

# use the token
curl -s http://localhost:8080/api/v1/system/users -H "Authorization: Bearer $TOKEN"

Other entry points worth knowing: /api/v1/system/menus, /api/v1/ops/announcements, /api/v1/ai/models (when the AI modules are on the classpath).

4. Run the admin console against it

The console is part of this repository. From the repository root (the clone from step 1):

cd strata-ui
pnpm install
VITE_API_PROXY_TARGET=http://localhost:8080 pnpm dev

Open http://localhost:5173. The console signs in with the same seeded admin account.

Troubleshooting

Symptom Fix
Flyway fails with missing schema Keep classpath:db/strata-framework in spring.flyway.locations
Flyway reports a duplicate or out-of-order migration Flyway versions are global across all spring.flyway.locations. The framework already ships V1__strata_framework.sql and V2__idempotency_record.sql in classpath:db/strata-framework, so number your own migrations from V3 upward (or use a separate version range) and never reuse the framework versions.
401 on every request strata.security.jwt.secret must be ≥ 32 characters and identical across restarts
Admin UI shows empty menus Check that the RBAC seed ran (fresh database, strata.seed.enabled=true)
Port 3001/8080 busy Change the host ports in docker-compose.yml (or set STRATA_UI_PORT / STRATA_API_PORT)

Next: add your first module or connect the AI modules.