Debian 13 Bare-Metal Server Installation Guide
Debian is a strong foundation for a physical server because it provides a stable Linux environment without requiring unnecessary desktop software or services.
A bare-metal installation means Debian runs directly on the physical hardware rather than inside a virtual machine. The operating system has direct access to the server's processor, memory, storage, and network interfaces.
For a server that will primarily be administered remotely, a minimal installation is usually preferable. It reduces the number of installed packages, lowers resource usage, and limits the number of unnecessary services running on the system.
This guide installs Debian 13 as a headless server with:
- A minimal Debian base system
- Standard system utilities
- OpenSSH
- Basic networking
- Current system updates
- UFW firewall protection
Once complete, the server can be managed remotely without a monitor or keyboard.
Requirements
Before beginning, you will need:
- A physical server or computer compatible with Debian 13
- A USB flash drive
- The Debian 13 amd64 netinst ISO
- A tool for writing the ISO to USB
- A wired network connection
- Internet access
- Access to the server's BIOS or UEFI firmware
- Another computer for testing SSH access
For most modern Intel and AMD servers, use the amd64 Debian image.
The Debian netinst image is well suited to servers because it contains the components necessary to start the installation while downloading additional packages from Debian repositories as needed.
Before You Begin
Installing Debian using the entire system disk will erase the existing contents of that disk.
Back up any data you need before proceeding.
If the server contains multiple drives, identify the drive that will contain Debian before beginning the installation. Pay particular attention to device names and disk capacities when the installer asks where Debian should be installed.
This guide assumes:
- Debian will be the primary operating system.
- The server will operate without a desktop environment.
- Administration will primarily occur through SSH.
- The server has a wired Ethernet connection.
- The entire primary system disk can be used for Debian.
Additional storage drives can be configured after the operating system installation is complete.
Why a Minimal Debian Installation Works Well for Servers
A server generally does not need the graphical desktop environment found on a workstation.
Installing only the Debian base system, standard utilities, and SSH provides the components necessary to operate the machine while avoiding packages that are unlikely to be used.
This has several advantages:
- Lower memory consumption
- Less disk space used by the operating system
- Fewer background services
- Smaller software attack surface
- Fewer packages requiring updates
- Simpler remote administration
Additional software can then be installed only when the server actually needs it.
Step 1: Download Debian 13
Download the Debian 13 amd64 netinst ISO from the official Debian website.
The filename will resemble:
debian-13.x.x-amd64-netinst.iso
The exact maintenance version may change as Debian 13 receives updates.
The amd64 architecture supports standard 64-bit Intel and AMD processors and is appropriate for most modern servers.
Step 2: Create the Installation USB
Write the Debian ISO to a USB flash drive using an imaging utility such as:
Writing an ISO image is different from copying the .iso file onto the USB drive. The imaging utility creates the bootable structure required for the computer's firmware to start the Debian installer.
After creating the USB drive, safely eject it and connect it to the server.
Step 3: Boot the Debian Installer
Power on the server and enter its BIOS or UEFI boot menu.
The exact key varies by manufacturer but commonly includes:
F2
F8
F10
F11
F12
Delete
Select the USB drive as the boot device.
When the Debian installer appears, select:
Graphical install
The standard text-based Install option is also suitable. Both methods install the same operating system.
The graphical installer is generally easier to navigate when performing an installation directly from a monitor and keyboard.
Step 4: Configure Language and Location
The installer first asks for basic regional settings.
Select your:
- Language
- Location
- Locale
- Keyboard layout
These settings determine system defaults such as character encoding, keyboard behavior, and regional formatting.
The system timezone will also be configured during installation based on the selected location.
Step 5: Configure Networking
Debian will detect the server's network interfaces and attempt to configure networking automatically using DHCP.
For a server with multiple network interfaces, select the interface that should provide the primary network connection.
The interface may have a name similar to:
enp4s0
or:
eno1
Modern Debian installations normally use predictable network interface names instead of older names such as eth0.
If DHCP succeeds, the installer obtains an IP address, default gateway, and DNS configuration automatically.
Configure the Hostname
The installer will ask for a hostname.
For example:
server
The hostname identifies the machine on the network and within the operating system.
Choose a short, descriptive hostname that does not need to change as services are added later.
Configure the Domain Name
For a typical home server, the domain field can be left blank.
If you operate a local DNS domain, you can enter it instead.
For example:
home.lan
This is optional and can also be configured later.
Step 6: Create the Administrator Account
Debian may ask you to configure the root account.
For a server administered through sudo, leave the root password blank.
When no root password is configured, Debian disables direct password-based root login and allows the first regular user to perform administrative tasks through sudo.
Next, create your normal administrator account.
For example:
Full name: Administrator
Username: administrator
Choose a strong password for this account.
After installation, administrative commands will be run using:
sudo command
For example:
sudo apt update
sudo executes the specified command with elevated privileges while allowing normal day-to-day work to remain under an unprivileged account.
Step 7: Partition the System Disk
The installer will ask how Debian should use the available storage.
For a straightforward dedicated server, select:
Guided - use entire disk
Select the disk intended for Debian.
Carefully verify the drive before continuing. The selected disk will be repartitioned and its existing data can be destroyed.
For the partition layout, a simple server can use:
All files in one partition
This places most of the filesystem under a single root partition and avoids unnecessary partition complexity.
Review the proposed layout and select:
Finish partitioning and write changes to disk
When asked whether to write the changes, select:
Yes
The installer will create the required filesystems and begin installing the Debian base system.
Step 8: Configure the Package Manager
After installing the base system, Debian configures its package repositories.
Select an appropriate country and Debian mirror.
The default Debian mirror is suitable for most installations.
If the installer asks for an HTTP proxy and your network does not require one, leave the field blank.
The package manager uses these repositories to download software and future system updates.
Step 9: Select Server Software
The installer eventually displays the software selection screen.
For a minimal headless server, disable the graphical desktop environments and enable only:
[ ] Debian desktop environment
[ ] GNOME
[ ] Xfce
[ ] KDE Plasma
[ ] Cinnamon
[ ] MATE
[ ] LXDE
[ ] LXQt
[*] SSH server
[*] standard system utilities
The two important selections are:
SSH server
standard system utilities
The SSH server allows remote administration after installation.
Standard system utilities provide common tools expected on a normal Debian system.
Unless the server specifically requires a graphical desktop, leave all desktop environments disabled.
Step 10: Install the Bootloader
Debian will configure the system's bootloader near the end of installation.
When prompted to install GRUB, select:
Yes
Select the primary system disk when asked for the installation location.
On modern UEFI systems, Debian normally detects and configures the EFI System Partition automatically.
GRUB is responsible for loading Debian when the server starts.
Step 11: Complete the Installation
When the installer reports that installation is complete, remove the USB installation drive.
Select:
Continue
The server will reboot.
It should now boot from the system disk and display a Debian login prompt.
Log in using the administrator account created during installation.
Step 12: Update Debian
The first task after installation should be updating the operating system.
Refresh Debian's package information:
sudo apt update
apt update downloads the current package indexes from the configured Debian repositories. It does not install updates by itself.
Next, install available updates:
sudo apt full-upgrade -y
full-upgrade installs available package updates and allows APT to resolve dependency changes when necessary.
The -y option automatically confirms the package manager's installation prompt.
If the upgrade installs a new kernel or significant system components, reboot:
sudo reboot
After the reboot, log back into the server.
Step 13: Verify the Installation
Check the installed Debian version:
cat /etc/debian_version
The output should indicate Debian 13.
Check the running kernel:
uname -r
uname -r displays the version of the Linux kernel currently running.
Check the hostname and operating system information:
hostnamectl
The output should identify the configured hostname and Debian operating system.
Step 14: Verify Networking
Display the server's network interfaces and assigned IP addresses:
ip addr
Locate the primary Ethernet interface and verify that it has an address for your network.
Next, inspect the routing table:
ip route
A typical system will have a default route resembling:
default via 10.0.0.1 dev enp4s0
The exact gateway and interface will depend on your network.
Test connectivity using an IP address:
ping -c 4 1.1.1.1
This tests whether the server can reach the Internet without depending on DNS.
Then test DNS resolution:
ping -c 4 debian.org
If both tests succeed, basic networking and DNS resolution are functioning.
Step 15: Give the Server a Predictable IP Address
Servers should have predictable network addresses so clients and other services can reliably locate them.
There are two common approaches:
- Configure a DHCP reservation on the router.
- Configure a static IP address directly in Debian.
For many home networks, a DHCP reservation is the simpler approach.
The router continues assigning network settings through DHCP but always provides the same address to the server's network interface.
You can find the server's current address with:
ip addr
Record the interface's MAC address if your router requires it when creating the DHCP reservation.
A static configuration inside Debian is useful when the server must remain independent of the router's DHCP configuration, but it requires additional network configuration and careful management of addresses, gateways, and DNS servers.
Step 16: Verify Remote SSH Access
Before disconnecting the server's monitor and keyboard, verify that remote administration works.
From another Linux, macOS, or Windows system with an SSH client, connect using:
ssh administrator@SERVER_IP
Replace SERVER_IP with the actual address.
For example:
ssh [email protected]
The first connection will display the server's SSH host fingerprint.
Verify and accept the fingerprint when prompted.
After entering the administrator password, you should receive a shell prompt on the Debian server.
Once SSH works reliably, the server can normally be operated without a directly attached monitor or keyboard.
Step 17: Install Basic Administration Tools
A minimal Debian installation intentionally contains a relatively small package set.
Install useful administration utilities as needed:
sudo apt install -y \
curl \
git \
jq \
ripgrep \
ca-certificatesThese packages provide common tools for downloading files, working with Git repositories, editing configuration files, monitoring processes, inspecting directory structures, handling archives, and validating TLS certificates.
Not every server needs every utility. Keeping software installation intentional helps maintain a smaller and easier-to-manage system.
Step 18: Configure the Firewall
Install UFW:
sudo apt install -y ufw
UFW provides a simpler interface for managing the Linux firewall.
Before enabling the firewall, allow SSH:
sudo ufw allow OpenSSH
This is important on a remotely administered server. Enabling a firewall without first permitting SSH could prevent subsequent remote connections.
Now enable the firewall:
sudo ufw enable
Verify its status:
sudo ufw status verbose
The output should show that UFW is active and that the OpenSSH rule is allowed.
Additional firewall rules can be added later as services are installed.
Verification
The base server installation is complete when the following checks succeed.
Verify the operating system:
cat /etc/debian_version
Verify networking:
ip addr
ip route
Verify Internet and DNS connectivity:
ping -c 4 1.1.1.1
ping -c 4 debian.org
Verify the firewall:
sudo ufw status verbose
Finally, verify SSH from another computer:
ssh administrator@SERVER_IP
Use this checklist before moving on to application installation:
- Debian 13 boots without the installation USB
- System packages are fully updated
- Correct hostname is configured
- Server has a predictable IP address
- Internet connectivity works
- DNS resolution works
- SSH works from another computer
- Administrator account can use
sudo - UFW is enabled
- SSH is allowed through the firewall
- No unnecessary desktop environment is installed
Troubleshooting
The Server Does Not Boot After Installation
Verify that the installation USB has been removed and that the system disk is first in the BIOS or UEFI boot order.
If the disk is detected but Debian does not start, GRUB or the EFI boot entry may not have been installed correctly.
Boot the Debian installer again and use its recovery options to inspect the installation.
The Server Does Not Receive an IP Address
Check the physical Ethernet connection and verify the interface:
ip addr
If the interface exists but has no address, verify that DHCP is available on the network.
Also check the physical link state:
ip link
The primary interface should normally report UP when properly configured.
Internet Access Works but Domain Names Do Not
If this succeeds:
ping -c 4 1.1.1.1
but this fails:
ping -c 4 debian.org
the problem is likely DNS rather than general network connectivity.
Inspect the resolver configuration:
cat /etc/resolv.conf
Verify that valid DNS servers are configured.
SSH Connections Fail
First verify that the SSH service is running:
sudo systemctl status ssh
Then verify the firewall:
sudo ufw status
The firewall should contain a rule allowing OpenSSH.
Also confirm that you are connecting to the correct server address:
ip addr
sudo Does Not Work
Verify that you are using the regular administrator account created during installation rather than another account.
Check its group membership:
groups
The account should normally belong to the sudo group when Debian was installed without configuring a separate root password.
Common Questions
Should I Install a Desktop Environment?
Usually not.
A server primarily administered through SSH does not need GNOME, KDE, or another graphical desktop. Avoiding the desktop environment reduces resource consumption and the number of packages that must be maintained.
Should I Use a Static IP or DHCP Reservation?
Either approach works.
A DHCP reservation is convenient for most home labs because network settings remain centrally managed by the router.
A manually configured static IP can be preferable in environments where the server must not depend on DHCP.
The important requirement is that the server's address remains predictable.
Should I Enable SSH During Installation?
Yes, if the system will operate as a headless server.
Installing OpenSSH during Debian setup makes it possible to begin remote administration immediately after the first boot.
Do I Need UFW?
Debian can operate without UFW, and Linux provides lower-level firewall mechanisms directly.
UFW is useful because it provides a straightforward way to manage firewall policy without manually maintaining more complex rules.
For a general-purpose home server, it provides a convenient starting point that can be expanded as services are added.
Final Thoughts
A minimal Debian 13 installation provides a clean foundation for a physical Linux server.
Installing only the base operating system, SSH, and standard utilities keeps the initial environment simple. Networking, security, and application services can then be added deliberately rather than starting with a large collection of unnecessary software.
Once the system is updated, reachable through SSH, assigned a predictable network address, and protected by a basic firewall, it is ready for the next layer of server configuration.
That might include Docker, reverse proxies, databases, file sharing, source control, web applications, or game servers depending on the server's intended role.
About This Guide
This guide is intended for Linux administrators, self-hosters, developers, and home lab users who want a straightforward Debian 13 installation on physical hardware. It focuses on creating a minimal headless server that can serve as a clean foundation for additional infrastructure and self-hosted services.