# How to set up a Proxmox file server

A Proxmox file server lets you **provide centralized network storage** and share data efficiently among different users and devices. In this guide, you’ll learn how to set up a file server with Proxmox VE step by step. The result is a secure, high-performance and easy-to-manage solution for storing backups, media files or shared work folders.

## Step 1: Choose your Proxmox file server setup

Before you begin, decide whether to set up your Proxmox [file server](https://www.ionos.ca/digitalguide/server/know-how/file-server/) as a [virtual machine](https://www.ionos.ca/digitalguide/server/know-how/virtual-machines/), [LXC](https://www.ionos.ca/digitalguide/server/know-how/what-is-lxc-linux-containers/) container or directly on hardware. All three have their own advantages and disadvantages in terms of performance, maintenance and security.

In this guide, we’ll be creating a **virtual machine based on Debian and Samba**. This setup is simple to deploy, provides good system isolation and can be easily adapted to meet different requirements. As such, you’ll benefit from the stability of a Linux system and the flexibility of Proxmox’s [virtualization](https://www.ionos.ca/digitalguide/server/configuration/virtualization/) features.

Note Samba is an [open-source](https://www.ionos.ca/digitalguide/server/know-how/what-is-open-source/) suite that allows **Linux/Unix systems and Windows computers on the same network to share files**. It uses the [SMB](https://www.ionos.ca/digitalguide/server/know-how/server-message-block-smb/)/CIFS protocol, which is also used by Windows file shares.

## Step 2: Check your prerequisites

Before you start setting up your Proxmox file server, make sure [Proxmox](https://www.ionos.ca/digitalguide/server/know-how/proxmox/) VE is already installed and running on your server. A [bare-metal installation of Proxmox](https://www.ionos.ca/digitalguide/server/configuration/proxmox-bare-metal-installation/) ensures **maximum performance and full control** over your virtualization environment. If you haven’t installed Proxmox yet, make sure to do so before continuing.

## Step 3: Create a virtual machine

Next, create a **virtual machine** (VM) to host your file server.

Open the Proxmox web interface and click **Create VM** in the top-right corner. The setup wizard will guide you through the configuration of your new VM step by step:

- Select the node where the VM will be created. Then assign a VM ID (which cannot be changed later) and enter a clear name that’s easy to remember.
- Choose your installation medium and set the operating system type and version.
- Create the virtual hard disk, select the storage location and set the disk size (at least 50 GB is recommended).
- In the [CPU](https://www.ionos.ca/digitalguide/server/know-how/cpu/) section, specify the number of sockets and cores for the VM.
- Under [RAM](https://www.ionos.ca/digitalguide/server/know-how/what-is-ram/), decide whether memory allocation should be static or dynamic. For file servers, a fixed allocation is best for stability.
- Adjust the VM’s network settings and choose the network interface the VM will communicate through as well as the appropriate network model.

Review the summary of your chosen settings. Then, click **Finish** to create the VM. If no error messages appear, the new VM will show up in the Proxmox dashboard. Start the VM and install the operating system using the console. You can manage the VM using the built-in console or via remote access.

## Step 4: Assign a static IP address

After installing the operating system, set up your VM’s network connection. To ensure the file server remains accessible, assign it a static [IP address](https://www.ionos.ca/digitalguide/server/know-how/what-is-an-ip-address/). This prevents its network address from changing after a reboot, which is important if other devices need constant access.

Log in to your VM through the Proxmox console or via SSH. Then open the network configuration file:

```bash
sudo nano /etc/network/interfaces
```

This file defines how the system connects to the network. Add the following lines and adjust the values to match your own network configuration:

```none
auto ens18 
iface ens18 inet static 
address IP_SERVER 
gateway ROUTER_SERVER 
dns-nameservers IP_DNS_SERVER
```

Replace `IP_SERVER` with the address you want the server to use on your network and `ROUTER_SERVER` with the address of your router or gateway. Then replace `IP_DNS_SERVER` with the DNS server address used for name resolution. Once you’ve made your changes, save the file and close the editor.

## Step 5: Set a hostname

Give your server a unique hostname — in this example, we’ll name it “fileserver” — so **it’s easy to identify on the network**:

```bash
sudo hostnamectl set-hostname fileserver
```

To ensure the network service uses the new settings, restart it:

```bash
sudo systemctl restart networking
```

## Step 6: Install and configure Samba

Now it’s time to set up the actual file server. In your VM, run the following commands to update the package lists and **install the latest version of Samba**:

```bash
sudo apt update 
sudo apt install samba -y
```

After installation, Samba usually starts automatically as a background service listening for network requests. Before you can set up a shared folder, you need to create a **directory that can be accessed from other devices on the network**. In this example, we’ll create one under `/srv/samba/shared`:

```bash
sudo mkdir -p /srv/samba/shared
```

Next, set the folder permissions to allow access for all users. This setup is ideal for test environments or private networks:

```bash
sudo chown -R nobody:nogroup /srv/samba/shared 
sudo chmod -R 0775 /srv/samba/shared
```

Finally, tell Samba which folder to share over the network. To do this, open the configuration file:

```bash
sudo nano /etc/samba/smb.conf
```

Scroll to the end of the file and add the following lines:

```none
[shared] 
path = /srv/samba/shared 
browseable = yes 
read only = no 
guest ok = yes
```

The `[shared]` section defines the name of the shared folder as it will appear to other devices on the network. The `path` setting specifies the exact location of the shared directory on the server.

The option `browseable = yes` makes the shared folder visible in network browsers, such as Windows Explorer, making it easier for other users to find. Set `read only = no` to allow users to create, edit and delete files within the shared folder, rather than just view them. The setting `guest ok = yes` lets users access the shared folder without logging in, i.e., anonymously. This is convenient for home or test networks but should be used with caution in production environments.

After making all your changes, save the file and restart the Samba service to apply them:

```bash
sudo systemctl restart smbd
```

Your Samba server is now up and running.

Tip To restrict access, create dedicated Samba users with passwords and update the folder permissions accordingly. Then in the Samba configuration file, list each authorized user in the `[shared]` section using the `valid user` option.

## Step 7: Test access from another device

After setting up your Samba file server, check whether you can connect to it from another device on your network. The IP address you’ll use is the static IP you assigned to your virtual machine earlier. On Windows, open File Explorer and enter the shared folder address, for example:

```none
\\IP_SERVER\shared
```

If everything has been set up correctly, the shared folder will appear. You’ll now be able to open, create and edit files.

On Linux, you can mount the shared folder in the terminal using a command like:

```bash
sudo mount -t cifs //IP_SERVER/shared /mnt -o guest
```

You can now view and access the shared folder’s contents under the `/mnt` directory.

For production environments, it’s a good idea to use your file server together with a [Proxmox Backup Server](https://www.ionos.ca/digitalguide/server/configuration/proxmox-backup-server/). Doing so allows regular automated backups of all your data.


This is a markdown version of: [https://www.ionos.ca/digitalguide/server/configuration/how-to-set-up-a-proxmox-file-server/](https://www.ionos.ca/digitalguide/server/configuration/how-to-set-up-a-proxmox-file-server/) for AI/LLM consumption.