139: Okay Nabu!

139: Okay Nabu!

Released Friday, 27th December 2024
Good episode? Give it some love!
139: Okay Nabu!

139: Okay Nabu!

139: Okay Nabu!

139: Okay Nabu!

Friday, 27th December 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:00

I need need to extend my thanks to both

0:02

you and Brent for covering in my

0:04

absence last week. I had one of those

0:06

annoying one of those annoying viruses that I just lost

0:08

my voice and just felt crummy all

0:10

week. So to you you to you guys for

0:12

stepping up. maybe thought maybe he had sabotaged

0:14

you over there because it sort of was It sort

0:16

of was perfect timing with his new

0:18

hardware setup that all arrived. Seemed kind of of coincidental. well

0:20

we did hear well, we did hear from a

0:22

few people right into the show that said

0:24

now they're going to use the the to build

0:26

their own own and stuff, right? right? Yeah, you know, he's

0:28

got a pretty good you know, he's over a pretty good little

0:30

plan over there, though. I like how much thought

0:32

he's put into it. know, this is something he's been

0:34

you know, you know, he's been slowly working towards this

0:36

as a goal for a while, and it's coming together.

0:38

and it's Now we have a stacked

0:40

show to get into today, so I'm not

0:43

gonna waste too much time with the to

0:45

waste too much time with the pithapatur at the We've got We've got

0:47

the founder of of home on the show

0:49

today. show today. Yeah, Yeah, he's joined us

0:51

because the Home Assistant Assistant Voice it's actually

0:53

here, it's hardware, it's available, and we've

0:55

had our hot little hands on it. our

0:58

hot had so much to ask him about. and we

1:00

had so much to ask him about. Hey

1:02

Home Assistant onto the show,

1:04

please. Home Assistant onto the Welcome back. Hello,

1:06

Paulus, welcome back. to be here! be

1:09

here. It's your third visit to the

1:11

show, and you're here for a

1:13

special reason, this visit, visit, because there's

1:15

a new product. And it's pretty exciting

1:17

because it's not just a new product, but it's kind of

1:19

like a new era. but it's it's

1:21

definitely a new era.

1:23

it's We have launched era.

1:25

December launched last December 19 Home Assistance

1:28

Voice preview where where we've been

1:30

tinkering on voice for two years,

1:32

making small improvements left to right. left to

1:34

Now we have hardware that makes it all

1:36

it all super accessible in your house

1:38

And you can actually use it. it.

1:41

This has been something that I've been tinkering with for a

1:43

little bit. So I've had a chance to get some experience

1:45

with it. And one of the things that I thought. experience

1:47

with it. And most delightful was

1:49

the actual I thought was the of

1:51

the design was the actual just small little

1:53

square with a USB -C

1:55

port, little jack. port, a then

1:57

an almost iPod like iPod-like...

2:00

wheel. You noticed it. Yeah. Can you talk about you talk

2:02

about that? Yeah, we is inspired by the inspired

2:04

by this nice iPod. It had this nice

2:06

wheel you go to would feel it click

2:08

when you go to the next step. want

2:10

this. And so were like, we want this.

2:12

And so we were looking and then

2:14

we found this rotary encoder. And so

2:17

it's not capacitive touch because capacitive touch

2:19

is just touch is just nah. Like you feel you feel every

2:21

click. Like it's not a click wheel wheel.

2:23

there's a button in the middle, but

2:25

just, you know, the rotation feels so

2:27

good. good. Yeah I was like, oh, this.

2:29

this brings me back. so can

2:31

you It really does. a little bit about you tell us

2:34

just a little bit about some of the

2:36

changes that are happening at a software level in

2:38

Home Assistant to make something like this work?

2:40

Because when I got it out of the box.

2:42

immediately It was immediately discovered by the connected

2:44

have connected to my I also got I also got

2:46

like a prompt on my phone, can you

2:48

just talk a little bit about that? that?

2:50

You know, You know, I'm the president of

2:52

the Open Home but we

2:54

don't just make don't we make home

2:56

Home, and ESP Home, that is

2:59

the open that software to create your

3:01

own devices for the smart home.

3:03

the smart home and... our voice assistant is

3:05

based on on ESP Home. Now we've

3:07

been working on making ESP

3:09

Home easier to use and get it

3:12

to get to get so one

3:14

of these things that we've

3:16

developed as part of that

3:18

that we've this thing called of that

3:20

is this developed ourselves called open standard

3:23

that we've developed ourselves called on devices

3:25

because So it's on devices that

3:27

are generally devices that are generally the old pre- I

3:29

know, couple of years ago, ago, you can DIY

3:31

device, it has to, it a Wi -Fi access point,

3:33

you point, you -Fi access point, you set up

3:35

your Wi -Fi credentials, you hit your Wi-Fi It

3:37

has to take down your Wi -Fi access

3:39

point to connect to the Wi -Fi, so

3:41

you don't get any feedback. You don't actually

3:43

know if the device was connected. And we

3:45

And we were like, that's super annoying. And

3:48

And every device you buy off the shelves,

3:50

they have like a Bluetooth onboarding. So So we

3:52

a Bluetooth standard. standard. We added it to

3:54

Home Assistant, it's of the Bluetooth the Bluetooth proxies,

3:56

you Assistant will find it, find it's

3:58

part of their of Assistant system apps. So even

4:00

if you don't have a Bluetooth

4:02

have a Bluetooth the Home the will help

4:04

you and up the device via

4:06

Bluetooth. up the device this open standard is

4:08

actually built into actually built So ESB Home,

4:10

device that is that is like for

4:13

ESP ESB have have improv over Beely on, so that

4:15

that like the open home the open home

4:17

community, we can know, we can build

4:19

devices for one another and just

4:21

have a great onboarding experience. But

4:23

we actually went a step further

4:25

in this case for case we know

4:27

this with voice in the the years, two years.

4:30

There's many different ways to create a

4:32

voice assistant. it's when I say stack, right?

4:34

it's actually about the stack, text, we

4:36

speech to text. We have to turn

4:38

your speech into process we have to

4:40

process a command, if that command, command, that act

4:42

on that on that command. we Then we

4:44

text text response. And the text response

4:46

has to be has to be into speech

4:48

that we can play back on

4:50

a device, on your phone, or wherever

4:52

you are. are. Now, we realize that

4:54

you do you do this locally,

4:56

self and that's I'm on this podcast,

4:58

we we a a whole lot

5:00

of that about that right at We want

5:02

stuff to be local be it's

5:05

possible. it's And so we

5:07

actually open a wizard now. now. That

5:09

visit will guide you saying, okay,

5:11

if you have homelessness Homocyst and

5:13

Cloud is the way people

5:15

can support the Homocyst and

5:17

support the actually has built that actually

5:19

has -speech services that are and

5:21

but or super services that are super

5:23

accurate, super fast, high and support

5:25

super languages and dialects. 130 But

5:28

if you don't have dialects. we will actually guide

5:30

you through in cloud, we will

5:32

and installing you through Whisper is

5:34

open your eyes, is open AI's speech to

5:36

text. Piper is is our speech

5:38

-to -speech system we've built ourselves

5:40

and basically at the end you

5:42

have a working working a

5:44

working voices that can work local.

5:47

Now we ran kind of into kind

5:49

of into issues with is a Whisper

5:51

is model, not a large not a

5:53

large language model. It's a a AI

5:55

system that is. right? So we realize

5:57

that the realize that

5:59

in green... raspberry pie, that's not the

6:02

best to run it on. So we

6:04

recommend an Intel 100 and 100, like

6:06

the one that Brian the other day

6:08

with the DIY NAS guide, like recommended,

6:10

right? The most efficient Intel chip nowadays.

6:13

Sure. That one will run whisper base

