Skip to content

Latest commit

 

History

History
109 lines (74 loc) · 3.35 KB

File metadata and controls

109 lines (74 loc) · 3.35 KB

How do I install the Code Corps API?

Requirements

You will need to install Docker.

Here are some direct links if you're on Mac OS X or Windows.

Follow those download instructions. Once you can run the docker command, you can safely move on.

Clone this repository

You'll want to clone this repository with git clone https://github.com/code-corps/code-corps-api.git. If you plan on contributing, you'll want to fork it too!

The directory structure will look like the following:

code-corps-api/          # → Root folder for this project
├── blueprint/
├── config/
├── ...                  # → More standard Phoenix files
├── docker-compose.yml   # → Compose file for configuring Docker containers
└── Dockerfile           # → Creates base Elixir Docker container

Setup your Docker containers and run the server

Note: We bind to ports 49235 for web, 49236 for test, and 8081 for apiary. Make sure you're not running anything on those ports. We do not expose port 5432 for postgres or 9200 for elasticsearch.

Go to the code-corps-api directory and copy the .env.example file:

cd code-corps-api
cp .env.example .env

Now, you can initialize docker, type:

docker-compose build
docker-compose up

You should now see a lot of output from the Docker processes and will not be able to interact with that terminal window.

Docker will set up your base Elixir container, as well as containers for:

  • postgres
  • elasticsearch
  • web runs mix do ecto.create, ecto.migrate, phoenix.server
  • test runs mix test
  • apiary runs an Apiary client server on port 8081

You can view more detailed information about these services in the docker-compose.yml file, but you shouldn't need to edit it unless you're intentionally contributing changes to our Docker workflow.

Troubleshooting

If you see an error like this at the bottom of the output:

Unchecked dependencies for environment dev:
* httpoison (Hex package)
  lock mismatch: the dependency is out of date (run "mix deps.get" to fetch locked version)
** (Mix) Can't continue due to errors on dependencies

It means you need to fetch your dependencies:

docker-compose run web mix deps.get

Then re-run the previous command:

docker-compose build
docker-compose up

Seed the database

You'll probably want to seed the database. You can do this with the following command:

docker-compose run web mix run priv/repo/seeds.exs

Verify it worked

Point your browser (or make a direct request) to http://api.localhost:49235/users. You'll get the following response (although you might have data if you seeded the database):

{
  "jsonapi": {
    "version": "1.0"
  },
  "data": []
}

Next steps

Now that you're set up, you should read more about how to develop with the API.

Issues installing?

Having trouble?

Create an issue in this repo and we'll look into it.

Docker's a bit new for us, so there may be some hiccups at first. But hopefully this makes for a less painful developer environment for you in the long run.