Skip to content

Latest commit

 

History

History
113 lines (97 loc) · 5.43 KB

native.md

File metadata and controls

113 lines (97 loc) · 5.43 KB

Developer Setup

Vets API requires:

  • PostgreSQL
    • Including PostGIS
  • Redis
  • Ruby 2.6.6

Base Setup

To start, fetch this code:

git clone https://github.com/department-of-veterans-affairs/vets-api.git

Automated (OSX)

If you are developing on OSX, you can run the automated setup script. From the vets-api directory, run ./bin/setup-osx && source ~/.bash_profile && cd .


NOTE

This installs rbenv and other homebrew libraries for this project. If you only want to manage your own libraries, it is suggested you continue below.


Alternative (OSX)

  1. Install Ruby 2.6.6
    • It is suggested that you use a Ruby version manager such as rbenv and install Ruby 2.6.6.
    • NOTE: rbenv will also provide additional installation instructions in the console output. Make sure to follow those too.
  2. Install Bundler to manage dependencies
    • gem install bundler
  3. Install Postgres and enable on startup
    brew install postgres
    brew services start postgres
  4. Install PostGIS
    • brew install postgis
  5. Install Redis
    • brew install redis
    • Follow post-install instructions to enable Redis on startup. Otherwise, launch it manually with brew services start redis.
  6. Install ImageMagick
    • brew install imagemagick
  7. Install Poppler
    • brew install poppler
  8. Install ClamAV
    brew install clamav # Take note of the the post-install instructions "To finish installation & run clamav you will need to edit the example conf files at `${conf_files_dir}`", which will vary depending on your homebrew installation
    cd ${conf_files_dir}
    touch clamd.sock
    echo "LocalSocket ${conf_files_dir}" > clamd.conf
    echo "DatabaseMirror database.clamav.net" > freshclam.conf
    freshclam -v
  9. Install pdftk
    • curl -o ~/Downloads/pdftk_download.pkg https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg
    • sudo installer -pkg ~/Downloads/pdftk_download.pkg -target /
  10. Install gem dependencies:
  11. Install overcommit overcommit --install --sign
  12. Create dev database: bundle exec rake db:setup
  13. Go to the file config/settings/development.yml in your local vets-api. Toggle commenting so that the native method is uncommented only.
    cache_dir: ../vets-api-mockdata # via rails; e.g. bundle exec rails s or bundle exec rails c
    # cache_dir: /cache # via docker; e.g. make up or make console
  14. Make sure you have the vets-api-mockdata repo locally installed, preferably in a parallel directory to vets-api.
  15. Create a config/settings.local.yml file for your local configuration overrides. Add this key pointing to your vets-api-mockdata directory.
    betamocks:
      cache_dir: ../vets-api-mockdata

Alternative (Ubuntu 18.04 LTS)

  1. Install Postgres, PostGIS, Redis, ImageMagick, Poppler, ClamAV, etc
    • From the vets-api directory, run ./bin/install-ubuntu-packages
  2. Edit /etc/ImageMagick-6/policy.xml and remove the lines below the comment <!-- disable ghostscript format types -->
  3. Install Ruby 2.4.5
    • It is suggested that you use a Ruby version manager such as rbenv and install Ruby 2.4.5.
    • NOTE: rbenv will also provide additional installation instructions in the console output. Make sure to follow those too.
  4. Install Bundler to manage dependencies
    • gem install bundler
  5. Install gem dependencies: cd vets-api; bundle install
  6. Install overcommit overcommit --install --sign
  7. Setup localhost certificates / keys:
    • Create certs directory within config: mkdir ./config/certs
    • Copy these certificates into the certs dir.
      • NOTE: If you don't have access to these keys, running the following commands will provide basic functionality, such as for running unit tests:
      • touch ./config/certs/vetsgov-localhost.crt
      • touch ./config/certs/vetsgov-localhost.key
  8. Create dev database: bundle exec rake db:setup
  9. Make sure you have the vets-api-mockdata repo locally installed, preferably in a parallel directory to vets-api.
  10. Create a config/settings.local.yml file for your local configuration overrides. Add this key pointing to your vets-api-mockdata directory.
betamocks:
  cache_dir: ../vets-api-mockdata