# Part 1: Creating the VM and Installing Debian 13

[![Proxmox VM Erstellung](https://wiki.zn80.net/uploads/images/gallery/2026-02/scaled-1680-/image.jpg)](https://wiki.zn80.net/uploads/images/gallery/2026-02/scaled-1680-/image.jpg)

## Objective of This Section

In this first part, we create a virtual machine in Proxmox and install a minimal Debian 13 system on it.

At the end of this section:

- Debian is running successfully inside the VM
- the system is accessible via console
- we are ready for network, storage, and Nextcloud setup

---

## Prerequisites

### Hardware Recommendations

- **RAM:** at least 4 GB (recommended: 8 GB)
- **System Disk:** at least 32 GB (SSD/NVMe recommended)
- **Data Disk:** separate HDD or SSD for Nextcloud data
- **CPU:** 2–4 cores

### VM Parameters (Example)

- **VM ID:** 120
- **vCPUs:** 4
- **RAM:** 4 GB
- **Root Disk:** 32 GB
- **Data Disk:** 200 GB (later 250 GB)
- **Mount Target (later):**  
    `/srv/cloud.zn80.net/data`

> Note:  
> The data disk is **not** used during the Debian installation,  
> but will be mounted separately at a later stage.

---

## Required Credentials (Example)

> ⚠️ **Note:**  
> In a production environment, use secure, unique passwords  
> and store them in a password manager.

- **root (VM)**
- **ncadmin (VM)**
- **Database User:** `nextcloud`
- **Nextcloud Admin:** `nextcloud_admin`

---

## Debian Installation Medium

We use Debian 13 (amd64).

Download source (ISO): [https://debian.snt.utwente.nl/debian-cd/13.3.0/amd64/iso-cd/](https://debian.snt.utwente.nl/debian-cd/13.3.0/amd64/iso-cd/)

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783131429.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783131429.png)

---

## Step 1: Create the VM in Proxmox

1. Create a new VM
2. Assign the desired **VM ID**
3. Select the previously downloaded **Debian ISO**

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783140274.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783140274.png)

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783151422.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783151422.png)

---

## Step 2: VM System Configuration

### Machine Type and Agent

- **Machine:** `q35`  
    → modern CPU features such as improved PCIe, NVMe, and hardware emulation support
- **QEMU Guest Agent:** enable  
    → improved status reporting and clean shutdown functionality

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783158551.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783158551.png)

**Why `q35` instead of `i440fx`:**  
The `q35` machine type emulates a modern Intel chipset with native PCIe support. This enables proper PCIe passthrough (e.g., for GPUs or NVMe devices), AHCI controllers, and vIOMMU emulation. Compared to the legacy `i440fx`, it is significantly better suited for modern guest systems and extensions.

**QEMU Guest Agent:**  
The QEMU Guest Agent is a small daemon running inside the guest system that enables direct communication with Proxmox. It allows clean shutdowns (instead of ACPI force-off), freezes file systems before snapshots/backups (ensuring consistency), and provides accurate status information such as IP addresses and memory usage.

---

### Configure the System Disk

- **Disk Size:** 32 GB
- **Cache:** Default
- **Discard:** Enable  
    (only relevant for SSD/NVMe)

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783199940.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783199940.png)

---

### Add Second Disk (Data)

We now add **a second disk**, which will later be used exclusively for Nextcloud data.

- **Size:** e.g., 200 GB
- **Storage:** according to your infrastructure
- **Discard:** enable (for SSD/NVMe)

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783210113.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783210113.png)

We deliberately start the data disk at 200 GB. It can later be expanded easily in Proxmox and within the guest system to demonstrate dynamic storage growth in a homelab environment.

---

### CPU Configuration

- **Cores:** 4  
    (2 are sufficient for small setups)
- **Type:** `host`  
    → exposes all CPU features to the VM

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783235784.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783235784.png)

**Why `host`:**  
The CPU type `host` passes all features and extensions of the physical host CPU (e.g., AVX, AES-NI) directly to the VM. This provides maximum performance. However, it is only recommended if you do not plan live migration between hosts with different CPU types, as this can cause migration failures.

---

### Memory

- **Minimum:** 2 GB (functional)
- **Recommended:** 4 GB

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783246657.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783246657.png)

