Hub
James Roadman and Ian Davlin setting up AWS web hosting on 3D Club
Video Looth Lite

3D Club: AWS Web Hosting (AI Driven)

James Roadman and Ian Davlin stand up a live website on AWS — domain to EC2 to Nginx to SSL — and wire Claude Code straight into the dev server.

Tools, Spaces, Robots, and Widgets 3d Club ai web development aws certbot claude code ec2 elastic ip ian davlin nginx route 53 ssh ssl vs code web hosting webmin

Aired on Looth Group Live — Monday, June 8, 2026.

In this 3D Club session, luthier James Roadman of Roadman Guitars hosts Ian Davlin for a full, start-to-finish walkthrough of standing up a live website on Amazon Web Services — the AI-driven way. It runs from a Claude-built sample page through the whole stack: buying a domain in Route 53, launching an EC2 instance, renting a permanent Elastic IP, wiring DNS records, SSHing into the server, installing Nginx and a Certbot SSL certificate, and opening Webmin for browser-based file management. Roadman Guitars goes live on camera. In the final phase they connect Claude Code directly to the dev server so it can build and deploy pages live, and Ian shows his own VS Code-on-EC2 workflow — closing with practical security advice.

Chapters

Download the demo page

Read transcript

Transcript programmatically cleaned from the video captions (caption cruft stripped, filler trimmed, tech terms corrected: Nginx, Certbot, Webmin, Route 53, EC2, Elastic IP, VS Code, roadmanguitars.com). Not a verbatim hand-edit; the full session runs 2h20m.

00:00:00 — Introduction: AWS Web Server Setup Overview

All right, welcome to 3D Club. Today we're joined by Ian Davlin. he's going to help us set up an Amazon web server instance. so probably a lot of you that have been on the loop long are familiar when Ian comes in and he's very excited about something he's accomplished on the website and he he says about five minutes of stuff peppered with jargon that none of us understand.

But today we're going to learn what that stuff means and we're going to understand everything he says about web servers from here into the future. So we he and I have been going back and forth. He walked me through how to do this and then we came up with a workflow that that's pretty repeatable and we're going to go through it today. so should we go ahead and start out with Claude

00:01:03 — Claude Builds a Sample Web Page

Making a web page and sort of as a as an intro? Sure. So the path that we're going to take is we're going to go ahead and set up the server manually but as a second phase at the end we're actually going to connect Claude to the server so that so that you can program web pages with Claude and have Claude push it to the server without you having to actually do that manually. but we thought to start we would just do a demonstration of Claude making a web page with the idea that the at the end of phase one, this is something that could be uploaded to the server and then we'll show how to actually have Claude do that.

So, let me go ahead and share my screen. All right, so we've got Claude up there. He's very happy to see me. so I'm going to say here is a picture.

Please, well, Ted asked me not to say not to be too kind to AI because it wastes tokens. So, I'm not going to say please, even though it's it's hard for me not to. It's like one token. Say please.

Please make me a single page. help me with the with the prompt if you see something in a single page HTML page. Are you doing this for Roadman guitars? Yeah.

Say search the web for ination on James Roadman guitar repair. Okay. what else would you add? Make I use the image as a hero image.

What was the term you used, Ian, for the editing that it does on the photo? well, I mean, you might I mean, you might want to have it what kind of picture is it? What's the file type? It's just a picture of a Mosite on the bench.

Okay. I mean,, like one thing that you might do is have it convert it to WEBP so that it serves fast and light on the internet. Okay. So, oops.

All right. Use imaging. convert the image to WEBP. Yep.

Okay. We just go with that. Let's see. Here's here's here's a picture.

Please make a single page HTML but search. okay. And so I'm going to just add a file. here's my image.

Okay. And then All right. And so we'll give it a little

00:04:26 — Security Concerns: Claude Desktop & Terminal Access

Bit of time to get going on that. okay. so at the top I thought while it's going, I'll address some things. One, security.

I'm I'm going to be showing how to set this up and,, some of the security codes will be visible. this is a demo and I'm going to be deleting all of this afterward. but just,, be aware that all those things are important. people can get into your server if you're loose with that stuff.

Anything you should add to that, Ian? because I just got the MacBook and I just downloaded Claude like desktop or whatever. Are there any concerns I should have about because I remember Ian you talking about setting Claude up in some separate isolated environment or something. Is there any reason I should downloaded it as claw desktop?

And this is a this is a concern because what a lot of people don't understand about cloud desktop and basically what you're doing in order to do this through desktop is you're giving claude terminal access on your computer. and basically what that means is you then you can set it up so that it's secure on your own computer with especially on Mac with doing file struct or folder structures and permissions like you might do on the Linux server like we're about ready to show. but just know that if you run it wide open, the reason why you're why you have any security at all is just basically your handshake agreement with Anthropic at this point. And so, at least that's my that's my hunch on it.

Now, Claude says,, it's not going to go anywhere you don't tell it to go. And maybe there's sophisticated programming to keep it from happening, but, like you're basically at that point, I would guess you're just trusting Anthropic and their employees. so, if you got a an old laptop around or you got a,, something that's,, like an old PC kicking around or something like that, I mean, it you can it's not a big intensive, program. So you can run you can run this on a pretty cheap pretty secure like budget desktop or something if you got old gear kicking around.

So but we're envisioning this episode as an intro. So we're going to show this method and if there's interest that we could do further shows on what Ian's done to set up Claude on a remote server and that type thing. Right. Cool.

Okay. So if you hire a website to host you, will they handle the security thing in terms of locking down the code you create with COD? We're going to so your website by the end of this is going to be very secure. the main thing that is the sticking point is what you're what you're the machine that you're building this with is your basically your home computer is the one that's getting exposed to Claude.

So if you do so this is James is showing you what the website is that it built. Okay. I'm just going to Oh, that's nice. Little guitars where old guitars come home.

Makes it sound like they come and stay with me. Anyway, but this is just an example of the speed and intricacy that Claude can make just with the barest of prompting. and information gathering on its own. So everybody understands now that this is just running in the browser.

There's no this is not being served on roadmanguitars.com. And what we're what we're looking to do is to deploy this on a server that has the DNS which is DNS's domain name server. You know, when you buy your domain name, that's what you're buying is server space somewhere telling the internet traffic that when it goes to roadmanguitars.com that it lands at this IP address. we'll go through we'll go through all that.

I don't I don't need to confuse you guys. So so obviously if you were if you were making a website for yourself, you'd spend a lot more time with that prompt or making it how you envisioned it to be. But this just we wanted to do something quick as an example of what Claude's capable of. James, just quickly, I saw it said that it was going to the Fretboard Journal article.

Did you tell it to do that or did it just do that by itself? It did it by itself. I said just search the internet for information on me. Okay.

And it went out and scoured the internet and I've done this several times and it comes back with different information every time with different quotes and so it behaves very much like an AI it's it's a little bit unpredictable the better your prompt is the more predictable the results are the thing about this that I would maybe go back to the intro and just bang out which is we're we're showing you how to deploy a website now, but really this works for anything. If you cook up an app and you want to serve it from roadmanguitars.com, this is the path that you would take to serve an app from that that website. So, this is we're just showing you how to do HTML things. So, this is like the start of doing whatever you want to do with web servers.

Yeah. and so the reasons you might want to do this one, you developed an app and you want a place to serve it from. Perhaps you want to get away from one of the commercial,, web service sites and make a more intricate website that you have more control over. and it's it's really inexpensive to do.

So I

00:11:08 — AWS Console Setup: Billing, EC2 & Route 53

Think we'll just jump right into the Amazon web server console. So what you see on my screen on the left is the Amazon web server console as it would be if you had just signed up. only you would not have been to these recently visited sections. so very quickly we're going to show you a way to set up your console so it's easy to use.

In this recently visited section that I have you'll see the three components that we're going to ask you we're going to instruct you to add to your console. So that because these are the three that we will be visiting most often. and the way to do that is up in this search bar. I'll talk about each one as we do it.

So first we're going to look for billing and cost manager right here. And we're going to click this little star to the right. And when you do that, if you go back to the console, you'll see that it was added to this top bar up here. so it's very easy and quick to get to.

I'm going to go ahead. Well, we'll talk about bill billing and cost management. That's where you can see how much your sir how much you've spent so far. after some time it will have projected cost.

But you can also set a budget. in this case we're going to set a budget of $20 a month. And what that does is it gives you some warnings if you're projected to go or you have gone above your budget. this is important because if something does go wrong and someone has commandeered your server to do something intensive, maybe they're calculating pi and it's running non-stop, it could potentially run up run up the cost.

That's that's unlikely, but but it's a good safeguard to have in place. the other thing we're going to have you add is EC2. Just search for it in the search bar. and then star to the right.

It'll add it to the top bar as well. EC2 is actually the server. imagine this as a computer in the cloud that you get to use or renting. and it will be the computer that's going to serve your files.

And the other thing to add is root 53. And we're going to start that. Route 53 is your DNS. I don't always say server.

What would be the right term for that? Ian the it is a domain name server and basically what that is just there are servers somewhere I'm sure Amazon runs their own and it just basically says when you buy a server name like frets.com or roadmanguitars.com or whatever it's just it's just keep it's just keeping track of who owns what. So only one person can buy one domain,, one domain name at a time. So if you've ever looked for a domain before and you've been that one's already taken, that means that whoever you're buying your domain name from went out and looked and found the record that one was already taken by somebody else.

