Solidus
A free, open-source e-commerce platform that gives you complete control over your store.
- Visit our website: https://solidus.io/
- Read our Community Guidelines: https://guides.solidus.io/policies/community-guidelines/
- View the project roadmap: https://github.com/orgs/solidusio/projects/7
- Read our guides: https://guides.solidus.io/
- Join our Slack: http://slack.solidus.io/
- Solidus Security: mailing list
Table of Contents
- Supporting Solidus
- Summary
- Demo
- Getting Started
- Installation Options
- Performance
- Developing Solidus
- Contributing
Supporting Solidus
As a community-driven project, Solidus relies on funds and time donated by developers and stakeholders who use Solidus for their businesses. If you'd like to help Solidus keep growing, please consider:
Main Contributor & Director
At present, Nebulab is the main code contributor and director of Solidus, providing technical guidance and coordinating community efforts and activities.
Ambassadors
Support this project by becoming a Solidus Ambassador. Your logo will show up here with a link to your website. Become an Ambassador.
Summary
Solidus is a complete open source e-commerce solution built with Ruby on Rails. It is a fork of Spree.
See the Solidus class documentation and the Solidus Guides for information about the functionality that Solidus provides.
Solidus consists of several gems. When you require the solidus gem in your
Gemfile, Bundler will install all of the following gems:
solidus_api(RESTful API)solidus_backend(Admin area)solidus_core(Essential models, mailers, and classes)solidus_sample(Sample data)
All of the gems are designed to work together to provide a fully functional
e-commerce platform. However, you may only want to use the
solidus_core gem
combine it with your own custom frontend, admin interface, and API.
Demo
You can try the live Solidus demo here. The admin section can be accessed here.
Getting started
Begin by making sure you have Imagemagick installed, which is required for Paperclip. (You can install it using Homebrew if you're on a Mac.)
To install Solidus with the current storefront, follow the instructions in storefront/README.md.
Accessing Solidus Store
Start the Rails server with the command:
bin/rails s
The storefront will be accessible at http://localhost:3000/ and the admin can be found at http://localhost:3000/admin/.
For information on how to customize your store, check out the customization guides.
Default Username/Password
As part of running the above installation steps, you will be asked to set an admin email/password combination. The default values are [email protected] and test123, respectively.
Questions?
The best way to ask questions is to join the Solidus Slack and join the #support channel.
Installation options
Instead of a stable build, if you want to use the bleeding edge version of Solidus, use this line:
gem 'solidus', github: 'solidusio/solidus'
Note: The master branch is not guaranteed to ever be in a fully functioning state. It is too risky to use this branch in production.
By default, the installation generator (solidus:install) will run
migrations as well as adding seed and sample data. This can be disabled using
bin/rails g solidus:install --migrate=false --sample=false --seed=false
You can always perform any of these steps later by using these commands.
bin/rails railties:install:migrations
bin/rails db:migrate
bin/rails db:seed
bin/rails spree_sample:load
There are also options and rake tasks provided by solidus_auth_devise.
Performance
You may notice that your Solidus store runs slowly in development mode. This
can be because in development each CSS and JavaScript is loaded as a separate
include. This can be disabled by adding the following to
config/environments/development.rb.
config.assets.debug = false
Turbolinks
To gain some extra speed you may enable Turbolinks inside of Solidus admin.
Add gem 'turbolinks', '~> 5.0.0' into your Gemfile (if not already present)
and change vendor/assets/javascripts/spree/backend/all.js as follows:
//= require turbolinks
//
// ... current file content
//
//= require spree/backend/turbolinks-integration.js
CAUTION Please be aware that Turbolinks can break extensions and/or customizations to the Solidus admin. Use at your own risk.
Developing Solidus
Clone the Git repo
git clone git://github.com/solidusio/solidus.git cd solidus
Without Docker
Install the gem dependencies
bin/setupNote: If you're using PostgreSQL, MySQL, or MariaDB, you'll need to install those gems through the DB environment variable.
# PostgreSQL export DB=postgresql bin/setup # MySQL or MariaDB (mysql2 adapter) export DB=mysql bin/setup
With Docker
docker-compose up -d
Wait for all the gems to be installed (progress can be checked through docker-compose logs -f app).
You can provide the ruby version you want your image to use:
docker-compose build --build-arg RUBY_VERSION=3.0 app
docker-compose up -d
The rails version can be customized at runtime through the RAILS_VERSION environment variable:
RAILS_VERSION='~> 5.0' docker-compose up -d
Running tests:
# sqlite
docker-compose exec app bin/rspec
# postgres
docker-compose exec app env DB=postgres bin/rspec
# mysql
docker-compose exec app env DB=mysql bin/rspec
Accessing the databases:
## sqlite
docker-compose exec app sqlite3 /path/to/db
## postgres
docker-compose exec app env PGPASSWORD=password psql -U root -h postgres
## mysql
docker-compose exec app mysql -u root -h mysql -ppassword
`