---

### Network

The default network configuration can remain unchanged.

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783268734.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783268734.png)

---

### Review Configuration

If everything is configured correctly, the VM summary should look similar to this.

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783311140.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783311140.png)

Now start the VM and begin the Debian installation.

---

## Step 3: Install Debian

### Language &amp; Region

To select **Germany**:

1. `Other`
2. `Europe`
3. `Germany`

The keyboard layout can then be accepted as proposed.

---

### Hostname &amp; Domain

- **Hostname:** e.g., `nc` or `cloud`
- **Domain:** either public or internal  
    (e.g., `intranet.zuhause.de` or `example.org`)

In this example, I chose:

- `cloud`
- `zn80.net`

---

### Set Root Password

Assign a strong root password.

> Since direct SSH login as root poses a security risk, we will disable this capability after installation.

---

### Create a Regular User

In addition to the `root` user, we require a regular user account.  
In this example, the username is `ncadmin`. Assign a strong password here as well.

---

### Partitioning

- **Guided – use entire disk**
- **Important:** select the **small 32 GB disk**  
    (usually `/dev/sda`)
- **All files in one partition**

Then write the changes to disk.

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783746809.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783746809.png)

---

#### Partitioning Notes

During Debian installation, the commonly selected option is  
**“Guided – use entire disk.”**

An alternative is:  
**“Guided – use entire disk and set up LVM.”**

This creates Logical Volume Manager (LVM) volumes, allowing more flexible resizing of partitions (especially the root filesystem) later without repartitioning the disk.

---

#### Swap Area

Regardless of the partitioning method, a swap partition or swap file should be configured. In the screenshot above, a 1.8 GB swap partition is shown.

Typical guidelines:

- At least 2–4 GB swap for low-RAM systems
- For systems with ≤ 8 GB RAM, swap equal to RAM (1:1) is often recommended
- With large amounts of RAM (&gt; 16–32 GB), significantly less swap (2–8 GB) or a swap file is usually sufficient

---

### Package Sources &amp; Updates

- Additional media: **No**
- Debian mirror: 
    - Country: Germany
    - Mirror: `deb.debian.org`
- Proxy: **No**
- Participate in package usage survey: **No**

---

### Software Selection

We install **no desktop environment**.

- ❌ Debian Desktop Environment
- ❌ GNOME
- ✅ SSH Server

> The web server will be installed manually later.

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783756053.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783756053.png)

---

### Bootloader

- **Install GRUB to:** `/dev/sda`  
    (SCSI-0)

The Debian installation is now complete.

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783783486.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783783486.png)

---

## Step 4: Verify Boot Order

Remove the ISO from the VM’s CD/DVD drive and set the boot order to prioritize the hard disk. Otherwise, the VM may continuously attempt to boot from the empty ISO.

[![](https://wiki.zn80.net/uploads/images/gallery/2026-02/scaled-1680-/image-1769951469960.png)](https://wiki.zn80.net/uploads/images/gallery/2026-02/image-1769951469960.png)

If the VM boots from the ISO again:

1. Power off the VM
2. **Options → Boot Order**
3. Move the system disk to the top
4. Move the ISO down or disable it

[![](https://wiki.zn80.net/uploads/images/gallery/2026-02/scaled-1680-/image-1769951601718.png)](https://wiki.zn80.net/uploads/images/gallery/2026-02/image-1769951601718.png)

Boot order incorrect

[![](https://wiki.zn80.net/uploads/images/gallery/2026-02/scaled-1680-/image-1769951624847.png)](https://wiki.zn80.net/uploads/images/gallery/2026-02/image-1769951624847.png)

Boot order correct

---

## Result

If everything was completed correctly, you should now see the Debian 13 login console.

[![](https://wiki.zn80.net/uploads/images/gallery/2026-01/scaled-1680-/image-1769783908444.png)](https://wiki.zn80.net/uploads/images/gallery/2026-01/image-1769783908444.png)

---

## Next Step

Continue with:  
[Part 2: Configure IP, User Permissions, and Second Data Disk](https://wiki.zn80.net/books/nextcloud/page/part-2-configuring-ip-user-privileges-and-the-second-data-disk)

- Configure a static IP
- Partition, format, and mount the second disk
- Prepare the base system