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
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More