Skip to content

Installation & Setup

Requirements

  • Python 3.7+
  • Luigi (for workflow execution)
  • Jinja2 (for template processing)
  • FreeCAD (optional, for GUI workbench)

Quick Install

Clone the repository and install:

git clone https://github.com/HermesFlow/Hermes.git
cd Hermes
pip install -e .

Docker-Based Installation (with FreeCAD)

For the full environment including FreeCAD GUI support, use the provided install script:

chmod +x install.sh
./install.sh -o /path/to/destination

Install Script Options

Option Description Default
-o destination Installation directory (required)
-b hermes_branch Hermes branch to use master
-i docker_id Docker image ID ee7e3ecee4ca
-d docker_digest Docker image digest (see script)
-f freecad_hash FreeCAD source hash 0.18-1194-g5a352ea63
-p diff_file FreeCAD source patch file (auto-detected)
-v Debug mode off

The install script:

  1. Downloads and installs the Docker image from FreeCAD Docker
  2. Sets up Docker launch scripts (docker.sh, docker_dev.sh)
  3. Downloads required repositories (HermesFlow/pyHermes, HermesFlow/JsonExample, FreeCAD)
  4. Sets up the Python environment in dot_local directory

Verifying the Installation

hermes-workflow --help

You should see the available commands: expand, build, execute, and buildExecute.

For Users (Running Workflows)

Use docker.sh inside the installation directory:

Note

xhost + is required to allow X11 connection from Docker to the host's X11 server for displaying graphics.

xhost +
./docker.sh

For Developers

Use docker_dev.sh which launches the build process:

./docker_dev.sh

This runs /mnt/source/build_script.sh with the FreeCAD Qt Webkit module configuration.

Updating the Python Environment

  1. Modify docker_dev.sh to bind .local in read-write mode (rw)
  2. Install additional packages inside Docker: pip3 install --user <package>
  3. Exit Docker
  4. Archive the updated environment: tar cvf dot_local.tar.gz
  5. Move the tarball into freecad_build_files/ and commit