The goal of this project is to create a web interface that allows users to easily submit and manage Blender render jobs submitted via Amazon Web Services. And more specifically, via Amazon EC2 Spot Intances. Right now the backend heavily relies on the work done by James Yonan. See the github project, titled Brenda at jamesyonan/brenda.
Be sure to check out the progress report at PROGRESS.md for the latest feature list and status.
- See the SailsJS Getting Started. You mostly need to install nodejs.
git clone https://github.com/robksawyer/brenda-web.git
cd brenda-web
- Rename
config/local.sample.js
toconfig/local.js
. This contains local configuration variables that the app can use. - Run the command
npm install
to download the node modules used in the project. - Set Amazon keys as environment variables. See setting up AWS below.
- Open your Terminal (iTerm 2)
- Run the command
sails lift
- Navigate to
http://localhost:1337/register
and create an account. - Click your
username
in the navigation bar to enter the Settings page.
The following environment variables need to be set.
Environment Variables
AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY"
AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
AWS_DEFAULT_REGION="us-west-2"
You could also just add the following to your config/local.js
file.
aws: {
credentials: {
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_ACCESS_KEY',
region: 'us-west-2'
}
}
- skipper-s3: Streaming file uploads to S3
- skipper-s3-alt: An alternative skipper driver for upload files in AWS S3
- aws-sdk: Amazon SDK for Node
- knox: Amazon S3 client
- aws-q: Give the AWS SDK some Q promise magic
- adm-zip: Automatically zipping .blend files in order to push to Amazon S3
- moment - Formatting time data
- CodeMirror: Log window and live feedback display. See Recreate Similar Travis CI Console Log Interface.
The project is currently dependent on MongoDB as its data storage provider. mongo-express is used as a gui to make life a bit easier. It's also worth noting that all of this is made possible, because of the sails-mongo Waterline adapter.
Visit your mongo-express interface at http://localhost:1336. This can be changed via the node_modules/mongo-express/config
site.url
property. The default user/pass is admin
and pass
. This can be changed in the config file.
There's a helper script to start mongo-express. Just run
npm run mongo
to start it up. You can change this inpackage.json
.
- Install it via Homebrew
- Make sure the data storage location
ls -al /usr/local/var/mongodb/
exists. - Start it up in the background with
mongod --config /usr/local/etc/mongod.conf --fork
However, if you want to keep MongoDB running at any time, even when you reboot the system, you should use the following commands:
//Start mongod main process on session start:
ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Warning: In order to get this working, I had to make some permission updates.
$ sudo chown -R robsawyer /usr/local/var/log/mongodb/
$ sudo chown -R robsawyer /usr/local/var/mongodb
$ sudo chown -R robsawyer /usr/local/etc/mongod.conf
//Start MongoDB now, in background, and keep it running
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
- Blender Cycles Cloud Render Farming Using AWS, Deadline and Brenda is a great introduction to the software.
- James Yonan – Build Your Own Low-Cost Yet Highly Scalable Blender Render Farm (BConf 2013)
- Brenda Pro Forum - A great resource to get started with Brenda.