Docker Usage
Node Containers
Docker images are available via ghcr.io/madmax43v3r/mmx-node
in 2 build flavours:
latest
: Built from the most recent release versionedge
: Built from the most recent commit to the master branch
The following tag suffixes are also available for GPU vendor specific builds:
-amd
-intel
-nvidia
Additionally, each semver tag produces tagged images:
<major>.<minor>.<patch>
<major>.<minor>
<major>
- each with their respective suffix (eg.
1.1.9-amd
)
Each image provides a volume for /data
which you can override with your own volume or a mapped path to customize the storage location of the node data.
CPU only
A compose.yml
for the cpu only node can look like this:
services: node: image: ghcr.io/madmax43v3r/mmx-node:latest restart: unless-stopped volumes: - /some/path/to/mmx-node:/data ports: - "11337:11337" # Node p2p port. Forward your router to this port for peers to be able to connect - "127.0.0.1:11380:11380" # API port. Set host to 0.0.0.0 in /data/config/local/HttpServer.json for webUI/API access #- "11333:11333" # Harvester port. Uncomment to allow remote harvesters to connect to the farmer #- "11330:11330" # Farmer port. Uncomment to allow remote farmers to connect to the node environment: MMX_ALLOW_REMOTE: 'false' # Set to true to allow connections from remote harvesters/farmers MMX_HARVESTER_ENABLED: 'true' # Set to false to disable local harvester MMX_FARMER_ENABLED: 'true' # Set to false to disable local farmer
AMD GPU
For amd gpu support please see the following compose.yml
:
services: node: image: ghcr.io/madmax43v3r/mmx-node:latest-amd restart: unless-stopped devices: - /dev/dri:/dev/dri - /dev/kfd:/dev/kfd volumes: - /some/path/to/mmx-node:/data ports: - "11337:11337" # Node p2p port. Forward your router to this port for peers to be able to connect - "127.0.0.1:11380:11380" # API port. Set host to 0.0.0.0 in /data/config/local/HttpServer.json for webUI/API access #- "11333:11333" # Harvester port. Uncomment to allow remote harvesters to connect to the farmer #- "11330:11330" # Farmer port. Uncomment to allow remote farmers to connect to the node environment: MMX_ALLOW_REMOTE: 'false' # Set to true to allow connections from remote harvesters/farmers MMX_HARVESTER_ENABLED: 'true' # Set to false to disable local harvester MMX_FARMER_ENABLED: 'true' # Set to false to disable local farmer
Intel GPU
For intel gpu support please see the following compose.yml
:
services: node: image: ghcr.io/madmax43v3r/mmx-node:latest-intel restart: unless-stopped devices: - /dev/dri/renderD128:/dev/dri/renderD128 volumes: - /some/path/to/mmx-node:/data ports: - "11337:11337" # Node p2p port. Forward your router to this port for peers to be able to connect - "127.0.0.1:11380:11380" # API port. Set host to 0.0.0.0 in /data/config/local/HttpServer.json for webUI/API access #- "11333:11333" # Harvester port. Uncomment to allow remote harvesters to connect to the farmer #- "11330:11330" # Farmer port. Uncomment to allow remote farmers to connect to the node environment: MMX_ALLOW_REMOTE: 'false' # Set to true to allow connections from remote harvesters/farmers MMX_HARVESTER_ENABLED: 'true' # Set to false to disable local harvester MMX_FARMER_ENABLED: 'true' # Set to false to disable local farmer
Note: Intel ARC support requires a host system running Linux Kernel 6.3 or above
NVIDIA GPU
For nvidia gpu support please see the following compose.yml
:
services: node: image: ghcr.io/madmax43v3r/mmx-node:latest-nvidia restart: unless-stopped runtime: nvidia volumes: - /some/path/to/mmx-node:/data ports: - "11337:11337" # Node p2p port. Forward your router to this port for peers to be able to connect - "127.0.0.1:11380:11380" # API port. Set host to 0.0.0.0 in /data/config/local/HttpServer.json for webUI/API access #- "11333:11333" # Harvester port. Uncomment to allow remote harvesters to connect to the farmer #- "11330:11330" # Farmer port. Uncomment to allow remote farmers to connect to the node environment: MMX_ALLOW_REMOTE: 'false' # Set to true to allow connections from remote harvesters/farmers MMX_HARVESTER_ENABLED: 'true' # Set to false to disable local harvester MMX_FARMER_ENABLED: 'true' # Set to false to disable local farmer
Note: for nvidia you also need the NVIDIA Container Toolkit
installed on the host, for more info please see: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
Remote Services
- Running a remote harvester or farmer can be done by overwriting the
CMD
of the Dockerfile, for example like this:
Remote Harvester
- Set
MMX_ALLOW_REMOTE
totrue
in the node or farmer compose.yml - Make sure port 11333 is uncommented/exposed in the node or farmer compose.yml
- Edit the following example with the node or farmers ip address and correct paths
services: harvester: image: ghcr.io/madmax43v3r/mmx-node:latest restart: unless-stopped command: './run_harvester.sh -n <some ip or hostname here>' volumes: - /some/path/to/mmx-node:/data - /some/path/to/disks:/disks
Remote Farmer
- Set
MMX_ALLOW_REMOTE
totrue
in the node compose.yml - To allow remote harvesters to connect to this farmer set
MMX_ALLOW_REMOTE
totrue
in the example below - Make sure port 11330 is uncommented/exposed in the node compose.yml
- Edit the following example with the node ip address and correct data path
services: farmer: image: ghcr.io/madmax43v3r/mmx-node:latest restart: unless-stopped command: './run_farmer.sh -n <some ip or hostname here>' volumes: - /some/path/to/mmx-node:/data ports: - "11333:11333" # Farmer listens on this port for remote harvester connections environment: MMX_ALLOW_REMOTE: 'false' # Set to true to allow connections from remote harvesters MMX_HARVESTER_ENABLED: 'true' # Set to false to disable local harvester