Search engine for agencies' published content
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
app
bin
config
lib
public
spec
vendor
.codeclimate.yml
.codeinventory.yml
.csslintrc
.eslintignore
.eslintrc
.gitignore
.rubocop.yml
.ruby-version
.simplecov
Capfile
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
config.ru

README.md

i14y

CircleCI Code Climate Test Coverage

Search engine for agencies' published content

Dependencies/Prerequisistes

  • Install Elasticsearch 5.6+:
$ brew search elasticsearch
$ brew install elasticsearch@5.6

To allow ES 5.6 to run in parallel with another version of Elasticsearch in development and test environments, we run I14y on port 9256 instead of the default port 9200. You'll need to specify the port, cluster name, and node name for your 5.6 cluster:

$ vi /usr/local/Cellar/elasticsearch@5.6/<specific version>/libexec/config/elasticsearch.yml
  
  cluster.name: elasticsearch_56
  node.name: "es56"
  http.port: 9256
$ /usr/local/opt/elasticsearch@5.6/libexec/bin/elasticsearch-plugin install analysis-kuromoji
$ /usr/local/opt/elasticsearch@5.6/libexec/bin/elasticsearch-plugin install analysis-icu
$ /usr/local/opt/elasticsearch@5.6/libexec/bin/elasticsearch-plugin install analysis-smartcn

Be sure to restart Elasticsearch after you have installed the plugins:

$ brew services restart elasticsearch@5.6

Verify that Elasticsearch 5.6.x is running on port 9256:

$ curl localhost:9256
{
  "name" : "es56",
  "cluster_name" : "elasticsearch_56",
  "cluster_uuid" : "IhVLFTNYQj6Ac6Xi4Uegmg",
  "version" : {
    "number" : "5.6.9",
    "build_hash" : "877a590",
    "build_date" : "2018-04-12T16:25:14.838Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

Development

  • Use rvm to install the version of Ruby specified in the Gemfile.
  • bundle install.
  • Copy config/secrets_example.yml to config/secrets.yml and fill in your own secrets. To generate a random long secret, use rake secret.
  • Run bundle exec rake i14y:setup to create the neccessary indexes, index templates, and dynamic field templates.

If you ever want to start from scratch with your indexes/templates, you can clear everything out: bundle exec rake i14y:clear_all

Tests

bundle exec rake

Deployment

  • Set your Airbrake api key in config/airbrake.yml in the deployment directory for /i14y/shared/config. This will get copied into the current release directory on deployment.
  • Update your config/secrets.yml file in the deployment directory for /i14y/shared/config. This will get copied into the current release directory on deployment.
  • Update your config/newrelic.yml file in the deployment directory for /i14y/shared/config. This will get copied into the current release directory on deployment.
  • bundle exec cap staging deploy to deploy to a staging environment
  • bundle exec cap production deploy to deploy to a production environment