/jamroulette

A Rails application for collaborative music making https://www.jamroulette.app

Primary LanguageRubyGNU General Public License v3.0GPL-3.0

Jam Roulette

Build Status Maintainability

Jam Roulette is a Rails (+ React, Typescript) application for layered jamming and collaboration.

alt textalt text

Contributing

We very much welcome PRs! Please fork this repo and see the project's Trello board for open cards to take on. If available, cards labeled "good first issue" would be a good place to start. Alternatively, take a look at the Bugs project section on Github.

When you're done with working, please run bundle exec rake against the codebase. If everything passes, you can move on to opening the PR.

Development

Docker

Building and initializing the containers

This is required if you've never built jamroulette via Docker before. This may also work to reset things in case Docker gets into a funky state.

  1. Run script/setup-docker.sh (this could take up to ~10 minutes to finish the first time)

Starting up the web server (in Docker)

  1. Run script/start-docker-server.sh
  2. Point your browser to http://localhost:3000/

Running the web server locally

Ensure dependencies are installed locally:

  1. Run bundle install

To run the rails server on your local machine (to make things like using byebug easier), follow these steps:

  1. Run script/start-local-server.sh
  2. Point your browser to http://localhost:3000/

Running the test suite

To just run the test suite, docker-compose run web rake

Logging in

db/seeds.rb will create two users. You can Sign In with user bob@example.com, password password.

Deployment

Staging

The Heroku pipeline is currently configured to automatically deploy when changes are pushed to master. If you would like to deploy from the Heroku CLI, follow the instructions below.

This section requires that you:

  1. Have the Heroku CLI installed.
  2. Have your CLI connected to your Heroku account.
  3. Have access to Jam Roulettes's Heroku environment.

To add a remote for staging:

  1. Run heroku git:remote -a jamroulette-staging
  2. Rename the remote with git remote rename heroku staging

To deploy the master branch run git push staging master

To deploy from a branch besides master git push staging delayed-job:master -f