docs/developer/advanced/adding_spree_to_rails_app.mdx
If you already have a Ruby on Rails application, you can add Spree to it by following these steps.
<Info> Spree works with **PostgreSQL**, **MySQL**, and **SQLite** — whatever database your Rails app already uses. No database migration is needed. </Info>Add these lines to your project Gemfile:
spree_opts = { 'github': 'spree/spree', 'branch': 'main' }
gem 'spree', spree_opts # core, API, and CLI
gem 'spree_admin', spree_opts # Admin panel (optional)
gem 'spree_emails', spree_opts # transactional emails (optional)
And run the following command to install the gems:
bundle install
Spree uses a modular installation approach. First install the core, then add optional components.
This installs core models, API, CLI, and authentication:
bin/rails g spree:install --user_class=Spree::User --authentication=devise
Core installation options:
| Option | Description |
|---|---|
user_class | The class for your users, eg. Spree::User or User |
admin_user_class | The class for admin users (defaults to user_class) |
authentication | Authentication gem: devise or custom |
migrate | Whether to run migrations (default: true) |
seed | Whether to run the seed file (default: true) |
sample | Whether to add sample data (default: false) |
admin_email | Email of the first admin user |
admin_password | Password of the first admin user |
bin/rails g spree:admin:install
bin/rails g spree:admin:devise # if using Devise authentication
To add sample data to your store, run:
bin/rake spree:load_sample_data
This will add some products, categories and multiple markets to your store.
Navigate to http://localhost:3000/admin and log in with the default credentials:
[email protected] | |
| Password | spree123 |
Upon successful authentication, you should see the admin screen:
<Frame caption="Spree Admin Dashboard"> </Frame>Congrats! You've set up your Spree Commerce and it's looking amazing!
Give Spree a GitHub Star<Icon icon="star" iconType="solid" color="#FFD43B" />, why dont't ya? Thank you for supporting Spree open-source! <Icon icon="heart" iconType="solid" color="#FF0000" />
Need support or want to give some feedback? Join our Discord