provectus / kafka-ui

Open-Source Web UI for Apache Kafka Management
Apache License 2.0
9.78k stars 1.18k forks source link

Desktop version (via electron.js) #985

Open tigerinus opened 3 years ago

tigerinus commented 3 years ago

Is your proposal related to a problem?

Have a local Kafka running for development purpose. Running this app via Java or Docker is OK, but it's still less convenient comparing to desktop based Kakfa UI tool (e.g. https://www.conduktor.io/)

Describe the solution you'd like

It'd be nice to embed this into a desktop app, using framework like ElectronJs

Describe alternatives you've considered

Java+Docker

Additional context

Conduktor requires sharing usage via external network which I'm trying to stay away with. Switched to Kafka UI (this app) from Conduktor.

Haarolean commented 3 years ago

In order to make kafka-ui standalone app without a requirement to run a separate backend docker container we have to rewrite the whole backend to JS. So that's not a thing we have resources for any time soon.

tigerinus commented 3 years ago

In order to make kafka-ui standalone app without a requirement to run a separate backend docker container we have to rewrite the whole backend to JS. So that's not a thing we have resources for any time soon.

I thought Electron.js backend could be independent from frontend, i.e. Java backend + JS frontend, no?

End of the day it's all parent/child process IPC, no?

tigerinus commented 3 years ago

FYI https://github.com/cuba-labs/java-electron-tutorial

Haarolean commented 3 years ago

In order to make kafka-ui standalone app without a requirement to run a separate backend docker container we have to rewrite the whole backend to JS. So that's not a thing we have resources for any time soon.

I thought Electron.js backend could be independent from frontend, i.e. Java backend + JS frontend, no?

End of the day it's all parent/child process IPC, no?

yeah but it won't be a standalone application, you'll have to run the backend in a container.

tigerinus commented 3 years ago

@Haarolean - why does the backend only run in container?

https://github.com/cuba-labs/java-electron-tutorial#bring-all-together has an example:

platform = process.platform;

// Check operating system
if (platform === 'win32') {
   serverProcess = require('child_process')
       .spawn('cmd.exe', ['/c', 'demo.bat'],
           {
               cwd: app.getAppPath() + '/demo/bin'
           });
} else {
   serverProcess = require('child_process')
       .spawn(app.getAppPath() + '/demo/bin/demo');
}
Haarolean commented 3 years ago

Well, okay. Technically we could run docker this way or something like that.

naaive commented 2 years ago

Well, okay. Technically we could run docker this way or something like that.

no need docker, pack java binary with electron together will be ok.

Haarolean commented 2 years ago

Well, okay. Technically we could run docker this way or something like that.

no need docker, pack java binary with electron together will be ok.

hey, thanks for the suggestion. Feel free to raise a new PR for the feature if you're feeling like you could implement this.