So so that's Route 53 here is what manages that. It's where you would go to buy a domain name or if you had a domain name that you purchased somewhere else and you want to just point it at this server, you could go in there and change the name servers so that it points to your Amazon web server that your EC2 instance. Route Route 53 is also where you after you get your name servers lined up. This is where you route that to meet up with your EC2 instance to like once we decide we're going to go with roadmanguitars.com, we're going to use Route 53 to point that domain name at this server.

So or at the server that we spin up. Okay. And so the first thing we're do, we're going to go into bit billing. Well, I'm going to talk about my screen here for a minute.

I've got I've got the the Amazon console squashed over here on the left two/irds of the screen because on the right I have a road map for all the steps that we're going to take. It's going to tell us what to do when we're going to plug in some of these items. and it's going to autopop populate the code that we need to use. we are going to be using terminal at one point and so any of you those who are not familiar with terminal it's it's the direct access to your operating system on the computer looks a little bit like a little bit like war games for those of you who are old enough to we're probably all in that same roughly that same generation.

It is not a graphical interface. It is a text interface and we'll show that shortly but a lot of the commands are going to be entered in the terminal. so first thing we'll do is we'll go to billing and cost management. One one other thing on security if you do set up a Amazon if you do set up get yourself an Amazon account put two-factor authentication on it immediately.

Don't don't waste your time with that because if somebody gets in here into your root your root access here, even if you have cost, billing and cost set up, if somebody was to hack into your AWS, they could run up a bill really fast in your route. So, get two-actor authentication. And I highly recommend getting the authenticator app from the Google App Store and just running that. It's very It's never been cracked.

So, anyway, and the way that works is at login it's it asks you for an authenticator code and you open up the authenticator code on your cell phone. and it has a six-digit code that's constantly changing. And so you put the one that is at that moment in time is on the phone into the the app and it double checks to make sure that those two things belong to you. Okay.

So here we're in billing and cost management. we're going to go down here to wait where is budgets? Okay. So

00:18:07 — Setting a Cost Budget & Your IP Address

Here we have where is there it is budgets. Okay. and then we're going to Where's create budget? Create budget.

We're going to use template simplified a monthly cost budget. And we're going to say our monthly cost budget is $20. And we're going to do roadman guitars. and then I'm going to put my email in there.

Okay. And then we're going to create a budget. Okay. And it says, "Great, you've created a budget." and if we go, let's see, if we go to the home, you can see that,, last month I spent, well, this month to date, I spent $3.3.

Last month I spent $19 because I bought the domain name. let's see. And if we refresh that it will say that I have this budget status. Okay.

That means that budget is implemented. Okay. so one thing you'll want to do before you get started is you'll want to make a new window and you'll want to figure out what your IP address is. And so in if you put what is my IP into the search bar, you'll you'll end up with a bunch of places where you can just look up what your IP is.

It'll go through and it'll check to see what your IP is. I have this little sticky note here. Let's see if they still match. And you can see that before we started, I'm on a revolving public IP.

And so what I did was I I copied down what my IP is. that is not my permanent home IP. but we'll want to have a note to use that for later. Anybody need explanation what your IP address is?

Yes, that's just the that's the number that your computer has. You probably don't know it and it's assigned by your internet service provider, but that's the number that your traffic goes out as. So when your traffic goes out, other computers are going, "Oh, this is Thomas. He's got this address." So that's that's But most of us aren't going to have static IPs.

We're going to have dynamic IPs, right? you'll have a it depends on your internet service provider. Mine I'm on Verizon and mine's static enough that I can count on it. We're going to do some security stuff that's based around your IP being semi-static.

But basically what it means is if I ever lose access to my server, the first thing I do is check my IP address and then look at my security setup and see if they jive. but if you have if your IP stays static for like,, three or four months at a time, then you're good to go on this. If you got something where it's rotating daily, then you may in order to do this, you may want to,, get a static IP from like Nord or something. I'm going to be traveling and I want to work securely on my servers.

And so I am gonna as I'm traveling I'm going to get a static IP from Nord or somebody and have something on the road that I can count on. So yeah, I've got a SAS a static IP at home for this demo. I logged into my phone so that it would have an alternate IP just for demo purposes. can I ask a question?

Wait. Okay. So my IP is linked to my laptop, right? Yes.

So to your to the router that you're what is like if I there are several there's several routters and service providers that I will go to. Do I have to be at work for or things to recognize that's my IP for my or does it if I'm on another Wi-Fi network, does it still register as like my IP? We're going to show you how to lock communication into one IP. I would think in that situation you might go ahead and make a separate A record for each of the IPs that you use frequently.

Would that be the attack you would take in? Say that one more time. If if someone has a couple of different routers that they frequently log into, would you just create multiple A records to lock it down to those particular IP addresses? I think we're I don't think that's right.

Are you talking about home routers? Yeah. Say I go from here to work my building's Wi-Fi. I'm not This isn't my Wi-Fi.

Yeah. Say I go from here to home. Yeah. Yeah.

And I'm Wi-Fi network or I go to my folks and I'm on a different Wi-Fi network. What does that like? So there's a couple different things. Your Wi-Fi is on like a local network and what's actually at the building whatever the general service is your IP,, your IP address for your internet service provider.

So those are two different things. And yes, you will have a different one at your work and a different one at home, but it doesn't have anything to do with the routers. It just has to do with how the internet's coming in. So, I'm I'm still a little bit of a novice on the network stuff, but that's my general understanding.

So, if what you're looking for is to be able to work on your server securely from work and from home, first of all, I would probably wouldn't do it on at work. And at home, I would I would probably or if you wanted to, you could just set up your security group to pay attention to both to both IP addresses. Basically, what we're doing is we're going to put in a firewall through Amazon that is basically the only traffic that can go to that server that's potentially messing around with the in the guts of the server can only come from the IP addresses that you specify. So even if somebody breaks your codes or your keys or whatever out on the worldwide web there, they can't actually get into your server because Amazon just isn't going to allow traffic from their IP address.

Is that what you meant, James? Yeah. Yeah. Okay.

When we get when we get to that step where we set set the permissions for the IP, it'll probably be more clear. Okay. so at this point, we have the information that we've set up at this point. if you were starting this from scratch, you would go in and you would buy the

00:25:47 — Buying a Domain in Route 53

Domain name that you wanted. And at the time that you and you would do that in Route 53. So, let's go to Route 53. and you would go here to domain registration.

You can see that I have one domain registered roadmanguitars.com. and if you were just signing in, hadn't done this before, there would be nothing listed here and you could register a do a domain. when you register your domain, you pay the fee and then it will set up what's called a hosted zone. And that's we'll see that here in just a little bit.

Okay. So, we did the looking here on the right when you see the steps, we did our cost budget. we've done the we've seen where to buy our domain and talked about what Route 53 does. so we're going to go ahead and launch an EC2 instance.

This is be the server in the cloud. Okay. So, we're going to go up here to EC2. Okay.

00:27:00 — Launching an EC2 Instance

We're going to go to instances here on the left and we're going to launch an instance. Okay, we the when you bought your domain name, it would set up the hosted zone. so that'll always be in place and you'll hit launch instance. Okay.

And we're going to give it a name, roads.com. This that name right there, just so everybody knows, that name doesn't have anything to do with anything other than just organizing stuff in AWS. That doesn't actually set roadmanguitars.com to that to your server. We could just do roadman guitars or any any name.

Okay. we're going to recommend using the Ubuntu server. I've got I've got all this. let's see over here.

It should give you all this information. if not, we'll add it. Yeah, Ubuntu. Okay.

We're going to switch here to ARM. And you just hit confirm changes. Okay. Down here to instance type.

We're going to do micro. It's already set to that. There are other options for larger and smaller servers, but micro is going to be the one that we suggest. Should we talk about price really quick?

Yes. Okay. So, here you want to go ahead and go through the Yeah, I don't have the calculations, but just so everybody knows that server right there is saying on demand Ubuntu Pro base pricing is one 1.1 cent per hour. go ahead and go up to the Yeah, that one.

Nope. Down, down, down, down, down, down, down, down. It's It's in that area. It's just the on demand.

Oh, nope. Nope. Over. Just go down.

Ubuntu. No, up in that block. In that block in the Okay. Yep.

Down one. Yep. Oh, right here. Y 1.1 cent or 1 point 1.2 cent per hour.

So, Amazon figures that there's roughly, what is it, 720 hours in a month. So, that equals, if you were to run this server wide open, what would that be, James? $8.64. Yeah.

And for a lot of you people, this is actually probably more server than you need. If you go back up and look at the Nano, like you may want to like set up with with the other one, but you could probably run a one-page website with Nano easily. That's seven 710 of a cent per hour. it's $54.

So $54 a month to run your to run your website on here. so I don't know how you guys are doing with Squarespace or Wix, but I imagine it's probably quite a bit more per month than that.

00:30:11 — Key Pairs & Security Group Settings

Okay. In the key pair login, we are going to create a new key pair. We're going to give it a name. Call it Roadman.

