Installing prerequisites

These prerequisites assume you're working on a Linux-based operating system but have been tested on Ubuntu 18.04.

Ruby

  1. If you don't already have a Ruby version manager, we highly recommend rbenv. Please follow their installation guide.
  2. With the Ruby version manager, install the Ruby version listed on our badge. (ie with rbenv: rbenv install 2.5.3)

For very detailed rbenv installation directions on several distros, please visit DigitalOcean's guide.

Yarn

There are two ways to install Yarn.

PostgreSQL

  1. run sudo apt update && sudo apt install postgresql postgresql-contrib libpq-dev.
  2. To test the installation you can run sudo -u postgres psql which should open a PostgreSQL prompt. Exit the prompt by running \q then run sudo -u postgres createuser -s $YOUR_USERNAME where $YOUR_USERNAME is the username you are currently logged in as. Lastly, at least on Debian based systems, in the codebase under /config/database.yml you'll want to comment out the host: localhost to configure the database to use Unix domain sockets as outlined here.

There are more than one way to setup Postgres. For additional configuration, check out our postgres doc or the official PostgreSQL site for more information.

Installing Dev.to

  1. Fork dev.to repository, ie. https://github.com/thepracticaldev/dev.to/fork
  2. Clone your forked repository, ie. git clone https://github.com/<your-username>/dev.to.git
  3. Install bundler with gem install bundler
  4. Install foreman gem with gem install foreman
  5. Install our ruby dependencies with bundle install
  6. Install our frontend dependencies with bin/yarn
  7. Setup your database

  8. Create config/database.yml by copying from the provided template (i.e. cp config/database.yml.sample config/database.yml)
  9. Update the config/database.yml file if needed.

  10. Set up your environment variables/secrets

  11. Take a look at Envfile. This file lists all the ENV variables we use and provides a fake default for any missing keys. You'll need to get your own free Algolia credentials to get your development environment running.
  12. This guide will show you how to get free API keys for additional services that may be required to run certain parts of the app.
  13. For any key that you wish to enter/replace:

  14. Create config/application.yml by copying from the provided template (ie. with bash: cp config/sample_application.yml config/application.yml). This is a personal file that is ignored in git.
  15. Obtain the development variable and apply the key you wish to enter/replace. ie:
```
GITHUB_KEY: "SOME_REAL_SECURE_KEY_HERE"
GITHUB_SECRET: "ANOTHER_REAL_SECURE_KEY_HERE"
```
  • If you are missing ENV variables on bootup, envied gem will alert you with messages similar to 'error_on_missing_variables!': The following environment variables should be set: A_MISSING_KEY..
  • You do not need "real" keys for basic development. Some features require certain keys, so you may be able to add them as you go.

  • Run bin/setup