This is the source code for summitsearch.org.
We believe in free and open access to mountain information. Our site summitsearch.org is designed to be a friendly and easy to use place to find information or share experiences and photos. Help us to grow our community by spreading the word or contributing content to the site.
If you are a developer then your help in designing and implementing this site would be greatly appreciated. The site is written using the Ruby on Rails framework. Knowledge of programming in that framework is a necessary pre-requisite to developing the site.
There are a number of things you need to install before you can run summitsearch locally.
- Git
- Ruby 2.2.4p230
- Rails 4.1.16
- [Postgresql 9.5.6] (https://www.google.ca/search?q=postgresql)
- Create a [pgpass file] (https://www.google.ca/search?q=pgpass+file)
- The development database is currently named "summitsearch" in the database.yml file. So use that name in your pgpass file.
- Sphinx search
- Make sure you configure sphinx to use postgresql.
- Redis server
First you'll need to fork and clone this repo
git clone https://github.com/ecoulthard/summitsearch.git
Let's get all our dependencies setup:
bundle install --without production
Now let's create the database:
bundle exec rake db:migrate
Now let's index sphinx search:
bundle exec rake ts:index
You'll need to set a few environment variables used in config/application.rb. You'll need to figure out how to set environment variables on the specific operating system you are using. Feel free to contact me if you need help with any of these. I might even let you use some of the same keys I use for dev or at least set some new ones up for you.
- SECRET_KEY_BASE
- This can be anything on dev.
You will need to set these variable for a gmail address for notifications to work. You can change the smtp settings in development.rb if you want to use a non-gmail address.
-
NOTIFIER_EMAIL
-
NOTIFIER_EMAIL_PASSWORD
-
FACEBOOK_APP_ID
- This is only used to get the facebook like buttons working. You can set it to anything for development. All it will break is the facebook like buttons.
-
GOOGLE_MAPS_API_KEY
- This is used to get Google maps working. A lot of functionality depends on Google maps so you should probably get your own key from Google. Google Maps Api Key
These are used to add topo maps to the pages with Google maps. You can set it to anything for dev and it will only cause the topo maps to not show up.
- MY_TOPO_PARTNER_ID
- MY_TOPO_HEX_DIGEST
These are used for user account passwords. They can be anything on dev since the accounts are fake.
- DEVISE_PEPPER
- DEVISE_SECRET_KEY
These are used to get paperclip working using amazon aws S3 storage. You can change the paperclip setting in development.rb to use local storage. Some things that work for local storage do not work in live so using s3 in dev is easier in my opinion once you get it set up.
- S3_BUCKET_NAME
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
Let's get it running.
Start thinking sphinx search:
bundle exec rake ts:start
Start Sidekiq:
bundle exec sidekiq
Start Rails
bundle exec rails server
One of the things that I could use help with is upgrading summitsearch to newer versions of ruby and rails. Upgrading usually introduces a lot of bugs and is time consuming.
- Eric Coulthard