A Proxmox file server lets you provide cent­ral­ised network storage and share data ef­fi­ciently between 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-per­form­ance 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 as a virtual machine, LXC container or directly on hardware. All three have their own ad­vant­ages and dis­ad­vant­ages in terms of per­form­ance, main­ten­ance 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 re­quire­ments. As such, you’ll benefit from the stability of a Linux system and the flex­ib­il­ity of Proxmox’s vir­tu­al­isa­tion features.

Note

Samba is an open-source suite that allows Linux/Unix systems and Windows computers on the same network to share files. It uses the SMB/CIFS protocol, which is also used by Windows file shares.

Dedicated Server
Per­form­ance through in­nov­a­tion
  • En­ter­prise hardware
  • Con­fig­ur­able hardware equipment
  • ISO-certified data centres

Step 2: Check your pre­requis­ites

Before you start setting up your Proxmox file server, make sure Proxmox VE is already installed and running on your server. A bare-metal in­stall­a­tion of Proxmox ensures maximum per­form­ance and full control over your vir­tu­al­isa­tion en­vir­on­ment. If you haven’t installed Proxmox yet, make sure to do so before con­tinu­ing.

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 con­fig­ur­a­tion of your new VM step by step:

  • Select the node where the VM will be created. Then assign a VM ID (which can’t be changed later) and enter a clear name that’s easy to remember.
  • Choose your in­stall­a­tion 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 re­com­men­ded).
  • In the CPU section, specify the number of sockets and cores for the VM.
  • Under RAM, decide whether memory al­loc­a­tion should be static or dynamic. For file servers, a fixed al­loc­a­tion is best for stability.
  • Adjust the VM’s network settings and choose the network interface the VM will com­mu­nic­ate through as well as the ap­pro­pri­ate network model.

Review the summary of your selected 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 through remote access.

Step 4: Assign a static IP address

After in­stalling the operating system, set up the VM’s network con­nec­tion. To ensure the file server remains ac­cess­ible, assign it a static 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 con­fig­ur­a­tion file:

sudo nano /etc/network/interfaces
bash

This file defines how the system connects to the network. Add the following lines and adjust the values to match your own network con­fig­ur­a­tion:

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 DNS res­ol­u­tion. 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 “fileserv­er” – so it’s easy to recognise on the network:

sudo hostnamectl set-hostname fileserver
bash

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

sudo systemctl restart networking
bash

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:

sudo apt update 
sudo apt install samba -y
bash

After in­stall­a­tion, Samba usually starts auto­mat­ic­ally as a back­ground service that listens 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:

sudo mkdir -p /srv/samba/shared
bash

Next, set the folder per­mis­sions to grant access to all users. This setup is ideal for test en­vir­on­ments or private networks:

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

Finally, tell Samba which folder to share over the network. To do this, open the con­fig­ur­a­tion file:

sudo nano /etc/samba/smb.conf
bash

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

[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 only view them. The setting guest ok = yes lets users access the shared folder without logging in, i.e., an­onym­ously. This is con­veni­ent for home or test networks but should be used with caution in pro­duc­tion en­vir­on­ments.

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

sudo systemctl restart smbd
bash

Your Samba server is now up and running.

Tip

To restrict access, create dedicated Samba users with passwords and update the folder per­mis­sions ac­cord­ingly. Then in the Samba con­fig­ur­a­tion file, list each au­thor­ised 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 if 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:

\\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:

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

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

For pro­duc­tion en­vir­on­ments, it’s advisable to use your file server alongside a Proxmox Backup Server. Doing so allows regular automated backups of all your data.

GPU Servers
Power redefined with RTX PRO 6000 GPUs on dedicated hardware
  • New high-per­form­ance NVIDIA RTX PRO 6000 Blackwell GPUs available
  • Un­par­al­lel per­form­ance for complex AI and data tasks
  • Hosted in secure and reliable data centres
  • Flexible pricing based on your usage
Go to Main Menu