Sharetribe is an open source platform to create your own peer-to-peer marketplace.
Would you like to set up your marketplace in one minute without touching code? Head to Sharetribe.com.
Want to get in touch? Email [email protected]
Note: If you encounter problems with the installation, ask for help from the developer community in our developer chatroom. When you join, please use threads. Instructions for this and other chat-related things can be found at Flowdock's chat instructions.
Before you get started, the following needs to be installed:
- Ruby. Version 2.1.2 is currently used and we don't guarantee everything works with other versions. If you need multiple versions of Ruby, RVM is recommended.
- RubyGems
- Bundler:
gem install bundler
- Git
- A database. Only MySQL has been tested, so we give no guarantees that other databases (e.g. PostgreSQL) work. You can install MySQL Community Server two ways:
- If you are on a Mac, use homebrew:
brew install mysql
(highly recommended). Also consider installing the MySQL Preference Pane to control MySQL startup and shutdown. It is packaged with the MySQL downloadable installer, but can be easily installed as a stand-alone. - Download a MySQL installer from here
- If you are on a Mac, use homebrew:
- Sphinx. Version 2.1.4 has been used successfully, but newer versions should work as well. Make sure to enable MySQL support. If you're using OS X and have Homebrew installed, install it with
brew install sphinx --with-mysql
- Imagemagick. If you're using OS X and have Homebrew installed, install it with
brew install imagemagick
- Get the code. Cloning this git repo is probably easiest way:
git clone git://github.com/sharetribe/sharetribe.git
- Go to the sharetribe project root directory
- Create a database.yml file by copying the example database configuration:
cp config/database.example.yml config/database.yml
- Create the required databases with these commands
- Add your database configuration details to
config/database.yml
- You will probably only need to fill in the password for the database(s)
- Run
bundle install
in the project root directory to install the required gems - Initialize your database:
bundle exec rake db:schema:load
- Run Sphinx index:
bundle exec rake ts:index
- Stat the Sphinx daemon:
bundle exec rake ts:start
- Install and run Mailcatcher to receive sent emails locally:
gem install mailcatcher
mailcatcher
- Create a
config/config.yml
file and add the following lines to it:
development: mail_delivery_method: smtp smtp_email_address: "localhost" smtp_email_port: 1025
- Open
http://localhost:1080
in your browser
- Invoke the delayed job worker:
bundle exec rake jobs:work
- In a new console, open the project root folder and start the server. The simplest way is to use the included Webrick server:
bundle exec rails server
Congratulations! Sharetribe should now be up and running. Open a browser and go to the server URL (e.g. http://lvh.me:3000). Fill in the form to create a new marketplace and admin user. You should be now able to access your marketplace and modify it from the admin area.
Tests are handled by RSpec for unit tests and Cucumber for acceptance tests.
- Navigate to the root directory of the sharetribe project
- Initialize your test database:
bundle exec rake test:prepare
. This needs to be rerun whenever you make changes to your database schema. - If Zeus isn't running, start it with
zeus start
- To run unit tests, open another terminal and run
zeus rspec spec
- To run acceptance tests, open another terminal and run
zeus cucumber
. Note that running acceptance tests is slow and may take a long time to complete.
To automatically run unit tests when code is changed, start Guard: bundle exec guard
Steps 1-6 from above need to be done before performing these steps.
- Initialize your database:
bundle exec rake RAILS_ENV=production db:schema:load
- Run Sphinx index:
bundle exec rake RAILS_ENV=production ts:index
- Start the Sphinx daemon:
bundle exec rake RAILS_ENV=production ts:start
- Precompile the assets:
bundle exec rake assets:precompile
- Invoke the delayed job worker:
bundle exec rake RAILS_ENV=production jobs:work
- In a new console, open the project root folder and start the server:
bundle exec rails server -e production
It is not recommended to serve static assets from a Rails server in production. Instead, you should serve assets from Amazon S3 or use an Apache/Nginx server. In this case, you'll need to set the value of serve_static_assets_in_production
to false
in config/config.yml
.
Default configuration settings are stored in config/config.default.yml
. If you need to change these, we recommend creating a config/config.yml
file to override these values. You can also set configuration values to environment variables.
Sharetribe's open source version supports payments using Braintree Marketplace. To enable payments with Braintree, you need to have a legal business in the United States. You can sign up for Braintree here. Once that's done, create a new row in the payment gateways table with your Braintree merchant_id, master_merchant_id, public_key, private_key and client_side_encryption_key.
PayPal payments are only available on marketplaces hosted at Sharetribe.com due to special permissions needed from PayPal. We hope to add support for PayPal payments to the open source version of Sharetribe in the future.
See release notes for information about what has changed and if actions are needed to upgrade.
Would you like to make Sharetribe better? Here's a basic guide.
We use WebTranslateIt (WTI) for translations. If you'd like to translate Sharetribe to your language or improve existing translations, please ask for a WTI invitation. To get an invite, send an email to [email protected] and mention that you would like to become a translator.
Browse open issues and submit new ones at http://github.com/sharetribe/sharetribe/issues.
Sharetribe is open source under the MIT license. See LICENSE for details.