Oh, actually, we're going to call it Luth group demo five because I've been through this five times. And we're going to leave these as they are. and we're going to go to create pair. So that key pair is that is important to keep secure.

This is not always secure but to know where it's at. This is how this is how your commu your computer is going to talk to your server and do it securely. If you lose that key, you essentially lose access to that server. So, stash this key somewhere somewhere good.

And we're going to go through some steps that it's going to stash. But this is important. Okay. And so, right now, it automatically downloaded to my downloads folder and we'll be moving it here in a little bit, but just so you see that it's there.

Okay, down on here. So when you get to network settings, you see this allow SSH traffic from right now. It's set it anywhere and that's not what we want. we want to switch it to my IP which we copied up here as our public IP.

What that's saying is that when you SSH, which is like remotely log into your server, it's only going to allow instructions from that IP. This is the this is the firewall security feature. if you left it wide open, then it would accept, instructions from anywhere. But if your IP changed, would you be able to get in?

You would just go in and adjust. So, this is going to all go into a security group, and you would just go in and update the security group with your new IP. I see. And then on these two boxes, we're going to click both of them.

Allow HTTPS traffic from the internet and allow HTTP traffic from the internet. This is the public facing portion of a web page, right? This is people who do an internet search for your web address. Those are the two routes that it's going to be able to access it.

And we'll see later that these come through specific ports. and it's the labeling of those ports that the computers are listening on that allow traffic to go to and from that server. Okay. I'm going to leave the storage as is.

Just so, right now you're firing up you're firing up eight,, just kind of stock scroll up just a little bit. You're you're firing up 8 gigs of what? Of space. The space is,, the storage is not like super expensive.

But you're firing up a you're firing up a server in the cloud here. And so keep in mind this is like potentially your Dropbox as well. This is potentially your Google Drive. You can keep whatever you want on the cloud securely.

You you're basically getting,, you're you're basically getting a raw server, though. So,, start imagining what you can do with it. So, anyway, just so, you can up that. I think you can do go up to like 30 gig per EBS.

So, you can rear back on that. Okay. So, does that look Ian like we checked all the boxes? Yep.

Yeah. Okay. So, we're going to hit click here, launch instance, and it's going to take a second and spin it up. Okay.

It says success. So, we'll go back to the EC2 dashboard and let's see. Let's go into instances. Refresh it.

All right. And so, there you can see. Well, it's a little awkward. You can pull that select instance down a little bit.

So, there you can see our instance is up and running. Okay. So, if we go over to our checklist, we did that. We did we did our internet traffic and our SSH.

Now, we want to do it looks like you got open your security group or port 10,000. Oh, intentionally. Okay, we're going to do that later. Okay, cool.

Okay, so now we're going to add an elastic IP.

00:35:09 — Elastic IP: Renting a Permanent Server Address

And an elastic IP is a set IP that's going to go with your server. by default, it has a dynamic IP that could change. So, if you're setting up anything that uses the IP of the server and it changes that you could run into problems. So, we're going to essentially rent what would be a permanent IP for the server.

And the way we're going to do that, let's see, we're going to go to EC2, which we are in. We're going to go down here on the left to, where is it? Elastic IPs. We're going to click that and we're going to let's see allocate elastic IP address.

This orange button. Okay. It's going to ask us where we want to pull it from. We want to pull it from Amazon's pool.

And then we want to hit allocate. All right. And so it has allocated an IP for us. Now this is a number that we want to know.

It's going to be used in some of the codes, but this form that we've generated will actually autopop populate where it needs to go. So, we're going to put 18.226.110.15 into the form. okay. And then step five to set up DNS records.

Oh, hold on. I think Oh. Oh, no. Yeah, we need to we need Yeah, you need to associate the Yeah, you're right.

I'm So, I'm going to click check put a check mark next to the IP and then we're going to on actions. We're going to say associate elastic IP address. So, we've bought or rented the elastic IP and now we need to tell it what that elastic IP is going to serve. So, we're going to do associate elastic IP.

We only have one instance running. and then it's going to it's going to give you the only option for your private IP address here and you're going to hit associate. Okay. So now that IP is attached to your EC2 server.

Does everybody know what that means? That means that basically if you wouldn't have done that step, every time your server rebooted, it would have gotten a new IP address and everything would have gone bonkers. This is basically planting a flag for your EC2 instance on that IP address and nobody can take that away now. Okay.

So, now we're going to go and we're going to set the DNS records. And these are pointers for when people put

00:38:05 — Setting DNS Records in Route 53

The name of your your website into the search bar on say Chrome or your browser. so,, commonly people will just put say Roden and Guitars. if you're old school, you might put WW. And Guitars.

And then we're going to create a third one, which is a dev dv.rodenguitars.com. And the dev is short for development. And what this is going to do is we're going to set up two files. One where you have the website that you're editing and working on and you're tweaking it until you're happy with it.

And then you'll transfer that dev the files in that dev site to your main site and that will be your outwardly facing website. so in order to do this, we need to move over to the Route 53 app. Okay. And then we're going to go to hosted zone.

We only have one. And I'm going to click on the hosted zone. And so down here, you'll see that we have right now we have two records. So we have an NS and an S SOA.

And what we want to do is create a record. And these are going to be a records. And in here, what we want to put our Hold on. Hold on one second.

Do not do not delete those other records. Okay. Yeah. All right.

And so we're going to copy our elastic IP address here. And the first subdomain that you're going to put is actually blank. That would be if someone just typed in roadmanguitars.com. And then in the value, we're going to put our elastic IP.

And so that's the non-changing IP. So when someone types in roadman guitars without a prefix or subdomain, it goes to that address. Oh, important to note it the record type up there is a record. It was default on this, but if for whatever there's a bunch of different types of record types and you want to have for this step, you definitely if for whatever reason you click off of that or it comes in weird, just make sure that you're making an A record.

Okay. And then we're going to add another record. And this one we're going to do www. No period, just www.

We're going to put our elastic IP address in the value. And then we're going to do one more and this is going to be our development sub subdomain. So dev and we're going to put our elastic IP in there. Okay, this can also take a little while to propagate.

But now what's now what's happening is anytime anybody goes to either dev.roadmanguitars.com www.roadmanguitars.com or roadmanguitars.com that traffic is pointed at your EC2 instance. Now, if we don't have anything set up to do anything with it if they land there, but now all of that traffic is pointed there. I would imagine you would just get a big fat error if you went there right now. I don't know the reasoning behind this, but down here the TTL this has to do with how frequently those records are propagated.

Since we are doing a live demo, I'm going to put this to 60 seconds. Claude advised me that would lead to faster propagation in case we run into any problems on here. If you're doing this at home, if it takes a little longer, it wouldn't it wouldn't make a big difference. All right, we're going to do create records.

And now we have all of those records down here in our list. So, we have the two A records and our original NS and SOA. Okay. Looking at our checklist to the right.

We did that. Phase B.

00:42:08 — Into Terminal: SSHing Into the Server

This is where we go into the Mac terminal. and for those on a Mac, you would just go up here into your search field and type terminal. okay. And you will get a box that looks like this.

And this the terminal is just a text interface. on a PC, Ian, are there differences to that? There's differences in the command, but basically the same it's the same thing. you're just greeted with a raw cursor and you need to probably ask Claude what the commands are to affect the change that you want to do because at least on Windows I' I've spent a lot of time in Linux so I know how to get around in Linux pretty well but PC terminal is pretty foreign to me still so I just ask Claude what I need to do and at the top of this how-to form that we created there's a well I'll just go to the top there's a button here at the top where you can switch between Mac and PC and it will convert the commands that are different for those two environments.

And so you just Okay, we got to we're moving. Yeah, moving that. So here these key these commands are going to look foreign. but we can decode them a little bit.

So that MV, that's the move command, right? So it's going to move. We're asking it to move our pin key. Actually, that key should be populated.

Hang on. Oh, we need to we need to before I do this, my fault. Let me go back up here and our in this we're going to put loose group demo five, which is what we did on our pin key. luth demo 5.

You don't put the pen. but this is going to populate the form for you. Otherwise, you would need to to cut and paste this Luth group demo 5. That's the name that I gave to the pin key.

So, now it's populated. I'm going to copy that and I'm going to go into terminal. And so, that's asking it to move that PIM key into the SSH key folder on my computer. and then it's going to that third line, the SSH command is going to actually log us into our remote server from our home server.

So when I hit enter, if everything goes well, see, come on. Come on. Come on. Do it.

Did you just lock up your Mac? Oh, I hope not. Well, something's going to go wrong. It's going to go wrong here.

Let's make sure we have,, the one thing I would say, go down. Mhm. It feels like there's a space there between the Luth group demo 5 and PM. Good catch.

Okay. So, maybe I mean, put it put it in your put it in your editor and see you have a text editor handy. Yeah, I do. Hang on a second.

Let's get back to there. Okay. So, let's copy that. Just make sure looks clean.

Let's look at that elastic IP. 18 226 15. Okay. Yeah, let's try it again.

Let's let it run. Or or actually go back and do it one command at a time. Let's Let's try it one more time. See it.

Interesting. Okay, let's let's get our text editor out. Okay. All right.

So, we're going to copy that first command. No such file or directory. That's the problem. So downloads l group demo 5.p.

