Giter Club home page Giter Club logo

rippleeffect's Introduction

Ripple Effect

For more details on Ripple Effect see: http://whatsthehubbub.nl/projects/ripple-effect/

Ripple Effect is released under a MIT License as detailed in the LICENSE file in this same directory.

Dev Environment Setup

  1. Download and install VirtualBox for OSX
  2. Download and install vagrant for OSX
  3. Get the "Command Line Tools for Xcode":https://developer.apple.com/downloads or "Xcode":http://itunes.apple.com/us/app/xcode/id497799835
  4. Install fabric and Jinja sudo pip install --upgrade fabric==1.6.0 jinja2
  5. Checkout the repository git clone [email protected]:whatsthehubbub/rippleeffect.git && cd rippleeffect
  6. Bootstrap the dev environment fab bootstrap (you may want to grab a coffee)

Dev Environment Usage

Your dev environment runs a VirtualBox instance where the checkout you just did is mapped into. Any files you change on your machine are mirrored into the virtual machine and vice versa. The dev server runs on the virtual machine and forwards its ports to your local machine.

You can interface with your VM using the vagrant command. The commands you'll most often use are vagrant up and vagrant halt.

To be up and running do this:

  • git pull (or sync in your Github.app)

  • git checkout develop (we work in branch develop)

  • vagrant up

  • fab app.install_requirements (only when new packages have been added)

  • fab syncdb (only once on every new database)

  • fab migrate (only when the database schema has been changed)

  • fab runserver;

  • Access your environment at: http://127.0.0.1:8000

  • You can impersonate other players by adding ?impersonate=[email protected] behind a URL if you're logged in. You can stop by adding ?unimpersonate=1

  • Kill the VM with: vagrant halt

This process does not create a superuser. To create one:

  • fab shell;
  • from riskgame.models import EmailUser
  • EmailUser.objects.create_superuser('[email protected]', 'password')

When you're done stop your virtual machine with vagrant halt though you shouldn't really notice it and it will disappear on next reboot.

To get a list of available commands

fab -l

To run your django dev server:

fab runserver	# serves django app on localhost:8000

To sync your DB:

fab syncdb

To run a DB migration

fab migrate

To run a celery worker in the foreground

fab runworker

To run a django interactive shell

fab shell

To shutdown your virtual machine

vagrant halt

To startup your virtual machine

vagrant up

To drop into a shell on your virtual machine

vagrant ssh

The vagrant commands should be executed in the directory which contains the Vagrantfile

Staging Deployment

To view a full list of available commands:

fab --list

To deploy simple app updates:

fab staging deploy  # deploy the master branch to staging

To deploy more complex updates:

fab staging git_pull migrate reload  # pull code, run migrations, reload app in staging

# pull release branch, install requirements & reload app in staging
fab staging git_pull:release app.install_requirements migrate collectstatic reload

To tail the application logs:

fab staging logs    # tail the staging app log
fab staging logs:nginx  # tail the staging webserver log
fab staging logs:celery # tail the celery worker log
fab --display logs  # for more information

Do partial updates

To update nginx:

from fabfile import staging
from fabfile.nginx import configure_site, restart_nginx
staging()
configure_site()
restart_nginx()

To enable automatic security updates:

from fabfile import staging
from fabfile.base import automate_security_updates
staging()
automate_security_updates()

Everything runs as rippleeffect, so sudo -i -u rippleeffect

Production Deployment

To spinup a new server:

  1. In the control panel, create a new server from the saved image appserver.
  2. Deploy the latest code to the server: fab prod deploy deploy@<ip-address>
  3. In the control panel, add the server to the load balancer.

Tech Trial Deployment

  • ssh into the server
  • git pull
  • source venv/bin/activate
  • export RIPPLE_PRODUCTION=True
  • < do other actions >
  • sudo service rippleeffect stop; sudo service rippleeffect start;

Branches

  • develop is mainline development
  • release is the version currently on playrippleeffect.com
  • master is currently unused

Editing CSS and Javascript

CSS is written in SCSS, Javascript is written in Coffeescript. It's important to only edit the .scss and .coffee source files, otherwise your changes will be lost on a subsequent compile. The easiest way to compile these files on your local machine is to use Fire.app (http://fireapp.handlino.com/) and watch the 'static' folder (be sure to issue a 'clean and compile' when you add a new file, otherwise it won't be seen).

Setting up your Vista/IE8 image

To be able to access your local host from the virtual machine, you'll need to add a host-only network:

rippleeffect's People

Contributors

alper avatar bastiaanterhorst avatar karsalfrink avatar willperkins avatar nielsthooft avatar

Watchers

 avatar  avatar James Cloos avatar  avatar Dylan Nagel avatar  avatar  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.