
Self-hosting macOS the easy way
Yulei ChenDockur macOS lets you run macOS inside a Docker container using QEMU virtualization. You get a full macOS desktop accessible through your browser via noVNC. It is great for testing, CI/CD pipelines, or running macOS apps without owning Apple hardware.
Sliplane is a managed container platform that handles server setup, SSL, and infrastructure for you. With one-click deployment, you can get a containerized macOS instance running in minutes.
Note: The preset runs macOS using software emulation (without KVM acceleration). This works on any server but performance will be slower than hardware-accelerated virtualization. If your server supports KVM, you can remove the
KVM=Nenvironment variable to enable acceleration.
Prerequisites
Before deploying, ensure you have a Sliplane account (free trial available).
Quick start
Sliplane provides one-click deployment with presets.
- Click the deploy button above
- Select a project
- Select a server (If you just signed up you get a 48-hour free trial server)
- Click Deploy!
About the preset
The one-click deploy above uses Sliplane's macOS preset. Here is what it includes:
- dockurr/macos Docker image with QEMU virtualization
- Specific version tag (
2.30) for stability - Persistent storage mounted to
/storagefor the virtual disk image - macOS Sequoia (version 15) by default
- Software emulation mode (
KVM=N) for broad server compatibility - noVNC web interface on port 8006 for browser-based access
Next steps
Once the container is running, open the domain Sliplane assigned (e.g. macos-xxxx.sliplane.app) in your browser. You will see the macOS installation or desktop through the noVNC web interface.
Choosing a macOS version
The VERSION environment variable controls which macOS release gets installed. Change it in your service settings to pick a different version:
| Value | macOS Version |
|---|---|
15 | macOS Sequoia (default) |
14 | macOS Sonoma |
13 | macOS Ventura |
12 | macOS Monterey |
11 | macOS Big Sur |
After changing the version, redeploy the service. The installer will download and set up the selected release. Keep in mind that the initial installation takes a while because it downloads the full macOS image.
Storage
The /storage volume holds the virtual disk image. This is where macOS stores everything: the OS itself, apps, and user data. Make sure you have enough disk space on your server. A fresh macOS install needs at least 30 GB, and you will want room for apps and files on top of that.
KVM acceleration
The preset uses software emulation (KVM=N) by default so it works on any Sliplane server. If your server supports KVM (dedicated vCPU plans with nested virtualization), remove the KVM=N environment variable to enable hardware acceleration. This gives a significant performance boost.
Troubleshooting
If the container fails to start or is very slow, check the logs. Common issues include:
- Slow performance: Software emulation is significantly slower than KVM-accelerated virtualization. For better performance, use a dedicated vCPU server and remove
KVM=N. - Installation hangs: The initial macOS download and install can take 15-30 minutes (longer without KVM) depending on your server's internet speed. Be patient on the first boot.
For more details, check the dockur/macos GitHub repository.
Cost comparison
You can also self-host macOS containers with other cloud providers. Here is a pricing comparison for the most common ones:
| Provider | vCPU | RAM | Disk | Monthly Cost | Note |
|---|---|---|---|---|---|
| Sliplane | 2 | 2 GB | 40 GB | €9 (~$10.65) | Flat rate, 1 TB bandwidth, SSL included |
| Fly.io | 2 | 2 GB | 40 GB | ~$18 | Disk and bandwidth billed separately |
| Render | 1 | 2 GB | 40 GB | ~$35 | 100 GB bandwidth, Disk billed separately |
| Railway | 2 | 2 GB | 40 GB | ~$67 + $20 plan | Pro plan floor, usage-based, bandwidth billed separately |
Click here to see how these numbers were calculated.
(Assuming an always-on instance running 730 hrs/month)
- Sliplane: flat €9/month for the Base server. Unlimited services on the same server, 1 TB egress and SSL included.
- Fly.io:
shared-cpu-2x2 GB = $11.83/mo + 40 GB volume × $0.15/GB = $6 -> ~$17.83/mo. Egress billed separately ($0.02/GB in EU). - Render: closest match is Standard ($25, 1 vCPU / 2 GB) plus 40 GB disk × $0.25/GB = $10 -> ~$35/mo. Stepping up to Pro (2 vCPU / 4 GB) costs $85/mo + disk.
- Railway (Pro plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/mo compute, plus the $20/mo Pro plan floor and $0.05/GB egress.
Bandwidth costs can add up fast on usage-based providers. Use our bandwidth cost comparison tool to see what your egress would cost on each platform.
FAQ
What can I use a containerized macOS for?
Common use cases include iOS/macOS app development and testing, running CI/CD pipelines that need a macOS environment, testing Safari-specific web behavior, and accessing macOS-only software without owning a Mac. It is also useful for running Xcode builds in automated workflows.
How do I change the disk size for the macOS VM?
The virtual disk size is controlled by the DISK_SIZE environment variable. Add it to your service settings with a value like 64G or 128G. The default is usually sufficient for a basic install, but you may want more space if you plan to install large applications or store files.
How do I update the macOS container?
Change the image tag in your service settings on Sliplane and redeploy. Check Docker Hub for the latest stable version. Your data on the /storage volume is preserved across redeployments.
Are there alternatives to running macOS in Docker?
Yes. You can rent a dedicated Mac Mini from providers like MacStadium or AWS EC2 Mac instances, but those start at $100+/month. For simple testing, BrowserStack or LambdaTest offer browser-based macOS access. If you only need a macOS-like desktop experience, Asahi Linux runs natively on Apple Silicon.
Does this comply with Apple's licensing terms?
Apple's macOS EULA restricts running macOS on non-Apple hardware. The dockur/macos project uses Apple's official installation media, but running it on non-Apple servers is a legal gray area. Make sure you understand and accept the licensing implications before deploying.