Introduction

Archived
I no longer maintain this book. I have moved my own workstations to NixOS, where the entire system is declared in one reproducible Git repo rather than assembled by hand. The Fedora Atomic notes here are left up for reference, but they are no longer updated. For my current setup, read the NixOS Workstation book instead.

A Linux Workstation is a single user computer that you use as your primary interface for computing, especially for “work” purposes. At a bare minimum, a workstation includes a keyboard and a display (although a workstation could also be a VPS that you SSH into, this book will focus on physical workstations).

Historically, there has been a hardware distinction between a personal computer (PC) and a Unix workstation, but ever since the introduction of Linux, the difference in hardware doesn’t really matter anymore, and any computing device can become a workstation. The only important distinction for a workstation is the role that it serves, and how you configure and use it on a daily basis.

The role of a workstation is very different than that of a server. A workstation’s only purpose is to serve you, during the moments that you are interfacing with its physical keyboard/display. A workstation is usually connected to a network, but only as a client (terminal, web browser, etc.), not as a server. (Of course, you may bend this rule if you like, to make your computer a server-workstation, or “Sworkstation”, but it is cleaner, and more secure, to use separate [virtual] machines for all servers, even for development purposes.)

This book will describe my preferred method for setting up a new computer, for use as a personal Linux workstation. It will also show you how to bend the rules a bit, and create a few virtual machines (VM) for running local development servers (Docker), or even public, production-lite, and/or LAN party services.

// settings
theme:
fx: