macinabox

macinabox

Docker app from SpaceInvaderOne's Repository

Overview

Macinabox downloads and installs various macOS versions as a VM on your Unraid server. With this new version, there’s no need for additional helper scripts. It will fully automate the installation of the VM, create the XML file, and select the latest q35 available on your server. All you need to do is choose the macOS version, specify the VM storage location, ISO location, and the container will handle the rest.

Usage
  1. When run will download and install selected version of macOS as a VM if not present.
  2. If selected macOS vm is already present it will check the vms xml and fix if necessary
Variables in the container

Are you fully compliant with Apple’s EULA?
Set this to "Yes" if you are running on Apple hardware. This is the only way to be EULA compliant. If not, leave it as "No" and the container will exit.

Operating System Version:
Choose the macOS version from the options below:

  • Sequoia
  • Sonoma
  • Ventura --recommend install
  • Monterey
  • Big Sur
  • Catalina
  • Mojave
  • High Sierra

Custom VM Name:
Use this if you want the VM name to differ from the OS version. Leave blank to use the OS name.

Vdisk Type:
Set the vdisk type to either raw or qcow2.

Vdisk Size:
Specify the desired size for the vdisk.

Delete and Replace OpenCore:
Select "Yes" to delete your VM's OpenCore image and replace it with a fresh one, or "No" to keep the existing one.

Default NIC Type:
Big Sur and newer default is 'virtio-net' older macos versions it is e1000-82545em. Change this to override the default NIC type for macOS versions that support it.

VM Images Location:
Set this to your VM storage location (e.g., Domains share).

ISOs Share Location:
This is where macinabox will store the install media

Appdata Location:
Specify where you want macinabox to store its appdata.

Notes

  • If you want multiple versions of the same macOS, ensure each has a unique name in the Custom VM Name box

  • In Unraid versions below 7, custom elements in the VM template will be removed if vm template edited.. Unraid, in all versions, might also change the NIC bus and slot that macOS expects. Re-run the container to fix the edited vm template after any edits.

  • The container dynamically builds the XML template during VM installation based on settings. It checks the highest QEMU version available and uses it in the template. If you downgrade Unraid, re-run Macinabox to adjust the XML accordingly.

  • You can view container activity via logs or Unraid browser notifications, if enabled.

  • Default icon for macinbox is installed with the VM.This doesnt perist over server reboots. To restore run container again. For all macOS icons (and many other systems) please install vm_custom_icons container.

Requirements

On your server make sure to have notifications enabled and docker update notifications enabled. This will allow the container to send notifications as macinabox runs.

Runtime arguments

Network
bridge
Shell
sh
Privileged
true

Template configuration

Are you fully compliant with Apple’s EULA ?Variable

Set to YES to use this container only if you are compliant with Apples EULA. To be compliant your server must be Apple Hardware (ie a Mac Pro/Mini) then the EULA states For virtualisation: “You may also install, use, and run up to two additional copies or instances of the Apple Software within virtual operating system environments on each Apple-branded computer you own or control.

Target
OKTORUN
Default
NO|YES
Value
NO
Operating System VersionVariable

Choose macOS version to instal

Target
flavour
Default
Ventura|Sequoia|Sonoma|Monterey|Big Sur|Catalina|Mojave|High Sierra
Value
Ventura
Custom VM NameVariable

Enter a different name if you want the VM to have a name other than the OS name. If left blank, the container will use the default OS name installed.

Target
CUSTOMNAME
Vdisk TypeVariable

Choose vdisk type raw or qcow2 (qcow2 takes less space)

Target
vdisktype
Default
raw|qcow2
Value
raw
vDisk SizeVariable

Select the size of your virtual disk (vDisk) in Gigabytes G

Target
vdisksize
Value
100G
Delete and replace OpencoreVariable

Set to

Target
replaceopencore
Default
no|yes
Value
no
Defualt NIC typeVariable

Override the default NIC type for macOS versions that support it. If unsupported, it reverts to a compatible version.

Target
overridenic
Default
virtio-net|e1000-82545em|virtio|vmxnet3
Value
virtio-net
CPUARGSVariable

CPU args for VM

