Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

bobbintb

Members
  • Joined

  • Last visited

Everything posted by bobbintb

  1. Support thread for uup-dumper Docker container uup-dumper automates the process of creating a Windows 11 ISO. It does this using the API from uupdump.net. There are 4 base editions of Windows 11. Additional editions require their respective base editions as listed below. Set the variable for the editions you want available for install on your ISO. If a required base edition is not set to YES, it will automatically be included in the image anyway, despite how it is reflected in the form. Set your options and start the container. The ISO will be built and placed in the output folder. The container will shutdown once it is complete. Only Windows 11 and English are supported at the moment. Windows Home Windows Home Single Language Windows Home N Windows Pro Windows Pro for Workstations Windows Pro Education Windows Education Windows Enterprise Windows Enterprise multi-session / Virtual Desktops Windows IoT Enterprise Windows IoT Enterprise Subscription Windows Pro N Windows Pro N for Workstations Windows Pro Education N Windows Education N Windows Enterprise N
  2. I think it's better to describe what I observed rather than try and describe the potential bug. I have a Windows 11 VM that uses an m.2 drive that is passed-through. I bought another drive to use with another VM for testing. I added heatsinks and because my motherboard has a capacitor in the way, the first drive no longer fits in the same m.2 slot with the heatsink on, so I swapped it was an m.2 SATA controller. When I booted up, I set both m.2 drives to be passed through on the System Devices page and rebooted. I had some issues with drives being disabled and on standby and eventually found out the SATA controller was being passed to the VM. Earlier when I checked the System Devices page to passthrough the drives, I did not check to make sure the SATA controller was NOT passed through. It should not be but it is now in the m.2 slot where the first drive used to be so that makes sense. However, after I set the drive to be passed through and rebooted, I went to the VMs to assign the drives. The VMs were previously existing, one had the original passed-through drive, and the other was using a disk image. So I was now setting them both to use a passed-through drive. This is where the bug comes in because neither VM template showed the SATA controller under "Other PCI Devices" at the time I assigned the drives. I also set the boot priority for the passed-through drive to 1 and it gave me an error saying there is already a device with a boot priority of 1. I checked the template, even using find to look for "boot" and there was no device in the template with a boot priority of 1. I think the SATA controller was not showing up in the template for some reason. Now there are a few things I am not certain about because I rebooted a few times during my troubleshooting. As I mentioned, I am not sure if the SATA controller was set to be passed through after I installed the new hardware. It should not be, but because it now resides in the slot where the drive was set to be passthrough, it seems to have caused an issue. I am 95% certain that the SATA controller was not showing up in the edit VM template for either of the VMs at the time I was reconfiguring the drives. For one, I'm pretty sure it would have stuck out because there was only 1 device listed previously and I think I would have noticed it is there were 3 when I was expecting 2, especially if it was checked. For another, there's the fact that it complained about the boot order that was not reflected in the template. Currently, one VM shows both the passed through drives under "Other PCI Devices" and the other additionally shows the SATA controller. I check and the SATA controller is not set to be passed through. I'm not sure exactly what is going on, but it seems to have caused some sort of inconsistency in the UI.
  3. OMG, how did I miss that?! Actually, now that I look at it, there might be a UI bug. I added a new m.2 drive and a heatsink to the other m.2 drive. Because my stupid motherboard has a big fat capacitor in the way of the m.2 slot, I had to swap it with a SATA controller because the drive no longer fits with the heatsink. The SATA controller is now were the passed-through drive used to be. I did check the hardware and made sure both drive controllers were passthrough but I did not check to see if the SATA controller was passed through. Now I have two VMs, each using a passed-through m.2 drive. I don't recall which VM it was, but when I was making sure the correct m.2 drive controller was assigned to the correct VM, I also made sure the boot order was set to 1 but surprisingly, it gave me an error saying there was already another device with the boot order set to 1. I checked the form and there wasn't, even searched for "boot" to make sure. So I think the SATA controller was there and the form was just not showing it. I'm positive there was only the two drives showing in the "other devices". Going back to the VMs, one shows both drive controllers under "other devices" and the other additionally shows the SATA controller. I checked and the SATA controller is not configured to be passed through. But I'm just glad it isn't bad news.
  4. Well, the rebuild finished and shortly after, the disk were disabled again and a few others went on standby. I made sure and grabbed the diagnostics first. I'm not sure how to unmark this as resolved. tower-diagnostics-20250109-0924.zip
  5. That's what I thought. Shoot, should have saved it before rebooting but I just figured I knocked a cable.
  6. I had a regularly scheduled parity check. I had to add another m.2 drive so once it was finished I installed it. I don't recall seeing any errors once I started it back up but I just did a quick glance. This morning, I noticed some disks were disabled and some in standby. I shut it down, checked the cables and such. There are no disks in standby but I still have some disks disabled. The parity check was fine. I'm not sure what the issue is. I've included my diagnostics. tower-diagnostics-20250108-1007.zip
  7. I have a docker container that I need to run as privileged (at least for the time being) but I don't want it to be able to access the UnRAID USB drive that the host boots from. I am having trouble figuring out if I can do that. It looks like I can restrict the container with the cgroup but I keep getting permission denied and really, I don't feel comfortable screwing with it because I don't understand it enough. Any pointers on how I can accomplish this?
  8. I'm conflicted. I agree but it seems to fulfill a purpose for some. I have used it myself when doing dev work, though now I mostly use different methods. I doubt most people use it for development so I wonder exactly what others use it for that isn't suited for plugins and docker containers. I don't know. There just seems to something missing that this plugin helps alleviate, that doesn't fit well with the current plugin/docker model. If that can be addressed, then maybe this can die.
  9. I've been using ASTER for a bit. It's pretty good but there are occasional issues. I'm wondering if anyone here has tried Windows Enterprise multi-session on UnRAID. I want to try it but can't really commit to it. Can anyone share their experience?
  10. I think the main thing was I'm not familiar with Markdown and didn't realize the indentation was causing an issue or that it had changed slightly with the copy and paste.
  11. Thanks all, I figured it out, I think. I think it had something to do with the spaces and tabs. I think maybe my IDE automatically changed the whitespace or something. I don't know much about how PHP handles whitespace so I should look into it.
  12. I was dissecting some of the webui *.page files to copy some UI elements for my plugin. I reduced the `ShareEdit.page` file to this: Menu="Share:1" Title="Share Settings" Tag="share-alt-square" --- <? $width = [123,300]; ?> <form markdown="1" name="share_edit" method="POST" action="/update.htm" target="progressFrame" onsubmit="return prepareEdit()"<?=$name?:">"?> <div markdown="1" class="shade-<?=$display['theme']?>"> _(Included disk(s))_: : <select id="s1" name="shareInclude1" multiple> <?foreach ($shares as $list):?> <?=mk_option("", $list['name'], compress($list['name']))?> <?endforeach;?> </select> :share_edit_included_disks_help: _(Excluded disk(s))_: : <select id="s2" name="shareExclude1" multiple> <?foreach ($shares as $list):?> <?=mk_option("", $list['name'], compress($list['name']))?> <?endforeach;?> </select> :share_edit_excluded_disks_help: </div> &nbsp; : <input type="button" value="_(Done)_" onclick="done()"> </form> <script> function initializeDropdown(selector, emptyText, width, firstItemChecksAll = false) { try { $(selector).dropdownchecklist({ emptyText: emptyText, width: width, explicitClose: "..._(close)_", firstItemChecksAll: firstItemChecksAll }); } catch (e) { console.error(`Error initializing ${selector}: ` + e.message); } } function destroyDropdownIfExists(selector) { try { $(selector).dropdownchecklist('destroy'); } catch (e) { if (e.message.includes('prior to initialization')) { console.log(`${selector} not initialized, skipping destroy.`); } else { console.error(`Error destroying ${selector}: ` + e.message); } } } function readShare() { /* Declare variables at the function scope */ var name, data, disk, include, exclude, i, j; name = $('select[name="readshare"]').val(); initDropdown(true); } /* Remove characters not allowed in share name. */ function checkName(name) { /* Declare variables at the function scope */ var isValidName; isValidName = /^[A-Za-z0-9-_.: ]*$/.test(name); if (isValidName) { $('#zfs-name').hide(); } else { $('#zfs-name').show(); } } $(function() { initializeDropdown('#s1', "_(Select shares to monitor...)_", <?=$width[1]?>); initializeDropdown('#s2', "_(None)_", <?=$width[1]?>); checkName($('#shareName').val()); }); </script> I copied that, changed the top three lines accordingly for my plugin, and saved it in my plugin folder with a different name. It shows the literal text: Included disk(s): : <select id="s1" name="shareInclude1" multiple> <?foreach ($shares as $list):?> <?=mk_option("", $list['name'], compress($list['name']))?> <?endforeach;?> </select> :share_edit_included_disks_help: Excluded disk(s): : <select id="s2" name="shareExclude1" multiple> <?foreach ($shares as $list):?> <?=mk_option("", $list['name'], compress($list['name']))?> <?endforeach;?> </select> :share_edit_excluded_disks_help: Here is a visual comparison: I've had similar issue before but worked around them. There must be something I am missing or don't understand about the plugin system because I can't make sense of it. As far as my understanding goes, I don't see why the same code is being interpreted differently. Can someone enlighten me?
  13. I started something but it didn't work entirely correctly. You have to specify the increments on the slider. The lower end of the dropdown has smaller increments and I haven't figured out how to do that with a slider. I'm still pretty new at web development and that part took me a long while.
  14. My system has a lot of RAM and when creating or editing a VM the dropdown to select the initial and maximum RAM is very cumbersome because there are a lot of options. Additionally, they are in MB, which makes it difficult to determine what the values are. I think a slider using GB would be better. Something like this:
  15. For some background on my issue, I'm working out some USB controller issues on my motherboard that will sometimes screw up my unRAID flash drive. The other day my config folder turned into a file (yeah, weird, I know) so I had to restore from a backup. Unfortunately, the most recent USB backup was about 8 months old. I should know better but this USB thing has been a LONG existing frustration and I got discombobulated between all the hair pulling and thought it was working. Anyway, I am trying to restore my VM but Windows keeps crashing with an error about the bios. I assume it is related to TPM. I have Windows 11 and an NVMe drive passed through. I don't think the template/XML is the issue as I am very capable as far as that goes. I'm not as familiar with the other aspects of how it works. I know there is a file for TPM but I don't know where it is and it's probably lost if it was in the config folder. I think there is also some sort of NVMe cache or metadata file. So apart from the XML file, what is needed to get this working? TLDR: My stupid USB controller borked the config folder on my USB, Windows 11 is giving me a BSOD about the BIOS, so apart from the VM XML template, what else do I need to restore to fix the TPM and whatever else is causing the issue?
  16. Ah, I thought I was the only one! Glad it's not just me.
  17. Really? To each their own but I feel the release feature is more convenient. Well, maybe that's not the right word. The file tree is more convenient in the sense that it makes some things quicker and easier but I feel you lose a lot that way. I find management and change tracking more difficult because I have to sift through commits. The release, on the other hand, is a snapshot in time and, for me at least, just easier to conceptualize as a known verified reference point. Then you can always narrow your scope by sifting through releases. Especially for binaries, looking for an older version in the commits is a pain, as is keeping copies of every version in the file tree. I'm curious, what about it do you find more convenient? I'm really just trying to assess if I just have a different preference or if there is something I am overlooking that would change my preference or make things easier.
  18. I noticed plugins that are hosted on Github all point to the "raw" link within the repo and nobody ever uses the release function in Github. I prefer to add artifacts as a release and not keeping them in the repo. Is it just a convention that someone started and everyone followed?
  19. I know on the user side there are mechanisms to avoid port conflicts in Docker containers but is there anything for developers? What I mean by that is is there some kind of list or registry of Docker ports used by templates in Community Apps? If I make a Docker container and submit it to be included in Community Apps, I would like the default port to not already be in use by some other app available in Community Apps. I know unRaid will warn the user when installing but I'm just wondering if there is anything in place for developers to pre-empt it.
  20. Ah, ok. Got it now. Thanks everyone.
  21. I don't follow. What HTTML do you mean? If I remove the html tags, it displays the code as literal text.
  22. Menu="Utilities" Title="Fan Auto Control" Icon="dynamix.system.autofan.png" --- <!doctype html> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <script type="text/javascript" src="https://raw.githubusercontent.com/anhr/resizer/master/Common.js"></script> <script type="text/javascript" src="https://raw.githubusercontent.com/anhr/resizer/master/resizer.js"></script> <style> .element { border: 1px solid #999999; border-radius: 4px; margin: 5px; padding: 5px; } </style> <script type="text/javascript"> function onresize() { var element1 = document.getElementById("element1"); var element2 = document.getElementById("element2"); var element3 = document.getElementById("element3"); var ResizerY = document.getElementById("resizerY"); ResizerY.style.top = element3.offsetTop - 15 + "px"; var topElements = document.getElementById("topElements"); topElements.style.height = ResizerY.offsetTop - 20 + "px"; var height = topElements.clientHeight - 32; if (height <?='<'?> 0) height = 0; height += 'px'; element1.style.height = height; element2.style.height = height; } function resizeX(x) { var element2 = document.getElementById("element2"); element2.style.width = element2.parentElement.clientWidth + document.getElementById('rezizeArea').offsetLeft - x + 'px'; } function resizeY(y) { var element3 = document.getElementById("element3"); var height = element3.parentElement.clientHeight + document.getElementById('rezizeArea').offsetTop - y ; if ((height + 100) > element3.parentElement.clientHeight) return; element3.style.height = height + 'px'; onresize(); } var emailSubject = "Resizer example error"; </script> </head> <body> <div id="rezizeArea" style="width:1000px; height:250px; overflow:auto; position: relative;" class="element"> <div id="topElements" class="element" style="overflow:auto; position:absolute; left: 0; top: 0; right:0;"> <div id="element2" class="element" style="width: 30%; height:10px; float: right; position: relative;"> Element 2 <div id="resizerXY" style="width: 10px; height: 10px; background: blue; position:absolute; left: 0; bottom: 0;"></div> <script type="text/javascript"> resizerXY("resizerXY", function (e) { resizeX(e.pageX + 10); resizeY(e.pageY + 50); }); </script> </div> <div id="resizerX" style="width: 10px; height:100%; background: red; float: right;"></div> <script type="text/javascript"> resizerX("resizerX", function (e) { resizeX(e.pageX + 25); }); </script> <div id="element1" class="element" style="height:10px; overflow:auto;">Element 1</div> </div> <div id="resizerY" style="height:10px; position:absolute; left: 0; right:0; background: green;"></div> <script type="text/javascript"> resizerY("resizerY", function (e) { resizeY(e.pageY + 25); }); </script> <div id="element3" class="element" style="height:100px; position:absolute; left: 0; bottom: 0; right:0;">Element 3</div> </div> <script type="text/javascript"> onresize(); </script> </body> </html> Line 29 is the problem area.
  23. I am working on a plugin. I have some HTML in the page file and some Javascript between some `script` tags. PHP converts `if (height < 0)` to `if (height &lt; 0)` for some reason and it breaks things. If I use PHP tags and echo it, it will work but that's really a work around. Any idea why this is happening and how to fix it? The page file doesn't even contain any PHP, it's strictly HTML.
  24. I've been having lots of USB issues since I upgraded my hardware and I'm just now realizing there has been a longstanding issue with Ryzen and USB. I'm starting to wonder how many USB issues on this forum are related to that.
  25. I know I'm a little late with the reply but there are two ways to do that. As mentioned, qemu/kvm can emulate a USB device. You can also do it natively in Linux but it has to be enabled in the kernel and that would require recompiling the kernel. But there are better ways to accomplish what you were trying to do that have been mentioned.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.