Made by the team at BigBinary, this is a base project to quickly spin up a Rails application built with opinions of BigBinary style of working.
Install the latest Node.js version. Make sure that npm is installed with it as well.
./bin/setup
Start the server by executing following command.
bundle exec rails server
Visit http://localhost:3000 and login with email [email protected]
and password welcome
.
- Clone this repo by running
git clone https://github.com/bigbinary/wheel.git
cd wheel
- If using it for the first time, run
docker-compose build
to build the images. - Run
docker-compose run --rm web rails setup
to create and seed the database. - Run
docker-compose up
to start the application and get things up and running. - From now onwards, we can just run
docker-compose up
from within the root of thewheel
directory to bring up the application.
While re-building images, docker tries to find it's layers in the cache, which might bring-in stale layers.
# this forces docker to not use cached image layers
docker-compose build --no-cache
-
Run
docker ps -a | grep wheel
to get continers related to wheel, verify it and then rundocker rm -f $(docker ps -a | grep wheel | awk '{print $1}')
to delete them. -
Run
docker images | grep wheel
to get images related to wheel, verify it and then rundocker rmi -f $(docker images | grep wheel | awk '{print $3}')
to delete them. -
Run
docker volume ls | grep wheel
to get volumes related to wheel, verify it and then rundocker volume rm -f $(docker volume ls | grep wheel | awk '{print $2}')
to delete them.
If you want to try out something slightly more daring, yet effective, then run the following single line command to wipe all of the docker data, which includes containers+images+volumes and then did docker-compose up --build and things started working for me in wheel.
Warning: The following command will wipe all of docker data of all local docker projects and containers:
docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -q) && docker volume rm -f $(docker volume ls -q)
Warning:
Rundocker system prune -a -f --volumes
to remove all containers, networks, images (both dangling and unreferenced), and volumes.
Let's say that the project name is Pump
. Execute the command below to
replace all occurrences of Wheel
with Pump
.
perl -pi -w -e 's/Wheel/Pump/g;' $(git ls-files)
perl -pi -w -e 's/wheel/Pump/g;' $(git ls-files)
- Uses Tailwind CSS.
rake setup
to set sensible sample data including user[email protected]
with passwordwelcome
.- Uses devise.
- Heroku ready. Push to Heroku and it will work.
- Uses Honeybadger.
- Uses slim for cleaner syntax over erb and better performance over haml.
- Uses ActiveAdmin.
- Uses Sidekiq.
- Intercepts all outgoing emails in non production environment using gem mail_interceptor.
- Uses SemaphoreCI for continuous testing.
- Uses PostgreSQL.
- Content compression via Rack::Deflater.
- Auto-formats Ruby code with rubocop.
- Auto-formats JavaScript and CSS code with prettier.
- Performs background job processing "inline" for heroku env. It means heroku can deliver emails.
- Letter opener gem for development.
Heroku Review is enabled on this application. It means when a PR is sent then Heroku automatically deploys an application for that branch.
wheel is maintained by BigBinary. BigBinary is a software consultancy company. We build web and mobile applications using Ruby on Rails, React.js, React Native and Node.js.