Jump to content
LaunchBox Community Forums

Recommended Posts

Posted

Hello! Drawing from inspiration from https://forums.launchbox-app.com/topic/56154-running-launchbox-and-big-box-on-linux/, I have created a Docker image for running LaunchBox on my Unraid server!

Why do this? To answer this, I should first explain my existing setup:

  • BigBox on a dedicated Windows PC in my arcade cabinet for launching games
  • LaunchBox on a separate standalone Windows PC for managing my game library
  • An Unraid server with shares for ROMs and a backup of my LaunchBox installation
  • Scripts for performing a 3-way sync of ROMs and my LaunchBox installation between the two PCs and the Unraid server

The primary reason for syncing LaunchBox to my standalone Windows PC is so that I can manage my game library, update artwork assets, etc. from my desk instead of having to do this at my arcade cabinet. I also like to keep my Unraid server's backup of my LaunchBox installation up to date so that it is the canonical source of truth for my LaunchBox library. Unfortunately, this means that my workflow is usually:

  1. Update LaunchBox library at my standalone Windows PC
  2. Sync LaunchBox from the standalone Windows PC to my Unraid server
  3. Sync LaunchBox from my Unraid server to my arcade PC

Given that I rarely use LaunchBox on my standalone Windows PC for actually launching games, I wanted to be able to simply run LaunchBox directly on my Unraid server so that I could completely eliminate a whole sync operation in my workflow. This led me to create docker-launchbox, a Docker image for running LaunchBox in a container on my Unraid server via Wine!

How does this work? The docker-launchbox image is based on linuxserver/docker-baseimage-selkies which is a base image for running Linux-based desktop applications in a Docker container and presenting them via a web-based interface using Selkies. This provides a responsive, low-latency interface that is performant enough to actually stream games through a web browser.

But, LaunchBox is a Windows app, not a Linux app. How can this even work? Well, as I mentioned at the start, I was inspired to attempt to stitch this entire workflow together using Wine as was explored in detail in this thread. Although I was able to use the information in that thread to get this up and running relatively easily, there were many issues I encountered:

  • Closing any window in LaunchBox (the loading/splash screen, the "About" dialog, etc.) caused the entire app to hang for 60 seconds seemingly related to issues with uiautomationcore.dll
  • The standard Windows folder picker dialog had issues that sometimes resulted in the entire app hanging
  • Various issues with exceptions not being handled gracefully when crossing managed vs. unmanaged boundaries (e.g. ImageDupeGrouper)
  • An incomplete implementation in Wine for windows.storage.applicationdata.dll

To work around these issues, I spent time debugging the Wine source code directly and put together several patches (some more hacky than others) found here. I may spend some more time refining these fixes to see if they may be made to be more general purpose and submit them upstream to the WineHQ project, but in the meantime, I have bundled fixed DLLs in the Docker image.

I plan to continue to refine this Docker image as time permits, especially since it now will greatly simplify my workflow. I can now just open a browser on any machine on my home network and manage my LaunchBox library hosted directly on my Unraid server! As a bonus, I have found that I can actually use LaunchBox to play games using MAME through my browser with this Docker image as well! I have not tested this capability with other emulators yet as playing games through this was never my primary use case, so YMMV.

I'd be glad to hear if anyone else finds this project useful or has any feedback on potential improvements or enhancements. Once I feel a little more comfortable with the overall stability of this image, I plan on submitting a template to the Unraid community apps repository so that other Unraid users can directly install this from there. Until then, the Docker container will need to be added from Docker Hub manually with the ports and volumes mapped as described in the documentation.

-Justin

Screenshot From 2026-04-26 22-11-58.png

  • Like 1
  • Game On 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

×
×
  • Create New...