---
title: Installing Debian
lastUpdated: 2023-09-25
slug: ispmail-bookworm/install-debian-bookworm-on-your-server
sidebar:
    order: 60
---

import { Aside } from "@astrojs/starlight/components";

## Option 1: Get a server with Debian Bookworm pre-installed

If you rent a virtual server at your favorite hosting company it often comes with Debian pre-installed. If you have a chance to change the partitioning then consider the schema shown below. Otherwise feel free to skip this page.

## Option 2: Get a server with the older Debian Bullseye

Your hosting company does not offer Debian Bookworm yet but just Debian Bullseye? No big deal. Just change your /etc/apt/sources.list file to:

```
deb http://deb.debian.org/debian bookworm main
deb http://deb.debian.org/debian bookworm-updates main
deb http://security.debian.org/debian-security bookworm-security main
```

Run “apt update” and “apt dist-upgrade” and you are ready.

## Option 3: Install Debian yourself

You have a blank computer or virtual machine? Then simply install Debian Bookworm yourself. Get a boot medium from the [Debian website](https://www.debian.org/distrib/netinst). The smaller _network installer_ is sufficient – it will download all required packages directly from the internet. Make sure you choose ‘English’ as the installation language even if it is not your native language. If you have trouble with the server you will more likely find help when searching for English error messages on the internet.

Most of the installation is pretty straightforward. You don’t need me holding your hand. I strongly recommend that you use the _logical volume manager_ (LVM) for your partitions to stay flexible if your server grows. See my [article on LVM](https://workaround.org/understanding-lvm/) if you want some help understanding its concept.

## Partitioning

The only part that takes some patience is when it comes to partitioning your disk. Throughout this tutorial you will store your users’ emails in the /var/vmail partition. The MariaDB database will live in /var/lib/mysql and is usually pretty small even for a large number of email accounts – so that usually does not require a separate partition. Log files go to /var/log.

So my recommendation for partitioning:

- Boot partition, 300 MB, first partition of your disk (e.g. /dev/sda1), mounted at “/boot”
- All the rest of the disk goes into one large LVM _physical volume_, second partition of your disk (e.g. /dev/sda2)
    - LVM _volume group_ consisting of that one _physical volume_
        - LVM _logical volume_ for “/”, 20 GB, formatted as ext4
        - LVM _logical volume_ for “/tmp”, 5 GB, formatted as ext4
        - LVM logical volume for “/var/vmail”, formatted as ext4, as much space for mailboxes as you want to start with

LVM is very flexible. You can enlarge your root partition or “/var/vmail”. You can even add another physical disk and join it into the _volume group_ to get more space. So just start small.

The Debian installer helps you set up LVM. In a nutshell these are the major steps:

- Partitioning method: “Manual”
- Select your disk
- Create a new partition table if you get asked
- Create a new partition of “max” size as a _Primary_ partition
- Set the partition to “Use as: physical volume for LVM”
- Choose “Configure the Logical Volume Manager”
- Create a volume group (call it “vg0” if you like)
- Select the partition you created before (e.g. /dev/sda1)
- Create the logical volumes for “root”, “tmp” and “mail”.
- Edit each LV. Set its type to “ext4”. Set the mount points to
    - / for root
    - /tmp for tmp
    - /var/vmail for mail
- Do not add swap space – your server will need very little RAM. You will get asked if you are serious. Yes, you are.

Write the changes to disk and continue with the rest of the installation. Just make sure that you install the “SSH server” component so that you can login from remote after the installation.