6:15

model just fine and you can get

6:17

like for English, right? Like I think

6:19

that one works quite well. The cloud

6:22

is still faster and better, but of

6:24

course. you know there's a that runs

6:26

in the cloud doesn't run at home

6:28

this is home assistant after all right

6:31

like it's got to be local first

6:33

and I'm curious you added some Bluetooth

6:35

stuff to the the stack over the

6:37

last year or two with the Bluetooth

6:39

proxies and what have you There must

6:42

be other stuff you've been secretly adding

6:44

to Home Assistant with future hardware plans

6:46

in mind, right? No, I mean the

6:48

voice stuff, like all these stuff, for

6:51

example, ESP Home, we added over-the-air updates

6:53

where an ESP Home device can update

6:55

itself without you having to compile it

6:57

on the ESP Home dashboard, which allowed

6:59

us to, for example, sell a voice

7:02

assistant or Lewis to sell his everything,

7:04

presence one sensor, and people don't need

7:06

the ESP Home dashboard to... or East

7:08

home device builder as it's been renamed

7:11

to actually update the device. There's just

7:13

an update entity in Home Assistant that,

7:15

oh, boom, one click, it gets updated.

7:17

I noticed that I get my updates

7:20

for this little park thing just in

7:22

the little notifications bar. So hey, Home

7:24

Assistant Voice needs an update, press go.

7:26

Isn't it nice? Really nice. Yeah, great

7:28

job on that. No, we really looked

7:31

at all the... parts of a device

7:33

of the cell that you buy. What

7:35

would be the ultimate experience? And we

7:37

just made sure ESB Home can deliver

7:40

that experience. Yeah, it feels like a

7:42

really consumer-friendly ready for that next tranche

7:44

of users that might be looking for

7:46

something like this. I mean, it works

7:49

great for us. Yeah. And it has

7:51

a lot of perks too, because it's

7:53

a media endpoint now as well. And

7:55

you can attach a speaker to... So

7:57

the speaker in our device is really

8:00

meant just for voice responses, not for

8:02

music, but we did add an oux

8:04

jack on it so you can connect

8:06

it to an active speaker. But what's

8:09

actually really cool is that in this

8:11

device we have an ex-mos chip. And

8:13

ex-mos is his 20-year-old British company that

8:15

have been doing voice processing forever. Like

8:17

that's their deal. They make speaker phones,

8:20

and a speaker phone just wants to

8:22

capture voice, nothing else. Now, by putting

8:24

this chip in there, they clean up

8:26

the audio for us, but they also

8:29

have this thing where any audio that

8:31

we are playing through either the internal

8:33

speaker or the outjack is removed from

8:35

the input stream. So we can play

8:38

music very loud. It doesn't get on

8:40

the input stream, and we can hear

8:42

the wake word throughout the room. And

8:44

then, because we are playing the audio

8:46

through our voice preview edition, we will

8:49

lower the volume so we can hear

8:51

you speak. And then at the end

8:53

when you hear your response will bring

8:55

the volume of the music back up.

8:58

So I wanted to ask you, why

9:00

not a device with a screen? Because

9:02

there have been some ESP devices, and

9:04

I have one actually here in the

9:06

studio, that works with voice, that does

9:09

have a screen on it. Was that

9:11

considered for a bit? And then this

9:13

was decided, was a better route? So

9:15

we were playing with the ESP 32

9:18

S3 box as a development target for

9:20

a while and it really also forced

9:22

our team to think about user interface

9:24

and see what we can do and

9:27

we had like these nice pictures that

9:29

would change if it was like responding

9:31

or thinking but we realized that what

9:33

you really want from a voice assistant

9:35

is for example when you ask it

9:38

about your shopping list or the weather

9:40

you want to see that on the

9:42

screen and to do that you kind

9:44

of need like a bigger screen and

9:46

as we were discussing this we realize

9:49

okay this is going to blow up

9:51

the scope like we want to ship

9:53

some hardware like this year right and

9:55

not like next year so yeah that

9:57

but that's also it's called homelessness preview

10:00

edition definitely an upgrade of

10:02

all the previous ways you

10:04

could experience homelessness and voice We

10:06

don't believe yet that it

10:08

is for everyone for with for

10:10

everyone. mean, I mean,

10:12

you want. to remove all your

10:14

remove all your minis and have

10:17

the same have the same

10:19

experience where you can cast your music

10:21

to it, where you can ask

10:23

any question in the world from it,

10:25

from it, not there yet, yet, right? But you

10:27

you use Homocystin today. wanna follow follow

10:29

if you if you want using like self -hosted

10:31

stuff, see what's all is possible, what's all

10:33

as device is perfect. this I use

10:36

it is day, my kids use it

10:38

every day my the middle button is

10:40

like the talk, right? So you don't

10:42

have to say the wake push to talk right

10:44

so you talking to have to all day.

10:46

and they're So at what point

10:48

do we end up just literally

10:50

chatting with our house through

10:52

an just that's all local? our house through

10:54

an LLLM that's all possible today. So

10:56

we have so we have Olamma support and home

10:58

So the whole So the experience has

11:00

supported AI and AI can

11:02

call tools AI called. So call can

11:05

control it's called. So We've had that

11:07

working for the last six

11:09

months and we've been iterating on

11:11

it and improving it. So

11:13

we have support for six months. We've been

11:15

way of running and language

11:17

models. So we have works with Olama is

11:19

a local the names large language the...

11:21

Too many And Yeah, Too too

11:23

many llamas. So with Lama. works

11:26

with Lama, works with with Kwan,

11:28

a and all these things.

11:30

you need powerful hardware. Like,

11:32

this is not for the Raspberry Pi crew,

11:34

right? they need they need to sit this

11:36

one out. But if you have powerful hardware,

11:39

you can run quite some good AI

11:41

at home, and then you can start talking

11:43

to it to your house. and it

11:45

has access to everything that you have in

11:47

assistance. So we give it give it the state of

11:49

your house, of all the devices that

11:51

it can control. So you can also start

11:53

asking things like, oh, which oh, which doors are

11:55

open, or these kind of things. things. The API

11:57

The API is designed in a way

11:59

that people could... build their own custom components or

12:01

custom integrations that add more tools to

12:04

the AI. So there was one person

12:06

was playing with adding Google search to

12:08

it. So now the AI can actually

12:10

search the web for you and get

12:13

way more rich information. We also allow

12:15

people to just use scripts to inject

12:17

more data, right? So you now to

12:19

allow the AI to query your calendar

12:22

and list your events for the day

12:24

or these kind of things. It's something

12:26

we're super interested in, but it's also

12:28

something where. We know only part of

12:31

our audience could basically do something with

12:33

this, even if they have the most

12:35

powerful hardware. So we're not chasing it,

12:37

but there's, our community is just so

12:40

big that there's enough people working on

12:42

it, that we're making meaningful progress all

12:44

the time. It seems like there's a

12:46

good and a bad side to where

12:49

Home Assistance is at with voice control

12:51

right now. And I'd like to just

12:53

ask you about some of your future

12:55

plans here. I'll put it in context.

12:57

So one of the things I love

13:00

is that I can go in and

13:02

I can set aliases for just about

13:04

anything. And so then we can have

13:06

really familiar voice prompts to get the

13:09

temperature of a room or change on,

13:11

turn lights on or things like that.

13:13

I like that a lot. But it

13:15

really only works when I kind of

13:18

go in and I curate all the

13:20

names for everything. And I kind of

13:22

have to change it from the defaults.

13:24

A lot of things get named, just

13:27

kind of these long random names in

13:29

homelessness systems. What are your thoughts around

13:31

future changes there about maybe the default

13:33

names of devices or just kind of

13:36

smoothing that whole thing over in general?

