up docker-compose.yml

+ node js in gradle
This commit is contained in:
2026-04-17 15:03:49 +03:00
parent 201ebcd9fb
commit 58c43fddc5
4 changed files with 60 additions and 26 deletions

View File

@@ -62,7 +62,6 @@ public class MainVerticle extends AbstractVerticle {
.onFailure(err -> {
log.error("Failed to initialize database", err);
startPromise.fail(err);
return;
});
Router router = initRouter();
@@ -104,6 +103,22 @@ public class MainVerticle extends AbstractVerticle {
}
});
// ------ Раздаём Vue статику ------
router.route("/assets/*").handler(StaticHandler.create("webroot/assets"));
router.route("/favicon.ico").handler(ctx -> ctx.response().sendFile("webroot/favicon.ico"));
// ------ SPA fallback: отдаём index.html на все не-API запросы ------
router.route().handler(ctx -> {
if (ctx.request().path().startsWith("/api")) {
ctx.next();
} else {
ctx.response()
.putHeader("Content-Type", "text/html")
.sendFile("webroot/index.html");
}
});
// Health Checks
HealthCheckService healthCheckService = new HealthCheckService(vertx, redis, db);
healthCheckService.registerHealthCheck(router);
@@ -128,17 +143,15 @@ public class MainVerticle extends AbstractVerticle {
router.route("/api/admin/*").handler(authHandler::requireAuth);
// Получение списка пользователей
router.get("/api/admin/users").handler(rc -> {
userService.getAllUsers().onComplete(ar -> {
if (ar.succeeded()) {
rc.response()
.putHeader("Content-Type", "application/json")
.end(ar.result().encode());
} else {
rc.response().setStatusCode(500).end(ar.cause().getMessage());
}
});
});
router.get("/api/admin/users").handler(rc -> userService.getAllUsers().onComplete(ar -> {
if (ar.succeeded()) {
rc.response()
.putHeader("Content-Type", "application/json")
.end(ar.result().encode());
} else {
rc.response().setStatusCode(500).end(ar.cause().getMessage());
}
}));
// Получение текущего пользователя
router.get("/api/admin/me").handler(rc -> {
@@ -156,9 +169,9 @@ public class MainVerticle extends AbstractVerticle {
});
// Статическая раздача фронтенда
router.route("/*").handler(StaticHandler.create("webroot")
.setCachingEnabled(false)
.setIndexPage("index.html"));
// router.route("/*").handler(StaticHandler.create("webroot")
// .setCachingEnabled(false)
// .setIndexPage("index.html"));
return router;
}

View File

@@ -53,7 +53,7 @@ public class HealthCheckService {
.onFailure(err -> future.tryFail("DataBase ping failed: " + err.getMessage()));
});
// Регистрируем endpoint /health
router.get("/health").handler(healthCheckHandler);
// Регистрируем endpoint /api/health
router.get("/api/health").handler(healthCheckHandler);
}
}