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.

Macinabox

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. It can get various details from your server to use in the VM creation such as seeing latest q35 available on your server and make sure VM uses that. All you need to do is choose the macOS version, specify the VM storage location, ISO location, and the container will handle the rest. If you make any changes to the VM in the Unraid VM manager if you rerun the container it will fix any incorrect XML. Also if you have changed CPU core count it will check wether the VM should keep or remove the topology line to ensure the VM boots correctly.

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

Usage

If you have an older version of Macinbox on your Unraid server. You will need to remove the old macinabox

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:

  • Sonoma
  • Ventura
  • 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:
The default is virtio-net. Change this to override the default NIC type for macOS versions that support it. (note if you install a version of macOS that doesnt support virtio it will use an emulated intel nic)

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.

Isos Share Location: You only need to change if your ISO images are not in the default location /mnt/user/isos

appdata location: If you change this you will need to do the same in the macinabox help user script

For a video guide on using the new macinabox please see here ........

Install Macinabox on Unraid in a few clicks.

Find Macinabox in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Macinabox Review the template variables and paths Click Install

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.

Download Statistics

3,231,425
Total Downloads
5,645
This Month
2,593
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Explore more like this

Explore all

Details

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

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