Jump to content
tinglis1

unRAID API

23 posts in this topic Last Reply

Recommended Posts

Hi,

 

I have a feature request for some form of unraid API.

 

I have been using Unraid for along time now and was using with with esxi. Since v6 it has taken over as my host machine and I am doing more with it than ever.

I did notice there was a previous request for this in December 2014, Link, for an API but this was highlighted as not a priority at the time and given that unraid v6 was still in early beta stages this makes sense.

 

At the moment almost all the control requires ssh/telnet or web console access. This to me poses a potential security risk and think that an API might be able to provide access to some of the commonly used functions without providing access to all the system functions of unraid.

 

Some of the features that I would like to see in this this API are below:

  • Access token to bypass the basic authentication for API.
  • Possible multiple tokens with different access. example tokens, Global, Docker only, VM only, System only, Docker and VMs only, Plugins.... This could be managed via a webpage with automatically generated token but be able to be manually set or regenerated.
  • Some form of system/docker/vm overview that is easily obtained. I use Zeron's jsonvars plugin to provide me with information about the server for some of my home automation applications and monitoring. I also use SNMP and each has there own advantages.
  • Potentially make the API available for plugins to publish information.
  • Docker remote control. Ability to start/stop/restart containers would be the starting point. I am sure there would be other things that people might like to see.
  • VM remote control. Ability to start/stop/restart vm's would be the starting point. This might be a work around the physical power button problem that has been requested, for example an arduino, home automation system or even IFTTT could be used to send commands.
  • Unraid system control. Starting, stopping, powerdown, restart, start parity, spinup, spindown check etc. This should probably should be limited to non destructive system functions as to limit malicious/accidental control.
  • This may make it easier for third-parties to develop monitoring plugins or integration into automation systems.
  • There could be an option to provide some form of share control. I have recently become more Ransom-ware aware and have put in processes to try an limit damage in the event of an attack. Some of the suggestions on this forum are to change the user share from read-only to write when needed. An API could potentially change a share from read/write status of a share. The control of this could handled by the user in the form of a script or webpage etc.
  • Possibility to run command-line command/scripts. This goes against my non-destructive comment above but could be useful for anything not covered by the API. It probably should have it own API token.
  • There is the possibility that this may be able to be done as a plugin. It might be a good starting location but I still think an API should be part of the core unraid functionality.

 

 

I have noticed a few businesses/enterprises these days embracing API strategies, (example Telstra Australia) and they usually cite the collaboration, efficiency and development benefits. I have seen first-hand what having everybody developing their own backdoor/link to systems can have, especially on the inability to control system load and when trying to upgrade/change systems.

 

The development and documentation of an API is no small task but I think it might unlock some key development/features for the future of unraid.

Share this post


Link to post

Been wondering when a mobile unraid admin app would be coming out. An API fits the bill! Perhaps a built-in OpenVPN plugin or extension for a synergic experience. +++

 

 

Sent from my iPhone using Tapatalk

Share this post


Link to post

Have a look at ControlR. Available on playstore and appstore.  Should fit the bill

 

Sent from my LG-H815 using Tapatalk

 

 

Share this post


Link to post

Just installed. Nice app for management but needs improvement. I will share my thoughts under ControlR forum. Thanks!

 

 

Sent from my iPhone using Tapatalk

Share this post


Link to post

+1 on the request for a way to interface unraid to IFTTT - Then you could have Alexa/Echo or Google Home fire up a VM by voice control. I cannot use ControlR as my phone is a "managed" device and my employers have blocked app purchases....

Share this post


Link to post

There must be some sort of API already, otherwise how does Margarita , available for macOS, do this? Hadn't heard about ControlR, will check out.

Share this post


Link to post

I know this is old, but a potential explanation for the solutions out there now is that they are simply screen-scraping.

The login process is fairly simplistic using basic auth so it's not too much trouble to pull data from pages you know the structure of.

 

I haven't personally looked at the DOM for unRaids web UI, but I'm willing to wager that if no official API exists, then this must be happening.

My own take on the law of parsimony there.. 

 

I would still be very interested in an official API - I roll my own dashboard bringing together monitoring information from various restful web services and since moving to unraid, would like to continue the same.

Share this post


Link to post
On 03/03/2018 at 12:12 AM, Saldash said:

I would still be very interested in an official API - I roll my own dashboard bringing together monitoring information from various restful web services and since moving to unraid, would like to continue the same.

 

+1, I also do this,  REST API for unRAID would be great if it was available.

Share this post


Link to post

+1  I'd like to control a series of unraid servers.

Starting and stopping VMs/Dockers would be a start.

Share this post


Link to post

What types of things would people like to see supported in an API, even if a 3rd party plugin?

Share this post


Link to post

There are a few things I can think of that would be quite beneficial to have API integrations in unRAID for Docker and VMs.

 

Docker Features

  • Some sort of docker-compose.yml ingestion would be nice.
  • Start/stop/restart/edit/status/check for update/update containers

VM Features

  • Create/Delete VMs/Disks
  • Start/Stop/Restart/Status/Edit VMs
  • ARP-Scan/Ping to get interface addresses for VMs

This would allow us to automate VM creation and subsequent automation of the VM configuration post creation. Someone could easily tie in a set of curl requests into an Ansible module for unRAID, which would increase exposure for unRAID as well. 

Share this post


Link to post

+1 for an official API but it does NOT need to be a web based interface, the underlying individual software functions can easily use any suitable programming language.

I'd love to see unRAID move to a completely open source support model, similar to how CentOS compares to RHEL, then I'd willingly contribute more time to the product and pay for a reasonable yearly support subscription. Perhaps there are other professional developers and testers out there that feel the same way? If so, maybe a crowdfunding effort to kick-start an official open unRAID fork is a viable option, as long as Limetech formally approve of course, as owners of the brand. 

Share this post


Link to post

I'm new to Unraid, I quite like it and will continue using it, however the lack of an API did surprise me I have to say.

 

Would be highly welcome if this could be officially added.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.