homarr icon indicating copy to clipboard operation
homarr copied to clipboard

Add Proxmox integration/widget

Open dslatt opened this issue 2 years ago • 1 comments

Thank you for contributing to Homarr! So that your Pull Request can be handled effectively, please populate the following fields (delete sections that are not applicable)

Category

Feature

Overview

Comments

  • I added the 'ingnore certificate errors' option because proxmox only supports https and includes a self signed cert by default. The API won't work unless you account for that. Obviously, its better to not just ignore certs but for a good user experience I think it's worth handling that in code by default.
  • Sorry for the long list of screenshots, but I figured more it better
  • Thanks for taking a look!

Issue Number (if applicable)

Related issue: #889

Screenshot (if applicable)

Basic View Screenshot from 2024-02-15 20-43-40

Integration Screenshot from 2024-02-15 20-44-16

Settings Screenshot from 2024-02-15 20-44-59 Screenshot from 2024-02-15 20-45-08 Screenshot from 2024-02-15 20-45-19

Filter by node name (to not show the entire cluster if you want; by default its the whole thing) Screenshot from 2024-02-15 20-45-38 Screenshot from 2024-02-15 20-45-43 Screenshot from 2024-02-15 20-46-02

Lists of 'items' in the cluster. Nodes, VMs, LXCs, and storage Screenshot from 2024-02-15 20-46-16 Screenshot from 2024-02-15 20-46-23 Screenshot from 2024-02-15 20-46-29 Screenshot from 2024-02-15 20-46-36

On-click detail (node) Screenshot from 2024-02-15 20-46-49

On-click detail (VM) Screenshot from 2024-02-15 20-46-59

On-click detail (LXC) Screenshot from 2024-02-15 20-47-11 Screenshot from 2024-02-15 20-47-16 Screenshot from 2024-02-15 20-47-21

On-click detail (storage) Screenshot from 2024-02-15 20-47-30 Screenshot from 2024-02-15 20-47-37 Screenshot from 2024-02-15 20-47-41

dslatt avatar Feb 16 '24 03:02 dslatt

I'm a bit torn on that one, this looks like something that could just expend on another PR #1879. But I think for now we can just put them side by side and combine them later on. Generally that would make a system health monitoring widget, which the one for OMV has already been renamed to.

I'll take a look at the code later on. Just leaving that first thought here.

SeDemal avatar Feb 16 '24 04:02 SeDemal

I get where you're coming from with the OMV widget, they do have some information overlap after all. I could see merging the dash. one with that, at least for just showing basic system info but I assume you would lose the graphing in that case.

For proxmox, you could probably use the OMV widget ui to show cpu/ram in one row, nodes/vms/lxcs in another, and storage in the final row. I think the progress circle icons would need some labels in that case though. The few challenges I see would be:

  • Scaling that UI to handle the amount of stuff proxmox can show. Since you can (and often do) and multiple nodes in a proxmox cluster each running their own vms/containers/storage you end up with a lot more info than the OMV widget can handle right now.
  • Making the extra proxmox details (this widgets more details screen) available cleanly. You would need to expand a table or something on clicking on the OMV progress icon things that list the individual nodes/etc. Maybe that fits in the widget but could get messy. You could use a popover but that looses the ability to see anything but the top-level of data without an extra click which I don't love. I like having the vms tab open by default personally so I can see what's up without having to click. IDK
  • Widget settings. You would want to dynamically adjust the settings based on what integrations you have I think. Showing all the proxmox vm/nodes/lxc stuff would overkill if the user isn't using it.

Right course depends on what you all want I guess. I'm sure its possible to merge and make it work, it just feels complicated because all the extra proxmox stuff would have to live alongside the simpler data from the 'system' widget .

Open to any ideas really.

dslatt avatar Feb 29 '24 18:02 dslatt

Alright, since the OMV widget was there before and was already intended for dashdot in the future, I was wondering if you could integrate to that widget instead? You could just add all your elements into that widget as is and make them appear only when the linked app is proxmox, meaning you wouldn't loose any of the elements you integrated. It makes it a bit confusing in the options because of how the system is right now but since we're changing the system in the future, we will have a way to hide those options later. Any elements that extend further than the available space can simply be handled in a scrollview.

SeDemal avatar Mar 03 '24 19:03 SeDemal

still have some refinement to do, but basic merge is done

dslatt avatar Mar 04 '24 05:03 dslatt

I saw your comment on the OMV integration PR, you're right about making options toggleable. Like the current dashdot widget where each and every stats is toggleable. Tell us when you think you're done, eager to check it out. And thanks again for your efforts.

SeDemal avatar Mar 05 '24 21:03 SeDemal

Ready to be checked whenever

Merged my proxmox widget into the system health one. If both integrations are present, they are split into separate tabs. If only one is used, then no tabs are used.

Only thing I changed in the existing omv widget was to make the cputemp rpc optional; it relies on a plugin not installed by default and was causing errors.

Screenshot from 2024-03-05 14-36-09 Screenshot from 2024-03-05 14-36-19 Screenshot from 2024-03-05 14-40-34

dslatt avatar Mar 05 '24 21:03 dslatt

@dslatt can you fix the build errors before I merge this?

manuel-rw avatar Mar 13 '24 19:03 manuel-rw

i'll add some documentation soon

dslatt avatar Mar 13 '24 22:03 dslatt

PR still has merge conflicts. Can you resolve them? Planning to merge this soon

manuel-rw avatar Mar 18 '24 21:03 manuel-rw

will do, was just waiting on final omv stuff to merge

dslatt avatar Mar 18 '24 23:03 dslatt