00:01 Are you taking this class using your Linux desktop?
00:03 Well, let's get your machine all set up and configured with MongoDb.
00:07 So here we are just on the homepage mongodb.com,
00:10 I am going to go click download, and it's totally possible to click and say
00:16 download the tarball, but we could also say I would like to see
00:19 how to set this up on let's say Ubuntu, as you change this,
00:23 notice different things happen, so if we go to Amazon
00:27 it says here are instructions for installing with yum, that's the package manager there,
00:31 if I go to Ubuntu, so here's the instructions for installing with aptitude,
00:34 so we're going to go over here to that one,
00:36 make sure you pick the right distribution, do we want to read this— no.
00:40 So there's a couple of steps that we need to go through
00:43 and they're pretty simple, most importantly they just like walk us through it
00:47 so notice here that there is a package named mongodb.org
00:52 let's try to just install that, sudo apt install that,
01:00 oh it needs my password, okay, and nope, there's no mongodb,
01:05 darn, doesn't it say right here, here's how you install all the pieces?
01:08 It is true, but we got to go through a few steps to get there.
01:11 So first thing that we got to do is basically add a source to aptitude,
01:16 so we're going to go over here, and we're going to set a key,
01:19 so you're just going to go through a few copy paste steps,
01:21 so we're going to do our apt key here, it takes a moment,
01:26 and all right, that's all good, next thing to do
01:28 is we're going to create a list file, all right, great.
01:34 Be really careful about the version numbers here,
01:38 later is probably better, pick the one that matches yours.
01:40 So the next thing we need to do, is run a sudo apt update
01:44 and you can do apt.get or just apt, whatever
01:47 but you need to tell it hey, go pull all the sources
01:50 now the new one included and just have that list there.
01:53 We don't need to back up anything, so go away.
01:58 Alright, now everything is registered, we're pointing at the right package source,
02:02 we've updated it, now we can go over here and do
02:05 our thing that we tried to do originally.
02:08 So we wanted a sudo apt installed mongodb.org,
02:14 this time it knows what that means, hey look that's mongodb,
02:18 mongos which is a sharding server, mongo server, mongo shell, mongo tools,
02:22 I am just going to install them all.
02:25
02:29 Perfect, okay, so we have MongoDB all set up and ready to go,
02:35 and now we can just type mongo, and it tries to connect,
02:40 we have mongo now but we really need to start it.
02:44
02:51 So we started up mongod, great, now we can connect to it.
02:56 Awesome so it has some warnings again about access control
02:59 when we get to the deployment chapter,
03:02 we're actually going to set up Ubuntu as a cloud server
03:05 with some of these errors removed,
03:07 we're going to set it up with access control, with authentication,
03:10 with firewalls, all sorts of things, but for now, for the dev version,
03:13 we're going to just use this, okay.
03:16 So it looks like it's up and running, that's cool,
03:19 now the last thing is maybe we want to configure our server;
03:22 so, we can come over here to /etc/mongod/conf
03:30 and you can see we've got our storage path,
03:33 like here's where our data files are going to go, change that if you like,
03:36 journaling, you generally want that on,
03:38 it's going to be running with wired tiger,
03:41 it is an older style of database storage engine called this mmapv1,
03:45 that's how things used to work, they've switched the default to wired tiger
03:49 because it's faster, I believe it's much faster for inserts a little faster for reads,
03:53 here's where the log file goes, if it's not working and you want to see what's going on.
03:58 So most importantly though is this bit right there, this bindIp.
04:02 So the bindIp is set to 127.0.0.1, we should have our firewall turned on anyway,
04:08 we shouldn't be exposing this port, but we're only listening on the local host,
04:13 I think this machine actually right now has two ip adresses,
04:16 one public ipv6 and one net ipv4 ip address,
04:21 but it's not listening on either of them because of this, right.
04:24 So it's super important that this is here,
04:27 otherwise if someone can get to this port on your machine
04:30 and you don't set up authentication, bad things happen.
04:33 All right, so make sure this is here,
04:36 and only change that on your staging servers
04:38 and other things where you control the network, much more carefully.
04:41 Again, we'll talk way more about this in the deployment section
04:44 but for now, this should do for our development environment.
04:47 The other things we'll have to do is we want to set up a RoboMongo,
04:50 we want to set up PyCharm, and we want to make sure
04:54 that we have Python 3 on here, I believe we do, 3.5.3 is more than late enough,
05:00 so we don't need to install any Python,
05:02 but be sure to get RoboMongo and PyCharm,
05:05 whichever version you want set up so that you can follow along.