{"__v":0,"_id":"5777c9635b2b430e00b982af","category":{"version":"5777c9635b2b430e00b982a5","project":"54348ec95b10711400c6c445","_id":"5777c9635b2b430e00b982a7","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2014-10-09T04:18:04.869Z","from_sync":false,"order":1,"slug":"guides","title":"Guides"},"parentDoc":null,"project":"54348ec95b10711400c6c445","user":"5435b410495d5d0800f3a603","version":{"__v":1,"_id":"5777c9635b2b430e00b982a5","project":"54348ec95b10711400c6c445","createdAt":"2016-07-02T14:02:11.084Z","releaseDate":"2016-07-02T14:02:11.084Z","categories":["5777c9635b2b430e00b982a6","5777c9635b2b430e00b982a7","5777c9635b2b430e00b982a8","5777c9635b2b430e00b982a9","5777c9635b2b430e00b982aa"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.2.0","version":"1.2.0"},"updates":["5497dc5eccb8e70b0008c292","54a6e31521a4791d00b636d0","54cb80fd61698d0d00baf7e7","553e71e08feab90d0059d910","553f67eb76155d0d0050849b","55cfcee82096360d0071364c","55cfd0418d728e0d00cc5b45","55d5e45cced8b9190077cc70","55e23f1aaa9345170063c0fc","55fa5893626c341700fd9df4","5603032f930fe1170074be28","562123a49288c00d00bb1e58","5679ad3584397c0d00fe147b","56a16b21e7056c170060ba38","56a16c11470ae00d00c30636","56dcb9807f55b3320074034d","56f01e66d386ce0e008e99ad","56fe82725a08190e000851e7","57321b85752a1f190012eb2b","57321c110ef9be17002c7148","57321cdea825f30e00b51b68"],"next":{"pages":[],"description":""},"createdAt":"2014-10-09T18:43:00.381Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"never","params":[],"url":""},"isReference":false,"order":0,"body":"The aim of this first guide is to get a Phoenix application up and running as quickly as possible.\n\nBefore we begin, please take a minute to read the [Installation Guide](http://www.phoenixframework.org/docs/installation). By installing any necessary dependencies beforehand, we'll be able to get our application up and running smoothly.\n\nAt this point, we should have Elixir, Erlang, Hex, and the Phoenix archive installed. We should also have PostgreSQL and node.js installed to build a default application.\n\nOk, we're ready to go!\n\nWe can run `mix phoenix.new` from any directory in order to bootstrap our Phoenix application. Phoenix will accept either an absolute or relative path for the directory of our new project. Assuming that the name of our application is `hello_phoenix`, either of these will work.\n\n```console\n$ mix phoenix.new /Users/me/work/elixir-stuff/hello_phoenix\n```\n\n```console\n$ mix phoenix.new hello_phoenix\n```\n\n> A note about [Brunch.io](http://brunch.io/) before we begin: Phoenix will use Brunch.io for asset management by default. Brunch.io's dependencies are installed via the node package manager, not mix. Phoenix will prompt us to install them at the end of the `mix phoenix.new` task. If we say \"no\" at that point, and if we don't install those dependencies later with `npm install`, our application will raise errors when we try to start it, and our assets may not load properly. If we don't want to use Brunch.io at all, we can simply pass `--no-brunch` to `mix phoenix.new`.\n\nNow that we're ready, let's run `mix phoenix.new` with a relative path.\n\n```console\nmix phoenix.new hello_phoenix\n* creating hello_phoenix/config/config.exs\n* creating hello_phoenix/config/dev.exs\n* creating hello_phoenix/config/prod.exs\n...\n* creating hello_phoenix/web/views/layout_view.ex\n* creating hello_phoenix/web/views/page_view.ex\n\nFetch and install dependencies? [Yn]\n```\n\nPhoenix generates the directory structure and all the files we will need for our application. When it's done, it will ask us if we want it to install our dependencies for us. Let's say yes to that.\n\n```console\nFetch and install dependencies? [Yn] Y\n* running mix deps.get\n* running npm install && node node_modules/brunch/bin/brunch build\n\nWe are all set! Run your Phoenix application:\n\n    $ cd hello_phoenix\n    $ mix phoenix.server\n\nYou can also run your app inside IEx (Interactive Elixir) as:\n\n    $ iex -S mix phoenix.server\n\nBefore moving on, configure your database in config/dev.exs and run:\n\n    $ mix ecto.create\n```\n\nOnce our dependencies are installed, the task will prompt us to change into our project directory and start our application.\n\nPhoenix assumes that our PostgreSQL database will have a `postgres` user account with the correct permissions and a password of \"postgres\". If that isn't the case, please see the instructions for the [ecto.create](http://www.phoenixframework.org/docs/mix-tasks#section--ecto-create-) mix task.\n\nOk, let's give it a try. First, we'll `cd` into the `hello_phoenix/` directory we've just created:\n\n    $ cd hello_phoenix\n\nNow we'll create our database:\n\n```\n$ mix ecto.create\nThe database for HelloPhoenix.Repo has been created.\n```\n\n> Note: if this is the first time you are running this command, Phoenix may also ask to install Rebar. Go ahead with the installation as Rebar is used to build Erlang packages.\n\nAnd finally, we'll start the Phoenix server:\n\n```console\n$ mix phoenix.server\n[info] Running HelloPhoenix.Endpoint with Cowboy using http on port 4000\n23 Nov 05:25:14 - info: compiled 5 files into 2 files, copied 3 in 1724ms\n```\n\nIf we choose not to have Phoenix install our dependencies when we generate a new application, the `phoenix.new` task will prompt us to take the necessary steps when we do want to install them.\n\n```console\nFetch and install dependencies? [Yn] n\n\nWe are all set! Run your Phoenix application:\n\n    $ cd hello_phoenix\n    $ mix deps.get\n    $ mix phoenix.server\n\nYou can also run your app inside IEx (Interactive Elixir) as:\n\n    $ iex -S mix phoenix.server\n\nBefore moving on, configure your database in config/dev.exs and run:\n\n    $ mix ecto.create\n\n\nPhoenix uses an optional assets build tool called brunch.io\nthat requires node.js and npm. Installation instructions for\nnode.js, which includes npm, can be found at http://nodejs.org.\n\nAfter npm is installed, install your brunch dependencies by\nrunning inside your app:\n\n    $ npm install\n\nIf you don't want brunch.io, you can re-run this generator\nwith the --no-brunch option.\n```\n\nBy default Phoenix accepts requests on port 4000. If we point our favorite web browser at [http://localhost:4000](http://localhost:4000), we should see the Phoenix Framework welcome page.\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"caption\": \"Phoenix Welcome Page\",\n      \"image\": [\n        \"https://files.readme.io/dgQq2PC8SiyitRnHtf7A_welcome-to-phoenix.png\",\n        \"welcome-to-phoenix.png\",\n        \"1702\",\n        \"1262\",\n        \"\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nIf your screen looks like the image above, congratulations! You now have a working Phoenix application. In case you can't see the page above, try accessing it via [http://127.0.0.1:4000](http://127.0.0.1:4000) and later make sure your OS has defined \"localhost\" as \"127.0.0.1\".\n\nLocally, our application is running in an `iex` session. To stop it, we hit `ctrl-c` twice, just as we would to stop `iex` normally.\n\n[The next step](http://www.phoenixframework.org/docs/adding-pages) is customizing our application just a bit to give us a sense of how a Phoenix app is put together.","excerpt":"","slug":"up-and-running","type":"basic","title":"Up And Running"}
The aim of this first guide is to get a Phoenix application up and running as quickly as possible. Before we begin, please take a minute to read the [Installation Guide](http://www.phoenixframework.org/docs/installation). By installing any necessary dependencies beforehand, we'll be able to get our application up and running smoothly. At this point, we should have Elixir, Erlang, Hex, and the Phoenix archive installed. We should also have PostgreSQL and node.js installed to build a default application. Ok, we're ready to go! We can run `mix phoenix.new` from any directory in order to bootstrap our Phoenix application. Phoenix will accept either an absolute or relative path for the directory of our new project. Assuming that the name of our application is `hello_phoenix`, either of these will work. ```console $ mix phoenix.new /Users/me/work/elixir-stuff/hello_phoenix ``` ```console $ mix phoenix.new hello_phoenix ``` > A note about [Brunch.io](http://brunch.io/) before we begin: Phoenix will use Brunch.io for asset management by default. Brunch.io's dependencies are installed via the node package manager, not mix. Phoenix will prompt us to install them at the end of the `mix phoenix.new` task. If we say "no" at that point, and if we don't install those dependencies later with `npm install`, our application will raise errors when we try to start it, and our assets may not load properly. If we don't want to use Brunch.io at all, we can simply pass `--no-brunch` to `mix phoenix.new`. Now that we're ready, let's run `mix phoenix.new` with a relative path. ```console mix phoenix.new hello_phoenix * creating hello_phoenix/config/config.exs * creating hello_phoenix/config/dev.exs * creating hello_phoenix/config/prod.exs ... * creating hello_phoenix/web/views/layout_view.ex * creating hello_phoenix/web/views/page_view.ex Fetch and install dependencies? [Yn] ``` Phoenix generates the directory structure and all the files we will need for our application. When it's done, it will ask us if we want it to install our dependencies for us. Let's say yes to that. ```console Fetch and install dependencies? [Yn] Y * running mix deps.get * running npm install && node node_modules/brunch/bin/brunch build We are all set! Run your Phoenix application: $ cd hello_phoenix $ mix phoenix.server You can also run your app inside IEx (Interactive Elixir) as: $ iex -S mix phoenix.server Before moving on, configure your database in config/dev.exs and run: $ mix ecto.create ``` Once our dependencies are installed, the task will prompt us to change into our project directory and start our application. Phoenix assumes that our PostgreSQL database will have a `postgres` user account with the correct permissions and a password of "postgres". If that isn't the case, please see the instructions for the [ecto.create](http://www.phoenixframework.org/docs/mix-tasks#section--ecto-create-) mix task. Ok, let's give it a try. First, we'll `cd` into the `hello_phoenix/` directory we've just created: $ cd hello_phoenix Now we'll create our database: ``` $ mix ecto.create The database for HelloPhoenix.Repo has been created. ``` > Note: if this is the first time you are running this command, Phoenix may also ask to install Rebar. Go ahead with the installation as Rebar is used to build Erlang packages. And finally, we'll start the Phoenix server: ```console $ mix phoenix.server [info] Running HelloPhoenix.Endpoint with Cowboy using http on port 4000 23 Nov 05:25:14 - info: compiled 5 files into 2 files, copied 3 in 1724ms ``` If we choose not to have Phoenix install our dependencies when we generate a new application, the `phoenix.new` task will prompt us to take the necessary steps when we do want to install them. ```console Fetch and install dependencies? [Yn] n We are all set! Run your Phoenix application: $ cd hello_phoenix $ mix deps.get $ mix phoenix.server You can also run your app inside IEx (Interactive Elixir) as: $ iex -S mix phoenix.server Before moving on, configure your database in config/dev.exs and run: $ mix ecto.create Phoenix uses an optional assets build tool called brunch.io that requires node.js and npm. Installation instructions for node.js, which includes npm, can be found at http://nodejs.org. After npm is installed, install your brunch dependencies by running inside your app: $ npm install If you don't want brunch.io, you can re-run this generator with the --no-brunch option. ``` By default Phoenix accepts requests on port 4000. If we point our favorite web browser at [http://localhost:4000](http://localhost:4000), we should see the Phoenix Framework welcome page. [block:image] { "images": [ { "caption": "Phoenix Welcome Page", "image": [ "https://files.readme.io/dgQq2PC8SiyitRnHtf7A_welcome-to-phoenix.png", "welcome-to-phoenix.png", "1702", "1262", "", "" ] } ] } [/block] If your screen looks like the image above, congratulations! You now have a working Phoenix application. In case you can't see the page above, try accessing it via [http://127.0.0.1:4000](http://127.0.0.1:4000) and later make sure your OS has defined "localhost" as "127.0.0.1". Locally, our application is running in an `iex` session. To stop it, we hit `ctrl-c` twice, just as we would to stop `iex` normally. [The next step](http://www.phoenixframework.org/docs/adding-pages) is customizing our application just a bit to give us a sense of how a Phoenix app is put together.