13:38

So, well, one, the AI is actually

13:40

the answer, right? You can do a

13:42

lot less. organizing as us as a

13:45

human of your house because an AI

13:47

can understand that a light entity in

13:49

the living room, you can refer to

13:51

it as living room lights even if

13:53

you don't have, you know, it renamed

13:56

to be that such. But I think

13:58

in general what we want to do

14:00

is that we want to work on

14:02

our information architecture, so you bring a

14:05

device into a home assistant. We don't

14:07

know. So now we want to create

14:09

a dashboard. Now we want to offer

14:11

you an environmental state. If you have

14:14

three temperature sensors in your living room,

14:16

homelessness doesn't know if these are ambient

14:18

temperature or if this is your coffee

14:20

machine or is this the nozzle of

14:23

your 3D printer? Like we don't know.

14:25

So now we want to create a

14:27

dashboard. Now we want to offer you

14:29

an environmental state of your house. Now

14:32

we want to have AI know about

14:34

this. Currently we don't know. So information

14:36

architecture is very high on our list

14:38

of things we want to tackle and

14:41

together with information architecture, better naming, that's

14:43

also there. So if we know that

14:45

it's a decorative light for an area,

14:47

we can already provide a lot better

14:50

default names. unrate.net/self-hosted. Go and leash your

14:52

hardware and check out Unraid 7. The

14:54

release candidate is here and it is

14:56

packed full of game-changing features. and folds

14:58

ZFS capabilities. Unraid is a powerful and

15:01

easy to use operating system for any

15:03

self-host or home lab or out there.

15:05

If you've got some disks, you've been

15:07

meaning to set up a server, maybe

15:10

have a little network attached storage. This

15:12

is the time. Go make the most

15:14

out of your hardware. No matter what

15:16

you have on hand. Different size drives

15:19

or manufacturers, that's not a problem with

15:21

unraid.com. Unraid now has integrated tail scale

15:23

support. How great is that? They've got

15:25

a great video that shows you how

15:28

to use it. It's such a nice

15:30

thing to have on your server like

15:32

this. And you know when Unraid does

15:34

it, they do it right. So, they've

15:37

gone full integration. When you install it,

15:39

almost any Docker container gets the ability

15:41

to connect to your tailnet. You can

15:43

access them using valid HDBS certificates and

15:46

give them alternate routes to the internet

15:48

via exit nodes. You get to integrate

15:50

tail scale into Unraid. It's like your

15:52

peanut butter and your... jelly coming

15:55

together. Unrate is

15:57

flexible, it's easy to

15:59

use, it has

16:01

a brilliant UI, and

16:03

and 7 makes it

16:06

even better. Go try it

16:08

out try it out and finally take advantage of

16:10

that hardware you've had sitting around. had worrying

16:12

about it and just

16:15

start building it. just start slash

16:17

it. unraid.net slash self-hosted. So

16:20

2024 was the year of the voice.

16:22

I assume I assume you're gonna come

16:24

up with a moniker for a moniker for 2025.

16:26

So our year of the

16:28

voice our year of the weren't done, so we

16:30

just kept done. So we just kept going. Now know.

16:32

you just kept pushing on the voice.

16:35

on the we did more things. I

16:37

think. things. I Our branding of of Voice

16:39

was so successful successful that came

16:41

around, around, know, months ago, people people

16:43

were like... they acted like we didn't

16:45

do anything but voice even even though

16:47

we had made a lot

16:49

of progress on automations and dashboards

16:52

and these kind of things. of

16:54

So things so April, we actually

16:56

launched a roadmap and a roadmap broken down per

16:58

category down per we've been for example, we've

17:00

been revamping our there's now this new this

17:02

new sections dashboard type that is, it's

17:04

not the default yet. That's the

17:06

final step we still have to tackle

17:08

kind kind of relies on the information

17:10

in our just touched. touched but If the, if

17:12

you create a new sections dashboard

17:14

you can drag and drag you can,

17:16

it's very intuitive to build a beautiful

17:18

dashboard through just the user interface. a

17:20

user interface. been re-simplifying our and

17:22

automation editor. We've been

17:25

getting all been getting all

17:27

certified, which that's a

17:29

project that's going to a

17:31

project that's going to get into 2025. Yeah,

17:33

so there's a a lot of progress

17:35

happening all over the place. think I

17:37

think for 2025 right now, we're doing our road

17:40

map annually at April. in in April,

17:42

we're going to announce our next

17:44

roadmap. We did just update like a publish an

17:46

update on, like, know, you know, six

17:48

months in. six months it's

17:50

going pretty well like like the we

17:52

wanted to to do and the

17:54

things we're things we're doing of of lining

17:56

up, which is very nice. nice. Like I said,

17:59

Like I said, information is - is important doing a

18:01

bit more AI stuff like stuff, like one

18:03

of the things people love doing

18:05

like camera pictures of like camera pictures

18:07

of doorbells to the AI and ask of

18:09

in front of my door that should just that

18:11

that should just be easy. It should just

18:13

be built yeah yeah I love that. Yeah we

18:15

all like something if all a like if you

18:17

have a camera a you have a powerful

18:19

system that just be a toggle in a way,

18:21

right? a way right like sure well there's a there's a

18:23

bunch of stuff the commercial products do you

18:25

know, like the know like the ring example for example that

18:27

the the basics that that of little things

18:29

like having them appear in your Apple TV

18:32

is like a little is like a little -picture window

18:34

that kind of stuff and I think

18:36

all of the I think are there with Home

18:38

Assistant there with connect all these things together all

18:40

these things I don't want to say say lacking

18:42

because that sounds kind of unfair but

18:44

the kind of what's missing is that but

18:46

that last 10 % user experience to kind

18:48

of glue it all together. to kind often it all

18:50

together. Yeah often call this like where

18:52

is is we are we are making a

18:55

toolbox, But people people don't want a toolbox,

18:57

they toolbox, want solutions. They want to

18:59

have. to have. if you look at at

19:01

our energy dashboard, that's a solution. a

19:03

You just select your couple of

19:05

input sensors we we generate a whole

19:07

dashboard with graphs and like how much much energy

19:09

are you using? How much solar are

19:11

generating? and like. you know, whole overviews, and And

19:13

that's something I would love to do

19:15

more of it. it. But that's that's something

19:17

we want to build. we we have

19:19

our default we have our then we can

19:21

start building on top of that. building

19:23

on top of that. So just

19:25

air quality throughout the house. throughout

19:27

the house, humidity, looking at the looking

19:30

at the security dashboard, automatically laying out

19:32

all your cameras and maybe if doors

19:34

are open, course we already have course we already

19:36

have the energy dashboard of these of these

19:38

dashboards that kind of are cut through

19:40

your house right to give They give like a

19:42

focus on one element of your house.

19:44

of your I think Well, I think the automation

19:46

of laid the foundation for some

19:48

of that kind of some of that kind of

19:50

community fed knowledge to kind of be of be

19:52

shared with people, but I think

19:54

there's more that could be done. be

19:57

I agree. I I I agree. mean,

19:59

even on blueprints. Right? Like we should

20:01

be able, you now have to browse

20:03

this forum, I actually want to turn

20:05

it around where we say, you have

20:07

this device, we have these blueprints that

20:10

match this device. Yeah, yeah, yeah, particularly

20:12

if you own the hardware, right? If

20:14

you have the Home Assistant Voice Park,

20:16

then here's all the stuff it can

20:18

do, by the way. Yeah. I think

20:20

Paul's what strikes me is when you

20:23

first started talking about voice, you came

20:25

on the show and we chatted about

20:27

it. working with the community to develop

20:29

some of the voice modeling stuff, but

20:31

of course also with Piper and then

20:34