Default
Skylake-Server,vendor=GenuineIntel,+hypervisor,+invtsc,kvm=on,+fma,+avx,+avx2,+aes,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2|Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,+rdrand,check|Penryn,vendor=GenuineIntel,+hypervisor,+invtsc,kvm=on,+fma,+avx,+avx2,+aes,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2|host,vendor=GenuineIntel,+hypervisor,+invtsc,kvm=on,+fma,+avx,+avx2,+aes,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2
Value
Skylake-Server,vendor=GenuineIntel,+hypervisor,+invtsc,kvm=on,+fma,+avx,+avx2,+aes,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2
VM Images LocationPathrw

Please choose the storage location for your VM images on the server. The default path is set to /mnt/user/domains/

Target
/domains
Default
/mnt/user/domains/
Value
/mnt/user/domains/
Isos Share LocationPathrw

Please choose the storage location for your ISO files on the server. The default path is set to /mnt/user/isos/

Target
/isos
Default
/mnt/user/isos/
Value
/mnt/user/isos/
Appdata Location:Pathrw

Please choose the storage location for your appdata The default path is set to /mnt/user/appdata/macinabox/

Target
/config
Default
/mnt/user/appdata/macinabox
Value
/mnt/user/appdata/macinabox
macinabox versionVariable
Target
WHATVERSION
Default
3
Value
5
unraid_vm_iconsPathrw
Target
/icons
Value
/usr/local/emhttp/plugins/dynamix.vm.manager/templates/images
UNRAID /usr/lib64Pathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/usr/lib64
Default
/usr/lib64
Value
/usr/lib64
unraid vm icons host locactionPathrw

Location of where Unraid stores VM icons, aloowing container to use custom macOS icon

Target
/unraid_vm_icons
Default
/usr/local/emhttp/plugins/dynamix.vm.manager/templates/images/
Value
/usr/local/emhttp/plugins/dynamix.vm.manager/templates/images/
NVRAM locationPathro

NVRAM location on host. Used so container can create a unique nvram file for the macOS VM

Target
/etc/libvirt/qemu/nvram/
Default
/etc/libvirt/qemu/nvram/
Value
/etc/libvirt/qemu/nvram/
UNRIAD DOMAIN CONFIGPathrw

UNRAID domain.cfg path. Used to find VM Default network source

Target
/vm/domain.cfg
Default
/boot/config/domain.cfg
Value
/boot/config/domain.cfg
UNRAID /usr/libPathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/usr/lib
Default
/usr/lib
Value
/usr/lib
UNRAID /lib64Pathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/lib64
Default
/lib64
Value
/lib64
UNRAID /usr/local/emhttp/webGui/scripts/Pathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/usr/local/emhttp/webGui/scripts/
Default
/usr/local/emhttp/webGui/scripts/
Value
/usr/local/emhttp/webGui/scripts/
UNRAID /usr/local/emhttp/webGui/include/Pathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/usr/local/emhttp/webGui/include/
Default
/usr/local/emhttp/webGui/include/
Value
/usr/local/emhttp/webGui/include/
UNRAID /tmp/notificationsPathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/tmp/notifications
Default
/tmp/notifications
Value
/tmp/notifications
UNRAID /boot/config/plugins/dynamix/Pathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/boot/config/plugins/dynamix/
Default
/boot/config/plugins/dynamix/
Value
/boot/config/plugins/dynamix/
LIBVIRT LocationPathrw

LIBVIRT Location on host. Used so container can define the macOS vm

Target
/var/run/libvirt
Default
/var/run/libvirt
Value
/var/run/libvirt
UNRAID /usr/binPathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/usr/bin
Value
/usr/bin
UNRAID /libPathrw

Used so container can use unraid notification system during macOS creation process

Target
/host/lib
Default
/lib
Value
/lib
UNRAID docker.sockPathrw

UNRAID docker.sock. Used so container can use docker inspect to workout true locations of mapped locations to create the xml used to define the macOS VM

Target
/var/run/docker.sock
Default
/var/run/docker.sock
Value
/var/run/docker.sock

Download Statistics

3,225,780
Total Downloads
3,036
This Month
1,797
Avg / Month

Total Downloads Over Time

Loading chart...

Details

Repository
spaceinvaderone/macinabox:latest
Last Updated2024-11-06
First Seen2019-10-25

Run Macinabox on Unraid.

Macinabox is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.