Limestone is a boilerplate SaaS app built with Rails 6 on Ruby 2.7.2 and has an opinionated integration with NPM using Webpacker and Stimulus.
Help decide future features and changes for Limestone with this poll: https://www.strawpoll.me/42684734/
Versioning in this repo in intended to maintain and modernize the boilerplate. New versions are not intended to update existing forks, although looking through the commits serves as a good upgrade resource.
v0.1 is Rails 5.2
v0.2 is Rails 6
v0.3 introduces the Pay gem
v0.4 uses ruby 2.7.2
See more in the changelog.
The gemset has been chosen to be modern, performant, and take care of a number of business concerns common to SaaS.
public_registration
feature.docker-compose run web rspec
jet encrypt .env .env.encrypted
.Pay::Error: This customer has no attached payment source or default payment method.
.docker-compose run web rspec
or docker-compose exec web rspec
if you've already run docker-compose up
.Clone this repository at the most recent tag and cd
into it:
git clone -b 'v0.3' --single-branch --depth 1 https://github.com/archonic/limestone.git
cd limestone
Make a copy of .env-example
named .env
:
cp .env-example .env
Update the .env
file - running the project requires you change the following:
STRIPE_API_KEY
STRIPE_PUBLISHABLE_KEY
STRIPE_SIGNING_SECRET
(This can be something random)You probably want to update the ADMIN_*
environment variables. If you want a different COMPOSE_PROJECT_NAME
and database name, now is the best time to do that.
Run docker-compose run web yarn install --pure-lockfile
to download images, build your development image and install node_modules. This will take a while.
Run docker-compose up
to run your project and it's dependencies.
Once everything is up, run docker-compose exec web rails db:prepare
to create DB, load schema and seed. Seeding will also create your plan(s) in Stripe.
Visit http://localhost:3000 and rejoice :tada: You can login using the Admin user defined in .env
. Keep in mind your admin doesn't have active billing. Enter a test card when prompted or by visiting /subscribe.
See the Limestone Wiki more about development with Docker
/admin/flipper
.public_registration
has been created for you (during seeding). You can enable/disable this to control user registration :clap:A wiki will be written about this. Feel free to help out here if you're familiar with Docker/Kubernetes.