I use OpenBSD for everything. It runs on my server, my desktop, and
my laptop. But it isn't just that; I try to use OpenBSD base software
for everything I possibly can, and will often refrain from using a
technology if OpenBSD doesn't provide it in the base system. I don't
install many 3rd-party packages at all. My server has exactly one
3rd-party package, which is rsync(1)
, because OpenBSD's implementation
of rsync
, called openrsync(1)
, is quite lacking at this time. My
desktop and laptop only have Firefox and LibreOffice. Everything
else, I do with tools built in to OpenBSD.
For my calendar, I use calendar(1)
. It is a file-based calendar
system that reads files of events from various sources, and displays
them on the console. It took a little while to get used to how this
calendar worked, but once I figured it out, it totally replaced all
the other calendar software I tried. It doesn't seem that complicated,
but it does everything I need it to, and nothing I don't. For
reminders and to-do lists, I just use less(1)
with a text file
called todo
in my home directory. I have a shell alias to it that
looks like this:
alias todo="less ~/todo"
The format of my todo
file is very simple. It just has Markdown-style
checkboxes that I can edit by launching vi(1)
directly from less(1)
.
For version control, I use cvs(1)
. CVS doesn't do nearly as much
as Git, but it does everything I want. I can sync my documents
between my desktop and my laptop with it, and I can work on personal
programming projects.
On the server side, I make use of smtpd(8)
and mail(1)
for email,
and unbound(8)
, nsd(8)
, dhcpd(8)
, tftpd(8)
, vmd(8)
, and more for
networking. I also run httpd(8)
for my website, and cron(8)
for
mirroring content. To download files, I use ftp(1)
, which supports
HTTP(S).
So the question is: why? Why would I use OpenBSD, of all operating systems, and why do I try to force myself into using only software built in to it?
I switched from Windows to Linux around the time Windows 10 came out. I remember trying the Windows 10 developer previews, and being amazed...at how much slower my laptop was compared to Windows 7. So I tried Ubuntu. And that began my journey into Linux. A few years later, after hopping between more distributions than I can count, and after running Arch in production because Ubuntu Server didn't have new enough packages for Nextcloud, I discovered OpenBSD. OpenBSD looked like a promising server operating system. I saw that it had a firewall that was easy to configure (I never was able to figure out Linux's iptables firewall in any meaningful or useful way) and shipped with a number of useful built-in daemons. I also saw that the documentation was very good. I saw that it was lightweight and simple, and focused on security and correctness above all else.
So I made the leap on my server from Arch Linux, which I had to
update twice a day, to OpenBSD, which updates every 6 months. I
poked around with OpenBSD 6.8 on an old laptop, and quickly decided
that it would work well on my server. But I knew that OpenBSD 6.9
was just around the corner, so I waited until that came out. OpenBSD
6.9 was the first release of OpenBSD that I really used. I ran it
on my server, which I turned into my network's router as well. I
instantly fell in love with OpenBSD because of how cohesive it is.
OpenBSD feels like a complete system, because it is. Linux has
always felt hacked together, because the kernel and userspace are
developed totally independently. But OpenBSD is distributed as a
whole operating system, and it really shows. Furthermore, it was
free from Systemd, which was really starting to bother me about
Arch, because trying to figure out trivial things like WiFi and DNS
were actually painful with Systemd. But on OpenBSD, it wasn't. It
is easy to pop open /etc/resolv.conf
in an editor, and it is easy
to use ifconfig(8)
to connect to WiFi. I also noticed that the
man(1)
pages were just excellent—far superior to anything I'd
ever seen on Linux. On Linux, I was always used to looking things
up online, because the built-in documentation was never helpful.
But now, on OpenBSD, I almost solely consult the man(1)
pages built
right into the operating system, because they are extremely helpful.
So that's a bit of the why behind my decision to use OpenBSD in the
first place. But now that I'm using it, I'm trying to use it in its
purest form: without any additional packages or software. My rationale
for this is a little different, but it does stem from the fact that
OpenBSD is a complete system. It is a simple system, but a complete
one. I really enjoy the simplicity, and it has inspired me to
dramatically simplify my digital life. Somewhere between my Ubuntu
and Arch Linux days, I decided to delete all my online accounts and
self-host my own servers, but now, in my OpenBSD days, I've taken
it a step further and tried to self host only the bare minimum. I
used to run a Nextcloud server, and a Webmail server, and a Matrix
homeserver. Now, I use SSH for accessing my files, OpenBSD's mail(1)
client for email, and my SMTP server for chatting with my girlfriend
via a handy app called DeltaChat.
I want my life to be simple, and without distractions, because the world is full of distractions. And, as much as I love computers, they are a distraction too. But by using OpenBSD, and only running essential base software, I still get to tinker with them in a way that isn't as much of a distraction. I can still come up with creative solutions for problems, and I can still run and maintain my own home server, but those things no longer take away from the rest of my life. Well, I suppose it depends on who you ask. But the point is, I'm trying to be conscious of the role computers have in my life. The thing is, it is impossible to trust tech companies these days. They spy on us constantly, so to me, running my own servers is the only solution. I know it isn't for everyone, but it works for me, and I enjoy doing it.
I think there's also a lot of satisfaction to be found in using computers the way they would have been used in the 90s. Computers are complex, and I feel as though they've only gotten more complex so that people can get dummer. They do more now than they ever have so that users have to do less and less. I don't think this is a good way to go, because we don't have to think anymore. Computers are meant to be a tool to aid us in our persuits, not a replacement for them altogether. So I don't mind that OpenBSD is a niche operating system that requires a high level of technical knowledge to get up and running. That's what makes computers so fun. Having everything spoon-fed to you is not fun at all. At least not to me. I like to problem solve, and OpenBSD gives me plenty of problems to solve. I am very much of the mindset that in order to make the most of something, you have to be fully aware of how it works. Or at least, mostly aware of how it works. I think the same is true of cars, and other things we depend on, because if they break, you want to be able to know how to fix them.
So, to summarize: I use OpenBSD for everything, and I use only the base system whenever I can, because OpenBSD is simple, yet powerful. It forces me to learn about how computers work, and enables me to tinker with them and do a lot of really neat things. It also encourages me to simplify my digital life. My mindset lately has been that if OpenBSD can't do it, maybe it doesn't need to be done. And that has gone a long way toward decreasing my stress with other areas of life, such as school.
OpenBSD is an awesome operating system, and I'm committed to it. My whole digital life is now managed by it, and I'm sincerely convinced it will be the last operating system I ever use. I'm done distro-hopping, and have finally settled on something that is rock-solid and stable. I've truly gone all in with it, and I'm soon hoping to find the time to contribute my own time and money to the project.