this device now, which is fully modifiable

20:36

by the end user, there's no way

20:38

you could describe this thing as lockdown

20:40

in any way. And I feel like

20:42

you've kind of struck that balance of

20:45

a device that end users can use,

20:47

a device tinkers can use, and yet

20:49

it's still something... I want to pay

20:51

for, I want to buy, I don't

20:53

want to build myself. That's good. I

20:56

think you guys have nailed this. Thanks,

20:58

thanks. It's really kind of completing the

21:00

loop from the first time we had

21:02

the conversation around voice and to this

21:04

end product, which I've been really enjoying,

21:06

too, with the pickup range. I thought,

21:09

oh, I'm going to buy like, you

21:11

know, a dozen of these. I think

21:13

I'll probably only need like two or

21:15

three. Yeah, no, the pick-up range is

21:17

really good and that's the ex-mos chip

21:20

that besides like cleaning up the audio

21:22

It also automatically applies the gain so

21:24

it will use if you're further away

21:26

It will increase the volume. So it's

21:28

always like a normalized output and that's

21:31

where the which is the level that

21:33

the model is trained on right so

21:35

it's a text so good. So we

21:37

what one thing we want to do

21:39

with this device is that we want

21:42

many different companies to make voice assistants,

21:44

right? Like we don't want to be

21:46

the gatekeeper of voice assistant hardware for

21:48

the home assistant community, for the open

21:50

home community. So we're going to open

21:53

source everything of it. So the schematics,

21:55

the firmware, the firmware that runs on

21:57

the ex-manship, the firmament runs. on

21:59

the ESP chip, everything

22:01

will be open and all the the onboarding that

22:03

we about about at the beginning, all all

22:05

of that will be available for every

22:07

voice assistant product that is gonna be

22:09

hooked up to be hooked up to home assistant.

22:11

That is fantastic. you for you for

22:13

joining us once again. We're gonna

22:16

have have links to to everything in the

22:18

show notes, but happy holidays to you and the

22:20

whole team. This feels like a gift to

22:22

the home a community, so. assistant it is, it is.

22:24

It's pretty awesome. It's It's gonna be It's gonna be

22:26

I think that's a great price. great know, with

22:28

that, I can afford to buy a few of

22:30

them and put them around the house and

22:32

they're not too big. They're pretty and they just

22:34

need not power. They're pretty discreet. They just

22:36

need USBC thank you so much. Paulus,

22:38

thank you so much. tailscale.com slash

22:40

self -hosted. Go try it out for

22:42

free for up to 100 devices

22:45

and and users. Go to Go to.com

22:47

slash self -hosted. That's not a limited

22:49

time deal. time deal. That's the deal.

22:51

That's the the plan. That's on. plan I'm I've

22:53

been on it for a very, very long

22:55

time. very long is the easiest way to connect

22:57

your devices and services to each other. and services

23:00

they are powered by by

23:02

WireCard. Secure remote remote access

23:04

to your databases, to to your

23:06

applications, to to your servers, to your

23:08

Kubernetes cluster, whatever it might be.

23:10

be. And tail is fast, really, really

23:12

fast. It's intuitive, to it's easy

23:14

to use, and ultimately it's unlocking

23:16

programmable network lets you lets you manage

23:18

networking like it is code. You

23:20

can deploy it, you can set

23:22

it up with rules. it's really It's

23:24

really powerful. What you're building is

23:26

a zero trust mesh mesh network that

23:28

connects each device directly to each

23:30

other so you get a flat

23:32

tail net. net. And And if you have

23:35

a a on a on a VPS you have a node

23:37

on your note on you have a mobile device,

23:39

they all exist in this virtual in this And then

23:41

in there, you have all kinds of tools

23:43

and capabilities. and can do name resolution, like you can

23:45

move files between your systems. can You can have

23:47

them talk directly to each other. You can

23:49

host applications inside this tail net. you And that's

23:51

what I've chosen to do. inside this tailnet. And

23:53

that's I run at home. to do.

23:56

Jellyfin, I'm standing up? run at of it.

23:58

I don't new that I'm standing up, all of. putting

24:00

it on the internet anymore. I

24:02

just have to put it on

24:04

my tailnet and I just connect

24:06

my nodes to the tailnet and

24:09

I can get access to everything.

24:11

No inbound ports at all. It

24:13

makes old VPN systems seem, well,

24:15

like legacy systems. It's one of

24:17

those things where once you've experienced

24:19

it, you've gone through a bit

24:21

of a networking awakening and it

24:24

really fundamentally changes the things you

24:26

can do with networking. You don't

24:28

have to. You know, you could

24:30

just use it as a VPN

24:32

if you want, but it's so

24:34

much more than that too. And

24:37

it also ties in with your

24:39

existing authentication infrastructure. So if you're

24:41

a business and you've been thinking

24:43

about giving it a go, you

24:45

can still go to tailscale.com/self-hosted, try

24:47

it out, and then tie it

24:50

in with your overall business authentication

24:52

scheme.com, slash self-hosted. Well,

24:54

I'm sat here in my lovely bonus room

24:56

with a friend of mine, Shane, who

24:58

I've worked with in the past. Welcome to

25:00

the show, Shane. Thank you, Alex, hi.

25:02

I didn't want to introduce you as this,

25:05

but you are the developer of the

25:07

Bento Box app that I mentioned a few

25:09

weeks ago. That's true, I am. But

25:11

you're also a Knicks. Addict, is that a

25:13

fair? I think I'm a recovering Knicks

25:15

addict. Yes, yes, that's what we're going to

25:17

talk about I think in the show

25:19

today, a carefully considered discussion of Knicks on

25:22

the server and why you and I

25:24

might both be falling out of love a

25:26

little bit with it, I think. I think

25:28

that's fair. I think that we gave

25:30

it a fair shake and we have a

25:33

number of things that we kind of

25:35

came to realize. Are you ready for that

25:37

Chris? Yeah, and I want you get

25:39

comfortable comfortable. If you need to lay down

25:41

first, go ahead and make yourself a

25:43

cup of tea and then let's get into

25:46

this. That's what they say on YouTube,

25:48

right? Grab a snack, grab a drink, sit

25:50

back, relax. Smash that like button. So

25:52

listening to an episode of Linux Unplugged I

25:54

believe it was, what, a year ago,

25:56

you had an idea for a project.

25:58

at this a long

26:00

time on-raid user. And so I liked

26:03

so for various aspects. One of the things for various aspects.

26:05

One of the things that I really

26:07

liked about it start ease it was

26:09

to start up applications. of the things I hated

26:11

But one of the things I hated about

26:13

it was text out these text fields. liked the I

26:15

really like the idea of a declarative HomeLab

26:17

configuration, something where I can have a folder

26:19

with all of my files, and it's all

26:21

my configuration for all of my all apps. lab

26:24

apps. And And so kind of kind of was

26:26

the obvious choice. It was something that I was

26:28

interested in. And at this time, I had

26:30

a Nick I had a Knicks server built was

26:32

using using Knicks OS which is

26:34

a feature. a feature that's built into Knicks

26:36

OS, where that the Is that stuff? Exactly,

26:38

the system The system the short of

26:40

it is you can essentially have

26:43

small system configurations for each one

26:45

of these containers. of these And so

26:47

for each so for each Home not only

26:49

could I put, could I put, say like...

26:51

Sonar in in there as a service, but

26:53

I can also have tail scale in this one

26:55

container. And this I container. in so I

26:57

really fell in love with this, was an issue there

27:00

was an issue, it which was that it was

27:02

one giant monolithic config. Not only was it a

27:04

config for a server and all of the things

27:06

you might have configured there, but then every there,

27:08

but then every have its own, its

27:10

own, child configuration. And

27:13

