To start, get a Git checkout with either of these commands. The 1st one is for public, read-only access. The 2nd one can be used if you have commit rights to the project.
git clone https://projects.blender.org/studio/flamenco.git git clone email@example.com:studio/flamenco.git
Then follow the steps below to get everything up & running.
Most of Flamenco is made in Go.
- Install Go 1.20 or newer.
- Optional: set the environment variable
GOPATHto where you want Go to put its packages. Go will use
$GOPATH/binis included in your
$PATHenvironment variable. Run
go env GOPATHif you’re not sure what path to use.
The web UI is built with Vue.js, and Socket.IO for communication with the backend. NodeJS+Yarn is used to collect all of those and build the frontend files.
It’s recommended to install Node via Snap:
sudo snap install node --classic --channel=16
If you install NodeJS in a different way, it may not be bundled with Yarn. In that case, run:
sudo npm install --global yarn
Install Node v16 LTS. Be sure to enable the “Automatically install the necessary tools” checkbox.
Then install Yarn via:
npm install --global yarn
Option 1 (Native install)
Install Node v16 LTS and then install Yarn via:
npm install --global yarn
Option 2 (Homebrew)
Install Node 16 via homebrew:
brew install node@16
Then install yarn:
brew install yarn
Building Flamenco requires only a few tools to be installed on your system.
On Linux only
make is necessary, which can be installed via your package manager.
On Debian, and relatives like Ubuntu, run:
sudo apt install make
x86_64...sehone. You’ll need 7Zip to extract it.
make with-deps to install build-time dependencies and build the application.
Subsequent builds can just run
make without arguments.
You should now have two executables:
Both can be run with the
-help CLI argument to see the available options.
See building for more
make targets, for example to run unit tests,
enable the race condition checker, and all other kinds of useful things.
If you’re interested in helping out with Flamenco development, please read Get Involved!
The Flamenco software follows an API-first approach. All the functionality of Flamenco Manager is exposed via the OpenAPI interface (more info). The web interface is no exception; anything you can do with the web interface, you can do with any other OpenAPI client.
- The API can be browsed by following the ‘API’ link in the top-right corner of
the Flamenco Manager web interface. That’s a link to
- The web interface, Flamenco Worker, and the Blender add-on are all using that same API.
To add a new feature to Flamenco, these steps are recommended:
- Define which changes to the API are necessary, and update the flamenco-openapi.yaml file for this.
go generate ./pkg/...to generate the OpenAPI Go code.
- Implement any new operations in a minimal way, so that the code compiles (but doesn’t do anything else).
- Write unit tests that test the new functionality.
- Write the code necessary to make the unit tests pass.
- Now that you know how it can work, refactor to clean it up.
- Send in a pull request!