Did I get something? Oh. Oh, it already moved. So that one worked.

So now let's see what this is. Okay, that worked. Maybe we have something wrong in here. Okay.

Let's see. There was I'm going to try this because I've been through this a bunch of times. This is clearing old keys. Try that.

And then we're going to go to text edit. just throw that command in in cloud and just see if it see if it knows why it's fing. Just ask it if that should connect. Well, that's a heavy thing for that.

Yeah. Know what's going on. is your terminal still working on that? Try the Yeah, try that verbose.

Try that. Try that first command. Where are you seeing that? it's got a copy.

Scroll up all the way up right there. Try that. Okay. And that's Okay.

Reverse output. Okay. We're going to go back to terminal. Oh.

Oh. Oh. Did you Okay. Yeah, you you we'll we'll check the security group next.

But so copy all that into Oh, did we update the port? It should have automatic. Yeah, it should have gone because it updated the security group at launch. Yeah.

So you can isolate. Yeah. I hit control C on that. Start a new Okay.

Put that whole thing in there. Go back to AWS. Okay. and then go go to EC2.

Click your EC2 86. Let's just double check that IP. So, and one thing about this too is, go into that, go into that space and make sure that there's no space at the end of that. Okay.

Okay. And now, scroll down. Keep scrolling. Keep scrolling down to security.

Hit security. Hit your security group right there. Yeah. And then scroll down to outbound or inbound rules.

Hit hit edit inbound rules. Inbound rules. Yeah. And then scroll down to your 22.

Okay. Okay. There's that's your IP address, right? 1071151715.

Just double check that. 7151715. Okay. Should I check and make sure that hasn't changed?

Yeah, this could be down to that propagation. if so you're so the although it should be going to the it sometimes it takes a little while for the IP to propagate as well the elastic IP. Okay. so let's try let's try that terminal one more time.

Back to terminal and or ask cloud if it's if it's not uncommon for elastic IP to take a little while to propagate. Okay. Propagate. Propagate.

Oh, it's really thinking. While you're while you're doing that, why try running that? Okay, here. Let's try running go back to what step was that?

That one right there. Here. Well, we probably want to just run that last run, right? The SSH.

Yeah. It's hanging up. go to the go to that file path and see Oh, go to that file path and see if that's actually there. Can you get to tilde back sl or tilde slash SSH.

I'm not sure how to get might be C. It might be CD that. So just copy that from here on out. Yeah.

Then Yeah. And then in terminal just type CD space and then that. Okay. Never mind.

Let's go back to see what it says. Okay, go back to route 505 53 or what's it saying? Grab a new elastic IP. So, grab a new elastic IP address directly to it.

Try well no let's let's try a different elastic IP or go back to AWS and let's take a look at let's take a look at Route 53 and make sure there's no typos in there posted zone guitars and this is like if there's any spaces is after the IP address that can foul it too. So we should go in and grab those a go into the a records. Okay. Or actually this doesn't have anything to do with any we should definitely be able to connect to that.

So go back to go back to elastic IPs. So EC2 elastic IPs huh? So go back up and check that 226 110.15. Yeah.

Do me a favor. Just right click on that. Clear clear that field. Okay.

Then right click on that and hit copy here. Yeah. Oh, what? Go to the EC2.

It's it's easier there. Or or wait, it's down there. Summary. That's all right.

Just go to instances and it's taking a second and then cop yeah just hit that copy icon and then just controlV into there. Okay, back and get our Well, you're still I think you're still locked up, right? Yeah, it is not it is not logging in from there. Okay.

So, we need to Okay. now it's gonna it's going to tell you all the normal things. Let's go ahead and do a new IP. I don't know what's going on with that one, but this is crazy.

Okay, so let's get rid of that elastic IP and do a new one. Yeah, this is an odd this is an odd bug. Okay. Is it in EC2?

Yeah, EC2. And actually, hold on. Just nuke that server. It takes no time to go through the server.

Maybe maybe something was fouled with getting the key onto the server. But this requires that handshake between the key being on your server on your computer and it being on the server. And so if something was fouled there and it's not it's not on the server, then that's the that's the issue. And it takes two seconds to fire up a new server.

00:59:55 — Troubleshooting the SSH Connection

Okay. So do we need to do get rid of the elastic IP first? No. Go ahead and leave the elastic.

We'll we'll go ahead and just nuke the instance. It's it's probably not the elastic IP. So just go into instances. Okay.

Yeah. And just hit that. Hit. Yeah.

Instance state terminate. Terminate instance. And then while that's shutting down, just launch a new instance. We don't have to wait for it to shut down.

It's not it'll by the time we get done launching the instance, the elastic IP will be released. Okay. So we're going to launch instance. Yeah.

Ready to arm. Yeah. Did you select Iuntu? Yep.

Okay. Okay. Now let's let's so create new key pair. Okay.

And instead of create new p new key pair. Hold on. Stop. Stop for a second.

Okay. You may It's possible we did not associate that. Maybe that was our error. yeah, I don't know.

Go ahead and do create new key pair and do list group six. Okay. Six. Create key pair.

All right. Now we need to go allocate the elastic IP. Correct. No, no, no, no.

We we still need to fire this server up. so scroll down. Right. There we go.

And then go ahead and do change that off anywhere for port 22. No, no, no, no, no. Go back up. Wait, we need to switch this to my IP, right?

My IP. Yeah. All right. Although, what?

For for right now, go ahead and go from anywhere. Let's make sure that isn't fouling it. So, go ahead and do I have this feeling that this was the step that we missed where we didn't we generated the key pair but didn't select it. Okay.

Okay. Okay. So, let's try that. So, step number one is always follow step number two.

Yeah. okay. And now we need to do Yep. You need to reassociate that elastic IP to the new server.

Okay. So you need to se you need to No. Yep. Yep.

Select that. Actions. Associate. Associate.

I feel like AWS is having problems. This is not like Is it taking a Is it taking a long time or is that Zoom lag? no, it's taking a long time. That's That's surprising.

Maybe a something on AWS's end. go back to elastic IPs. Let's just generate a new one. So allocate elastic IP.

This this Yeah, you can release that one. So, we just need to remember to change that when the All right. So, there's the steps that we did before. Yeah.

Okay. And we're going to associate. Yeah. actually hit X on that instance really quick.

I just want to make sure that the other one Well, say that again. I just wanted to make sure it wasn't reading the other one. Even though you terminated it, sometimes it takes a little while for it to terminate, but we'll we'll try it. Okay.

So, we're going to go back here and we're going to put our new one in here. 3.1 3 234. We're going to change this to loop group demo six. Right.

Yeah. Okay. So, we back where we were. Well, I think so.

6. All right. Copy terminal. Oh my god.

Oh boy. Maybe give it a little more time. It it took a while. I don't think so.

Well, it is a brand new server and the server is spinning up and it's a slow server, but still this is beyond this is beyond James Cup. paste that whole mess into did you control C out of that? Yeah. Go ahead and let it run and then we'll come back to it.

Run that again. Run run that terminal command again and let's go back. Whoa. What's that?

What's that red warning? I think it already moved. Oh yeah. Okay.

That's your old IP address. Hold on. Hold on a second. Click on that IP address.

This one here. Yeah. And go to your new server and make sure that your new ser server has that three 3151 attached to it. So, go 51.

Okay. Yeah. Just go to the EC2. This is a hell of a place to get locked up at.

This is like the This is the easy stuff, right? So, click Yeah. Click through to that 315 one. Yeah.

Copy that and hand it to Cloud and say, "Is there anything about the folder permissions?" No, no, no, no, no. Go down to your go down to your console commands or your terminal commands. Okay. And then No, no, no, no.

Go copy. No, gotcha. Is it right here? Yeah.

Okay. Click that to claude and say is there anything about the folder permissions that's following this Man, Claude's even really slow even by claude stands. Oh, you got that on Opus 4.8 high. I'd move that down to like medium or so.

Go ahead and go ahead and go to your security group and take a screenshot of your security group. Okay. oh, wait, wait a second. So, you're on a telephone?

Yeah. Okay. Ask Cloud if AWS does anything to bar telephone IPs. I thought the port was 35 when you originally did this.

The same 22 always 22. Go ahead and for this you can click off opus too and click it to sonnet is going to be your get those answers a little faster and those aren't particularly complicated answers. Just temporary connected to port. Open up the port.

Yeah, let's try any traffic. See what's going on. So, where do we get to that? We get to security.

Yep. Security group. Okay. It doesn't seem to think that's that's the issue though.

But it's the it's the one thing that's like the variable in this process. So, why is that not coming up? Okay. Go.

So go to EC2. You're you're in you're in the old security group. I bet you joined a new one. So, just go to EC2, hit the button up there.

Yeah, this could be your old that other group. You probably spawned a new group, security group. So, go up to the EC2 hotkey and then just click through down to security, security groups. No, no.

Go. The easiest way to find this now is to go to your EC2 and go to the security group through the so go to instances. Yep. And then go Yep.

Just click through that make sure you scroll down security and then Yep. Hit that and then open that traffic. Make this make this large enough to take a to take a screenshot of this. Go ahead and make that full screen.

Screenshot that. No. go to edit inbound rules. Okay.

And then where it says SSH, hit X on that. Click into that block and hit Z. Yeah. Say save rules.

