MSNR

MSNR Step 2 – Getting Ready for Development

This isn’t really a step in the MSNR process but more notes for myself in the future so when I build another server I know what to do and not have to do everything over again from scratch.

Well your not gonna stand in front of your server all day while you code are you?  Well I’m not (not that dedicated).  Today I want to cover the basics of getting openSSH installed, configured and connecting to your files over SFTP.

I’m on windows so it was actually a bit of an ordeal the first time.

  1. If you don’t have it go download Putty.
  2. Next, generate an SSH Key:
    • Open the PuTTYgen program.
    • For Type of key to generate, select SSH-2 RSA.
    • Click the Generate button.
    • Move your mouse in the area below the progress bar. When the progress bar is full, PuTTYgen generates your key pair.
    • Type a passphrase in the Key passphrase field.
    • Type the same passphrase in the Confirm passphrase field. You can use a key without a passphrase, but this is not recommended.
    • Save your private key.
    • Select your public key and paste it into a new text file
      • You can use the saved one on openSSH Putty will format it wrong
  3. Now that you got your keys comes the fun part get the public key on your server.
    • Copy your text file with the pasted key on to a jump drive.
    • Plug that into your server
    • Once you plug it in you’ll notice that Ubuntu recognized it and probably set it to something like [sda]
    • Now for the commands
//Mount your USB drive
sudo mkdir /media/usb
sudo mount /dev/sda1 /media/usb
//Yours might just be /dev/sda

//Create your authorized keys file
cd ~
//If your not already there
sudo mkdir .ssh
sudo chmod 700 .ssh
cd .ssh
sudo touch authorized_keys
sudo chmod 600 authorized_keys

//Now we'll add your key (from the file on your jump drive) to our authorized_keys file
sudo cat /media/usb/mypublickey.txt >> authorized_keys

//Now unmount your jump drive
sudo umount /meida/usb

//Remvoe your jump drive & restart SSH
sudo restart ssh

Now you should be able to create your connection to your server.  Open up Putty type in the IP of your server then go to the Connection >> SSH >> Auth and put the location of your Private key that you saved earlier in the “Private key file for authentication:” field.

There you are SSH done.  Finally to connect to your folder via SFTP (I use Filezilla).  First load your private key file into Filezilla and open up Edit >> Settings.  Now go to the SFTP section and add your private key file again.  If you used a passphrase you’ll have to enter it in and save another version of your keyfile with out a passphrase.  Add the keyfile and create your new connection.  Use your username and the IP and you should be good to go.

Happy coding.

The MSNR Stack Step 1

I’ve been letting the idea for the MSNR stack ruminate in my mind for a while now and it was finally time to pull the trigger.  There are an endless array of node frameworks sprouting up but at the end of the day I think its important to do what your comfortable with and for me that’s MVC and SPAs that don’t step it your MVC aka the MSNR stack.

Today I took a very important step toward that goal by setting up my first very own server!  Well it’s not the first time I’ve set up a server or anything but it’s the first time I’ve done it outside of a VM!  I purchased an old HP G5 DL380 recently and decided it was high time to get it up and running.

The first thing I did was mount the sucker:

Then I wired it up, got it some juice (power) and some food (internet) switched it on and it was like the jet of my dreams taking off in my basement.  (The fans are really loud on start up…)

After that I installed Ubuntu 12 LTS since it was certified for my hardware.  Once the install was done it was time to get node installed.  I used a package available here from joyent with great success.

Then I had to make sure it would actually show something if I navigated to it.  By default node does not serve anything like nginx or lamp.  You need to create an application in order for something to display enter the Hello World app:

I’m a fan of nano so I did :

nano ~/hello_world.js

Then I got to work writing my first app (which I stole from the node site).

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(80);

Once it was all ready I did my CTRL+X  Y and Enter to save my file.  Then finally it was time to test!

sudo node ~/hello_world.js

At this point if you did everything right all you should see is a flashing underscore.  You’ll need to use sudo if you are using port 80 like I am.

Finally I wanted to see my master piece in action so I logged on to my domain registrar, created a new subdomain, went to the Advanced DNS editor and redirected the sub-domain to my IP address.  Once that was setteled I went into my At&T 2WIRE router and went into my firewall, selected my server and set it to accept traffic on port 80 (by clicking the Server link and the Web Server selection).

TLDR for all those who skip to the bottom (like myself).

  1. Get a server
  2. Install Ubuntu
  3. Install Node
  4. Create a Node App
  5. Point a Domain to your IP Address
  6. Ensure your Router/Firewall are ready for the traffic.

DONE

http://dev.motoandmustache.com/

Not too bad for an evenings work.