The GPL v3 license applies to the code in this repository.
The data is not included in this repository. Rather, it is accessed via the public API. This data is under a CC BY-SA license (and not GPL v3). Amongst other things, this license requires attribution when using the data.
sweet pinballin' brah
This repo is the codebase for pinballmap.com. The code for the Pinball Map mobile app is here. If you have an app issue, please use that repo.
API Documentation
Available here: http://pinballmap.com/api/v1/docs
Mac Environment Setup
Below is a summary of the steps that Brian Hanifin undertook to get the site up and running on OS X 10.9. If you would like to contribute, and have any trouble, please ask.
- Fork it on Github. Then:
git clone https://github.com/{you}/pbm.git
git remote add upstream git://github.com/pinballmap/pbm.git
- Install Ruby and a Ruby version manager
- Follow the Ruby install instructions at railsapps.github.io/installrubyonrails-mac.html. Make sure you also download ruby-3.1.4
- (optional if using RVM):
rvm --default use ruby-3.1.4
(or use one of the the more recommended ruby version managers like asdf or rbenv that set the ruby version automatically)
- Install dependencies
bundle install
selenium install
brew update
- Install and configure the database
- Download Postgres App.
cp config/database.yml.example config/database.yml
to create your database.yml for developmentbrew install postgresql
initdb /usr/local/var/postgres -E utf8
CREATEDB pbm_dev
bin/rake db:create ; RAILS_ENV=test bin/rake db:create
bin/rake db:migrate ; RAILS_ENV=test bin/rake db:migrate
- Run the development server
bin/rails s
- Run the tests
bundle exec rspec
Run tests: bundle exec rspec
- Run the debug server
- Start server:
bin/debug
- Install VSCode command line tools via command palette. From the VSCode top Menu:
View | Command Palette
then search for:Shell Command: Install 'code' command in path
- Attach via VSCode debugger and set breakpoints
- Get a database dump from Scott. Then:
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d pbm_dev dump.file
If the site loads properly it will be an empty version of pinballmap.com, then ask Scott for a data dump so you can have a full set of data to work with.
Linux Setup
- Fork it. Then:
clone https://github.com/{you}/pbm.git
git remote add upstream git://github.com/pinballmap/pbm.git
-
Install postgresql.
-
Setup postgres:
- createuser --interactive
- createdb pbm_dev
or read:
- ubuntu/debian/linux mint: maybe this
- arch/manjaro: this and then this
- Install and setup ruby and rvm:
curl -L https://get.rvm.io | bash -s stable --ruby
rvm install ruby-3.1.4
rvm --default use ruby-3.1.4
gem install bundler
bundle install
cp config/database.yml.example config/database.yml
to create your database.yml for developmentbin/rake db:create ; RAILS_ENV=test bin/rake db:create
bin/rake db:migrate ; RAILS_ENV=test bin/rake db:migrate
- Get a database dump from Scott. Then:
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d pbm_dev dump.file
Start server: bin/rails s
Run tests: bundle exec rspec
Docker Setup
Prerequisites
- Docker >= v1.12.0+
- Docker-Compose (comes with Docker for Mac. Separate install on Linux)
- Optional: direnv or some other way to source environment variables to override default ports in case of conflict
Usage
Fully Containerized
- Run
docker-compose up -d
to start containers - Navigate to
localhost:$PORT
(either specified, or defaults to3000
) - Bring down containers with
docker-compose down
- By default, the database will keep its state as a docker volume. If you want to start fresh, run
docker-compose down -v
to destroy the volume. The next time you bring up this docker-compose file,db:create
anddb:migrate
will re-populate the database.
- By default, the database will keep its state as a docker volume. If you want to start fresh, run
Postgres only
If you just want to run postgres in a container and use your local filesystem for running Rails, you can use the postgres only compose file.
- Run
docker-compose -f docker-compose.postgres.yml up -d
- If first time running, run
bin/rake db:create db:migrate
to populate the postgres container. - Bring down containers with
docker-compose -f docker-compose.postgres.yml down
- By default, the database will keep its state as a docker volume. If you want to start fresh, run
docker-compose -f docker-compose.postgres.yml down -v
to destroy the volume.
- By default, the database will keep its state as a docker volume. If you want to start fresh, run