Yep. Save rules. Now, edit inbound rules again. Okay.

And then screenshot that in case this doesn't work. At least at least Claude will take your word for it now that you've got it you've got that open. Should we try the SSH command again? Yeah, let's give that a whirl again.

Yeah. Okay. Yeah. Okay.

So, so that was it. Something was odd about the phone IP. I have SSH into my servers with phone IP before, but yeah, it wasn't it wasn't liking it or it wasn't liking some per permutation of it. So, James now has a green text down there at the bottom that says Ubuntu IP 17231437, which is Huh?

Not what? Not what our elastic IP.. Huh. Okay.

Well, that's is that your IP? Do my What's my IP again? see. No.

Okay. Well, whatever. Let's soldier on. You're in the server.

Okay.

01:14:00 — Logged In: Installing Updates & Nginx

So the so everybody's clear what this means now is James's local machine here that he's on is actually able to communicate with his server and that's the root folder of his server. What? Where's your there? So, in the parlance of '90s hacker films, he has hacked into the mainframe at this point.

All right. So, we're on the server. so I guess the question I have is that really should be showing the elastic IP, correct? no.

I don't think I don't think so. or is that the permanent the IP that it's associated with? Yeah, I don't know. I Ian, don't you want it to stay with the private IP and the elastic IP is dynamic in the background, right?

That's the point of the elastic IP. The elastic IP is just so that it is going to stay it's going to stay put like No, I re I realize that but if you keep you're not going to know what the elastic IP address is because of its nature it's going to change. That that could be but this here is the Yeah, right. That's your primary IP that you're going to that you're going to use and the elastic is working in the background for you.

Okay. Your SSH, your SSH is a secure shell encryption communication algorithm that allows the two points to talk to each other. All right. Okay.

So, we're we're in we are up to what do we hit? We're up to step six. So, this next set of commands that we have are being we have SSH into the server. So now we're giving commands directly to the server.

And there's a series of things that we need to install here. The the first is it's always a good idea to update the server. So if we copy and paste that command into the server. Okay.

So now we're updating the server. This may take a moment. that server is really slow. even for a micro that's slow.

So, Amazon might be having they might be having some issues right now. I think it's a combination of that and Zoom. So that isn't that update isn't running slower than you normally have seen it. Well, on my computer, it's actually ahead of what's projected into the Zoom window.

Okay. What are you in? do what zone you're in on that? What's on?

Yeah. Click click over to your AWS panel where it says demo admin up there. Oh, what? Don't don't show it.

Okay. All right. It it is updating. We're close.

Okay. After we update the server, we're going to install Nginx. You want to talk about what Nginx does? Yeah.

So, so Nginx is a web server. And basically my limited knowledge of this means that it's it's basically something that's sitting there waiting to hear from your browser and your traffic to come and ask your server, hey, what's going on at this spot at roadmanguitars.com and Nginx is going to like spin up all the services and other servers like your database and stuff like that, your PHP server. s and basically show the browser the the website that you want to that you want to show people. So Nginx is just there's a couple different web servers.

01:19:11 — Creating Folders & Config Files

There's Apache and Edgitex and ran Apache for a long time without any trouble. just started using Edgex because Claude spun something up with it and it's been working great. but it's just like another it's another server. And so we're going to set up a comp file eventually.

And that comp file is going to say listen for traffic on these ports. And in your security group there, you saw that we opened up traffic on port 80, which is unsecured HTTP traffic. And that used to be what everybody talked to web servers over. And we're also going to do port 443 I think it is for HTTPs traffic which is secure web server traffic.

So if you go to a website and you get one of those warnings from Google saying oh my god this site isn't secure just know that what's happening there is they're not set up to serve secure traffic. So, if it's like some Goober's guitar website, probably not a big deal. If it's a bank and you're you're seeing unsecure traffic or something where you're going to put your credit card in, just know that there's no encryption going on there. And to,, back out.

Okay. So, I just I copied this install x command and it ran that. next step is to create folders. And so this is going to create where the folders where the HTML that we're going to upload is going to reside.

So do that. this next step is the config for Nginx and it's just a so I'm not a config wizard but that like where it says listen point port 80 right there or listen 80 and the server name is these servers. So, we're going to the next thing that we're going to do is we're going to we're going to adderts certifications for doing secure traffic. But for right now, the website is really only serving on those ports.

So, technically, you could probably get to Did you put an index file at the end of that when you did it here? up a little bit more. Did that one No, it just made the direct. Oh, no.

It's going to do that here in just a little bit. Okay. So, we're going to enable the site with that set of codes. And then here with placeholder pages, this is going to create this echo command.

It's just going to create a page that says Roadman guitars. And then it's going to create a page in the dev envir environment that says dev roadman guitars. So, so essentially what he's doing is he's parking a file at the end of those file paths that Nginx is listening for traffic on. And so when a web browser comes along and says, "I'm here.

Tell me what you got for me." It's going to it's going to show you that text in that index file that he just parked at that file path. So, just like on your home computer,, you've got a desktop and you've got a folder and you've got stuff in the folder or whatever, those are all just file paths. And that's what's happening here is we're just sticking things. We're sticking comps and we're sticking index files and all this stuff just in files file spots.

It's just we're doing it through terminal and we're doing it in the cloud on a server that James is renting from Amazon Web Services. Does that all make sense? Okay, so that this next command dig roading guitars plus short, this is just to verify that we that our site is running where we think it is. It's supposed to return the elastic IP.

Which it that's that's a problem because that's your old elastic IP right there. That the problem. Let's see what the Yeah. Oh, oh, oh, oh, oh.

It's doing that because of we didn't change the we didn't change Route 53 yet. Okay. Do we need to do that at this point or Yeah, might as well do it because we would have already done it anyway. So, just take that IP and stick it in Route 53.

Let's see. In the hosted zone, is that what's I'm all discombobulated now. No, you're good. So, so that's what it was that's what it was doing.

So, when he was when he was asking the server to figure out where this resolves to, it was there according to that dig. So, it has it here. Yep. So, you need to change all of those records to Oh, right, right, right.

So we need to Yep. do that. edit and then where it says the value and then we need to do where's the where's the edit button? we can't edit three at the same time.

You can delete those probably just be easier just to delete those records and create the record again. Right. Okay. So we're just redoing the steps that that we did before.

We're going to go over here. We're going to make sure we get our elastic IP correct. We're going to do our blank. We're going to add another record.

And this is where you wind up spending a lot of time with AWS because now James is like, "Okay, I want to get through this really fast." And this is where this is where typos happen. Watch out though. Duly noted. I'll slow down.

No, it's all right. Keep going. All right. So, we recreated the A records that we did before using our new elastic IP.

Right. Okay. Yep. And scroll.

Yep. Scroll down and make sure you hit that Okay. Create records. All looks good.

Yeah. And this may take a while for it to propagate, but we'll see. Go ahead and go back to your terminal and try that dig command again. just and don't don't copy that.

Just hit the up arrow on your keyboard. Do that. And that's a that's a good terminal shortcut right there. And if you notice, our IP address changed to the new IP address.

So now it matches. Yeah. Okay. So now we're I think we're ready to go down and hit the next.

So we've got that. And so we should okay, we could probably show now that you can go to roadmanguitars.com and see a unsecure u the unsecure file before the cert. Yeah, let's do it. Just show Yeah.

No, I just tried. You can't you can't Okay. You can't see it yet. Is that wrong IP address the problem for why you couldn't SSH in before?

No, that wasn't the problem. It had something to do with the I think it has to do with the phone. But this may take a little while for it to propagate because we just because we just fired up those records. Okay, let's go ahead and do theert then.

All right, so let's do theert. So we're going to install bbot. So these are the certifications for secure web traffic.

01:26:51 — Installing SSL Certificates with Certbot

So basically James just told Amazon that this these were his records and now Amazon has to go out worldwide and distribute those records around to different node points I'm guessing. Mhm. And so what he's basically doing now is deploying Cbot and Cbot is going to go ahead and get him the certificates and the encryption he needs to do secure communication with web browsers. So it's going to ask you to put in your email, ask you if you want to deploy it, and then ask you if you want to share information on it.

Just put no. Okay. Now it's requesting the certificates. it if it hasn't propagated yet, it may still foul, but it looks like it's it's going.

If you if you wind up fouling because your DNS hasn't propagated, just know that there's a limited amount of searchs that you can run in a day, so you might just back off of it and give it 10 minutes. all right, let's see if we can get to Roadman guitars.

01:28:16 — Roadman Guitars Goes Live

Okay, so right now Roadman Guitars is live with the sample page and if we go to dev.roman guitars we get the dev roadman guitars. Okay, so all that worked. Are you not entertained? All right, crickets.

All right. I'm entertained. No, you are not. That was that wasn't the voice I expected to hear.

Yeah, I'm easily entertained. Yeah, I like to I like to people see people sweat on the internet. Oh, man. So, I'm still not getting Oh, are you on an h secure HTTPS or an HTTP?

And Michael that DNS propagation like it really can take a while for all zones but if James is seeing it in Texas I might not be seeing it in New Jersey yet. Yeah, I am seeing it in New Jersey but it can take a while for that to for all the nodes to pick that up and be global. Okay. But he's not faking it.

