Chris Mendez in For Developers, Tools for Software Engineers, APIs, SaaS, IaaS, PaaS, Elixir

Installing Elixir and Phoenix on a Mac

If you're a Rubyist and you're interested in building large-scale applications, Elixir is a very good alternative. It feels like Ruby but is structured like Erlang.

I'm currently researching Elixer for an upcoming project so here are my notes on how to install it for Mac.

Step 1 - Homebrew + PostgreSQL

Homebrew is amazing and if you're not familiar with it, read this first.

Here are instructions on how to install postgres for your database.

brew install postgresql  

Step 2 - Elixir + Erlang

Elixir is the programming language and we use Homebrew to install it.

brew install elixir  

Elixir is built on top of Erlang's virtual machine so we need Erlang.

brew install erlang  

Step 3 - Phoenix Framework

Node is optional but it's used by Phoenix for compiling static assets.

brew install node  

Hex is the package manager for Elixir. We'll need this for installations.

mix local.hex  

The latest version of Phoenix can be found within the archives. A mix is Zip file which contains an application as well as its compiled BEAM files.

mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez  

Step 4 - New App

Create a new Phoenix app.

mix phoenix.new [name_of_app]  

Change directory into the Elixir app you've created.

cd [name_of_elixir_app]  

Step 5 - Database

We use Ecto to connect to PostgreSQL so let's create an ecto user.

Create an ecto user in Postgres.

createuser ecto --pwprompt  

Create a database for this project.

createdb -Oecto -Eutf8 name_of_db_development  

Double check that you can login to postgres using ecto.

psql name_of_db_development --user ecto --password  

Configure config/dev.exs

# Configure your database
...
  adapter: Ecto.Adapters.Postgres,
  username: "ecto",
  password: "password",
  database: "chris_dev",
  hostname: "localhost",
  pool_size: 10
...

Step 6 - Start App

Get the dependencies and compile the phoenix project before you go any further.

mix do deps.get, compile  

Start your server.

mix phoenix.server  

Step 7 - Success

Visit http://localhost:4000/ to see your app in action.


Tips and Tricks

Create a barebone application

mix phoenix.new [name_of_app] --no-brunch --no-ecto  

Access Interactive Elixir

Similar to Ruby's IRB, Elixir offers iex

iex