Giter Club home page Giter Club logo

brenda-web's Introduction

Brenda Web Interface

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.

Build Status Code Climate Test Coverage Donate

Milestones and Progress

Beta 1.0 - Coming Early 2016

Be sure to check out the progress report at PROGRESS.md for the latest feature list and status.

Getting Started

  1. See the SailsJS Getting Started. You mostly need to install nodejs.
  2. git clone https://github.com/robksawyer/brenda-web.git
  3. cd brenda-web
  4. Rename config/local.sample.js to config/local.js. This contains local configuration variables that the app can use.
  5. Run the command npm install to download the node modules used in the project.
  6. Set Amazon keys as environment variables. See setting up AWS below.
  7. Open your Terminal (iTerm 2)
  8. Run the command sails lift
  9. Navigate to http://localhost:1337/register and create an account.
  10. Click your username in the navigation bar to enter the Settings page.

Configuration

AWS (Amazon Web Services)

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'
      }
   }

Technology Stack

Web/NodeJS Framework

NPM Packages

  • 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

Other Dependencies

Data Storage

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 in package.json.

Setting up MongoDB locally

  1. Install it via Homebrew
  2. Make sure the data storage location ls -al /usr/local/var/mongodb/ exists.
  3. 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

Wuh? What is Brenda?

Resources

Inspiration

brenda-web's People

Contributors

robksawyer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.