VirtualDSM on Docker: Test Synology DSM Before Buying | IT HomeLab

Want to test drive a Synology NAS before you spend $500+ on hardware? In this guide I’ll show you how to run Virtual DSM โ€” Synology’s Disk Manager software โ€” as a Docker container on an Ubuntu VM in Proxmox. By the end, you’ll have a fully functional DSM instance running in your home lab, accessible locally and remotely via Tailscale, so you can evaluate whether Synology’s the right fit for you.

๐ŸŽฅ Watch the Video Tutorial


โš ๏ธ Legal Note

Virtual DSM itself is open source and legal. However, Synology’s End User License Agreement only permits DSM to be installed on official Synology hardware. Running it in a virtual machine or Docker container violates the EULA. I’m covering this for educational and home lab evaluation purposes only. If you decide to follow along, that’s your call โ€” but please read Synology’s EULA first.
โ„น๏ธ Note: The real value here is that you can test the DSM interface, explore the app ecosystem, and answer the question “Is Synology right for me?” before committing to expensive hardware. It’s a low-risk evaluation tool, not a permanent replacement.

๐Ÿ’ก Why Virtual DSM?

Synology NAS hardware is solid but expensive. A mid-range NAS runs $500โ€“$1500+. Before you invest that much money, wouldn’t it be nice to actually use the DSM interface for a few hours and see if it fits your workflow? Virtual DSM lets you do exactly that. It’s a full Synology operating system running in a Docker container โ€” with the same File Station, Package Manager, storage pools, and admin interface as a real NAS. You can create shares, upload files, explore the app ecosystem, and decide whether you actually want to buy one. The catch: it runs inside a Docker container using QEMU and KVM, which requires your Proxmox host to pass through virtualization extensions to the VM. This guide covers how to set that up.

๐Ÿ›  What You’ll Need

  • A Proxmox host with CPU virtualization support (Intel VT-x or AMD-V)
  • An Ubuntu VM running on Proxmox with Docker and Docker Compose installed
  • Docker image: Virtual DSM (from GitHub)
  • Storage: At least 64GB of disk space for the DSM container (configurable)
  • Tailscale account (free tier, for remote access)
  • Basic familiarity with SSH, terminal commands, and Docker
๐Ÿ’ก Tip: If you haven’t set up Proxmox or an Ubuntu Docker host yet, see my earlier guides on IT HomeLab Online for the full setup walkthrough. This guide picks up from there.

๐Ÿ“‹ Step-by-Step Setup

1. Enable Nested Virtualization on Your Ubuntu VM

Virtual DSM runs KVM inside the container, which requires your Proxmox VM to pass through virtualization extensions from the physical CPU. Without this, the container will either fail to start or fall back to pure software emulation, which is painfully slow. In Proxmox:
  • Shut down your Ubuntu VM completely (not just reboot โ€” it needs to be powered off)
  • In the Proxmox web UI, click on your VM and go to Hardware
  • Select your CPU and click Edit
  • Change the CPU Type from the default to host
  • Click OK and power the VM back on
Setting the CPU type to “host” tells Proxmox to expose the physical CPU’s full feature set to the VM, including the virtualization extensions KVM needs.

2. Verify KVM Acceleration is Available

SSH into your Ubuntu VM and check that KVM is actually available:
kvm-ok
If that command isn’t found, install the CPU checker tools:
sudo apt install cpu-checker -y
Then run kvm-ok again. You should see output like:
INFO: /dev/kvm exists
INFO: Your CPU supports KVM extensions
INFO: KVM acceleration can be used
If you see those lines, you’re good to go. If not, double-check that you set the Proxmox CPU type to “host” and rebooted the VM.

3. Download Run the build.sh script

Create a directory and files from https://github.com/ithomelabonline/resources/tree/main:
mkdir /media/docker/scripts/nas/
cd  /media/docker/scripts/nas/
nano compose.yml # paste in the contents of the compose.yml from github docker/scripts -> nas
nano /media/docker/scripts/.env # update your .env file, include your tailscale auth key
nano build.sh # paste in the contents of the build.sh
sudo chmod +x build.sh # make the build script executable
./build.sh
Docker will pull the Virtual DSM image, the Tailscale image, and start both containers. This takes a minute or two. You can watch the logs with:
docker compose logs -f dsm
Wait until you see something like “DSM booted” or similar. Then move on.

4. Access Virtual DSM Remotely via Tailscale

With Tailscale running in the sidecar container, Virtual DSM is automatically available on your Tailscale network. From any device connected to Tailscale, access DSM using your Tailscale domain:

https://virtual-dsm.tailXXXX.ts.net/

Tailscale generates a certificate for you automatically, so HTTPS just works. No port forwarding, no exposing ports to the internet, completely private.

5. Set Up Your DSM Admin Account

The setup wizard will ask you to:
  • Name the NAS (e.g., “dsm”)
  • Create an administrator account (use a strong password, don’t use “admin”)
  • Configure storage (you can skip this for now)
Work through these prompts. Once complete, you’re logged into DSM and can explore.

6. Create Your First Share

To actually store files, you need to create a storage pool and then a share:
  • Go to File Station
  • Right-click and select Create โ†’ Shared Folder
  • Name it something like “shared” or “media”
  • Leave the defaults and click Next
  • Configure permissions (you can allow all users for now)
Once created, you’ll see the folder in File Station and can upload files, create subfolders, and explore the interface just like a real Synology NAS.

๐Ÿš€ What’s Next?

Now that you’ve got Virtual DSM running, you can:
  • Explore the app ecosystem โ€” Install Docker, Git, or other packages from the Package Manager
  • Test backup workflows โ€” See how Synology’s backup features work
  • Check the admin interface โ€” Get familiar with storage management, user creation, permissions
  • Evaluate media apps โ€” If you’re thinking of using Synology for Plex, Docker, or other media services, test them here first
  • Load some test data โ€” Upload files and see how File Station and sharing work in practice
Spend an afternoon with it. After a few hours, you’ll have a much better idea of whether Synology’s the right fit for your homelab.

โœ… Conclusion

Virtual DSM gives you a risk-free way to evaluate Synology’s software before you commit to expensive hardware. It’s a full DSM instance running in Docker, accessible locally and remotely via Tailscale, with all the features of a real Synology NAS. The setup is straightforward once you’ve got nested virtualization enabled โ€” the container handles the rest. Use it to explore, test, and decide whether Synology is right for you. If you like what you see, you can always buy actual Synology hardware later. If you don’t, you’ve saved yourself $500+ and learned a lot in the process. ๐Ÿ“บ Watch the full video guide: https://youtu.be/BBQ1Dg3IEbc If you found this helpful, like and subscribe to IT HomeLab Online on YouTube for more tutorials. โ˜•๏ธ Support the channel: Patreon ยท Buy Me a Coffee

Enjoyed this guide?

Subscribe to the channel for more homelab builds, Raspberry Pi projects, and AI automation tutorials.

▶ Watch on YouTube