a. Server: Basically a computer connected to a network with a specific purpose.
Things you'll need:
-
A Remote Computer
a. A VPS is a solid choice for most b. Your own garage server c. Even your cellphone might be setup as a server
-
Operating System
a. You need to choose the right Distribution for the right Job
- Processor
a. Virtualized? b. Dedicated Processing c. Distributed Processing
- Geographical location
Once you've got your box setup, these are the things you need to make sure you do:
a. Assuming a Linode: Ubuntu server 12.04 / 512 MB RAM / x86
- Make sure you know how to SSH access to your server
a. You'll most likely be root (which is kind of bad for a newb). Keep that in mind!
- Create a Non-priviledged User by leveraging the tools available on your distro
a. On Ubuntu you'll surely have access to adduser
. Run something like:
adduser deploy
- Edit the
/etc/sudoers
file
a. Make sure you add your user's group to the allowed shudders.
b. If you feel lost, try man sudoers
- Setup the web server
a. Install any Web Framework libraries, such as rails, php, python, etc. b. Install web server software. Common choices are: Apache, Nginx, Lighttpd, etc.
-. You should also install any framework specific module to your web server. In *rails'* case: Passenger, Mongrel, Thin, Unicorn, Puma, etc.
c. Web App Dependencies. bundler, postgresql if hosting the database on the same server, or anything else that's required to run the app.
-
- Deployment workflow
a. This is optional, but a best practice