This is a Rails app running on the version of ruby specified in .ruby-version. If you're using asdf you can install the correct version of ruby locally with
asdf install
We're using PostgreSQL 15 in production, so it's recommended you run that in development too. On OS X you can use homebrew
brew install postgresql@15
We're using Rails 7's default image processor library vips, which you need to install
brew install libvips
Copy the example .env file
cp `.env.example .env`
From there proceed as usual for local rails app development
rails db:setup
./bin/dev
The app should be running on http://localhost:3000/
Linters and test can be run using the default rake task.
Environment specific API keys etc. are stored in environment variables. The file .env.example should be copied to .env so that Dotenv can find these in development. You may only need to set these to real values if you need a particular third party service for the code you're working on. For example, Rollbar credentials are only needed if for some reason you need to use rollbar in development.
If you need to send email via Postmark in development you can set the USE_POSTMARK_IN_DEVELOPMENT variable to true in .env.
To receive events from Stripe webhooks in your local environment you need to run the Stripe CLI with:
stripe listen --forward-to localhost:3000/stripe_webhook_events
When you first run this command it will show a value for the "webhook signing secret". Copy this value and set STRIPE_ENDPOINT_SECRET to this value in your local .env file.
All commits to main are deployed to render (the login credentials for which are available in 1P). They're not currently gated by the CI build that runs in a github action.
I saw this error locally on my M2 Macbook Air
[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called
The solution was to add the following to my .zshrc
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES