Companion - An Android App for UNRAID


Recommended Posts

Hey 👋


This started off as a bit of a hobby project that slowly become something that I thought could be useful to others. It was an exercise for me in writing a new app from scratch and the different choices I would make, compared to having to constantly iterate on an existing (large) code base. After sharing this with some of the community in the unofficial discord channel, I was encouraged to get it into a state where it makes sense for others to use.




I've already received some great feedback as well as a number of issues and requests for new features, that I hope to add soon. I hope others will find this as useful as I do in managing your UNRAID servers.




  • Like 7
Link to comment

Just pushed a new build to Google Play after some great feedback from testers. It should hopefully already be available.


### 1.1 ###
 - [NEW] Support for self-signed certificates
 - [NEW] Improved Add Server screen
 - [NEW] Allow offline servers to be added
 - Add message to server list when no servers added
 - Fix crash if trying to add server before providing any host information
 - Fix share information populating wrongly
 - Update persisted server information when connecting
 - Fix crash restoring app
 - Fix timeout when calculating sizes of large shares

  • Like 1
Link to comment

And another quick update to resolve an important DNS rebinding issue, along with a small bucketful of fixes. I also gave larger tablets some love with some small optimisations for their screen size. The update should hopefully be available via Google Play soon:


### 1.2 ###
 - [NEW] Optimised tablet layout support
 - Display disk state correctly (spun up or down)
 - Fix issue with self-signed certificates failing DNS rebinding protection
 - Fix crash when backgrounding app after connecting to server
 - Fix pie chart when displaying more than 12 shares
 - Sort disks so that Parity drives are always first

Link to comment

Thanks @HynesJeff, I really appreciate the support! I don't suppose you could leave an (honest) review via Google Play. I'm hoping that with more feedback, the discoverability of the app will improve via Search.


As for your requests, i'd love to implement that (given time), the problem is that with the lack of a real (stable) Unraid API, the more features I add the risk I am at new updates completely breaking everything and needing to rewrite, while still trying to support older server versions - so a headache. It has been suggested that an API is on the way though, and once released I would hope to be able to quickly switch over to it unlocking the potential of additional features like the ones you suggested. My short term plan is to continue working on the core features and the application host itself to make the experience as good as possible, so it's ready for the API to quickly add lots of great new features.

  • Like 1
Link to comment


It looks great and I had a little google credit so I have bought it, I have done a feedback as the program will not run for me, once I enter the details for my server it just crashes. I should mention if I set the tower name in place of the IP it does not connect but also does not then crash when I click on add server it says it cannot connect, if I then add the server ip in place of the name it creates and I can access the server. With just the server ip in a new connection it still just crashes.


Any ideas?


A write up and review later on.



Edited by MMW
Link to comment

>With just the server ip in a new connection it still just crashes.


@MMW Sorry about this. Are you able to send me a bug report from the app? If you're at the Server List page, in the top right the "..." option includes an option "Send Bug Report". This will let you send yourself an email with app logs, which you could upload here for me to take a peak.


EDIT: I just checked the crash reporting and see a repeated attempt to add an IP address that includes a trailing space. Looks like i'm not trimming what is entered (sorry). I'll get that fixed ASAP but if that is you, hopefully you can just delete the space character at the end to let you proceed.

Edited by IanB
Link to comment

I've pushed a fix (v1.3) to Google Play to fix the crash when the IP address includes a space either at the beginning or the end. I'll probably need to do some additional validation of the input (rather than crashing) but wanted to get this fix out ASAP for you. I'm not sure how long Google is taking now, but hopefully you'll receive the update soon.

Link to comment

Sent, but yes that was it, I did not notice the trailing space seems the built in keyboard on my phone was auto filling the field. So one other quick question, the dashboard is not loading for me I just get the loading circle. Any ideas?

Link to comment

Great, thanks!


I pushed a few updates to the store over the weekend to fix the reported connection issues...


### 1.4 ###

 - Fix issue preventing dashboard loading when no cache was being used.

 - Support servers where no password is set.


### 1.3 ###

 - Fix minor clipping of cards

 - Fix crash when IP/host included additional whitespace.

Link to comment

>Better don't support them and give the user a big red warning to set a password!!!


While I think it's a terrible idea to run your server without a root password, I didn't think it was for me to try and force the user into setting one. The bug report came in and I wanted to allow the user to still access their server. That said, a red warning message to remind the user how dangerous it is might be nice. Pester them into better practices ;)

Link to comment

@IanB Keep in mind in the past we had a lots of users having their servers accessible via the internet WITHOUT a root password. Opening some ports on the router to have access to a docker, some routing misconfiguration et voila, worst case scenario. As a programer you always have to count in a user error or a misconfiguration. A big red warning dialog everytime they use the app to access the server without a password is what I would implement. And NO checkbox "never show again" 😁

Link to comment

@IanB Thanks for developing the app, I have been looking for something like this for awhile! I am trying to add my server on the add connection screen, but there either is not an accept button or I am unable to scroll down to where the button would be. For reference I am trying this on a Samsung Galaxy S8. I look forward to using the app!



Link to comment

@akeener - Wow, great catch, i'm not sure how I didn't notice that. I've made a fix and currently waiting for Google Play to make it available (seems that updates are taking a while). If you want to try out an APK to side load, please send me an email at "liquidsoftwareuk at" and i'll send you the build.

Link to comment
19 hours ago, akeener said:

@IanB Thanks for developing the app, I have been looking for something like this for awhile! I am trying to add my server on the add connection screen, but there either is not an accept button or I am unable to scroll down to where the button would be. For reference I am trying this on a Samsung Galaxy S8. I look forward to using the app!

Same problem with Samsung Galaxy S7. Working great on my Samsung Galaxy Tab A (8", 2019)

Link to comment

It's not the prettiest fix, but I was able to get v1.5 out via Google Play (should be available soon) which resolves the issue. I'll look to improve in the future, but just wanted to get it fully functional for people as soon as possible.


Thanks again for raising, and please let me know if you have any further issues/feedback.

Link to comment

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.

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.