Go to file
Sybren A. Stüvel 9643bf768e Manager: Fix DB migration error of not-null columns
Where the PostgreSQL DB migration code could handle `NOT NULL` columns just
fine, SQLite has less table-altering functionality. As a result, migrations
have to copy entire database tables, which doesn't play well with
not-nullable columns.
2022-03-03 12:10:13 +01:00
addon Addon: job type form seems to be working 2022-03-01 17:28:24 +01:00
cmd Worker: remove -manager URL CLI argument 2022-03-03 11:33:22 +01:00
internal Manager: Fix DB migration error of not-null columns 2022-03-03 12:10:13 +01:00
pkg Add notice to our SQLite Gorm driver 2022-03-03 11:52:43 +01:00
web SocketIO based chat client as PoC for backend/frontend communication 2022-02-11 14:47:26 +01:00
.gitignore Addon: start of framework for API communication 2022-03-01 17:28:24 +01:00
.gitlab-ci.yml Configure SAST in .gitlab-ci.yml, creating this file if it does not already exist 2022-01-03 18:50:58 +00:00
CONFIG_DESIGN.md Partial design doc for configuration handling 2022-02-21 19:47:52 +01:00
debug-job-echo.sh Debugging: add simple render job script 2022-02-21 19:58:29 +01:00
debug-job-render.sh Debug job: render to writable target 2022-02-22 13:56:22 +01:00
FEATURES.md Update FEATURES.md 2022-02-28 15:30:50 +01:00
go.mod Change package URL to the blender.org repository 2022-03-01 20:45:09 +01:00
go.sum Manager: switch from PostgreSQL to SQLite 2022-03-01 18:50:31 +01:00
LICENSE Add make with-deps target to install dependencies and build the apps 2022-01-24 14:27:25 +01:00
Makefile Makefile: don't generate code when running make 2022-03-03 11:51:15 +01:00
README.md Manager: Fix DB migration error of not-null columns 2022-03-03 12:10:13 +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 includes a copy of https://github.com/go-gorm/sqlite.git, adjusted to use the pure-Go SQLite from https://modernc.org/sqlite.

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.