Skip to content

Latest commit

 

History

History
107 lines (62 loc) · 2.5 KB

README.md

File metadata and controls

107 lines (62 loc) · 2.5 KB

GitHub Wiki Search

While this project started as a github wiki search, it has morphed into a search all documentation search.

It can search:

  • Github.com
    • Issues
    • Github Pages
    • Wiki
    • Readmes
  • Github Enterprise
    • Issues
    • Github Pages
    • Wiki
    • Readmes
  • Jira
    • Issues

There is no "backend". The static web client communicates directly with elasticsearch.

Repository highlights:

  • Vagrantfile - Use vagrant to quickly setup a development environment. (See Installation, below)
  • client - where the web app lives. Web app is simple javascript, html, and mustache.
  • server - a set of python scripts for indexing Github/Github Enterprise/Jira
  • provision - a simple python script, with templates, for setting up a development environment with:
    • ElasticSearch
    • Nginx
    • Cronjob to run indexer every night

Contributing

We welcome your feedback and contributions.

Getting started

Installation

  1. install vagrant

  2. clone the repository:

    https://github.com/cfpb/github-wiki-search.git

  3. install vagrant cachier

    vagrant plugin install vagrant-cachier

  4. enter the repo directory:

    cd github-wiki-search

  5. copy settings_example.py to settings.py and modify for your installation

  6. start the virtualmachine

    vagrant up

  7. ssh into the virtualmachine

    vagrant ssh

  8. run the provisioning script

    sudo /vagrant/provision/provision.py

  9. run the indexing script

    /vagrant/server/index.py

  10. visit the search page at

    http://localhost:8080

Front end requirements

Install front end tools and components

  1. install dependencies:

    npm install

  2. pull in Bower components:

    grunt vendor

Front end workflow

  1. compile JavaScript and LESS files:

    grunt

  2. update dist folder with newly compiled assets:

    grunt dist

Or use grunt serve. This will run both commands when commonly edited front end files have changed. It also sets up a local server on port 8000 for previewing the front end.