- any headless Linux server
- Blender v2.79 or v2.80 - v2.93 (from package manager or blender.org)
- latest version of CrowdRender addon
- optional: GPU drivers for GPU-rendering
$ blender -b --python-console
(InteractiveConsole)
>>> import bpy
>>> bpy.ops.wm.addon_install(overwrite=True, filepath="/path/to/folder/addon.zip")
>>> bpy.ops.wm.addon_enable(module='crowdrender')
>>> bpy.ops.wm.save_userpref()
>>> exit()
$ blender -b --python-console
(InteractiveConsole)
>>> import bpy
>>> bpy.ops.preferences.addon_install(overwrite=True,filepath='/path/to/addon.zip')
>>> bpy.ops.preferences.addon_enable(module='crowdrender')
>>> bpy.ops.wm.save_userpref()
>>> exit()
$ blender -noaudio -b --python ~/.config/blender/2.79/scripts/addons/crowdrender/src/bl_2_79/serv_int_start.py -- -t "server_int_proc"
Crowd Render Server Interface Process ready
for blender v2.80 you will need to change the path to serv_int_start.py
accordingly
$ blender -noaudio -b --python ~/.config/blender/2.79/scripts/addons/crowdrender/src/py_3_5_3/serv_int_start.py -- -t "server_int_proc"
$ blender -noaudio -b --python ~/.config/blender/2.80/scripts/addons/crowdrender/src/py_3_7/serv_int_start.py -- -t "server_int_proc"
$ blender -noaudio -b --python ~/.config/blender/2.80/scripts/addons/crowdrender/src/cr/serv_int_start.py -- -t "server_int_proc"
now it should show the IP address of your server and you should be able to connect to the server via any client running in the same network
-p false
- if you're using a virtual machine from a cloud provider, you may not want to permanently store it in your crowdrender account as if you do, each time you use a vm from a cloud provider, you'll get a different vm and they'll start to pile up in your account.-ak
- called the access key, if you setup multiple vm's on your own servers, best give them each a unique access key. This can be literally anything, but its important if you're using containerisation or vms on your own hardware since if you do, chances are the hardware id of those vm's containers could be the same, which totally prevents you from connecting to more than on of them at once, defeating the purpose of using our software.-ct
- authorisation token of your Crowdrender cloud account. Using this allows the vm's / containers to post to your cloud account on our servers when they are alive. This means you'll actually be able to see which of them are alive and able to be used and which are offline (or just not posting cause they're not logged in).
you can run the process in the background by using screen
and detatch it with Ctrl + a + d
$ screen blender -noaudio -b [...]
(Blender 2.80)
You create a unit /etc/systemd/system/crowdrender.service
[Unit]
Description=CrowdRender service
After=network.target
[Service]
Type=simple
ExecStart=/path/to/blender -noaudio -b --python /home/example/.config/blender/2.80/scripts/addons/crowdrender/src/py_3_7/serv_int_start.py -- -t "server_int_proc"
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
for Blender 2.79/2.81 etc. you need to change the path to the addon in ExecStart
To start the demon you run:
systemctl start crowdrender.service
To start at boot you enable it:
systemctl enable crowdrender.service
I am attempting to add a second node but I am not having much luck. The two nodes are in vms running ubuntu on two separate servers. I can get them both to work individually, but I cannot get them to work at the same time because I am not using that access key. I added -ak brug to the end of one of the run commands (same as quoted) and -ak bruh to the end of the other. Blender starts and runs like usual on the servers, saying "crowd render server interface process ready". I now open up the blender client and try to connect to these servers with crowd render, but I get the error (on client) "; WARNING ; CRMain.connect_node_failed;couldn't connect to :r710 at endpoint 192.168.0.214". I see no place to enter an access key, am I missing something?
edit:
did some testing and found that if I add -ak "$uuidgen" I get the same result as I do when there is no -ak argument rather than the client not being able to connect to the nodes at all.