Get into it. Dr. Root, ready to start recording yep ready to start recording.
Good evening. This is the monthly St. Louis, Linux, Unix user group slug uh it's our general meeting It is Wednesday, the 9th of April, 2025.
As I said, it's a regular monthly general meeting. The announcements and we have the GUI part of the middle tonight uh Who will be part of the meeting in the middle where the announcements And a brief Q&A, but first
We have a general or a basic tutorial session.
That's done by Grant Taylor tonight and it's uh The minimum stuff you need to get out of Git.
And so I'm going to turn it over to him in a second. Our main presentation later this evening will be router recovery or what to do when your firewall goes I can't pronounce that word.
What happened to our originally scheduled program, Gary?
Well, I was going to announce that in the middle, but you're right. I should say it now. Originally, we had scheduled Ed Howland doing a presentation on bash variables, the scope and lifetime. Real interesting topic. The reason why we're not doing it tonight is because it turned out to be such an interesting topic.
There was always just one more thing. And so the number of slides kept growing. It's all great material.
It was too much great material to cut down. So we're actually going to do it next Thursday night at our normally scheduled St. Louis log meeting.
So by all means, come back next Thursday night and you'll hear an Ed Holland doing the presentation.
On bash variables but tonight We're going to have what cube minimally should get from Git.
And with that, I'll turn it over to Grant.
Can you hear me? My microphone just did something squirrely. Okay, I moved a cable and a connection went wonky.
Sounds good, Rand.
I don't know if I can see it either.
All right, let me share my screen. And then I am going to minimize and not be able to see anything so Well… I'm working on it.
Hey. Pretty close.
Is that acceptable to people?
Okay. All right.
I think you're okay, Grant. I think so.
Minimum viable get. To me, this is what you should know or be familiar with in Git.
To be able to participate in a project that is using Git. I don't know.
Like maybe a Linux user group that's managing a website with it.
These would be the things that would behoove you to know.
As you can see, there aren't very many slides Just going to go through each thing very briefly. And then I was going to do a little bit of a live show and tell.
Pray to the demo gods. So Git has many, many, many commands.
But there are basically eight of them that you should know.
Get init, short for initialization is how you create a new repo.
When you want to add something to that repo, say you've got a brand new super special webpage you want to add to it, you use get add.
To tell git to start tracking it. You can make edits to multiple files and add them to the changes you're making. But when you're done with your session, you want to do a get commit to actually say, here's a history point. I'm kind of done for the day.
Push this to it. And if you're like me, you'll make mistakes and you'll occasionally want to do a restore to undo the mistake you made. You know, the cat walks on the keyboard inside of them and there goes your edit.
Occasionally, like maybe if you're wanting to start helping a group with a website.
You'll want to clone. Their repo so you have a local copy and you can start working with it.
Then once you add your changes and commit them to it.
You'll want to do a push. To push it back to the central repo.
And if somebody else has done some edits to it, you'll want to do a get pull so you can see those.
And if I haven't confused you yet. Get help is going to be your friend.
But I do believe that is the sum total of what's necessary to actually start being productive with Git.
Any comments from the peanut gallery poking fun at me yet?
I have a comment. How does Git know who you are and who did what?
That is a very good question. One that I did not actually touch on in this slide deck. It's not completely necessary.
But when working in a group, you do want to set that.
Please remind me when we do the live demo and I'll show you then.
Thank you.
You can either edit a file or there are some additional commands. There's a lot more get commands to configure it.
So put a pin in that one.
So, Grant, I'm sorry.
Go ahead.
I'd like it. This is Stan. I'd like to talk a little bit more about why you skit and what it is you expect to do with it. I mean.
As a group, I mean, I've tried to learn it, but everybody before that I've dealt with videos and so forth, there's been one guy talking both sides of the story, the pull and the initialization and And he's sending this stuff to himself and then sending it back. And, you know, it's…
Okay. This is going to be a hopefully short answer.
Have you ever had recipe? Recipe final, recipe final version two pre-final version three.
Recipe, this is really the last file. Recipe, I give up.
Recipe date type thing. Nobody's ever had files named like that on their system, have they?
I had a Linux program called Recipe for Cooking Stuff. How to make peanut butter jelly sandwiches and things, you know, pictures and all that.
That's the recipe I'm talking about. Are you talking some kind of… philosophical programming thing like
Philosophical as in I'm typing a document And I think I'm ready to publish it during a slideshow. And Lee looks at it and goes, oh, you have a typo there, or you misspelled something.
So I make that change and I save it as version.
And then I find something else I didn't do quite right. So I save it as version three and I end up with eight or 10 different versions of the document in the directory.
That's what I usually do.
And that's… Yeah. So I was just calling it recipe, but it could be my secret presentation type thing.
Yeah.
So Git is its function is its function is its function to keep track of the changes between those versions. So you really only have one copy you work with and you let it manage all the different versions and it provides ways for you to get to them and do various things.
It also has a very convenient way of Well, I'm on my notebook and I want to replicate this to a server somewhere So that I can get to it from my other computer or maybe Lee knows something he wants to
Tweak something on. So I give him access to it. And get makes it easy to copy things and maintain that version history across my set of files, the server set of files, Lee's set of files, or even your set of files.
Mostly, yes.
Does that make sense? Okay. And yes, you asked about identifying yourself to get there are some ways to do it. So when you look at history, it'll know Grant made this change or Lee made this change or Stan made this recommendation.
That's embedded in there.
What if I don't like the change that Lee made?
Well, you take the change out and you take the out Save it and then do the commit and tell lee I took your change back out.
And Lee walks over in a huff with his hand. Hands on his hips and say, we need to talk.
Okay. So that's an out of channel kind of thing. Okay.
That helps. Yeah. Does that help?
Yes, that does.
Okay. Yes, sir.
Grant. This is Ed. In your list of eight things there I didn't hear you say anything about Get status.
I need to increment the version of the document. Thank you.
I think that's a pretty important
It is. I kind of… had a number of people in my various circles, personal, professional, etc.
That we're wanting or needing to learn get And I kept looking for an introduction that I thought was kind of the minimum viable what you need to get started with it.
And I didn't find anything I thought was good. So I kind of put some notes down.
Rough slide deck and then something saturday it's like You know, I've got the rough slides. Let me just turn it into something And then what was it? Monday afternoon, somebody sent an email saying ed Or not Ed.
Yeah, Ed.
Okay. Ed's presentation was going to get moved to a full larger presentation in the future. And we had a slot to fill and it's like Huh. That's why I felt a hankering to create the slide deck.
So I said, I got something and here I am. I now need to add get status.
So ignoring that oops for a few minutes Let's look at git init.
And get init is used to create a new repo. It's basically done once in a repo's lifetime Once you initialize it.
You kind of never run the init command again. You use other things against it.
And it's a fairly simple command. It's get space init. You can give it a directory and it will create and turn that directory into a repo.
Or if you don't give it the directory, it assumes the current directory.
So a lot of people do this. I'm lazy. I like to do one command.
Which I show down below.
Is this the point where you identify yourself? Not yet. Okay.
Not yet. I actually don't have that in any of these slides.
Okay. I understand that. I just… figured that once you did the get a knit, then you just tell you who you are.
You should do it. Before you do a commit.
But Git will actually get will actually default to your username and your host name.
So like for my computer, it's gtaylor at omega. Dot something dot something.
Okay.
But when I'm working on slug things, I have actually put the config in place to have Grant Taylor and G Taylor at slug.org.
So it has a default. The default's not always the right thing. And sometimes you want to override it.
Okay. Okay.
But not always. And that's why he didn't include it. Any other questions before going on?
Okay. Keep going. Ready.
Okay. So I've created my super secret notes.txt file And I'm ready to add it to the repo.
So I do this super complex command. Or if I've created multiple files and I want to add everything in the directory.
I run this. Get ad, real complex. I'm sure there's a lot that can be done with it.
But in its base form. Hey, Git, add this file.
Is there a period there?
Yes, the period in this case is a representation for the current working directory.
Thank you.
So once I have added the files I want to and I'm ready to create a commit.
And… I go into it a little bit more in another slide.
But there's some basically three areas at a high level that Git deals with. There's what's called the working directory Which is all the files you interact with with your editor or compiler or what have you.
Could be a graphic editor. Take your pick. Then there's something called the staging area Which when you do get git it puts a reference into the staging area. It's kind of like, remember these specific files I'm going to want to do a bulk action.
Which is a commit on those files later, but just kind of remember those.
And that's what git add does in the staging area. Then there's the repository that is the back end object store where Git has all the secret sauce.
The things get pushed to. We don't have to work with that.
There are ways to do it. You certainly don't need to do it for the minimum viable get.
So I make my edits. And I say add my notes.txt file and I'm ready to create a commit.
So I do get commit. And it will open your default editor you know ED-V-I.
Take your pick. And provide an interface for you to enter a description of what this commit is.
And I did a commit the other day to the new SLU site was reversing a picture, mirroring it left to right.
There was some context from prior video the group decided we liked it as part of the upgrade. So in the description.
Took an editor, flipped the arrow here's why I did it. We talked about it.
I think we talked about.
And then I said, save it. And get committed.
My change plus my comment and details about the change, including who made the change, being me. That's where get knows who does what.
Excuse me, is my voice coming through at all? Okay, thank you.
It is now.
So when I can either just git commit and it will open editor.
Or if I can do a git commit and I can add the commit message on the command line.
There are other options if I want to see if details on what the change is. Think kind of like diff type output, I can add the dash v So there's a whole bunch of different ways you can do things.
But it's pretty simple. I make my edits, I add the file to the stage.
And then I say, commit what's staged? Get does thing.
Any questions thus far?
Not for me.
Okay. Then there's get restore And here's where I talk about the different areas.
Let's say I have my notes text file that I had committed and I was making some edits and I spilled my drink on my keyboard and it went crazy and VI was not nice to the file.
So I could then i could run git restore notes.txt And it would take the copy out of the repository and bring it back to my working directory.
After I fix my keyboard. And then there's a variant.
You probably won't need to mess with staged very often, but there's many variants.
I personally don't use restore very often but it is to me, one of the basics I screw something up and I want to go backwards to the fixed version.
Okay. The next thing that is to me very germane for working with a group is I want to clone the repository off of the group's web server or get server down to my computer so I can work on it.
So I do get clone and i For some reason, the website or the source is not showing up in there.
Another change I need to fix in this and publish a new version.
And I can do that. With something like this git clone htps colon quack whack get.sloog.org.
Slash example.git. And I wanted to put it in that directory.
So it will copy For example, the new SLUC website.
Down to my computer where I can work on it and i can add my changes, commit them And then once I'm ready, I'm going to jump around a little bit.
I would do a get push, which takes my commits and pushes them back to the central server.
So any questions on git clone?
I have one.
Okay, go for it.
There is a… Similar command.
To get cloned. That does not bring down like the entire get history repository, right? It just brings down like he would call it like the tip of the head pointer You'd say just, I can't remember the name of it. That's why I'm asking.
You remember what it's called? All it does is it brings down the files and the directories.
But it doesn't bring the commit history.
I'm not familiar with it. I would have to look. Lee, do you by chance know i think you do a lot more with get than I do
Not at the top of my on top of my head, Grant. I know there's about 100 different ways to do anything in yet.
Yeah.
But I have never tried to bring the files without the history
Yeah. Ed, I'm wondering if it's either an option for clone or maybe get fetch.
They're…
Yeah, it could be either one of those. I think you're right about the option for clone. I think it's an option on clone.
I have a YouTube video someplace. That I saved, I'll look it up and either put it in the chat or if I can't find it tonight i'll put it up on discuss.
Okay. Yeah.
Is this related to git archive?
My understanding with git archive was a way to take some of the history and files and kind of archive them out to something that has less history and not as directly accessible but can still begotten kind of like taking something from a local hard
Writing it out to DVD or tape and putting it on a shelf you still have it But you can't just open it up on your computer without going through a couple simple hoops.
Yeah, I'll be interested to see what you find, Ed.
Okay.
Um so Any other questions on clone?
Okay. Pull, get pulled is when Lee or Sean or Stan or somebody else makes changes to the new website.
I want to periodically when I start sit down to start contributing for the night or weekend or whatever.
I want to do a get So I'm working on the most recent copy of things.
And i poll will actually support an option where you can specify which remote by default get uses where you cloned from.
Or when you create a new repo and you add remotes manually, you specify what the remote is, but it defaults where you pull it from.
Lee una muted you. Yeah.
Muted. I got it.
Okay. Poll is I sit down and I want to pull in Sean's and Lee's changes, et cetera. So I'm looking at the same thing.
Any questions about that?
The remote is the name of the Git repository you're dealing with. It could be like project day and a different place would be project B.
It's not the name of the repository because you're in the repository when you run this command.
It is more, I pulled this cloned this originally from Bach or Bach 2 or GitHub.
And by convention. The first remote, when you do a clone is named origin.
I personally dislike that because I find it not descriptive. I rename my remotes for the server it's on like i can rename a remote to reference Bach or my personal server I think Lee has some repos that he uses that he has another server.
At the office. He can name it that. So when you list the remotes, you can go, oh.
It's on Bach or it's on Bach 2 or it's on my notebook.
So the pull or push the remote is the remote that name.
And you can actually see that. And if you'll remind me.
I'll show you how to see that in a few minutes.
Okay. Yes.
Does that make sense? Okay. So, and I briefly touched on get push. Let's say it's later in the evening. I finished the edits. I've done, added things.
And I'm now ready to call it a night. Before I do, I want to make sure I push my changes back to the central repo So tomorrow morning when Sean or Lee be more morning people than I, want to work on things, they have access to the latest changes I made.
An auxiliary question here. Can you or would you want to set up a cron job to do that for you?
Probably. Would. I probably would not.
Could you? Would you?
And…
Grant, one thing you want to mention is when you do a get status it tells you whether your version is behind the central server.
Yes.
By X number of commits. If you do get status, it'll tell you if you should do a pull or a push rather.
And then, you know, you can decide when and if you want to do it.
Yeah. Completely rightly.
I don't think… I would do a cron job for a push or a pull that's kind of like something important.
It should remain more interactive when you're dealing with Git than to rely on something like that, you're saying.
Good.
For normal things, yes. That being said, we're actually talking about using Git in a completely automated fashion For the server piece of get for the website.
So on your workstation you probably want manual, maybe some scripts you kick off, but it's more you initiate it to happen.
Server side is more completely automated. You could script it or a cron job.
I personally have not run into a situation where I felt the desire to do that.
So when you exit this process, it would essentially tell you that you've left the process so you would Get used to the workflow.
Of doing the get push at the end, I would take.
Take it.
Yeah, you don't really… exit the workflow because it's more If anything, you might consider it very, very, very bad analogy but like say you've got some files on a USB flash when you start your session, you would mount it, you would copy things into your
Fast SSD to do the work on it. And then when you're done, you push them back to the flash drive and unmount it.
Does that make sense? And Lee, do you accept that analogy?
Yeah, Grant, I think it sounds pretty good.
Okay. So… Go ahead, Ed.
Oh. Yeah, sorry to interrupt again.
In the workflow that you're talking about where you like, you know.
In the morning, you might do a poll and then you might do some edits and some commits, might do more than one.
Then at night you might do a push, right? And so what that sounds like to be like And the reason I'm asking this question is.
This is to do with the website the new site for Sloop, right?
The new website is one of the things that motivated me to put this documentation together.
The one that Sean was working on. Am I right? Is that… Would you guys…
And I am kind of oversimplifying, do a poll in the morning, do your edits and commits throughout the day and then a push at night.
I personally actually do personally actually pushes more frequently.
I'm currently using Git to manage log check. For a friend's system.
Network so i have get repos on his central server And multiple servers all have that. And it runs once an hour.
So I'll see a batch of emails come through I will… start analyzing the logs and create a new reg x and i'll edit the e-grip regex, if you will and i will do a do two or three commits on my local machine
And then before the top of the hour, I will do a push to the central server which then causes the other servers to ultimately do polls and they see fresh data, the new rules I created over the previous So when they analyze their logs at the top of the hour, they're using the new rules.
So I personally end up pushes and pulls and various things more frequently I'm kind of oversimplifying for the minimum viable get.
Okay.
Vote early and vote often, right?
Kind of, yes.
But that wasn't where I was going. Sorry. It was just a prelude.
I was going to ask you if on the new site for Slug.
If the the metaphor was the metaphor was trunk-based development in other words Like everybody's working on maine Right. And everybody's pulling from Maine and pushing to Maine.
Or is it… Do you like decide oh do you decide wait a minute, we want to add this new, I don't know, let's say we have a new page that we decided to put on the site.
So instead of putting it up there, we're just going to test it locally So we've created a feature branch And then, you know, work on the feature branch and then maybe merge that branch later on.
Or is it you just do everything trunk?
You ask a wonderful question, which I will answer in a moment.
Okay.
But when you say please discount Ed's question as it's not directly related to minimum viable yet.
Okay.
Now, having said that, we are basically doing everything as trunk We're not messing with branches.
What we're doing is kind of executing a process that Sean has outlined for us, we're kind of being worker bees following a bespoke script.
And I pray in this process produce this output widget commit it and push it to the repo.
I run the same process on the next widget Add it, commit it, and push it.
So we're not really adding a page at a time, but that's more the larger website.
Is where that direction comes from. It's not so much dictated by anything And we're also, at least I am personally wanting to keep the Git aspects of working on the new website less onerous. I want to make it easier for people who aren't as familiar with Git.
To start using it and contributing actively instead of going, oh my God, I have to do these 18 things and I have to keep track of branches and get somebody else to do pulls and merges and just… we don't need it for this.
And my target is really the minimum needed to be productive with Git.
Okay, that answers my question. I just, you know, it makes sense that you're doing it that way.
Okay. Any other comments or questions?
Yeah. I've got one, Grant.
The question I usually hear from people is how to distinguish or how to remember the difference between get push git add.
Git commit. Is there a good quick three-sentence thing that clues people into which one is which.
Well, can I cheat and say…
There's two of your sentences. And then there's your third.
Yep. Mm-hmm.
You commit what you add and push what you committed.
Yes. Ultimately, yes, that is a very concise statement, Lee.
And get status fits in between the before the push, I would take it.
Get status, you can kind of run any time you want to after a repo has been initialized.
In some ways get status you could kind of not exactly But you could kind of equate it to like doing an LS in a directory of I was working on some files. I don't remember what files and I don't remember what state
It's like like looking at your watch every five minutes or something, right?
Get status and it tells you status
Yeah. Yeah, yeah.
If you're waiting on a bus type thing, yes having a good conversation and you're in a groove and everything's at the top of mind He might not get status for two hours.
Where was I? Right. Where was I?
Or where am I, actually? Pwd.
Yep. Somewhere on the internet.
Right.
So.
I could make one more comment, then I'll shut up. Is it appropriate in the workflow that you're mentioning here to use the analogy of synchronization. So in other words Like, um… There's a single source of truth, right?
The website or the website or the remote get server right That's where you're pushing and pulling from.
Right.
Oh, um. In almost all cases, yes.
However, Git does not impose that.
Right. Yeah, I understand. I'm just saying in this one scenario.
Yeah. In our… In our use case.
This analogy might work, right?
Uh-huh.
There is the central repo on bock that could describe as the authoritative source And my repo, Lee's repo Stans repo, those are secondary
Source authority.
Yeah. Right. And they're in constant flux Right. And at some point You got to synchronize right so You know, when you come in in the morning, you want to sync changes that may or may not have happened.
And I've been already previously pushed. To the central authority. Right. So you do a git poll.
Mm-hmm.
You make your changes and at some point during the day You've done local commits And then, you know, and the commit puts, you know, what you changed and your message in there And then you're saying, oh, okay, I think I've got a working version here.
So I'm going to synchronize my changes back up to the central authority.
Yes.
So that's just wanted to use that analogy to see if that cleared anything up for Especially for… scary.
Yeah, the get poll and get push and other commands as well But those are explicitly doing synchronizations.
Of the to get repositories. So when I start my editing session I do a poll.
Which causes my client to synchronize my local repo with the copy that is on Bach. And once I finish my changes I do a get push, which starts another synchronization but goes from my local computer's repo up to the shared repo
On Bach. They're both synchronizations. It's just which way is it in relation to where you're running the get command.
Hey, Grant, this is getting pretty deep. Let me add something here for a second When you try to do a push.
If the version you had that you changed is not the current version in the central server will say, hey, you can't push because you're behind the central server.
You know so you're you're not truly synchronizing that your change has to have a starting point the same as the same as the last starting point in the central server.
To be valid. And if it's not, it'll say, hey, you can't do it till you resolve the difference.
I agree with what you're saying. But I'm actually going to extrapolate it a little bit.
And say that when you try to do a push and you're behind.
Git is going to say, uh-uh, I can't push. There are changes on the server that you don't have.
You have to pull up. Those changes down Let me massage them to take care. And if you're doing one file and somebody else is doing another file.
Your get client can pull it without a problem.
And so it brings your copy up to date And then you can push your change.
So it's still a synchronization. It's just going wait a minute.
Can't do it the normal way, you actually need to pull in other updates first.
Okay, anything else?
Cricket. Almost.
Demo time.
Yeah. Yeah. Maybe that.
There's another command that's another command you really probably should put in your toolbox Let's get help.
If I don't remember the exact syntax or something, and boy, there's a bunch.
Literally, this is… almost the minimum viable get I need to add status to it.
But you can run get help and subcommined. And it will give you a whole bunch more help.
In fact, if you do get help. Command.
It is the same as doing man get dash. Command so like if I wanted to do get help pull.
I could literally type. Get help poll, or I could do man get dash pull.
And if you just do just get help.
It's not a man page type thing. It's just some terse reminders, almost like if you do double dash help on the end of a command.
So that's another one you really want to know is you're not going to use it very often, but you want to know it exists when you do need to use it.
So I'm not even going to ask. I'm just going to go to questions.
Have you looked at any of the get GUI based.
Roberts.
Um… Personally, I've looked at get tk
I really like that. Living in terminals X term is my favorite by a for many years.
So I really… tend to stick there. I have poked at get tk a few times and it does make a few times some things much more visible But I really don't have any other experience with those. I've seen some YouTube videos about some things, but I couldn't.
Talk to them. Lee, have you… Sean Tweehouse would probably be a good one to talk about. Graphical Git interfaces.
And I'll also say a number of editors and or IDEs can interface with Git and perform some of that function.
Lee?
Yeah, I've used VS Codium a little bit on a project, but I tend to live at the command line too.
Although I do know that every current IDE environment is well integrated with Git. They have the Git functionality But I've never played with it because I always revert to a terminal like you do.
And that's a personal preference for me. And I presume Lee as well Git is… Polly, I don't know what you call it.
It is happy to work in whatever environment. There are a bunch of them.
Yeah, personally, anything personally There's not a command line adds a layer of logic on top of git And sometimes it's easy to understand. Other times you have no idea what the heck is going on.
Yep. All right. Any other questions about the slide deck?
All right. We will. Minimize that.
None from me.
And… So I want to make this enormous.
And I want to go full screen and I can't make the font any bigger.
I'm sorry. Oh, I can make it smaller
Where's the zoom on here? Oh, boy.
Zoom, you've got it open. You're talking in it.
No, there's a Zoom function on the display. In Zoom, there's a Zoom function.
I… Are you saying for me as the presenter or you as the viewer?
I haven't. We as the viewer Unfortunately, I haven't used it in this new client.
Okay.
Sometimes when I get stuck like this. I'll copy the line.
Opened up Libra office patch it into there and then go to a larger fund.
It works. I like it. I like it.
Yeah.
A little arcane, but it does work. You're just…
Yeah, for some reason here on what's on the screen right now I'm not getting i'm getting pieces of characters not true characters.
Yeah, I think the font's a little wonky. You know part of the character is highlighted and part of it isn't type of thing.
Yeah. Try a different…
X term, it's 20 years behind on some things.
So control plus or control shift plus doesn't help Yeah, wow.
Nope, not an X term.
Would changing color help?
I hadn't seen that in years.
Now change it to black. No.
Yeah, it just as well be.
Hang on. Let me…
Okay, this sounds like an excellent topic for the presentation of the tutorial next month or the following month, how to increase fonts.
Let me, I purposely stop sharing. Let me see if I can share.
Just the window and zoom Where did you go?
Meeting. Thank you. Let me try sharing.
Just the screen. I'm sorry, just the terminal Okay, is that any better?
Yes. Not fantastic, but it's much better.
Okay. Okay.
Yeah. Yeah, it's a clear font. Whatever you did there for a few seconds.
Instead of sharing my entire screen, I'm sharing just the window.
So. Okay. All right.
Yeah, I think that's doable, Grant. Go ahead.
I hear there's this guy, Sean Tweehaus, that wants some help working on the Slug website.
I'm a sucker. I'm a game. I'll try. But I know I need to clone the copy of the website so I can start working on it.
I'm just in my home directory on this computer And I know after a nice minimum viable Git tutorial I need to do a get clone.
So there's the command. And somebody has provided the address I need to clone from.
And I'm manually just specifying the name of the directory it will default to that.
Okay.
So my computer is going out to the slug site. And pulling in a copy.
Of the repo. And I have set up authentication already ahead of time, which is why I was not prompted.
And of the many different things you can cause Git to do is cache credentials. And I think I have mine set.
To cash for two or four hours. It's my computer in my office, in my house.
I'm not too worried about somebody coming in and accessing it.
So now I go into the website.
And…
Okay.
It's actually encouraged.
I have done a super special, very perfect edit. I'm ready to add that to a change.
So i've made
I've seen a super perfect edit in a live demo
I do a good status first, Grant.
So it is telling me and you know Lee wanted to see the state I'd run git status. Maybe I walked away and got a cup of coffee and came back, forgot what I was doing. Oh, yeah.
I just created a file. So it's telling me there's a new file And it is ready to be committed.
And I like git commit. Dash v because it will provide some details as I look at it.
Can anybody guess what my editor is?
Looks like BI. Irving.
I don't need to put my name because get is actually going to have that so I'm going to take that off.
Any comments or questions? And the thing I like with the verbose I can see the changes that are being committed.
Comments, questions, concerns?
From line four down, that's what's presently there.
Yes. I believe line four line Actually, everything from Four down.
Is not going to be part of a message. It's more display.
The only lines one, two, and three are going to be part of the commit message.
But get on the back end knows that I've added a file and the contents of the file, the name of it, et cetera.
This is more just presentation for me. Maybe I'll go, oh crap, that's more than I wanted.
So I can quit. And do you see the Q bang? It's hidden behind a pencil.
No.
Okay. So I committed, but I did it in a way that did not save. So Git says hey that doesn't look like a good commit message. I'm not doing it.
So I have to redo it. Um.
So now I just made another change same text string, but to a different file name And when I do a get status, there's a status the original file that I made a change And there's also another file that it's not tracked.
It's not in the repo yet. And get is saying, hey, boss.
I'm going to ignore it unless you tell me to do something with it.
So I'm going to add it. Now get is saying, hey, there's two new files.
And if I redo git commit dash v there's still the same front matter but i can see that there is a new file And the lines with a plus are the way get is showing this is what I'm adding.
And then there's
They're also in green. You can tell if it's If it's added, they're in green, if they removed it, they're in red.
Yes, that is predicated on color and a few other things that are there by default.
But you can't guarantee it. And for accessibility reasons, you should have two or more ways to know what is happening.
So we've got the color and the plus, a single plus.
So I'm happy with this commit. And down at the bottom of the screen, you can't see or I can't see because there's Zoom's pencil markup thing over it.
But I have colon x. To exit.
So now, since I exited without error and not an empty commit message.
Yet said, hmm, that was probably a good commit message. I'm going to go ahead and do the commit.
And it tells me two files changed. Two inserts and some details about it.
If I do a get status get tells me my files are consistent with my repo So later at night, I finished my working session.
I want to do a get push. Now those two files are in the repo on Bock.
Oh, crap, I had a wrong file name. I want to get rid of that.
I may have to double check something, but I believe
There's my mouse.
So I have removed something. Git tells me there's a change to be committed.
That is deleting a file. And since I used get remove that is telling get I want to delete this file.
And it manages things for me.
I don't have to do a commit such for that. Lee?
Hang on a second.
Helps if I do git commit dash v.
Yeah, there you go.
I do that push. And I didn't show it in the minimum viable gift because it's not per the minimum set is git log.
I can see… what was done.
And here… you can see you can see that Git knows it is me.
And it has my email address. It's the incorrect address because I'm in the wrong directory for something to work.
But I can see here's what I did over the weekend.
Flipping the arrow around what I talked about earlier. Here's the commit I did a few minutes ago where I added two files And then here's the commit where I deleted the wrong file.
So. Thus ends the planned Demo?
Any questions, comments, concerns?
I see that there's been a message sent to sysadmin our mailing list. Is that part of this process?
Yes. Yes, it is.
The way you've configured it. We've configured it.
Yes, I have configured the server that when somebody does a push.
The get on the server will send an email to sysadmin.
And that is both informational and part of a proto cicd pipeline, as Sean was calling it.
What we were going to do or what the current plan is, is when somebody does a commit.
Subscribed to the mailing list to receive that will be a user on Bach 2 that will receive that email go, oh, there was a commit to the SLUG website repo I need to do an automated get pull and then kick off a process to generate the site
And a few other things. So I'm using or some might say abusing email as a communications mechanism when somebody does a push tap a process on the shoulder on the server and make it go make happen.
And you saw part of that.
Interesting.
Okay.
Yes. Interesting.
I'll put it in the chat ron bc pointed out that, hey, there's always going to be something that You just forgot to mention. So if there's a missing file or a typo You can do a commit dash amend.
Yes, you can. That is one of the many things. That you can do. Ron BC is absolutely correct.
The most common place I see amend referenced is, oh crap.
My email address was wrong, so I can run a command Um.
So it's not set there.
So I can… Stan, you were asking how you would set an email.
For it to know who you are.
Yes, it defaults.
Right. And you said there were some defaults, but you could because of multiple projects you might want to change that from the default.
Correct. It defaults to your I think it comes from the geckos field of the account on the system you're on on Unix.
I'm not sure where Windows gets it, but I presume it's something similar.
And then it's username and hostname. I actually have personal config at my user level to set my email to my preferred address.
Um.
Hey this was this was billed as being the basic simple Things must know.
Okay.
And as much as I love the discussion. We probably have covered.
Those basic simple things that we must know so So if there's anything we really need to keep covering tonight. Let's do it quickly. Otherwise, maybe we need to talk about wrapping up the tutorial tonight.
I'm good. Yeah, we've apparently gone for a lot longer than I realized. I thought this might be 15 minutes to start with.
And we're almost an hour in.
Off by factor of four. Yep. But that means it was good, Grant. We really appreciate it. Yeah, yeah, yeah.
A lot of good stuff covered. Oh.
Okay.
I will point out that I will point out that Robert Sitek did a presentation on Git, I want to say that was probably about a year ago.
His approach was somewhat different. And we do have that in the archive. So those of you who joined us tonight.
Her peer primarily to brush up on your gift or learn about git Go look in the archive. Robert, C-I-T-E-K. Like I said, something over a year ago. I meant to look up the date, but I haven't.
Peruse our archive and you can find a good get talk.
Man, a very good get talk tonight by Grant. Thank you very much, Grant Taylor. Really appreciate it.
Really?
And please, if you have any questions. Reply to discuss.
We'll be happy to try to answer them.
Sam, would you like to put up the
I'm trying. I'm trying that the buttons don't like me.
Okay, well, Stan's doing that i'll do a bit of a voice over here. You all are at the uh Wednesday, 9, April.
General meeting that slew the St. Louis Linux Unix user group our tutorial presentation has gone a little longer tonight than we'd planned.
I'm going to quickly, for those of you who went, wait a second, I didn't expect that one.
Yes, we did change tonight's tutorial. Ed Howland was going to do bash variables, scopes, and lifetimes.
And we found that was even more extensive than would fit in a quick 15, 20 minute tutorial. So Ed is still going to do that talk, but he's going to do it as a full evening presentation next.
Thursday. In other words, eight days from now It will be at our monthly St. Louis blog meeting And so yes, those of you who thought you were coming tonight to hear ed tune in next Thursday and that'll be here.
So with that. Let's see, did we jump ahead one slide, Stan, or you want me to go back there?
Going to roll. Slide number one.
Which one? Which one you want?
Here's slide number one.
Okay, it's equal to the beginning.
It's all exploded on my screen. I don't know why. Did you use a Zoom? There we go. Okay.
All right. On the agenda. Obviously, we went a little long on that.
We had a nice tutorial. We're now in the middle of the meeting. The meetings we do on Wednesday night, we talk about the Oreo cookie model. The front of it is the tutorial. The back of it's the main presentation.
In between that soft GUI center is where we are right now. So we do the announcements and a very short Q&A.
President, I'm Gary Meyer. I'm the emcee. I'm the president of the organization.
Vice President Stan Reichert. Stan does so much putting slides together, putting schedules together.
So I don't know how we'd get by here without Sam. Treasurer is Lee Lamert. He's uh not just uh our treasurer, he also is the host of principle at Omnitech, which is where we host our machines.
And Lee's also going to be our main presenter here later in the evening.
Our secretary has been Ken Johnson. Ken has to move out of that position. So yes, we are looking for a new secretary for the group.
Anybody who's interested, please drop me an email or catch me somehow and we'll get you set up and organized on that.
Chat monitor. That's just somebody to volunteer for tonight during the main talk. You just want to keep an eye on chat.
You can somebody doesn't voice out During the talk just on the talk pipe something in the trap.
I'd love for you to point that out. Lead as a speaker tonight, do you want people to interrupt or do you want them to hold questions and comments till the end? I would say interrupt.
Okay, that's speaker for tonight. He's saying interrupt. Okay, other groups that are affiliated with SLU, the St. Louis Linux user group.
The new Linux user group. And slack the difference between those groups The first one, St. Louis Linux, St. Louis log it has a talk similar to the talks we have tonight, a formal presentation that's planned in advance, given a title, an abstract.
And uh it's a that kind of a talk. The new lug a new Linux group has no planned and advanced topic and basically the rule is Whoever shows up at the meeting who claims to be the most novice person, the newest person to uh to linux
You get to ask the first question and people will try and answer it.
All the questions.
And when… Oh, yeah. When they get a good resolution to your question, then they go to the next newest person.
That person gets to ask the questions. So that's the way that group works.
And don't just come if you're a new user. What makes it fun is getting some of the old gray herons in there, if I can use that term. The people who are familiar Because they're the ones who are answering the question. The amazing thing is
Is you usually learn something you in an old gray hair may think, well, this is the way I always do it.
And then we are staying our somebody else pipes up.
Comes up with a completely different approach. So sometimes as an experienced user you actually find yourself learning new things at the new Linux user group. So please come.
And help out there. Slack is actually the oldest, we think, computer group in the St. Louis area.
And it is also more hardware oriented. We'll even answer questions about Microsoft Windows.
But yeah, the idea is just how to put a computer together and what makes it run what could be going wrong, run better.
So again, there's no set formal presentation. It's just kind of whatever people start asking questions about that.
Next slide.
Good. Calendar. As I mentioned earlier tonight, we keep a Google Calendar.
It has both our particular events that we host on it.
But we've also broadened it out. Originally, we were posting local St. Louis events When COVID hit, we became so oriented towards using zoom and jitsu to hold remote meetings Now we both host the local events.
And we also host a lot of out of town events. I shouldn't say host. We put them on our calendar.
Just because those events look like something that people who would be interested in open standards, open systems.
Unix, Linux. If you'd be interested in that even if we know about it out of town, if it's an open meeting, get to by jitsi or zoom what we post it there so you got a shot.
But we highlight the slug events in red. Next slide.
Zoom has bit me. I don't know how to get to the next slide now.
Try space bar or page down.
And this is where Gary does a little soft shoe.
Oh, God.
And to read the really small preview on the left-hand side, Gary?
Can you take the mouse down in the bottom left corner there in number 12 and click it?
Good evening.
There we go.
I've got two status lines that say the same thing, and neither one of them is working at this point.
Okay.
Hooray for Zoom.
I'm going to take a wild guess that maybe the next thing is Q&A. After the main presentation.
There'll be questions about the main presentation, but then after that, we can sit around and chat about anything you want.
Probably will help if it has something to do about computers.
Right now, since we're running late. If there's anybody who's afraid that there won't be people who know about whatever topic you wanted to ask the question on.
We'll entertain a couple of just brief, quick questions if somebody needs to ask something now before people get away at the end of the night.
But I hate to delay the main presentation any longer so up to you if you really need something answered, ask it.
Now.
Oh.
While somebody is thinking, I'm going to point out again that our original tutorial for tonight, Ed Holland on bash variable scopes and lifetimes that has been expanded to be a full evening's presentation And it will be done next Thursday, eight days from now.
At our St. Louis blog meeting.
There we go. There you go. Mailing lists. That's what I didn't talk about. Okay, we maintain a number of mailing lists. One is the announce list.
It's very… limited traffic. It's only basically an edited thing that comes out usually no more than once or twice a week.
And it basically usually is just saying about a meeting that we're holding our that we think you might be interested in.
So very limited list. The discuss list, anybody can post to or any member, I guess I should say.
Um and uh So it's kind of just free farm discussion. You ask a question, make a comment.
Hopefully somebody makes an answer or response. So sometimes you'll get a dozen comments in an afternoon. Sometimes there won't be a posting for a couple days. Steering committee That's where the sausage is made. That's basically the people who get together
To plan these meetings and try and get the presentations together.
This admin list is basically our support techie staff the people who keep our machines running, keep the mailing list running the archives So that's where the volunteers who want to do the work behind the scenes go to organized.
Presentation archives, as I said, we do keep an archive of all of our presentations.
They got a lot better when we started living in the age of COVID started doing everything here on Zoom or Jits.
We've managed to do a much better job of recording everything since then.
I'll lead to a quick comment I'll make at the end here.
And so yeah, you can definitely go back. We're putting a lot of them out on YouTube these days.
So yeah, we do a good job on the archives. Thank you to people who do that.
Privacy and security. Obviously, we're recording. So either be careful in what you say, know it's being recorded.
Every now and then we go in and we'll edit something out of the archive. But remember.
If we're recording it, anybody else on this Zoom meeting can be recording it as easily.
And we have no control over what happens to those recordings.
Just be aware. Next. Call for help. Before we go on, this is where I said you can ask a question. We're kind of running overtime here.
Suggest we only make them brief or quick. Anybody got a question they want to ask?
Now, like I said, at the end of the meeting, you're certainly welcome to ask afterwards as well.
Hearing nothing. Okay. Main presentation which is what we're coming up on now.
It's hopefully something on an open source open standards type topic.
Unix, PSD, Linux, mac os we uh our presenter is going to have a deck of slides.
Some presenters asked the whole questions to the comments to the end. Lee says, no, go ahead. Ask me now. Interrupt me, please.
And then afterwards, yeah, we can broaden out to general questions.
Next. Okay, final chance to ask any questions here in the gooey middle.
I don't think anybody has any. Not hearing any. So we're going to go to our main presentation of the night, Lee Lamert.
Who is principal at Omnitech Corporation. He's also the treasurer and a longtime member of our organization And we really appreciate all of his efforts over the years.
And tonight, we're going to hear about how to rescue your firewall when
Lee, over to you. Well, thank you, Gary.
I've been cooking this presentation for about six weeks now since it happened here in the Batcave.
And at that point in time, the router that I've been using for, we've been using for 20 years just decided to roll over and die.
Unresponsive, probably caused by a couple of weird power problems we were having.
Anyway, it was a Cisco RVN 042, one of these guys.
Notice that out of stock, I don't even know if you can get them anymore because they've been out of production for what 12 14 years at this point.
But they were used in a lot of places. What happened was Again, we had a major power problem It actually took a couple of days to get everything straightened out.
Symptoms were and the lights on plug it in, no lights in the panel, power supply, okay, because I just measured the voltage.
So hopefully, if anybody's using anything like that in a production environment, you've got backups, right?
Well, we had backups. Unfortunately, we didn't have any hardware to run the backups on.
Backups, we don't need no stinking backups. We got backups. You don't have any backup hardware.
So you have to ask yourself in that situation If it happens.
What are you going to use for hardware? It may have a backup software, but If you don't have compatible hardware, you're still up a creek.
Okay.
In this case, I got a little lucky. Because i had grabbed one of these puppies.
Called a fanless PFSense router. I had it for a long time.
Notice that a modern router as 2.5 gig Network ports.
Whereas the old Cisco was 10,100.
Let's see us.
So to start with, some might kill that background noise, will you?
Got it.
You know, the the benefit of new hardware you get two and a half times the max speed.
Which means you can run a full gigabit connection over it and not have to worry about losing anything to headroom.
So the action plan, what's going to happen is I'm going to go through the steps And we can talk about them, ask any questions.
And then at the end, I'll run a live demo here. I've got a new box set up.
And we can actually watch it to the point that we could turn over production.
So the action plan is find your hardware on replacement hardware install an OS.
Which is a firewall distro. We'll talk about them here in a little bit.
Then you have to do the config and add some basic firewall rules so it will work properly.
And the whole goal of these steps is to get the thing running so you can put it in production bring everything back online that's behind it.
You can improve it. You can add features, add functions, add functionality, add firewall rules.
Again, the whole goal of this exercise is to get it capable of being swapped into production.
Gee we can't, you know, we can placement heart replacement software, install the software Notice that.
I have two separate steps here. Split them out.
Anybody want to hazard a guess as to why?
I'll give you hints or three-letter word that starts with G for golf.
All right, the initial configuration is something I can do at the command line.
But if you start entering firewall rules and setting orders and that, you almost have to use the GUI of the firewall.
So the initial config is to get it online And then the initial setup is to finish that config in the GUI.
So you can do the things that are hard to do.
At the command line. At that point you're online And then you can play with the configuration at any point you want to in the future.
Step one, source your replacement hardware. What specs do you need?
I showed you the one I had. I was actually looking Amazon today, and they've got some new ones out there I hadn't seen before.
These guys. Intel N1000 up to 3.4 gigahertz six two and a half gig ethernet ports And it comes with 128 gig.
Solid state drive and i believe it's eight gig Process or memory for 200 bucks.
It's a pretty good deal. Here's another one.
Same type hardware configuration. Although I3, it still has a six gigabit ports and they want more money for it. I don't understand that.
But the point being that there's a lot of options out there.
Some of them actually shipped from China. Although if you're looking for them, you probably want to make sure that they're a US vendor.
The stock here in the U.S.
Step two, choose your software. There's a bunch of options.
In fact, let's go ahead and take a look at them.
Chatgpt built a needle decision tree for me. Number one, if you're doing simple stuff Yeah, you can probably live with any Linux box and IP tables or NF tables or whatever favorite tool you want to use you got like ufw
But if you got… 50 or I think one of our clients, we've got like 200 different firewall rules in there.
You're not going to be able to manage that at the CLI.
So that's the first choice. You need a GUI. I would say yes, because a lot of things are simpler with a GUI like adding modules are modules are packages or whatever the particular distro calls it.
There are some major production versions based on FreeBSD. We'll talk about two of them. One of them's been around for a long time called pf sense PFSense is managed by NetGate. Netgate is a commercial vendor.
Up until last year. Net gate played nicely the open source community.
You could download the community version, install it Do you ever do anything you want to do?
But last fall they changed. The newer versions of PFSense require that you register and get an activation key to use it.
Which is a main reason that I tried it and I threw it out.
But some of the distros are actually Linux based. We'll look at them here in a few minutes.
By the way, that option to free pf sense rather is open sense It's a fully open source version.
That is very similar to PFSense in that it runs on free BSD.
The PS sense, he said it has to you have to register Correct. It didn't say, do you have to buy a support contract or a license? No, no, you just have to register. Just have to register.
They want your name, address, phone number, and email. Before they will give you a key to run it okay And with OpenSense, that's not the case. Correct. Opensense is pure open source.
Pfcnce is what up until last fall had been the community edition.
It is a little bit slower to update. New features take a while to get on there.
You had to get incorporated, PFSense Plus. Is the commercial version you pay for it It's not that expensive. You can buy appliances for a few hundred bucks But they're still commercial products.
And then OpenSense, like I say, is the free BSD-based open source version of the firewall it was forked from PFSense many years ago And it's uh today The GUI is a little bit cleaner, a little bit nicer and it's a little bit more
A little bit fancier than the PFSense product.
Linux-based firewalls. There are untangled fire zones, NTL.
I've heard of them. I haven't played with them. I actually have a secondary project here.
Got a firewall that's about two inches square sitting in a box over here And it is an arm based firewall, arm based firewall. But the point is ip fire will run on our So you actually have three choices. You have free BSD Linux and
Arm. Utm, if you have any less sophisticated user behind your firewall?
You may want some better ways of scanning links blocking malware sites.
Opensense has… a lot of options.
I haven't looked at them yet. So does IP fire.
Far that something used for arm-based and clear os which is a Linux distro that you can also use for a firewall.
Nf cables, IP tables, shore wall, psyllium. Again, CLI scriptable If you want something simple.
It's probably a good starting point, especially if you're familiar with those kind of products.
If not, I recommend starting with a GUI.
Here's a summary table.
Bsd license, OpenSense. Is the one that I chose to use.
Ip fire or untangle. Or more UTM features, although OpenSense is fairly capable.
If you're looking for container native or minimalist. Fires on resilient.
Enterprise SAMBA, AD Integration. Gential or clear OS.
So what do you mean by container native? Minimalist.
If you're running a server. Container host.
You don't want anything on the host. From sophistication from a high-level software standpoint, you're not going to run a GUI, you're not going to run anything for users, you're just running containers on it.
In fact, there are some distros today In the sushi world Darn, I'm forgetting the name. Anybody know the name real quick there is a micro SUSE Micro OS.
Is actually an OS built like a container. If you update it, you have to update it You have to check it in and commit the change.
That's what they are pushing for container hosts I mean, you're looking like two or three gig for the whole show us and that's it.
And you can't make a change to it. Unless you commit the change.
Which means it is very you know much more secure than any any source distro that you can hack roof access on.
Because there is no root access you have to have it, make a change and commit it before it can take effect.
All right, any other questions?
Ad integration? Active Directory. You know, Microsoft world with their sophisticated directory services
Can you increase the font on that, Lee?
Just had to do that.
All right, so…
As I was saying. We're going to do these here in a few minutes.
We talked about the software. Yeah, I prefer OpenSense. That's going to be the choice
Install it just like any distro. You download the image, you burn a thumb drive and do the base install which is where we'll pick up here when we start doing the demo in a few minutes here and a few minutes.
The way I configured this 20 years ago Because if you look at RV at the cisco.
It's got six ports on the back. Two of them are WAN, there's a WAN and an alternate and the other four are basically internal ports.
Land ports do i use them? I have to have three of them.
To run the back kick. For that reason.
When I bring up a router. I use one port for the WAN.
And the rest of the ports in a bridge. So since it's a pain to configure the bridge at the command line I use the WAN port for initial configuration.
On the local network to get to the GUI And then I'll switch to the LAN port later on.
That makes sense? Yeah. Okay. Basically the reason to do that is to get to the GUI as quickly as possible.
So I can set up the base configuration for the firewall.
What do you mean by the bridge? I'm sorry.
Network bridge where you have three or four physical ports connected to a bridge In that configuration, the network ports are nothing but connectors. The bridge has the actual network configuration, IP address, route, et cetera.
Okay, thank you.
Yeah, and the point is you can't set up a bridge until you have the GUI because you do it in a command line as a PITA.
Is a pain. But in a GUI, it takes about 12 mouse clicks and you got it. I'll show you how to do that here in a little bit.
So once you have the GUI up. Then I can do the bridge. I can create the bridge.
I can create some basic firewall rules. Those firewall rules will enable me to run the GUI on the LAN side.
Which is where you want it. At that point I could technically drop it in the back room in the wiring closet.
And put it into production. Which is the end goal of this exercise.
After that. I can do all kinds of stuff.
To… improve things. I can change the firewall rules or make sure the GUI is only available on the internal network.
Set up a certificate for to make sure that connection is secure even internally.
I can add firewall rules, whatever other functionality I need. I can add packages or anything I want to moving forward.
Because there's a whole lot of stuff I can do with OpenSense.
We encourage you to… You know, just take a scan at it.
Firewall and multiple networks. Panel vpns Multi-WAN is… basically multiple networks, but it also gives you VLAN capability, which is pretty beyond the scope of what we're doing here But at some point in the future
I do have a project to set up VLANs for a client at some point here.
And I'll try to document it so I can help people understand how it works.
But OpenSense just has so many different modules and packages and features that it is excellent as an open source product.
Any questions?
All right, so let's do it.
The hardware We chose OpenSense.
And I'm booting the router or the firewall, the hardware right now.
Lee, I feel it germane to mention that you purchase some hardware to do video capture of the physical box in the physical box your office and that's what we're looking at here.
This is true.
Actually, I've had it for about five years because when we first started doing Zoom, we were talking about doing hybrid meetings.
And this is the only way I could figure out capture the presenter's screen.
And get it on the Zoom so other people could see it.
Okay. So basically at this point
This keyboard cable a little longer.
Use the keyboard cable too long? Question?
No, but I had wound it up.
Come on. Demo gods, would you divert me?
What are the chances we can have two successful live demos in one recording?
The fun of doing a live demo. Well, he said…
There we go. It didn't it didn't seat properly.
Okay, so I booted from booted the thumb drive.
And at this point, I have logged in with the default credentials.
And now I can jump out to a shell.
In this OpenSense speed. Run on… other kind of hardware like a spare machine you might have.
With extra ports. I mean, okay.
Yeah.
Scholar.
Woo-hoo. Yes. Install ZFS.
Default email. Stall is best.
I'll give you a second to look at some of the other options on here.
I'm not sure we have to worry about stripe or mirror because there's only one physical disk in there but
Install it on DA0.
Hmm.
Oh, I know what it's doing.
This thing did not boot from the boot from
The sentence, please. Did not move from the flash drive. I booted from the M2 drive internal Ah.
It's going to be an issue.
Uh-hmm.
Are we having fun now?
It's a typical install procedure.
Yes. Is this a 32-bit machine or 64-bit machine?
Good question. I thought it was 64.
Because N100s, I thought, are all 64s.
Come on.
The nice thing about booting from the wrong device first people that are watching this can see that, oh, we made a mistake Let's go back and fix it. So how do you do that? You go back and boot from the correct thing.
Oh, Stan, you led on to these game presentation technique.
I think it's always good to leave the errors in a video.
Unless it's your password to the air. Vault or your wallet.
Thing that is the video editor that would take the problems out.
So let's install.
Much better.
I thought there was yes highlighted.
You know.
It's good smoke coming out of the back of the box.
Come on, do something.
Needs more kerosene.
Or the tape drives worry.
Oh, another log on the fire.
1%? Holy crap.
Yeah, I feel like that's probably just the update interval and it's going to jump to a much higher number.
There you go.
Okay, so what's the difference in what we're measuring? One of them says 30, one of them says 24.
So we've cloned 30% of the current system But that's only 24% of the progress. It's what looking for Well, apparently there's stuff that has to happen after it gets unclune
Or they had a Microsoft UI UX designer.
No, they couldn't be that because your numbers aren't going backwards.
Yeah, it's amazing. I hear all the time. What are we going to do this fall when Windows is end of life?
Celebrate.
And look at me cross-eyed when I say nothing. All you need is a current browser and Avast and Malwarebytes.
You can keep running it for 10 years. Or more?
It's only when you're a corporation that has somebody dictating what you have to do that gets you in trouble.
Over the last 10 years x became significantly more unusable Because TLS encryption evolved past what XP knew how to do.
Yeah, primarily because you keep my goalpost was You can no longer run a browser on it that was secure, that was anywhere near current.
Yeah.
See, Gary, one's at 99 and the other's at 79. The discrepancy got bigger.
90%.
All right, this will be done in a couple of minutes.
Meantime.
All the software. If anybody needs help.
Burning them as your thumb drive. One of the neat things that i love with open sushi.
Is that it has a neat little GUI tool.
Call an image writer. All you got to do is drop your IMG file.
In the tool Make sure you got a USB device in there.
Hit right and that's it. It gives you a nice progress bar It's a heck of a lot nicer.
I don't know. I like it. I like it better than DD.
What, no data destroyer for you?
Change word password i don't care about because i don't care about because You're on the right keyboard.
Does it have a default password or is it unset right now?
Default.
Okay.
We are. Rebooting in five seconds.
I love the color bars. I haven't seen that on VLC before.
When you stand for technical.
That's probably the capture device doing it.
I get you.
So I'm going to go ahead and boot.
So the first thing I'm going to do is assign interfaces Number one.
No, we don't need VLANs. Notice that I guess you can't see my mouse, can you?
Yeah, we see it.
Oh, you do? Okay.
Yeah, it shows up fine. It's nice and large. Even I can see it.
This is something that bit me in the butt. Different boxes have different interface names.
This box is IGC0123. Another box might be IGB.
Ig is kind of standard, but the third letter can change And the issue there is if I want to take a backup from this box from this box and restore it on another box.
It won't work if the interface names are different. Pardon my French.
That's a problem I haven't solved yet.
So same manufacturer No, I don't know if it's the same manufacturer or not.
That is probably different device drivers for different iterations of hardware
Great. Yeah. So like I said, IGC0 is going to be the WAN.
Have you considered putting in a feature request for them to fix that?
Make some way to make a commitment.
Oh, because I have no idea who the manufacturer is.
No, I think he's saying to open since to allow you to map on a restore type thing.
But when is IGC zero? And it automatically does automatically DHCP.
And it picked up an IP address right here. And guess what at this point
In the GUI. Hallelujah.
Cool.
Let's see, here's interfaces. Wan, we've got.
Igc0.
Would it be possible to change the device name in this screen?
Well.
Make it some kind of consistency. The next next thing up.
Not there. No, they… The IGC is zero. The next one down.
You know you can't know. Oh, no, no.
You probably could, but you'd have to do it in the kernel.
Because the kernel supplies those IDs And on a Raspberry Pi, I've done it with two or three different, there's two or three different ways to do it on a Raspberry Pi.
You can go into UDev rules and do it. In some cases, you can do it in the network config.
But since this is free BSD, I'm not even sure how you do it.
Although I did look at the backup, we'll talk about that here in a little bit.
I haven't tried it but i haven't tried it The IGC identifiers are very easy to find in a backup file.
And I think there'd be a reasonable chance of just physically changing them to what this hardware wants.
To restore it. Okay, so the WAN interface is there.
Next thing I want to do is I want to create a bridge
Oh, sorry. Let's see. Next thing I have to do is
Go over here. I have to give them descriptions.
To be able to select them for the bridge
So now I have the WAN, which eventually I will change to the actual physical wan But the identifiers that OpenSense uses are now called land one land two and land three And when I go over here to create a bridge.
I can create that bridge with LAN one, LAN two, and LAN three.
I'm going to call it BR0.
I go back to assignments.
Grant, do you remember where you do IPs?
Sender interfaces. Right now, I think you have… three, I'm sorry multiple layer three interfaces. Don't you need to change your lands one, two, and three to be part of the bridge
Yeah, they are part of the bridge.
That does not. That looks standalone.
Well, right here they show as part of the bridge.
That member interface is part of the bridge. Then go back to your BRZ.
Interface
Upper left. I think so.
You are up here.
It's been too long. System.
All right, that's it. Pick your BRZero. That's close. Go back to where you were.
Oh, wait a minute. Oh, never mind.
Yeah.
It was go to… Settings.
In an unintuitive Place.
Interfaces. Interfaces.
Out there.
We'll get your weigh-in since it has an IP or it should have one presently Yeah, generic configuration.
Ipv4 is DHCP. So go back to br0 enable the interface.
Ah.
Now you get more details down IPv4 config type.
And I'm on the B. E6 i don't want.
Now, this is something this is something need to figure out.
What?
Where the static route goes.
Remember…
Routing, I think, was under a different So save that.
Go back to system.
Gateways for routing. Then you need to define a gateway and then use it?
Yeah.
Well, no, wait a minute. He is the gateway.
Yeah, but once you have things the way it will need to be it will have a static outside IP and a static upstream default gateway through your
Yeah, but that's the firewall rule. The firewall rule routes traffic from the bridge to the bridge Joanne.
You're still going to need it for actual routing to get from that device out to the internet.
So you're saying if I do it with br1
No. It will be on WAN.
I don't know that you can actually do that until you connect Peace.
Yeah, I can't do that yet because i can't do that yet I'm just using the GUI right now.
Yeah.
Okay.
This particular interface is nice, but my head does not map to it. I haven't messed with it enough.
Well, a lot of them are pretty much the same. You think this is bad. What is a sonic wall?
All right. So at this point, we've got the base software installed.
I've got the GUI running. On the WAN interface.
I've got the browser connected. Using the default cred so i got the basic base configuration going i got the bridge built So step five was bridge your internal interfaces use the rest available porch.
Database firewall rules, test the GUI. At this point.
We can test the GUI on the LAN side. And we're getting close to be ready to go.
Let's see so
We need some firewall rules.
I don't remember where it was, but wasn't there… configuration option to cause the firewall to not filter bridged traffic between bridge ports.
You know, from memory it was in something like a syscontrol setting type thing.
Yeah.
Now, at this point I think I'm going to go ahead and keep on trucking.
Because there's some other stuff I want to show you guys.
Once you get your rules figured out. In fact, I do have a way to cheat.
Because right here
Everybody can see this, right? Okay.
Yes, I see it. Hermes parce firewall rules. Our soap incense config.
Parse pf sense config.
Yeah. This is actually code that will pull the firewall rules from an open sense, our PF sense backup
And that's not yet.
This was actually some code that chat gpt put together for me.
And…
I'm sorry, I'm not sure where the rest where the rest current backups are.
I'm sorry, guys.
I guess the demo gods are not smiling on me tonight.
But at least we're not under a time crunch.
And the problem is the prototype I did was in PFSense.
And now in switching to OpenSense. Some of what I recall from doing the PSNS world does not translate very well.
What else do we have here? You've got three VPN choices, IPSec, OpenVPN, WireGuard
Anybody see anything here that we might want to explore.
I think I found the setting. System settings tunables.
Are you in PSense or OpenSense?
I believe it's open since settings up one tunables.
Well.
And search for net link bridge
Net.link.bridge.
Up here in the search bar.
There you go.
Oh clown from us.
It looks like p underscore bridge is what the packet filtering.
Four of them.
Bottom one, I think. And that may be a PFSense versus OpenSense default difference because it looks like it's disabled according to the description you set to one to enable it.
But we don't want to enable it.
Correct. We fought to disable it in PFSense.
Right.
Okay.
I see the little edit pencil button over on the right.
What is that other button next to it? Oh, hello?
Oh. Okay.
Phone and trash or delete.
In other words, if you wanted to change a parameter Similar to this, you could clone it and then go in and edit it
So to keep the standard default that you had already example.
Right. Hard.
Or if you're creating something custom and you're doing a series of them like one, two, three, four, five, six.
You manually type in the first one, then you can clone it and modify the clone.
So you don't have to configure as much.
Would be very useful.
Didn't it have some interesting graphs of actual traffic flowing through it?
Yeah, that's up here at the on the top screen and dashboard
Pfc, yeah, PF sense did
Yeah, you don't have much flowing through it right now.
Well, there's nothing on the land side. The only thing we're seeing is the GUI traffic.
Yep.
Mm-hmm.
I wasn't the writers know okay nine meg out, which is the traffic coming to the GUI.
And 554K going back.
All right, so to put this into production I would go back to the WAN interface change it to static IP.
Turn off V6. Give it a v4 address of
You want to change the interface you're using or do you want to swing over to the LAN side and then change the interface you aren't using.
No, I'm not going to save it. I was just showing where to change it.
Because I already assigned the IP to BR0.
When you get a chance, would you go look at devices?
On the left there.
Devices, devices.
Middle. Open interfaces and mid there you go.
Middle.
Thank you.
The only thing I've used is a bridge at this point
I have no idea where to
Gif is…
It's probably a tunnel of some sort.
Or a group. Address of some sort.
Generic tunneling interface.
Is this designed so you can have multiple people with individual logons?
Yes.
And use your ideas and log what somebody did.
I don't know how extensive the logging is but i have an account on… the current one.
Okay.
I just create a standard admin for the password.
Let's see, how do I make him an admin?
Membership.
What's the OTP seed?
Seeing that? That's probably one time password.
Oh, okay. Okay, cool.
Is that?
That gets me a
The coupon, 10% off.
Okay.
Oauth, TOTP, Hermes admin. Ot.com.
Yeah, you're going to want to change it. Because it's in the recording.
Yeah. And I don't want to have to go back and edit it out of the recording.
The pain.
Stan, I say this with love. As the video editor, you sure want to not edit a video.
That's it. I think one of the originals we did Way back when we first started, we had a Zoom bomber come in.
And I never did go back and edit anything out of that.
Oh, well, I probably should have.
Because the guy was showing some porno flick or something.
Was it more interesting than our presentation?
No. Aren't all of our presentations riveting, Gary?
Well, that's it. Who would have been watching the porn?
I heard.
Say again?
I said, was that all that hammering I heard, riveting?
Let's see what we got here. But wait, there's four.
Okay, we made a couple comments along the way here. What if you have a backup from different hardware?
Got the Cisco is an issue because it's a proprietary backup.
There's no way to disassemble it. But in this case, I pointed out the fact that the port names can prevent a backup from loading.
That you've made on a router or a firewall with names that didn't match.
Because that actually happened to me.
Do I have a PFSense backup? That now that I've got this thing running, I may try to to restore it on this guy but i think there's enough difference that it's not going to work.
But if you parse it. You can see the interfaces, the IPs, the firewall rules And then you can use that to build a new config with it.
Instead of restoring a backup. Gotcha.
All right. Any questions?
One question, Lee. Since the old one broke and you couldn't get a duplicate replacement when you got this one, did you get two?
I have to, yes. I used one with Grant's help.
Okay.
To dig us out of the hole six weeks ago And since then, I purchased another one and that's when I found out that the interface names are different and I can't restore the backup on it.
Oh, okay.
Although I did succeed in exporting the config of a sonic wall box.
With that.
What?
Oh, that's interesting.
What happened to Apollo?
Well, I bork something, that's for sure.
Something's wrong with the DNS on this guy
You skip a step.
No, I mean, this is my… This is my workstation.
Oh.
In other words, if I go to the firewall box Well, that's a 206.
Some real-time joys of playing with networking.
Really?
Why do I not get local
The internal firewall box is up. Screw it.
All right, let's wrap it up. I'll play with this later.
I think we got enough out of it to understand the capabilities.
I really do.
All right. Then last thing I have to say is thanks for being here and Appreciate trying to edge them for cake, folks.
Thanks for the presentation.
Yes.
The old thing of there's always a amazing little things that you just don't expect like changing the third digit randomly and randomly Same system.
The interface name changing in the third digit. That was weird Yeah, really.
All right. Anybody else have… Questions about this?
Yeah, one more question, Lee. When you got the new one built.
Sure.
No, because we're only running 50 meg out on the fiber.
Did you notice a performance improvement over the old one?
Okay. But your land connections were 1000 before right so Landside might have been a little fast.
Correct.
Although we've got… non-dedicated fiber for the office that's actually a gig.
So I ran 2.5 gig. 10-based tea.
And we'll get over a gig on that if it's uh You know, on occasion.
Wouldn't that be 2,500 base T?
Yes, 2.5 gig. I've seen it both ways, Grant.
The first number is supposed to be speed in megabit. It is baseband.
If there is a number after it, it's a reference to the old coax.
The non-coax, it's dash and then a nomenclature for the physical technology.
Well, I dare say that vendors aren't following that.
Oh, yeah.
I've heard them call 2.5 gig.
Well, 2.5 gig, that would be correct.
But you called the two and a half gig A10 base T.
Sorry about that. Of course. I'm very razzable.
Just grazing you.
I would expect you to do the same to me.
All the time.
All right. Anybody else want to see something on here?
Well, in keeping with the grass saying, it's like, can we increase the font
No, no, no. Can you increase the font of the console screen?
That suits you.
No, that I can't.
Can you show any of the stuff on the log files or whatever, or logs?
I don't think is configured to save any at this point.
Okay.
It does pulse per second.
Okay.
Gps, it does pulse per second and then you can… have a stratum 1 NTP server.
He's saying pause for a second. Pulse per second. Okay, I misunderstood.
Yeah the g they makes GPS receivers that give the output on RS-232 line.
Which is really kind of weird because If you think about it, 4,800 baht is a pretty big time delay when you're actually trying to synchronize to the fraction of a millisecond.
Something to monitor.
Okay. He's got his own… monitor demon built in.
While… while everybody is thinking of what other question they'd like to ask or throw in at this point. I'm going to make a couple of quick uh Quick minor announcements. One's a repeat the other one is a a new one. The repeat, for those of you who were expecting to hear ed holland
Talking about bash variables, scopes and lifetimes. Obviously, we didn't do that earlier this evening because it became long enough to be its own presentation. And so That presentation is going to be done eight days from now, next Thursday.
At the St. Louis lug meeting. It's another Zoom presentation similar to tonight.
So you're certainly welcome to come that evening. Same thing as the way we did tonight. It'll show up on the webpage.
Under the phrase linked here on the webpage.
Also, we'll try and put it out in meetup. So when we It's just going to tell you to go to the same place I just told you.
Also in the announce mailing list. And the discuss mailing list, Stan posts that same Zoom link, usually it's Zoom.
So yeah, that's next Thursday night. At 6.30, if I'm right, right, Ed?
Ed's not here anymore. He went… You said…
Okay. Okay. All right. The other announcement, which I neglected to make earlier, is we actually can announce what's going to happen next But next month for the uh for both the general And the luck meeting.
We'll be having the same speaker. It'll be Craig Buchek. Craig, there's a longtime member of the group, longtime speaker here at the group, former officer of the group.
And Craig lives in California now, but he is actually coming to St. Louis next month.
Why we had to wait for that days of jitsu, who knows but Anyway, Craig is going to talk about voice next month.
And that's why there's two nights for this. Does that mean he's going to want pizza?
Yeah, I'll get to that part in a moment. So the first presentation is going to be kind of voice in general an overview how voice works in today's modern day and age and various software packages that are available voice to text, things like that, voice into commands
So, uh. As I say, the Wednesday night talk will be a general session on voice.
Right now, we're thinking the Thursday night talk is going to be programming for voice.
And he's going to show us some programming techniques to use if you want to process voice.
So obviously, I'm now talking about stuff that's over a month away.
So we don't quite have the abstract totally firmed up yet. It's kind of a work in progress.
But that's the plan. It'll be an all voice month at the the two presentation meetings.
Next month in uh next month. But so…
So are those going to be the normal Wednesday, Thursday times or they while he's in town back-to-back nights
Nope, it'll be the normal Wednesday, Thursday times.
Okay.
There is an oddity, though, of him being in town. We've had this discussion a number of times amongst the regulars uh here And that is hybrid meetings. There are some people who miss the old days.
Pizza with anchovies on it and a picture of beer on the table and seeing each other in person physically. Obviously, we now have a lot of members who live out of town, out of state.
Out of country. Craig.
Bless his heart being you know a farmer in town or who just happens to be in town next month was like, well, gee, can we have a physical meeting while I'm in town?
And uh our previous discussions is basically those of us who are running the meetings right now are pretty well maxed out we're trying to do good online presentations, make good recordings of them And we're just kind of stretched thin.
I have found, and I think a few others of us have, that doing hybrid presentations is like one more level of effort you have to make it so that stuff doesn't happen in the physical meeting that isn't then heard or seen on the recording or on the visual on the on the
Transmitted broadcast. So if anyone would like to say, yeah, sure, I'm good at doing hybrid meetings or I'd love to help you put this together.
Drake really wants to do a hybrid meeting, but this means we need to get a location, probably a bar slash restaurant where we can get the anchovies on that pizza.
And uh have enough technical know-how And people who want to run it this way to make a good recording, a good broadcast, and at the same time do that in a live setting.
So if anyone would like to volunteer to head up a let's do next month as a hybrid Yeah.
You can either raise your hand now, raise your voice now.
Send a note to editor at slug.org. And we can talk about it.
Lee is pointing to the sign of Nick and Elena's, the place that we used to meet that has anchovies on the pizza.
So we know where Lee is thinking. But anyway, so yeah, I'm not saying we're going to. I'm not saying we're not going to.
A can of anchovies.
It'll be a can of anchovy. Yep, yep. Yeah, no, that's just on the salad.
Yep.
Oh, God.
So if… the hybrid meeting doesn't happen Is there a chance that it would just be a social get-together?
Is not a meeting.
I'm dead. Yeah, that's going to be my next suggestion is just because it'd be good to see Greg and for those of us who we're here in town and knew him when he lived here in town It'd be nice just to get together and share a pizza and a beer with them.
Yeah, that sounds good. That hybrid meeting. I mean, we've been We've thought about that that's a complicated project.
Yeah, it sounds so simple, but those of us who watched it done well. It's like you have to make sure the speaker is speaking to the camera and to the microphone.
And not to the crowd exclusively.
And sound is 90% of the meeting. If we don't get the sound right, you just as well not record it.
And that means you need a board, you need multiple microphones, you need wireless mics.
Oral pain. Yep.
We just get together and have a pizza.
And make a little… Okay. If anybody thinks the better of it wants to volunteer and say, I can pull this off. Like I said, send an email to editor at sloop.org please and We'll try and make it happen.
Good. Any further questions about our main presentation here from Lee tonight?
Okay. Anybody just have any general Q&A questions that they didn't ask in the gooey middle of the meeting?
I had a couple of things that I wanted to mention at the calendar segment that I failed to do.
Oh, okay.
Ironically. Get at its 20th birthday this week.
And we also recently crossed, I have no idea what anniversary 50 or 60 for the IBM System 360.
Oh, yes, I did see that on the list.
See if I can find that.
Probably 60 years because I think it was 64 Or 61.
61 years? Math is hard.
Sounds about right.
Yeah.
There we go. April the 7th. 1969. I'm sorry, 1964.
The IPM 360.
Yep.
For those of you who may not have
Why does that say 1969 birthday?
That was your first RFC.
Oh, okay.
Now we're being economical and using one line for two birthdays so
Fair enough. And it's late. It's been a very long day for me. My brain is.
Leaking out my ears.
For those of you who may not remember. The IBM 360 was kind of was kind of the archetypical mainframe. I mean, that came out in 64 But they kept redesigning it.
Retweaking it and it stayed it that class of mainframe, that family of mainframes basically dominated the industry for a couple of decades.
Frequently when somebody you know said the mainframe that was just the default what they expected you to understand.
So…
And its descendants are still available today.
Ooh, 2005 initial release of Git.
There we go.
I saw a quick video where Linus was talking about his oldest daughter at college And he is better known for Git.
Oh my gosh.
In the computer community, she is in then for Linux. Because Linux is Linux specific. Git is used across industries across technologies.
Go ahead. Hello.
Platforms.
I'll make a motion.
Okay, that is great, Grant, that you managed to do the presentation with it two days the big birthday.
It was not planned.
And it turned into quite a bit more of a presentation than I had anticipated.
Other general questions, comments.
I suggest you do a bookend and close out the meeting.
Here, here.
Any other thoughts along those lines otherwise I'm going to say that i'm going to say that Thank you all for coming this evening. And this was the general monthly meeting of SLU, St. Louis Linux Unix users group The date today was the date today
Wednesday, the 9th of April, 2025. Presenters tonight, Lee Lamert did the main presentation And it was on rescuing your router.
Recovering your router and uh basic tutorial was Grant Taylor.
We did the presentation on the presentation getting the minimal get.
So with that, thank you all for coming. End of recording.