so so managing these containers was

27:15

a separate command, which felt

27:17

not not Nixi. And then having to

27:19

to recompile the closure became

27:21

very painful. listening to an episode of

27:23

listening to a lot was of about

27:25

was talking about containers like, well, why can't

27:27

I was like, well, why run NixOS in a container?

27:29

I'm already running it in these N -Spawn containers, but what

27:31

if I can run it in a Docker container? in a

27:34

Docker And so it And so me down

27:36

this path of building an entire platform

27:38

as a service, which is something I

27:40

called I called Nix server. And And I'm actually

27:42

still running it. It's running most of

27:44

my home lab. what it allows you to

27:46

do is write allows you to do is write configurations Knicks

27:48

you can compose where you three, four. two, three,

27:50

four different services. so for me, this was

27:52

a dream of, oh, I'm gonna build

27:55

this out and release it to the

27:57

community. the But sadly to say, we

27:59

never got there. got there. We actually even met with

28:01

a few of the movers and shakers in

28:03

the Knicks community on this one, you know,

28:05

the debt cis guys, for example, and we

28:07

just ended up finding that the flexibility of

28:09

the Knicks module system just lacked a few

28:11

knobs and dials that you need. You know,

28:14

we were talking earlier before the episode about

28:16

how if you wanted an application, for example,

28:18

that had a side car database container. If

28:20

you want to customize, was it post-gress you

28:22

were talking about? If you wanted to customize

28:24

post-gress, you have to try and fork the

28:26

upstream module, which that's easy, right? No. So

28:29

if anybody's ever tried to replace a module,

28:31

a service module, and Knicks, you'll know that

28:33

it's kind of a little bit of a

28:35

nightmare and it's pretty messy. And that is

28:37

to say, like, Knicks, there's multiple parts to

28:39

Knicks, and specifically the part that I really

28:41

gripe with. is the services side of things.

28:43

There's a lot of inconsistencies upstream. And when

28:46

building out Knicks server, I strive to do

28:48

a number of things that I was trying

28:50

to fix from my experiences on Unraid, which

28:52

was if you're writing a file inside of

28:54

a container, sometimes that user is not the

28:56

user that you're using on the server itself.

28:58

And so how often if you ran into

29:01

the situation where you're trying to read a

29:03

file on your server, low and behold, it

29:05

has a random user ID from whatever docor

29:07

container user that was set up. And so

29:09

I had systems in place to fix this.

29:11

And what I would find is that these

29:13

upstream Knicks OS modules would all implement the

29:16

user slightly different. And replacing these or trying

29:18

to jump in and modify them got really

29:20

messy, really quick. And if anybody's written services

29:22

or looked at these services, you'll know that

29:24

like they're very inconsistent. Now on the flip

29:26

side, Knicks has packages. And their package system

29:28

I actually really love, and I continue to

29:31

use Knicks to this day. I'm just starting

29:33

to shy away from using Knicks service modules.

29:35

It's it's interesting Chris. I'm curious to get

29:37

your take on like how you find the

29:39

module system to actually interface with well I

29:41

guess I guess I'd like to know how

29:43

is it hard to so I guess it

29:45

sounds like if you want to take a

29:48

module and change it, maybe you want to

29:50

swap out the version of Postgress, it sounds

29:52

like it gets hairy quickly. Could you go

29:54

into detail there? What is hairy about forking

29:56

the module? Overwriting specific configurations is definitely possible.

29:58

Like if you're layering your service modules, you're

30:00

able to override a particular configuration. So if

30:03

you want to change what port something's running

30:05

on, you can typically do that. Where it

30:07

gets a little harrier is that there's some

30:09

configurations or there's some safeguards that are in

30:11

place. Like there's these assertions inside of these

30:13

modules. And particularly with Postgress, what I was

30:15

doing was trying to change the Postgress user.

30:18

So I wanted to be able to deploy

30:20

NextCloud inside of a Docker container with Knicks

30:22

OS. And I wanted to make sure that

30:24

the Postgress user was the same world writeable.

30:26

permissions as the systems user. So if you're

30:28

using Chris as your username on your server,

30:30

that all of the postgress data matches up

30:32

with Chris's user ID. Just so I understand.

30:35

This is a darker container that already exists

30:37

or a darker container you're composing with NICS.

30:39

It's a darker container composed with NICS. So

30:41

NICS server would essentially spit out darker containers

30:43

that would boot up NICSOS inside of them.

30:45

Okay. All right. And I think the downside

30:47

is those two modules don't necessarily. they have

30:50

no context of each other whatsoever. The postgress

30:52

module is a standalone thing and the next

30:54

cloud module is a standalone thing. They're not

30:56

designed like a stack of containers might be.

30:58

They're not always the case, but there's no

31:00

logic between the two to have any relationship

31:02

for the users to match up at all.

31:05

So if you end up in a situation

31:07

like here where the database user doesn't match

31:09

the app user, you can end up in

31:11

a situation where the two are just completely...

31:13

doing their own thing. And the goal, just

31:15

again, also I'm following, the goal is to

31:17

just always be able to use the upstream

31:19

module, right? That's kind of like the end

31:22

goal, ideally. Yeah, so you can create overlays

31:24

for packages, and so you can bring in

31:26

like unstable versions of your packages, but if

31:28

you wanted to. replace a

31:30

service module like services .talescale

31:32

.enable equals true. One

31:34

of those modules, it's

31:37

a lot trickier. You

31:39

have to put it

31:41

on a denial list

31:43

essentially and then be

31:45

able to shoehorn in

31:47

your own module on

31:49

top of that. forking

31:52

it becomes a little

31:54

messy. And so really

31:56

what I ran into

31:58

is when I was

32:00

trying to customize these

32:02

modules to run inside

32:04

of a container to

32:06

have proper permissions to

32:09

essentially build out my

32:11

home lab. I ran

32:13

into situations where the

32:15

way that the upstream

32:17

modules were written a

32:19

lot of times there

32:21

would be hard -coded values

32:24

within the module itself.

32:26

So it would require

32:28

me going and posting

32:30

a pull request and

32:32

asking for it to

32:34

be turned into a

32:36

variable. Or

32:39

the way that it was just configured

32:41

and composed, there's so many assumptions in

32:43

there that it was really the problem of

32:45

inconsistency. So I reached the point. As

32:47

you see often with community credit stuff,

32:49

right, is they're kind of scratching their

32:51

own itch. Yeah. And I'd reach the point

32:53

where I'd go to deploy a new

32:55

service and I'd actually get really worried.

32:58

I'm like, okay, what am I going to

33:00

uncover here? And I think we've all

33:02

come down, we've all felt that. Like

33:04

I know that you've done the next,

33:06

I'm sorry, the next cloud module recently. And

33:08

it becomes a whole thing where it's

33:10

like, let me open up this module.

33:12

What options are there? And you have to

33:14

like learn each and every module. And

33:16

I wish there was more consistency there. You

33:19

end up instead of reducing friction for

33:21

trying out new projects, you end up

33:23

kind of increasing it. It also relies on

33:25

what's available in NICS packages or the

33:27

NICS module ecosystem because I know it exists

33:29

now, but when we were looking at

33:31

it in the summer, image wasn't in

33:33

the NICS module system. Sure. I mean, to

33:35

be fair to NICS, NICS is probably

33:38

one of the most expansive. I mean,

33:40

maybe the AUR, but NICS is probably

33:42

the second, if not the most expansive package.

33:44

No doubt. But that kind of ignores

33:46

the other elephant in the room that

33:48

dockers become the kind of standardized packaging format

33:50

for a lot of apps to ship

33:52

their software with. NICS goes off it. that

33:54

Before you go there, though, but I

33:56

agree with you. Before you go there, going

33:59