Okay. That's real. That's real HTTPS web traffic right there before you before your very eyes. Okay.

So, we got to the point where we have a placeholder web page and development web page. All right. Now we are going to go and open up port 10,000 and install webmin which is a browser accessible entry point into the file manager and the terminal on this this server. So instead of having to go through our own computer terminal, we can log in via browser.

So, first thing we're going to do, let's see. What's that? Oh, go ahead. We're going to go to EC2.

Was somebody trying to say something? I was just going to say that you made it to Canada. Oh my god. So, we really are worldwide now.

Okay. And so, we are going to go to Security groups.

01:30:47 — Opening Port 10,000 & Installing Webmin

Where are we? It's taking a while. Yeah, AWS is usually not that laggy. Okay.

So, we're going to edit inbound rules and we're going to add a rule custom TCP. We're going to make it the port range is going to be 10,000. Okay. And then, so this again we're going to do Yeah, let's do anywhere.

But this more than anything you definitely want to lock to IP because the only thing protecting this is just a regular password. It the SSH encryption is like pretty that's pretty bulletproof encryption and really locking it down to the IP is overkill. I do it because I'm an overkiller, but you need to do slash32 if you want to do that. But I'm I'm worried that well Webmin might work.

Go ahead. Go ahead and give it a whirl. but if you're we can come back to change it to 00 for the demo if we need to. But okay.

So now we're going to install Webmin. We're going to go back to our terminal. And we're still logged in. Down here, this where it's green, it says Ubuntu.

We're still logged in on the remote server. So, big shout out to Lith Group member Jeff Bake who hit me to this Webmin stuff. Before we used to when Jerry and I were first building the website, everything was done in this very archaic client called Putty. And man, it was all terminal and all nano editor.

And Webmin is a huge step forward for at least for my workflow. Okay, here is something that could trip you up. When you when you paste a password into terminal, it actually doesn't show up visually. So, you have to trust when you hit paste that it's there and you just hit enter.

So, we need a password that we're going to use for Webmin. it's very important to keep this secret. So, I'm going to generate and show one here which will be immediately erased, but it will give you an idea of what you need to do. I put a little block in here that will generate a 20 a 20 character security key and has a copy button.

So, I copied it. I'm hitting paste and hitting return and paste again. Return. Okay.

So, that set our password in terminal. Trust the process. Trust. Yeah, you have to you have to have faith and trust that it was in there.

Okay. So, can I ask a quick question here? So the page that you're looking at here that has all of these,, the steps on the right hand side, is this part of the Amazon web server? New this is something James made.

Okay, that's and it's something we're going to give we're going to make available after this, too, because it's really slick. If you follow these instructions and you don't you're not trying to do something weird like have a your internet IP attached to a phone or whatever it was that was this is guaranteed to get you in. So, and you've got it up there for the Mac and for PC. You can do it on either one of them.

Yeah. Yeah. Wow, James, this is very impressive. Well, this is all this is all because of Ian walking me through this.

Still that's ton of work. Oh my god. and yeah, and I,, I think it's my fault for trying to use the hotspot IP, for security reasons, but,, I've been through these sets, this set of instructions several times and it worked without problems., so hopefully anybody that does this, they'll let us know if there's any issues and we can edit things appropriately. so we have our password set.

I'm going to go in here so I don't lose that and save that in our note. That's good thinking right there. And then, so then we need to point the Webmin at the encrypted certification. So, we're going to copy paste that in.

And it's going to restart Webmin. Okay. So now if everything worked out we can go to a new window and we can go roadman guitars colon 10,000. So that bears a little bit of explanation.

So basically he's going to roadman guitars and that's the port 10,000 that we just exposed on the security group. So that's actually quite a bit different than,, just going to Roadman guitars. He's actually accessing a different part of the server through that. And it looks like it's fouling.

I think it's I think it's because of the IP. I think we're just have to open it up temporarily for this. Okay. Yeah, let's try it.

You want to try it? Yeah, let's do it. So, let's go let's go back here. That could be your phone provider not allowing weird traffic, too.

Yeah. So, we're just going to set 10,000 to this. And then let's do that again. Oh my.

What's up? No, it's just it does not appear to be loading. There you are. It's giving us the not secure.

I try it. All right. So, Ubuntu. So, Ubuntu is the is basically the stock P username that your EC2 instance ships with the Ubuntu server.

So, just know that's you can find that anywhere. what's my what's my login for that? So I put in user Ubuntu and then I put in the password that we had saved. And if everything works well, let's give For some reason the search hasn't updated, but we're in.

Well, let's see if it Let's see if it holds. Let's see. okay. Go back to that go back to the other the let's encrypt thing.

You know what? okay. So, yeah, let me Okay, let's let's look at this really quick. go ahead and pull go and pull that point web m at let's encrypt uhert.

Copy that and put that into a text editor so I can take a look at it. Okay. Where are you? This point.

This one. Yeah. Yeah. And actually open while you're at it, open pseudo t.

Yeah. Throw that th Yeah. throw that into a text editor and see what's going on. paste that into or just it's still on your clipboard.

Paste that into Claude and say, "Do you see anything wrong with this? Is this the same chat that you had that you set this up with? No, but I can get back to that. Should we do that?

Yeah, it's probably going to ask you to look at some file paths here. and actually when it whiffs, it may whiff on this, but when it if it does whiff, tell it to, yeah, there it's going to ask you to search all that stuff. So, go ahead and do the GP. Okay.

And run all those commands in terminal. And then, you need to hit pseudo GP. just hit type pseudo and then paste again and then go ahead and pull the other ones. Just do those right in succession.

I don't think this is the issue. Yeah, that's probably not the issue, but it doesn't hurt to run anyway. And then copy that copy and paste that whole run in there. Okay, where we start?

That grap go from the go from the Yeah. Ubuntu from the grap and copy and paste that all in there. Okay. Go back and go back to the your webin thing.

Okay. Try. Yeah. Go back to your browser and yeah, fire it up.

Just hit refresh on that page. It's all right. We're ah now we're in. Okay.

Okay. So, whatever that was. All right.

01:42:44 — Webmin: Browser-Based File Management

So, so this is so everybody knows this is pretty this is pretty cutting edge stuff here. This is file management on your cloud server where you can go in almost like c panel if anybody's ever dealt with cPanel before except the entire server. So you have access to this without actually having to screw around in terminal and do all your CDs and stuff to move everywhere. So you can come in here and look at a file like that Nginx comp file and you can edit it just like you're editing text in a regular text editor in here rather than have to deal with a bunch of terminal based text editors.

So this is really cool. the other thing that you can do is you can get to your terminal. You can see your file structure but you can also get to your terminal. So this is this would be the same thing as logging in to sshing into your Ubuntu server.

So right now I think just we should just upload the index page that

01:43:49 — Uploading the Claude-Built Web Page

We made earlier. So, what I'm going to do is we're going to go into Oh, actually, go back to the go back to where you threw that index page in there. on the instructions on the right hand side. Okay.

So, you can kind of see what's happening here. over here. Yeah. Yeah.

Go ahead. Show show the file path there. Okay. So, it's inserting, we saw this page that was live, Roadman Guitars, the placeholder.

It's inserting that file into varwrodenguitars.com. And then this is the file index.html. So, that's the file that's going to be served at Roadman Guitars. And then in the dev, if you go into the dev file, it has an index in that file as well.

So over here in the file manager, if we go into var and then we go into www, we can see we have devroenguitars.com and we have roadgars.com. so what I'm going to do is I'm going to go into roadmanuitars.com. I'm going to rename this as old And then I'm going to go file, upload to current directory. And I'm going to grab this roadman guitars.html that Claude created at the beginning.

I'm going to upload that. It may not like your file transfer because of who knows what. still. So that's too long for a file that size.

Go ahead and hit hit refresh. Refresh. And this could come down to that phone link again too because it's FTP is a lot of people are really stingy about like things have to be just so because you can really like you can load some weird stuff onto people's servers. What's going on there?

Seems to be really laggy. And we'll give it a second to Okay, I'm going to go into WW. Holy moly. This is what?

Go to AWS really quick. Just open a new tab up there and just it'll it'll come in your and then go to your EC2 just down to instances. Yeah, click on that. If if it fusses with us anymore, we'll we'll stop the server and then bump it up to a small for setup.

Just click that. Click that again. Refresh it. No, just click it.

Well, that's fine. Okay. And and hit WW on the left hand side. Try that up over there.

Okay. And then and then open roadman guitars. All right. Well, it went through.

It's there. So, what I'm going to do is I'm going to rename that index and he's re renaming that because his engineext comp is looking for index to serve. It's not looking for roadman guitars html to serve. It just does not seem like Yeah, it might have gone.

Just check your checkboard.com. probably just getting new all right, we made it through. Okay, so that's the original page that Claude created at the outset of the presentation live. if we go to dev, we should find that we still have our development file there.

Okay. All right. Is anybody with us? Lost everybody.

Yes. No, we're out. We're still here. Okay.

Here. But there's just utterly lost. But thankfully something we can go back to. Are you are you lost, Jonathan?

