| # Apache Iggy Web UI |
| |
| This project hosts the web user interface for Apache Iggy. The web UI is built using SvelteKit. |
| |
|  |
| |
| ## Overview |
| |
| The Iggy Web UI provides a user-friendly panel for managing various aspects of the Iggy platform, including streams, topics, partitions, and more. |
| |
| The [docker image](https://hub.docker.com/r/apache/iggy-web-ui) is available, and can be fetched via `docker pull apache/iggy-web-ui`. |
| |
| ## Tooling |
| |
| - Node.js: use a version supported by the current frontend toolchain, `^20.19.0 || ^22.13.0 || >=24`. `22.13+` LTS is the safest default. |
| - Package manager: `npm` |
| - `pnpm` and `yarn` are not part of the supported workflow for this package. CI, Docker builds, and the committed lockfile use `npm`. |
| |
| ### Getting Started |
| |
| 1. **Run Iggy server first** |
| |
| ```sh |
| docker pull apache/iggy:latest |
| ``` |
| |
| ```sh |
| docker run -p 3000:3000 -p 8090:8090 apache/iggy:latest |
| ``` |
| |
| 2. **Clone the repository:** |
| |
| ```sh |
| git clone https://github.com/apache/iggy.git |
| ``` |
| |
| 3. **Build the project:** |
| |
| ```sh |
| cd web |
| npm ci |
| ``` |
| |
| 4. **Run the project:** |
| |
| ```sh |
| npm run dev |
| ``` |
| |
| **To expose port in local network run:** |
| |
| ```sh |
| npm run dev -- --host --port 3333 |
| ``` |
| |
| **If Iggy server was run using cargo directly we need to change PUBLIC_IGGY_API_URL env in web ui root folder to:** |
| |
| ```sh |
| PUBLIC_IGGY_API_URL=http://127.0.0.1:3000 |
| ``` |
| |
| **instead of** |
| |
| ```sh |
| PUBLIC_IGGY_API_URL=http://localhost:3000 |
| ``` |
| |
| ## Roadmap |
| |
| - [x] Authorization |
| - [x] Allow manual interval setting for auto-refresh |
| - [x] Introduce dark mode |
| - [x] Enable CRUD operations on Streams |
| - [x] Enable CRUD operations on Topics |
| - [ ] Messages management |
| - [ ] General UI improvements |
| - [ ] Permission management (in progress) |
| - [x] GitHub actions CI/CD |
| - [x] Publish to Dockerhub as separate Image |
| |
| ## Contributing |
| |
| Feel free to contribute to the project. Your feedback and contributions are highly appreciated! |