Most people new to rails go through some sort of ‘make-an-app-in-under-15-minutes’ tutorial, which always includes instructions to run
rails s or
rails server to get a preview of your app.
Typing it into a console usually produces something like this:
That means that a Rails server is now listening on port 3000.
And when you point your browser to
localhost:3000 (or alternatively
http://127.0.0.1 is your computer’s loopback address), you see the standard Welcome Aboard message:
Of course that is the case where the app is either blank (so that going to leads to a blank website or no root page has been set up) so that when you click on http://localhost:3000/rails/info with server running, you see this:
(note that it only works for development environment; once your app is deployed, say,
my-app.herokuapps.com/rails/info won’t work unless you have built that route and populated it.)
localhost:3000 is so common that someone registered a website that takes you to a website that reminds you you forgot to start your server, if that is indeed the case.
Note that when using Chrome, you can just type in
localhost:3000, but for Internet Explorer, you would need to point your browser to
http://localhost:3000, otherwise, you will see an error message.
Once your app has a model or two and corresponding migrations have been run, you will be able to point your browser to, say
localhost:3000/users if a User model is present.
I haven’t been able to find a comprehensive answer to why Rails uses port 3000 vs. any other port. Octopress uses 4000; Sinatra uses 4567; shotgun uses 9393. Meteor also uses 3000 as a development default. There is a fairly comprehensive list on Wikipedia.
What if I want to use another port?
To switch port to, say, 80, run this:
rails server -p 80
You might need to prepend it with
You can use an alias if you plan on often changing your default development port:
alias rails-server-port='rails server -p 80' (using
See documentation on it here as I could not find any actual description in Terminal:
rails s will run as development, not production, by default. To change port for a different environment, run something like:
rails server -e production -p 4000