Boilerplate Rails 6 SaaS application with Webpack, Stimulus and Docker integration.
Limestone assumes you want each user to pay for access to your SaaS. If instead you want users to belong to accounts and have billing scoped to accounts, try Limestone Accounts.
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 serve 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.
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 rspecor
docker-compose exec web rspecif you've already run
Clone this repository at the most recent tag and
git clone -b 'v0.3' --single-branch --depth 1 https://github.com/archonic/limestone.git cd limestone
Make a copy of
cp .env-example .env
.envfile - running the project requires you change the following:
STRIPE_SIGNING_SECRET(This can be something random)
You probably want to update the
ADMIN_*environment variables. If you want a different
COMPOSE_PROJECT_NAMEand database name, now is the best time to do that.
docker-compose run web yarn install --pure-lockfileto download images, build your development image and install node_modules. This will take a while.
docker-compose upto run your project and it's dependencies.
Once everything is up, run
docker-compose exec web rails db:prepareto 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.
public_registrationhas 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.