Well, just in it's like there's so many terms if I have to accept that like I'm not going to understand all the steps, but if I just go through and do the steps. Yeah. Yeah,, that's part that's hard for me to just like it's I would just consider it immersion therapy and just go into like persistence learning mode where you're just like,, you got to like,, you got to swallow a little water to learn how to swim kind of thing. Yeah.

No, I think it's all really neat. I'm It's fascinating that you guys have gone like just full on if if I hit the button because you're in Canada again. start a conversation. It gives me a choice of your phone or I didn't hit it besides that or by Zoom.

By Zoom. Yeah. Are we are we going to go for the piece to resistance and let Claude SSH into the server? I think we should.

Yeah, let's do it. I think we should at least try it because that's so what we're doing next what we're doing next is we're giving Claude the keys to the server and saying log into that server and affect changes on that server based on the whims of that I put into your text input. Does everybody understand what that means? Yeah.

So this is where it starts to get fun. Okay. we didn't quite get to the fail to ban this. So, there's two more steps that we need to install here.

We're just going to do those real fast. So, this I don't know if this had anything to do with our errors. I don't know what fail to ban is. That's probably more like probably some firewall stuff like style firewall.

Arc. So you're going to hit control C on that. It's fine. Just Okay.

So now we're at phase D. the payoff.

01:52:24 — Phase D: Connecting Claude Code to the Dev Server

Okay. this is where we're we're going to so everybody's probably familiar with the cloud that we looked at before, right? That has either a desktop or a web interface. but you can have Claude work through a program like VS Code, which is specifically a coding program.

So what we want to do is give Claude the ability to help us code but then also push that what we close what we code to the development site. Just so everybody knows, think of VS Code as essentially a word processor for coders. It's just got basically a bunch of got a bunch of like easy bells and whistles for coders to write code really fast. And so it's it's basically just a text editor for,, writing HTML or writing CSS or any of the different programming languages.

It's got all kinds of bells and whistles for making that easy, but it's it's it's nothing more than that. It's just essentially a big text editor. Okay. So, we're going to we're at the finale.

We're going to connect Cloud Code to the death server. So, I hope we don't run into any problems. We're going to give it a shot. Okay.

So, what we're going to do is we're going to ask Claude to generate a key pair that will allow it to log securely into our dev environment. and so we have this here in purple. This is a cloud code prompt. So, we're going to go over to cloud code here and we're going to start a new session.

And you see here we have the cloud code icon and I'm going to paste that command into cloud code and it's going to think about it for a minute. It's going to ask for anything. So, I've got my cloud code set up that it anything that it wants to do in my terminal, it has to ask me for permission. so I'm going to give it permission to do the things that it needs to do to create this code.

So are you aware of the code or the key that it generates for itself or is it hidden with itself? You can you can find it if you ask it where those where it's at. like it's so if you notice down there it says add that line to tilde. SSH authorized keys.

That's where it's living on your computer. That's where your side the your computer side of the key is living. And the server side of the key we're going to it's going to generate some commands to deploy that on the server. So, so if you didn't look for it, you wouldn't know what it would be kind of secret, right?

Yeah. I mean, on Macs,, that tilde/ssh that's kind of like the widely regarded place to keep your SSH keys. So, if you go looking in there,, you're going to find,, mine's probably lousy with all kinds of defunct keys at this point. same it's I don't think it's that on PC but it's something similar.

So I ran that it told me that a key pair already existed in the place that I wanted to create it because I've done this a couple times and it asked me if I wanted to overwrite and I said overwrite. So we have a fresh pair. Okay. So now the key code has been generated.

Then we go to this next set of code and this is to install the public key and create the user and grant dev access only. That's important that we're only giving Claude the ability to affect the dev site. so that if if you do end up somewhere where you didn't want to, it's not the live site. It's intended just to be a development site.

Okay. And so it's important here we need to do this on the Mac terminal and not our Ubuntu terminal because we're we're connecting the SSH keys in our Mac. So when I go back to terminal, you're going to see down here at the bottom in green it says Ubuntu. so I need to make a new window.

And you notice here it says James Ro James MacBook Pro. and I'm going to copy these and I'm going to paste those in there. Everybody understand why he switched terminals? It's because those keys are on his local machine.

They're not on the server. And it's asking me if I really want to do that. Yes. Okay.

Okay. So his computer is was basically gerrymandering all of the permissions on there. If we if we look at those permissions on there that ch M O D and CH O N that's change modify the folder like what can be done to the folder and who owns the folder. So basically CLA the owner is changing to claude code and we're giving claude code the user cloud code the ability to read and write and all that kind of good stuff in dev but only in dev.

And so what's happening here is that file path where it says www or var www.dev.jamesroadman.com that's the only place where cloud code can actually affect change. It can't affect change in the root of the server. It can't affect change in the the live part of the server. It's locked down just into that file path.

Okay. Okay. And now we're at 15C. It says hand control to clog code.

And it has a prompt here that you can copy. It says you can now connect to devroguitars.com. and it's going to ask cloud code to confirm that's the case. Let's see if it worked.

Just dash and then it and then it saves that information to memory so that it knows next time I log into cloud code that it has that access. All right, now moment of truth. So, make a simple, index page at dev.roadmanguitars.com that says vote success exclamation point. Let's see what it says.

It's going to ask me for permission. Okay. Now, if we go to second

02:00:17 — Claude Builds & Deploys a Page Directly

Devarguitars.com, it says success. All right. Now tell it to do a web search for James Rodman. Okay, we're going to go back to Claude code.

Do a web search for roadman guitar repair and create create a simple on page HTML page for my business. I have an image at this location and then I'm going to go onto my folder and I'm going to take that image that we were using. I'm going to copy the file path. Where am I?

Okay. Use this image as a hero image and store it a image. convert it to a web p format and install it at the correct location on the server. That look good?

Yep. Okay, let's give that a few a little bit of time. Your dev your dev folder is just basically a playground for developing your web page, right? Yep.

And then and then when Claude has done all this and you're if you're happy with it, then you can upload that to the actual site. Am I correct? Yep. Yes.

And and basically it's like pretty much for a website of this command it's going to be or this size it's going to be one command. It's just basically going to be taking and copying whatever folder from dev over to to live. It's it's one very simple command. And if you wanted to, for bonus points, you could start a git GitHub and actually push your website to GitHub and pull your website down onto live from GitHub and you'd have all of your versioning history built into it as well.

What's what's Claude doing now? Is it is it developing that page? Yep. He's just working on that working on that page.

So this here, it just converted that JPEG which was very large into a WEBP image which is much smaller and faster. although it's a 1.6 megabyte WEBP. I don't know. That's have to go back and see what the original was.

Can you edit text in the dev page? Like, can you edit it as well as Well, you can go in and edit the HTML. So, if you go and if you look there, it says dock type HTML or whatever. It's going to have something that says,, P,, P and then par.

So, P stands for paragraph and it'll have your tagline or whatever. So, you could go in there and edit your tagline and crap like that. But, like it's not going to be you could build a visual editor for sure, and I've done that on the Luth Group website. and I have full front-end editability for myself on my site.

And basically that is all built just by wishing it into existence with Claude. I don't know how to do any of that stuff. I just said, "Claude, I want to be able to edit this on the front end. What can you do for me?" And it goes, "No problem.

Here's your here's your website, sir." Whoa. And put it sideways. That's kind of cool. All right.

Much simpler than the other one. All right. But let's see. so if we went back to cloud code and said is rotated 45 degrees to the left.

Yeah. There you go. That's how That's how you tell a genie. I want a million dollars, not a million doll hairs and a small penis, please.

Now, if we go back, I have to say, James, AI says very nice things about you.

02:06:18 — Live Editing & Parallax Demo

Oh, yeah. It really does. That's that's that's what you get for being polite to it. A genius selection, sir.

That's on the last one that a good repair disappears. You shouldn't notice the work. It's a bit Where's that? Did it make up some good quotes?

Because it often does that. James, tell it to tell it to give the image parallax. It does show you that they according to mine is that you're in Manitoba though. It does.

Yeah. AI did. He said he's a repair person in Manitoba. Wow.

Oh god. Well, clearly there's some editing that needs to be done. that's on my AI search of you, James, not on the website. Oh, it's saying AI says that you're in Manitoba.

Well, there might be a guitar repair guy named James Rubman in Manitoba. Yeah, I think I would know him. You think you'd know? Yeah.

You know everybody in Manitoba that repairs guitars? Yeah. There's only five of us. Okay.

All right. Now we'll go back and we'll Oh, wow. Is that what you meant by parallax? Interesting.

Let's try. Let's see. See if it'll do that. Okay.

So, Thomas, you were asking if you could change the text. Yeah. So, we've asked it to open up the HTML page. That's so that's style stuff there at the top.

But here you can say James Roadman musical instrument repair and restoration. So, we could change this to let's let's put me in Manitoba. Okay. Did I get a spell check on that?

Is that Did I do that right? No. You need to ask money. Then, so guess what I need to do now?

I just edited this. You're in a You're in a new chat that's not going to know what you're talking about. Close. Close that chat and then go back to the one with the orange dot.

This one here. Yeah. Okay. Do I need to probably need to save this?

I think I auto saves. I just made an edit. Can you can you push that? All right, sir.

I thought you were going now. I am in Manitoba. All right. All right.

