From 0ffde21b0337c606e2d0ece5bd5434a930a87dcd Mon Sep 17 00:00:00 2001 From: vincent van beek Date: Thu, 26 Mar 2026 14:02:54 +0100 Subject: Use Quarkus Quinoa for serving web UI (#391) * refactor(web): Migrate to Quarkus 3 This commit updates the OpenDC web server to use Quarkus 3, which changes annotations to use the Jakarta namespace for annotations. * refactor(web): Configure runtime variables for web UI This commit updates the web UI to propagate runtime variables via the next-runtime-env package. Before, we would need to replace the variables in the generated sources by Next.js, next-runtime-env works by loading a JavaScript file when opening the OpenDC web UI which contains the configuration of the web app. * refactor(web): Migrate to Quarkus Quinoa This commit updates the OpenDC web server to make use of Quarkus Quinoa for serving the web UI. This allows us to deprecate the complex Quarkus extension for serving the web UI. * refactor(web): Move web UI into Quarkus web app This commit moves the web UI into the Quarkus web server module to ensure we follow Quarkus Quinoa's conventions. * refactor(web): Merge Quarkus extension into single module This commit merges the existing Quarkus extensions into a single module to prevent build complexity. * refactor(web): Migrate web proto to Java This commit migrates the web protocol to Java and removes the dependency on Jandex Gradle. * refactor(web): Migrate to Quarkus 3 This commit updates the OpenDC web server to use Quarkus 3, which changes annotations to use the Jakarta namespace for annotations. * enable DB schema migration on DEV server * webui is not needed anymore * remove MAINTAINERS is depricated * fix quarkus.quinoa properties * revert properties change, install npm in docker image to allow building the frontend * pin postgres version, this is a best practice. Fix some properties the old ones are depricated. Added properties for local testing * fix build error * :opendc-web:opendc-web-proto:spotlessApply * fix database schema --------- Co-authored-by: Fabian Mastenbroek --- .../src/main/webui/public/img/avatar.svg | 18 ++ .../main/webui/public/img/datacenter-drawing.png | Bin 0 -> 207909 bytes .../src/main/webui/public/img/logo.png | Bin 0 -> 2825 bytes .../src/main/webui/public/img/logo.svg | 191 +++++++++++++++++++++ .../main/webui/public/img/opendc-architecture.png | Bin 0 -> 45056 bytes .../main/webui/public/img/opendc-timeline-v2.png | Bin 0 -> 33460 bytes .../src/main/webui/public/img/portraits/aiosup.png | Bin 0 -> 71879 bytes .../main/webui/public/img/portraits/evaneyk.png | Bin 0 -> 89028 bytes .../webui/public/img/portraits/fmastenbroek.png | Bin 0 -> 123006 bytes .../main/webui/public/img/portraits/gandreadis.png | Bin 0 -> 76426 bytes .../src/main/webui/public/img/portraits/hhe.png | Bin 0 -> 102718 bytes .../src/main/webui/public/img/portraits/jbosch.png | Bin 0 -> 101618 bytes .../main/webui/public/img/portraits/jburley.png | Bin 0 -> 328112 bytes .../webui/public/img/portraits/lfdversluis.png | Bin 0 -> 67796 bytes .../main/webui/public/img/portraits/loverweel.png | Bin 0 -> 65866 bytes .../main/webui/public/img/portraits/sjounaid.png | Bin 0 -> 94523 bytes .../main/webui/public/img/portraits/vvanbeek.png | Bin 0 -> 85159 bytes .../src/main/webui/public/img/portraits/wlai.png | Bin 0 -> 72873 bytes .../webui/public/img/screenshot-construction.png | Bin 0 -> 275103 bytes .../webui/public/img/screenshot-simulation.png | Bin 0 -> 291836 bytes .../webui/public/img/stakeholders/Developer.png | Bin 0 -> 11411 bytes .../main/webui/public/img/stakeholders/Manager.png | Bin 0 -> 9946 bytes .../webui/public/img/stakeholders/Researcher.png | Bin 0 -> 10984 bytes .../main/webui/public/img/stakeholders/Sales.png | Bin 0 -> 10074 bytes .../main/webui/public/img/stakeholders/Student.png | Bin 0 -> 12960 bytes .../main/webui/public/img/topology/cpu-icon.png | Bin 0 -> 4062 bytes .../main/webui/public/img/topology/gpu-icon.png | Bin 0 -> 2227 bytes .../main/webui/public/img/topology/memory-icon.png | Bin 0 -> 1980 bytes .../webui/public/img/topology/rack-energy-icon.png | Bin 0 -> 893 bytes .../webui/public/img/topology/rack-space-icon.png | Bin 0 -> 957 bytes .../webui/public/img/topology/storage-icon.png | Bin 0 -> 4038 bytes .../src/main/webui/public/img/tudelft-icon.png | Bin 0 -> 4387 bytes 32 files changed, 209 insertions(+) create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/avatar.svg create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/datacenter-drawing.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/logo.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/logo.svg create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/opendc-architecture.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/opendc-timeline-v2.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/aiosup.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/evaneyk.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/fmastenbroek.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/gandreadis.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/hhe.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/jbosch.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/jburley.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/lfdversluis.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/loverweel.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/sjounaid.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/vvanbeek.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/portraits/wlai.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/screenshot-construction.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/screenshot-simulation.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Developer.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Manager.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Researcher.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Sales.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Student.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/topology/cpu-icon.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/topology/gpu-icon.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/topology/memory-icon.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/topology/rack-energy-icon.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/topology/rack-space-icon.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/topology/storage-icon.png create mode 100644 opendc-web/opendc-web-server/src/main/webui/public/img/tudelft-icon.png (limited to 'opendc-web/opendc-web-server/src/main/webui/public/img') diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/avatar.svg b/opendc-web/opendc-web-server/src/main/webui/public/img/avatar.svg new file mode 100644 index 00000000..73726f9b --- /dev/null +++ b/opendc-web/opendc-web-server/src/main/webui/public/img/avatar.svg @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/datacenter-drawing.png b/opendc-web/opendc-web-server/src/main/webui/public/img/datacenter-drawing.png new file mode 100644 index 00000000..ec2b7398 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/datacenter-drawing.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/logo.png b/opendc-web/opendc-web-server/src/main/webui/public/img/logo.png new file mode 100644 index 00000000..d743038b Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/logo.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/logo.svg b/opendc-web/opendc-web-server/src/main/webui/public/img/logo.svg new file mode 100644 index 00000000..5283a034 --- /dev/null +++ b/opendc-web/opendc-web-server/src/main/webui/public/img/logo.svg @@ -0,0 +1,191 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/opendc-architecture.png b/opendc-web/opendc-web-server/src/main/webui/public/img/opendc-architecture.png new file mode 100644 index 00000000..e0bf8e9b Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/opendc-architecture.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/opendc-timeline-v2.png b/opendc-web/opendc-web-server/src/main/webui/public/img/opendc-timeline-v2.png new file mode 100644 index 00000000..0b2821c4 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/opendc-timeline-v2.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/aiosup.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/aiosup.png new file mode 100644 index 00000000..d2019b4d Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/aiosup.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/evaneyk.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/evaneyk.png new file mode 100644 index 00000000..011c1627 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/evaneyk.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/fmastenbroek.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/fmastenbroek.png new file mode 100644 index 00000000..218b1a6f Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/fmastenbroek.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/gandreadis.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/gandreadis.png new file mode 100644 index 00000000..96a3abda Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/gandreadis.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/hhe.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/hhe.png new file mode 100644 index 00000000..4891c7f5 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/hhe.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/jbosch.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/jbosch.png new file mode 100644 index 00000000..c76e1fab Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/jbosch.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/jburley.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/jburley.png new file mode 100644 index 00000000..d2691659 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/jburley.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/lfdversluis.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/lfdversluis.png new file mode 100644 index 00000000..6fbc8472 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/lfdversluis.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/loverweel.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/loverweel.png new file mode 100644 index 00000000..85865977 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/loverweel.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/sjounaid.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/sjounaid.png new file mode 100644 index 00000000..41878161 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/sjounaid.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/vvanbeek.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/vvanbeek.png new file mode 100644 index 00000000..4c8b3311 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/vvanbeek.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/wlai.png b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/wlai.png new file mode 100644 index 00000000..c758846d Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/portraits/wlai.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/screenshot-construction.png b/opendc-web/opendc-web-server/src/main/webui/public/img/screenshot-construction.png new file mode 100644 index 00000000..ea20a7c4 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/screenshot-construction.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/screenshot-simulation.png b/opendc-web/opendc-web-server/src/main/webui/public/img/screenshot-simulation.png new file mode 100644 index 00000000..1bd989c7 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/screenshot-simulation.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Developer.png b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Developer.png new file mode 100644 index 00000000..d2638e6c Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Developer.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Manager.png b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Manager.png new file mode 100644 index 00000000..92db7459 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Manager.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Researcher.png b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Researcher.png new file mode 100644 index 00000000..d87edd39 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Researcher.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Sales.png b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Sales.png new file mode 100644 index 00000000..5b7c3a72 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Sales.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Student.png b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Student.png new file mode 100644 index 00000000..a4900303 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/stakeholders/Student.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/topology/cpu-icon.png b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/cpu-icon.png new file mode 100644 index 00000000..07cfbd31 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/cpu-icon.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/topology/gpu-icon.png b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/gpu-icon.png new file mode 100644 index 00000000..55d4fb05 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/gpu-icon.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/topology/memory-icon.png b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/memory-icon.png new file mode 100644 index 00000000..36e8a44e Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/memory-icon.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/topology/rack-energy-icon.png b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/rack-energy-icon.png new file mode 100644 index 00000000..1088c61b Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/rack-energy-icon.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/topology/rack-space-icon.png b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/rack-space-icon.png new file mode 100644 index 00000000..387d7ea6 Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/rack-space-icon.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/topology/storage-icon.png b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/storage-icon.png new file mode 100644 index 00000000..7a39cb6f Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/topology/storage-icon.png differ diff --git a/opendc-web/opendc-web-server/src/main/webui/public/img/tudelft-icon.png b/opendc-web/opendc-web-server/src/main/webui/public/img/tudelft-icon.png new file mode 100644 index 00000000..a7a2d56a Binary files /dev/null and b/opendc-web/opendc-web-server/src/main/webui/public/img/tudelft-icon.png differ -- cgit v1.2.3