Sybren A. Stüvel 3bfd5a339f Fix database tests getting interrupted
The root cause was a 2nd `context.Context()` that was used in
`constructTestJob()`, which cancelled when that function returned.

The cancellation of the context caused an interrupt in the SQLite
driver, which got into a race condition and could cause an interrupt on
a subsequent database query.
2022-03-04 12:19:19 +01:00
2022-02-28 15:30:50 +01:00

Flamenco PoC

This repository contains a proof of concept of a next-generation Flamenco implementation.

Building

  1. Install Go 1.18 or newer and Node 16 (see below)
  2. Set the environment variable GOPATH to where you want Go to put its packages. Defaults to $HOME/go if not set. Run go env GOPATH if you're not sure.
  3. Ensure $GOPATH/bin is included in your $PATH environment variable.
  4. Magically build the web frontend (still under development, no concrete steps documentable quite yet)
  5. Run 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: flamenco-manager-poc and flamenco-worker-poc.

Node / Web UI

The web UI is built with Vue, Bootstrap, and Socket.IO for communication with the backend.

NodeJS is used to collect all of those and build the frontend files. It's recommended to install Node v16 via Snap:

sudo snap install node --classic --channel=16

This also gives you the Yarn package manager, which can be used to install web dependencies and build the frontend files.

Swagger UI

Flamenco Manager has a SwaggerUI interface at http://localhost:8080/api/swagger-ui/

Database

Flamenco Manager and Worker use SQLite as database, and Gorm as object-relational mapper.

Since SQLite has limited support for altering table schemas, migration requires copying old data to a temporary table with the new schema, then swap out the tables. Because of this, avoid NOT NULL columns, as they will be problematic in this process.

License

Flamenco is licensed under the GPLv3+ license.

Description
Flamenco render farm management system - Docker development environment fork
Readme GPL-3.0 88 MiB
Languages
JavaScript 55.1%
Go 32.7%
Vue 5%
Python 3.6%
HTML 1.8%
Other 1.7%