So, that's Claude directly editing the and your ability to make some edits in the VS Code and just have Claude push them to the dev site. That was harder to get to than I thought it was going to be.

02:10:20 — Ian's Workflow: VS Code Server on EC2

So everybody knows that's like that is the tip of the iceberg right there. Then it basically just comes down to how much time you want to spend wishing things into existence. Literally like I haven't stumped I haven't stumped Claude yet. And everybody's about ready to see luthgroup.com 2.0 and it's pretty crazy.

It's pretty crazy what a hillbilly was able to wish into existence with SSH connection and an AI. That was that was very impressive, James. That's all he is. I asked Ian to come on because he he's walked me through that a couple of times and and it is pretty mind-blowing.

Holy smokes. It make I think I'll probably make a website now. I don't have one. It's It is so much fun.

And like the thing that you can do like Michael, if you got like an idea for a string calculator or something like that, you wish that into existence, you put it online, you share your URL with or you show share your domain with somebody else and you go, "Hey, here's my thing." Yeah. And you can really,, once again, it have not stumped Claude yet. You know, not everything is easy and there's a lot of that I didn't explain it well enough or I didn't have a clear enough vision and so I had to go back and debug and do rework. but the persistence pays off and you can really just like it's it's hard to imag you're living in this world where like everybody's got to bang out HTML and CSS by themselves and they thinking these very small things but the barrier to entry and the cost of spinning up very interesting things is next to nothing.

So it really comes down to how well you can imagine things. So, and the example, the example we used where we just asked Claude to go search the internet and make stuff up,, that's not very detailed. We didn't give it very many instructions. So, if you wanted to do something, you could say, "This is the information I want.

Just arrange it for me in a pleasing way and then not have the,, the quirky quotes that Claude made up and all that stuff." that's really more fun. but Marie, if you want to do it, I'll send you that HTML page and hopefully you can let us know if you run into any problems like we did. Well, I'm really good at running into the problems. So, sometimes you need testing.

Yeah, send the send me the HTML and I'll I'll see what I can do. I'll see because it's kind of like I know a little bit about stuff like this. This is what my son does for a living, but he's not he's nowhere near me. So, I would like to try it this way,, with the running through the steps.

And I'll let when I run into a curveball and then,, as a few people do that, then you'll you'll end up with a really slick system. So, what Don, what did you think? I think you guys are redefining guitar building. I was so happy to be part of this group and learn how to use a chisel and now look what we've been doing here.

Yeah. So, so things have changed. couple of basic things to keep in mind though maybe for the next time. some diagrams on how the cloud computing structure is laid out so people can visualize what you're talking about.

It's kind of hard to follow sometimes even though you've gone very you've done a lot of good work here and then really people have to make a decision in terms of how much time they want to spend on working on this kind of thing and there are many different cloud configurations to use this is just one collection of tools that works well together last point Evan I'll ask you when you've worked with claude and it's given you back instructions How have you ver validated that those instructions are actually correct by just trial and error? So yeah, a lot of that is just,, I basically communicate with Claude with,, what I want and then I take a screenshot if it's not what I want and I go,, I'll annotate it. I'll put arrows and diagrams and say, "No, I want this thing over here." where I'll go, "No, this isn't what I'm interested in or this straight up isn't working and I'm getting Yeah. And so, so my workflow right now is I've got an EC2 instance now and here I'll show you this.

I'll just kind of show you guys my workflow really quick, but I've got an EC2 instance that if I go I've got a little bit of JSON in a an IM user, which is basically just an IM user is like imagine if I had AWS and I wanted James to work on one set of assets in AWS. I could write a policy that allowed me to give James log into my AWS but have him lock down to just one section of it so he couldn't spin up like wild EC2s and run up $100,000 server costs. so anyway, what I've done is I've written a policy that's very slender and all it all this policy does is it just either turns on an EC2 instance, a specific one, turns it off or checks the status of it. And I've got a little macro here that runs that for me.

And this is just that little bit of JSON. And then over here, we've spun up. It's going to take a little while to come in, but I've put a headless what J what James showed you there, which is VS Code. there's a headless version of it called VS Server.

And you can actually put that on the EC2 instance and put it on a port. And if you notice here, I'm at claude.lathgroup.com port 8443. and as soon as it spins up, it's going to show basically VS Code on this little tiny server that I've got. and if I go through here, webmin is on here, but I can do I can do file explorer on here in VS Code and look at any file and edit it on here.

And I can also spin up claude chats on here. And this is all my chats on here. that is producing the new basically the new Luth group website that's going to be very see if that's going to come up. so this is all my stuff on here.

All right. So, basically my workflow is I don't have Claude like James has it where when you saw some of those commands that James was running where he showed it where he showed it that picture on his local machine, Claude went and took that picture off of his local machine and put it on his website for him. That means that Claude had,, basically has access to that file now. So,, if that's if that was a sensitive piece of data,, basically Claude is talking to Anthropic going, "Here's this picture.

This guy wants me to do this with it." And so Claude talks to Anthropic and who knows,, like,, that data could be going back to Anthropic for all we know. Probably not. their whole business model that the second somebody goes,, my credit card has been absconded with, then the whole thing folds in on itself. but here's the here's the new look at the new website that we're we're doing, which is going to be completely different.

We've got the new events, the new map. all of this stuff is like starting to lay out. And this is like all of the chats that I've had to produce this over here. And so my process for that was to take everything that I've ever wished for with the old website,, and start working in here.

And so anyway, the Luth group, this is all on it on its own server. And so I'm deving on here. And then when it comes time for me to take this and deploy it to the live site, I'm just going to take the file that I built, deploy it to the live site, backfill some data in, and then re redo the Nginx configuration to serve the new website rather than the old site. That way, the old site's sitting there in case everything blows up, I can turn it back on.

But anyway, so the workflow really is,, taking screenshots of stuff, going, "This is,, this is what I want. This is what you're giving me," and just going through it with it until it gets it right. for complicated websites,, we're going to a new luier Luther group profile system that I spent hours in previs on. Like,, I didn't just start,, what the kids call vibe coding.

I didn't just go, I want a new profile system and I want people to have,, pictures that look like ice cream cones or whatever. And,, just start doing this. I spent a lot of time ahead of time thinking about what I wanted for fields and how I wanted it to work, how it was going to work with the database and all this kind of all this kind of stuff. So that's the big thing is if you have a big vision of what you want to do, talk to Claude about the way the best way to execute it because if you just kind of like snowball something into existence, you're kind of spinning up this bird's nest of and it will just go yes, yes, yes, yes, yes.

And it will spin up a bird's nest for you. And then you'll have to go, "Oh crap, this is kind of breaking over here because of this, and this is kind of wonky because of this." And you've built something that you ultimately have to tell Claude to refactor. yeah, that's now your workflow is

02:20:48 — Security Advice & Closing Q&A

Very interesting, but I think one of the takehomes for the rest of the folks is to really take this in a very step-wise manner. Don't rush through it and be very careful as you go through your process, whatever you decide to do. And if you're going to get into any cloud computing and port work, be very careful about what you do with porting and security. That the security group issue is a very complex one and it's not necessarily intuitive to people.

So, be very careful. If you're not sure about something, don't do it or ask about what to do because you could really open yourself up to trouble without realizing what's happening. that's really the one concern I would have for folks who are not sure what to do,. Yeah.

Be by the way be before I ship this new website, one of the last things I'm going to do and I'm asking about security to Claude all the time on this. Yeah. One of the last things I'm going to do is I'm going to set Claude on the highest,, on the highest level that it has at whatever time that we do this. And I'm just going to go do a security audit.

Go through this,, top to bottom. Try to break it. I'm not I've built something so complex I'm not ever going to be,, studied up enough to know whether or not it's actually 100% secure. But from what I understand, it's pretty good at security at this point.

So, yeah,, we'll we'll see. We're not dealing with we're not dealing with credit cards and we're not dealing with anything other more sensitive than people's email addresses. So, it's not like a Are you taking Are you going to take down the merchandise side of it and get away from the e-commerce piece? Luth tool.

Yeah. No, the Luth merchandise like the Oh, that hasn't been up for a while because it's it was running it was running really bad on the website. It was really slowing everything down. So, yeah.

But yeah, but I might bring it back up, but it may be part of Luth tool eventually. So, sure. Because e-commerce is a whole different category of challenge. Yeah.

Yeah. Yeah. Anybody have any other questions or anything? Jamie, are you going to circulate or post or do whatever the your right side column cheat sheet thing?

Yes. Yeah. Okay. Yeah.

Well, and we'll see what the best format to do that in. But if you want it if you want me to send it to you directly, I can send it to you before we post anything. Yeah, if you wouldn't mind hit me, email,, and just let me know if you run into any problems. Yeah, I'll walk through it.

And, my son does some website work, too. So, I'll have him look at it and,, see what Jamie, I have my own 60 terabyte server. I'd be curious to modify the code to have it host on my own server. That'd be cool.

Oh, interesting. Yeah. Yeah. Cool.

I have to think about that. Okay. Well, I will everyone take a moment and thank Ian because James did all work on this. Thank youan.

Thanks, James. Thanks, Ian. Thank you both of you guys. That was terrific.

I mean, it was a little fastpaced, but it was really good. I mean, really good. Sync to video time