Skip to content

Instantly share code, notes, and snippets.

@willtejeda
Forked from zocker-160/blender_cr_headless.md
Created June 17, 2020 10:35
Show Gist options
  • Save willtejeda/5c464cdeff28ec5e340844df9b0e8fa6 to your computer and use it in GitHub Desktop.
Save willtejeda/5c464cdeff28ec5e340844df9b0e8fa6 to your computer and use it in GitHub Desktop.
Setup a blender rendernode on a headless server with crowdrender addon

GUIDE: How To create a headless blender renderserver with CrowdRender addon

Requirements

  • any headless linux server
  • Blender v2.79 or v2.80/v2.81a/v2.82 (from package manager or blender.org)
  • latest version of CrowdRender addon
  • optional: GPU drivers for GPU-rendering

install and activate addon

for blender <= 2.79
$ 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()
for blender >= 2.80 (thanks to @Marcus-Zhu)
$ 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()

start server

for Crowdrender <= 0.1.6

$ 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

for Crowdrender >= 0.1.7 / Blender <= 2.79

$ blender -noaudio -b --python ~/.config/blender/2.79/scripts/addons/crowdrender/src/py_3_5_3/serv_int_start.py -- -t "server_int_proc"

for Crowdrender >= 0.1.7 / Blender >= 2.80

$ blender -noaudio -b --python ~/.config/blender/2.80/scripts/addons/crowdrender/src/py_3_7/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

you can run the process in the background by using screen and detatch it with Ctrl + a + d

$ screen blender -noaudio -b [...]

create systemd service for automatic startup and restart (thanks to @jan-thoma)

(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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment