The ISO dilemma
You downloaded two ISO files from the Fedora website. One says Workstation, the other says Server. You need to set up a web server for your homelab, but you also want to use the machine as a desktop when you are at the office. You installed the Server edition because it sounded more powerful, and now you are staring at a black screen with a blinking cursor, wondering where your desktop went. Or you installed Workstation on a headless virtual machine and are now fighting with GNOME trying to run a database service in the background.
The confusion is common. The ISO names describe the default experience, not the underlying capability. Both editions run the exact same kernel and share the same package repository. The difference is what gets installed first and how the system is tuned for your workflow. Pick the ISO that matches your first boot screen. You can always add the other half later.
What is actually happening
Fedora Workstation and Fedora Server are not different operating systems. They are different installation profiles applied to the same base. Think of a car manufacturer. The chassis, engine, and transmission are identical. The Workstation profile adds leather seats, a navigation system, and a sound system. The Server profile strips out the seats, removes the radio, and installs a heavy-duty hitch and a reinforced suspension for hauling cargo.
You can swap the seats in or out later, but the manufacturer ships them pre-configured so you do not have to bolt on the stereo yourself or unbolt the hitch before driving to work. Under the hood, both use the same dnf package manager, the same systemd init system, and the same kernel. The fedora-release package determines which profile is active, and that package influences default configurations like firewall rules, service targets, and included package groups.
Read the release file. The variant ID tells you exactly what profile is active.
How to check your edition
Verify which edition you are running before making changes. The system stores this information in the release files and the package database.
# Check the variant string in os-release. This is the standard way to query edition metadata.
grep VARIANT_ID /etc/os-release
# Output: VARIANT_ID="workstation" or VARIANT_ID="server"
# Query the specific release package. This confirms the exact package providing the profile.
rpm -q fedora-release
# Output: fedora-release-workstation-41-1.noarch or fedora-release-server-41-1.noarch
Switching profiles after installation
You can change the profile after installation, but the cleanest approach is to install or remove package groups. Fedora groups collections of related packages. Switching from Server to Workstation usually means installing the workstation-product group. Switching from Workstation to Server means removing the desktop group and installing server tools.
# Install the full workstation group. This pulls in GNOME, X11/Wayland, and standard desktop apps.
sudo dnf groupinstall "Workstation Product"
# Enable the graphical target so the system boots to a login screen by default.
sudo systemctl set-default graphical.target
Use dnf groupinstall for large sets of related software. Individual dnf install commands work, but groups ensure you get the curated set of dependencies Fedora maintainers tested together. Run dnf upgrade --refresh after installing a new group to ensure all metadata is fresh and you get the latest package versions immediately.
Run systemctl set-default before you reboot. A wrong target leaves you at a login screen you did not expect.
Default behaviors and configurations
The profiles dictate more than just installed packages. They set the baseline for how the system behaves.
Boot target. Fedora Workstation defaults to graphical.target, which starts the display manager and loads the desktop environment. Fedora Server defaults to multi-user.target, which boots to a command-line login prompt. This is the most common source of confusion. If you installed Server and need a desktop, the system is not broken. You just need to switch the target.
Firewall policy. Fedora Server ships with firewalld configured to reject all incoming traffic by default. Fedora Workstation allows incoming traffic for common desktop services like SSH and mDNS. If you deploy a web server on Workstation, you still need to open the port. If you deploy a web server on Server, you also need to open the port. The difference is the baseline policy.
# Check the active zones. Server usually has only 'public' with strict rules.
firewall-cmd --list-all
# Open port 80 for HTTP. This applies to the runtime configuration.
sudo firewall-cmd --add-service=http
# Make the change persistent across reboots.
sudo firewall-cmd --runtime-to-permanent
Run firewall-cmd --reload after editing zone files manually. The runtime configuration and persistent configuration can diverge if you skip this step.
Cockpit. Fedora Server includes Cockpit, a web-based administration panel, installed and enabled by default. You can access it at https://your-server:9090. Fedora Workstation does not install Cockpit by default, but you can add it with sudo dnf install cockpit. Cockpit is useful for managing services, viewing logs, and performing updates from a browser. It works equally well on both editions.
Audio and multimedia. Fedora Workstation includes pipewire, hardware acceleration drivers, and a curated set of codecs for video playback. Fedora Server does not include the audio stack or multimedia codecs. If you need to transcode video on a Server edition, you must install the codecs manually.
Automatic updates. Fedora Workstation prompts you for updates via the GNOME Software application. Fedora Server does not have a GUI, so it relies on command-line tools. You can configure dnf-automatic to apply security updates automatically on a Server installation.
# Install the automatic update tool.
sudo dnf install dnf-automatic
# Enable the timer to run updates on a schedule.
sudo systemctl enable --now dnf-automatic.timer
Check the target. If multi-user.target is active, your desktop will not start automatically.
Common pitfalls and error symptoms
The most frequent errors stem from mismatched expectations between the profile and the user's goal.
Black screen after Server install. If you boot a Server installation and see a login prompt, this is correct behavior. The system is waiting for credentials. Type your username and password. If you expected a desktop, run sudo systemctl set-default graphical.target and reboot.
# If you see this during boot, the system is waiting for user input at the console.
# This is normal for Server. It is not an error.
login:
SSH blocked on Workstation. New Workstation installations sometimes block SSH if the user did not enable it during setup. The firewall allows SSH by default, but the sshd service might not be enabled.
# Check if sshd is active.
systemctl status sshd
# Enable and start the service if it is inactive.
sudo systemctl enable --now sshd
Modules and version pinning. Both editions support DNF modules, which allow you to pin package versions to specific streams. This is useful for services like PostgreSQL or Node.js where you need a specific major version. The module system works identically on both editions.
# List available modules. This shows version streams for packages like Node.js or PostgreSQL.
dnf module list
# Enable a specific stream. This pins the version for the entire group.
sudo dnf module enable postgresql:16
Editing system files. Configuration files in /etc/ are user-modified. Files in /usr/lib/ ship with the package. Edit /etc/. Never edit /usr/lib/. Package updates will overwrite changes in /usr/lib/, and your configuration will vanish.
Check the firewall rules before you blame the network. The port is probably closed.
Which edition to choose
Use Fedora Workstation when you need a graphical desktop, hardware acceleration for video playback, and a curated set of productivity applications. Use Fedora Server when you are provisioning a virtual machine, a container host, or a headless box that runs services and you want to minimize the attack surface by removing unused packages. Use Fedora Silverblue when you require an immutable root filesystem and atomic updates for a stable development environment. Use Fedora CoreOS when you are running Kubernetes clusters or container workloads and want the OS to update automatically without manual intervention. Stay on Workstation if you are a developer who needs to compile kernel modules or install low-level drivers that require mutable system directories.
Match the ISO to the hardware. A laptop needs Workstation. A rack server needs Server.