back to the module stuff. See, I actually I

34:01

actually find what you describe as

34:03

friction. that's how I learn. how I nice having all these

34:05

nice having all these options. I like being

34:07

able to understand all of this and

34:09

learn these capabilities in there and being able

34:11

to just able to this one spot and

34:13

understand everything this is capable of doing.

34:16

I find that to be remarkably remarkably So

34:18

for me, I don't find that to be

34:20

friction at all, but I do agree

34:22

with you on the. at all. But I do

34:24

agree with you thing, it's like that's

34:26

where the industry is going like,

34:28

has gone. the there, is really

34:30

distributing software in containers. containers. Doctor

34:32

ended up becoming the standard packaging

34:34

format for the Linux home server ecosystem. ecosystem.

34:36

a lot of stuff there's a lot of

34:39

stuff going on in with it, of

34:41

of course, with Kubernetes and that

34:43

kind of thing. that kind of thing. But the

34:45

thing that you touched on briefly,

34:47

on Shane, was talking about rebuilding

34:49

the entire closure every time and

34:51

how that can kind of be

34:53

an impediment to to iteration and

34:55

the just the fact that you can't

34:57

just make a one line change

34:59

and have just that one thing change. It

35:01

reevaluates the entire every time. time. Yeah, I

35:04

think that's true. We've all been We've all been

35:06

there up a you mess up a

35:08

line of a configuration and now you're

35:10

staring at a error. And it doesn't really

35:12

and it doesn't really have anything to do

35:14

with where your mental context was, but now you

35:16

have to understand Nix as a language. a language. And

35:18

it takes a certain amount of effort and

35:20

eventually you get used to reading these things used

35:22

you get the muscle memory. and you get but this

35:24

iteration cycle of like, okay, time cycle of like,

35:26

rebuild this. The way that NIC server worked

35:28

itself the way that again, it would build out an

35:30

entire closure and shove it into a Docker

35:32

image. closure and shove it of the things I started

35:34

thinking about one of the things I I jump

35:37

to next Darwin real quick I that to Nick's

35:39

Darwin configuration feels really great when I

35:41

set up a new machine. great when I set

35:43

up a new machine. taking a new machine out

35:45

of the box, the cloning my repo my repo,

35:47

running running and having everything in its place,

35:49

even my in apps. even my MacOS

35:51

apps. However, when I use it day to

35:53

day, that iteration that you're talking you're

35:55

talking about, that building the whole world,

35:57

it becomes an an impediment.

36:00

I'm sitting there and I just want to make

36:02

this one line change. I think I was working

36:04

with you today and we was update your path and

36:06

it was we minutes, your path and it to the right

36:08

place of the configuration, to making the change and then

36:10

building, having to type your password a few times.

36:13

And so there's something there where it's like,

36:15

few the so happens like when you're setting

36:17

up a new system, but then like like

36:19

you're paying every day system, but then like what feel

36:21

worth it. every day See, I feel like this is a

36:23

worth it. So I feel like this is a flipside too. in

36:25

one way, who somebody who doesn't always

36:27

know what he's doing, I appreciate

36:29

that that if it's not it's not right, it

36:31

won't build. I also can I also

36:34

can if it's I know if it's not right,

36:36

it won't build. I can just

36:38

throw something in there and let's just see how

36:40

it goes. And sometimes it works the first

36:42

try and sometimes I have to iterate a few

36:44

things. a few things. And you

36:46

when you combine... Like like the output air

36:48

messages with something like Claude I can get to

36:50

the bottom of it in of it in 30 seconds.

36:52

So I don't find that to be too particularly

36:54

to be too I do agree either I

36:56

know, agree that you know take a while to

36:59

build. take a while but that just sort

37:01

of depends on how much you're managing with Nix

37:03

on how much you're managing I don't think we should

37:05

lose sight of the fact that we should and

37:07

there's fact and you could use Nix like

37:09

you and Darwin, and you could just have it

37:11

there's packages. you could use Knicks that you wouldn't be such

37:13

a problem. It just really depends on the scope. on Darwin

37:15

And it's kind of funny because you know I think you

37:17

can go too far with it. I think I think

37:19

you can have it manage too much stuff, and then

37:21

you end up kind of in the position you're

37:23

at, in the position you're at It seems like to

37:26

me, this is a system, a system system. build This

37:28

is how developers would do it, right? This how would

37:30

development works, is it either builds or it doesn't build. is

37:32

it either builds And so this is how software developers

37:34

think about it. how But it's not really, I think,

37:36

how systems people think about it. not really I

37:38

do enjoy stuff like about you

37:40

remove a package from. about it.

37:42

your configuration that Nix will evaluate the

37:44

entire world. mean, world. you say, it's

37:46

a say, it's a flip side. it's a curse

37:48

and sometimes it's a blessing it's a

37:50

where it will automatically remove the thing

37:52

that you've removed from your configuration. you've

37:55

removed from deploy that thing

37:57

as an entire, thing know,

37:59

artifact. you know, artifact. It's just I wish there

38:01

was kind of two guess I guess

38:03

what I'm asking for is like

38:05

is like two modes like a jackalind or hide which

38:07

is like a pure mode which

38:09

is only deploying what's fully and and

38:11

and the entire closure. The other

38:13

one is a really quick like deaf mode

38:15

mode just I can just you

38:17

know I know there's all that kind that

38:19

kind of stuff like short -term

38:21

stuff But like but like Let's say I'm

38:23

working on a configuration for Starship or for ZLSH

38:25

or for NeoVEM or something or something like

38:27

that and I just you know, I know a

38:30

to hot reload the config can I put

38:32

myself into a temporary into a reload

38:34

mode where it's only looking at

38:36

a very small looking at a of the

38:38

world. portion of the world? I think another

38:40

idea is being able to mutate the

38:42

world the then have it read what that

38:45

mutation was. that I edited the config by

38:47

hand and then you can import that into

38:49

the NixOS config. So it feels a

38:51

little more natural. So it I think where I'm

38:53

at with I right now where do love it for configuration. now

38:55

I do love it for packages and I'm going to continue

38:57

to use it that way. for But actually

38:59

I spent a considerable amount of time over

39:01

the last few months building a separate

39:03

project I I've convinced myself from my home

39:05

lab I think I'm moving away from few

39:07

specifically these separate service modules convinced I'm going back

39:09

to my home lab. one of the simple reasons

39:12

of going back to Docker is it's

39:14

kind of like the Ubuntu thing thing, it

39:16

is the standard. There's always an

39:18

example for it. You can go

39:20

to official official upstream if you're a project

39:22

maintainer like Image like Image, feel a

39:24

responsibility to publish a Docker a file. file.

39:27

so with with it's kind of like this mix

39:29

of this mix of maintain it. going to maintain it.

39:31

And to the author they're going to

39:33

interpret the needs and how they're

39:35

going to implement the service module.

39:37

module. And there just is that lack of lack of

39:39

consistency. like what I really want, and

39:41

and maybe this this future exists,

39:44

I'll switch back, is if we

39:46

saw more package developers or the

39:48

service developers publishing their own are the ones

39:50

So then that were the ones controlling what

39:53

was like. interface was like. be That'd

39:55

be great, came be great if it came from

39:57

them. Like they do with Docker compose files today

39:59

docor today, yeah. yeah. Absolutely. K,

40:01

EEEB.I-O slash self-hosted, .io

40:04

up self newsletter and

40:06

take 5% Go over there, sign up for

40:08

their newsletter and take 5 % off your

40:10

first order. well-built open they specialize in beautiful, well

40:12

really keyboards. also A lot of split keyboards,

40:14

the ones I really you but they also

40:16

have those regular types for you folks that

40:19

don't want the split keyboard. Friday, On an

40:21

Friday, keep an eye out for one

40:23

of their keyboards a a their lot like

40:25

the Microsoft Natural Natural 4000. which was a great

40:27

keyboard back in the day. the day. But

40:29

even more ergonomic. lots of options,

40:31

and it's gonna be at a great price. be

40:33

at a great come fully

40:36

built fully built or... You can get a kit

40:38

and assemble it yourself. it And a lot

40:40

of the parts you're gonna have no

40:42

problem with because everything is because so there's

40:44

no is hot for so that kind of stuff.

40:46

They also have of that with like nine to

40:48

16 keys. I use that here 16 for

40:50

my OBS machine. There's all kinds of

40:53

things. You could do kinds of things. You deck with

40:55

that thing or maybe you wanna have

40:57

like a home theater PC control board or

40:59

shortcuts for home assistant. Those are really,

41:01

really slick. And of who they are, they

41:03

also have lots of DIY parts parts like

41:05

and they support open source. and they

41:07

support open parts they publish 3D

41:10

They're part of the they're part

41:12

of the core team. team. of

41:15

their keyboards use use QMK.

41:17

If if you're a keyboard person,

41:19

you know that's a big deal. a

41:21

go check out go check out Kebio. K-E-E-E-B-I-O -E -B If

41:23

you sign up for the news If you sign up

41:26

for the 5% get there and grab go there and

41:28

grab one of those Black Friday Cyber

41:30

Monday deals and get yourself a keyboard that

41:32

deserves to be touched all the time.

41:34

You're interfacing with your hardware all the time

41:36

the time like me. Why not have it

41:38

be great? have it be Why not have

41:40

it feel great have it why

41:42

not have it be something

41:45

you can repair and fix

41:47

that runs an open firmware? Support the

41:49

show and check them out. Go to k-e-e-e-e-b.io/self-hosted. That's Gebio

41:51

slash self-hosted. So what's the idea behind

41:53

where the idea behind where it headed? Is

41:56

it a directory full of compose files

41:58

that you can kind of ingest? into

42:00

into some tool what like what's going on. on?

42:02

So I So I actually started and I I kind of just

42:04

reset my brain of like, what do I want to

42:06

do in my do I What am I deploying? home lab?

42:08

What am I it came down to like a

42:10

handful of things. I have I have cron

42:12

jobs, I have shell scripts. Sometimes I'm

42:14

a I'm a go so I have binaries

42:17

that I need to run that

42:19

I'll write myself. I'll write A A of

42:21

times, darker images or files. files. And

42:23

what is a reasonable is a reasonable

42:25

way to manage all of this? And like there

42:27

isn't one system that really addresses it. it. And

42:29

And so this idea had this idea of like, well,

42:31

what if I could know, laugh if you want to, but what

42:33

you want to, but what if I could yeet

42:35

a binary and a server and it would run

42:37

as a service? I could just SCP What if

42:39

I could just it that file? and

42:42

it would automatically configure itself as a service.

42:44

And so this is where I started, and that's

42:46

kind of where I started in what I

42:48

built. I built. And where I landed on is this

42:50

project that I'm calling I'm calling yeat for fun for fun,

42:52

but you can yeat. any one of these things.

42:54

You can eat a binary or docor image

42:56

or compose file to a remote system. So

42:58

you can run this from your laptop. And

43:01

what I'm experimenting with up as these up as

43:03

when it's like a script or if it's it's like a script

43:05

a if it's a binary, and I compose if Docker

43:07

an if you're pushing an image or if

43:09

you want to just send a compose file. I

43:11

And then I stand them up inside of

43:13

their own network space. And one And one of

43:16

the goals because I I love I love tail scale I

43:18

wanted to attach because to each one of these

43:20

services. I love, this was something I didn't talk

43:22

about. a few minutes ago, but one of the ago, but one

43:24

of the things was really striving for with for

43:26

with NICS modules and what I did with

43:28

and what I did with I loved the was I loved

43:31

the composability where docor containers are are like,

43:33

well, here's your one thing that you're running.

43:35

if you want And if you want to put

43:37

there, you do it as a you do it as

43:39

a I kind of got And I kind of got

43:41

tired of writing like files files with sidecars.

43:43

I I could just do I could just do

43:45

services scale scale, .enable. dot enable. And so so what

43:47

I built into this this tool, this this yep is

43:49

the ability to not only only put

43:51

your on your land, but you can

43:53

also put them on your put automatically,

43:55

so you don't have automatically. So you don't

43:57

have to I love it. I love

44:00

it! running like on an Ubuntu system? Is

44:02

this a Debbieian or is this on Nick's

44:04

like? It's a Bunto, yeah. Okay, so then

44:06

I use Yeat on top of that? Yeah,

44:09

so you use Yeat like on your laptop,

44:11

whether that's you know Linux, Matt. Yeah. And

44:13

then you point it at an Ubuntu server

44:15

and then you point it at an Ubuntu

44:18

server and it's kind of tail net first.

44:20

And so this was an opinion I took

44:22

which is like I love the tail net

44:24

because when things are there. And so I

44:27

put every service I have is on my

44:29

tailnet. And so when you start up, it

44:31

automatically gets on your tailnet. You interface with

44:33

it remotely from the start, which means that

44:36

you have security built in. It's just using

44:38

your ankles. And you just start throwing files

44:40

up. And underneath, it's just using SSH and

44:43

SCP to transfer the files. And yeah, so

44:45

it's something that I'm curious, like what the

44:47

community thinks about, like, what if we went

44:49

back to Doc or Compose? What if you

44:52

could just create a repository of all your

44:54

Compose files and there was a tool that

44:56

let you spray them onto your servers and

44:58

manage them as services for you? I've kind

45:01

of gotten a little tired about six or

45:03

seven years ago. I wrote what I call

45:05

the doc a composed generator in Ansible. So

45:07

my workflow for the last six or seven

45:10

years has been creates a massive yamel dictionary

45:12

with a bunch of entries that I can

45:14

then specify like per container and then the

45:17

ginger two templateing iterates over that and spits

45:19

me out a doc a composed file. The

45:21

benefit of that is that I can have

45:23

secrets in an encrypted file, as long as

45:26

I don't push them to get hub like

45:28

I did this week. And then I can

45:30

have it, you know, use Ansible to talk

45:32

to multiple service over SSH. So I manage

45:35

all the JP infrastructure that way. Does yit

45:37

do to manage things like secrets and things

45:39

like that? Is it just all plain text

45:41

in the compose wall on your box and

45:44

just gets yetted over? Or like, how does

45:46

that work? Yeah, I thought about this because

45:48

when I implemented this for next server, I

45:51

did it in like a very. security focused

45:53

way. You had secure like encryption to talk

45:55

to your Knicks box and then you'd have

45:57

age encrypted secrets. I kind of went overboard

46:00

with it and then I took a step

46:02

back and I looked at what was happening

46:04

in the darker world and I'm like oh

46:06

these are just all environment variables and you

46:09

go look at get hub actions for how

46:11

infrastructure is deployed and it's a lot of

46:13

environment variables. And it's a lot of environment

46:15

variables. And sure there's vault and there's secure

46:18

ways to be able to be able to

46:20

be able to pull these things. Treat the

46:22

home lab as what it is. Like this

46:25

is your sandbox that you're playing in. It's

46:27

my pseudo production, gosh darn it. And so,

46:29

like, it's in your environment files. You can

46:31

SEP up, like, you know, secret files. Like,

46:34

today, we SEP'd up one of your Ohoth

46:36

secrets. But then the rest of it is

46:38

like, you just edit an environment file. And

46:40

you can type that in there, and it

46:43

just kind of exists in memory. I admit,

46:45

I had to look it up, I'm an

46:47

old man. I'm an old man. I'm an

46:49

old man. I'm an old man. It is

46:52

a verb, it is a verb, it is

46:54

a verb, it. to throw something with force

46:56

and without regard for the thing being thrown.

46:59

Now I get it. Yeat, you're yeating the

47:01

files. You're yeating the docor composes up onto

47:03

the system. Exactly. You know, what's funny is

47:05

Drew, our editor, is the one that educated

47:08

me on what yeat means a few years

47:10

ago. Really? I just had to look it

47:12

up. So I'm curious, like, we're talking about

47:14

yeat as if it's this publicly available. like

47:17

what you know as I onboarded Alex earlier

47:19

today and I say okay here's what I'm

47:21

doing and immediately you hit some some edge

47:23

cases so there's assumptions that we made in

47:26

building this I made it with another developer

47:28

so our plan is right now going into

47:30

the holiday season hopefully we'll have some time

47:33

to put our head down and polish it

47:35

up a bit and really I just want

47:37

to write the documentation so people can invite

47:39

themselves on to it and yeah so let's

47:42

look forward to 2025 let's say January February

47:44

I'll shoot Alex a note and we'll get

47:46

this in people's hands Excellent, well we will

47:48

update and of course when we have a

47:51

link we'll put one in the show notes

47:53

for that episode too. Sounds like a, oh

47:55

I should have looked up another, it sounds

47:57

like an exclamation of excitement. an surprise

48:00

or energy too, or energy

48:02

too, Shane. So, I guess also it's guess

48:04

also it's Australian slang for a

48:06

very strong yes. yes. Is it? Okay,

48:08

it? near to me. to me. Yeah. Well, there

48:10

you go. go. Well, so so the you're actually

48:13

here, Shane, is that you're moving house

48:15

Shane, you wanted to co house your server

48:17

in my basement. And we ran

48:19

a server experiment this morning. And You left

48:21

your house at what time? 7, 8

48:23

a .m., something like that? I unplugged

48:25

the server at 7 .30 in the morning

48:27

what we left at eight, eight. Yeah, so you so

48:29

you brought your server from Connecticut, checked

48:32

it in the belly of the

48:34

plane, just in a massive suitcase, I just,

48:36

I wrapped it in a towel because

48:38

the suitcase itself was almost the

48:40

exact dimension of the 4U case. the for

48:43

you towel take care of it is

48:45

fine. of it is fine. Yeah. With a sign saying

48:47

this is a server this top. on top.

48:49

It weighed 53 weighed the 12 pounds

48:51

it. And the 12 me with it

48:53

overage on that. And so that me with the And

48:55

on that was so that was You know,

48:57

I put the then it was the tension

48:59

Alex said, know I put the note in there so

49:01

said and I was just this afraid TSA would

49:03

open this up I'm like, I I was talking to Alex

49:06

I'm like I don't think can get through. can get

49:08

through I don't know if they know what this

49:10

is. I actually I actually overheard. I was flying out

49:12

of a small airport. I overheard the TSA

49:14

agent agent. tap one and saying, hey, we

49:16

need your help. There's something called a server. something

49:18

called a need you to look to look at it. Wow,

49:20

we added an hour by We added an hour by

49:22

stopping for lunch on the way home from the

49:24

airport. That's fair, yeah. It's a quick, what, 90

49:26

-minute flight from Connecticut down here. down here. We had it up

49:29

and it up and running by, what, three o

49:31

'clock this afternoon? So if we take an hour

49:33

off for lunch, we'll say two o 'clock. two

49:35

o'clock. So what was the theoretical bandwidth

49:37

of your plane flight today? I think

49:39

we we it. I think there's about

49:41

30 terabytes of storage space. And

49:44

so all those drives and with the so with

49:46

all those drives broke 10 the

49:48

a second, constant. 10 you go.

49:50

That's not bad. That's not bad.

49:52

There you think we still achieved

49:54

99 .99 bad. And I think we still achieved 99.99%

49:57

far as you know, no packet loss,

49:59

as you know, no packet loss. There you go. Knock

50:01

on wood. Well Shane, it's a good

50:03

adventure, but thank you for being here

50:05

today and chatting with us. I also

50:08

want to say thank you to Paulus.

50:10

You know, when he was wrapping up

50:12

with us, Alex, he mentioned that folks

50:14

are doing 3D printed cases. for these

50:17

little units. Yeah, it sounds like there's

50:19

some really fun designs because it's a

50:21

fully open source project. 3D printed models

50:23

for the case and stuff like that.

50:25

He mentioned there was a Minion design.

50:28

It was going to be pretty fun.

50:30

What was the other one? Was it

50:32

a poker ball? Yeah, a poker ball.

50:34

I could see like, you know, somebody's

50:37

going to do a Starship enterprise. You

50:39

know it. There's Star Trek geeks. They're

50:41

going to make it. Now, this is

50:43

a special early holiday episode recording, so

50:46

we won't have feedback or boost this

50:48

episode, but we don't have very many

50:50

booths. If you want to send us

50:52

a holiday boost, we will include it

50:55

in the next episode when we get

50:57

together. And of course, you can always

50:59

go to self-hosted dot-show slash contact and

51:01

use the old classic email contact form.

51:04

The old school email form, huh? I

51:06

think it still works. I think they

51:08

might be privatizing email though, so watch

51:10

out. Is that a new doge initiative

51:13

or something? That was a joke, yeah.

51:15

Good lord. Well as always, I want

51:17

to say a big thank you to

51:19

our site reliability engineers over at self-hosted

51:22

dot show slash SRE. You get an

51:24

ad free show as well as a

51:26

special post show. What are we going

51:28

to be talking about today, do you

51:31

think? It's going to be Alex's choice.

51:33

I've got a look at that. Yeah,

51:35

there's a couple ones. We should probably

51:37

have mentioned drones over New Jersey. Good

51:40

for you. Nice. I know. Look at

51:42

me. Don't forget to check out meetup.com/Jupiter

51:44

broadcasting for any upcoming last minute meetups

51:46

we might have. Oh, you know, I'll

51:49

mention. We're putting together some meetups for

51:51

LUP 600 and we're trying out a

51:53

new self-hosted. meetup alternative at colony.com.

51:55

And if it works

51:57

for LEP works I

52:00

think that's what

52:02

we'll use in the

52:04

future. that's what we'll use in the

52:06

future and I don't something and it's

52:08

kind of nice because it's kind the

52:11

listeners can create their own events,

52:13

and then a little bit after the

52:15

event wraps up, it self bit it

52:17

just cleans up after itself. up it

52:19

So we're testing and it just.com and we're

52:21

soliciting testing colony events.com and we're is

52:23

gonna be like February for LUP

52:25

or something is going to be like Can

52:27

you believe that? No,

52:30

and you code and just just hit 600

52:32

this week too. too. What's 600? Is Is

52:34

that like years? There five must be more

52:36

than that. be more it's more than

52:38

that. No, it's more than than my daughter daughter Bella.

52:40

a half years. you kidding? years,

52:42

are it's crazy, huh? Yeah, it's crazy,

52:44

huh? All right, so you can can .kateyz .me

52:47

to find me on the Internet.

52:49

Where can folks go to find

52:51

you, Shane? you, not really on the

52:53

not No, github.com internet. We'll put a put

52:55

a link to that in the

52:57

show right, you could you can find me

53:00

on Weapon you want, want, Chris, L-A-S, you

53:02

can try the Nostra the Noster thing,.com. of

53:04

course, all the course, shows the great shows

53:06

Jupiter.com. Thank you very much for

53:08

joining us. I appreciate you coming

53:10

on, Shane. you And that was self

53:13

Shane. And that was self-hosted dot show slash 139,

53:15

139. You

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features