A Proxmox file server lets you provide cen­tral­ized network storage and share data ef­fi­cient­ly 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-per­for­mance 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­van­tages and dis­ad­van­tages in terms of per­for­mance, main­te­nance 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­i­bil­i­ty of Proxmox’s vir­tu­al­iza­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 Servers
Per­for­mance through in­no­va­tion
  • Dedicated en­ter­prise hardware
  • Con­fig­urable hardware equipment
  • ISO-certified data centers

Step 2: Check your pre­req­ui­sites

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­stal­la­tion of Proxmox ensures maximum per­for­mance and full control over your vir­tu­al­iza­tion en­vi­ron­ment. If you haven’t installed Proxmox yet, make sure to do so before con­tin­u­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­u­ra­tion 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 in­stal­la­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 rec­om­mend­ed).
  • In the CPU section, specify the number of sockets and cores for the VM.
  • Under RAM, decide whether memory al­lo­ca­tion should be static or dynamic. For file servers, a fixed al­lo­ca­tion is best for stability.
  • Adjust the VM’s network settings and choose the network interface the VM will com­mu­ni­cate through as well as the ap­pro­pri­ate 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 in­stalling the operating system, set up your VM’s network con­nec­tion. To ensure the file server remains ac­ces­si­ble, 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­u­ra­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­u­ra­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 name res­o­lu­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 “file­serv­er” — so it’s easy to identify 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­stal­la­tion, Samba usually starts au­to­mat­i­cal­ly as a back­ground 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:

sudo mkdir -p /srv/samba/shared
bash

Next, set the folder per­mis­sions to allow access for all users. This setup is ideal for test en­vi­ron­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­u­ra­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 just view them. The setting guest ok = yes lets users access the shared folder without logging in, i.e., anony­mous­ly. This is con­ve­nient for home or test networks but should be used with caution in pro­duc­tion en­vi­ron­ments.

After making all your changes, save the file and 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­ing­ly. Then in the Samba con­fig­u­ra­tion file, list each au­tho­rized 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:

\\IP_SERVER\shared

If every­thing 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 access the shared folder’s contents under the /mnt directory.

For pro­duc­tion en­vi­ron­ments, it’s a good idea to use your file server together with 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­for­mance NVIDIA RTX PRO 6000 Blackwell GPUs available
  • Un­par­al­lel per­for­mance for complex AI and data tasks
  • Hosted in secure and reliable data centers
  • Flexible pricing based on your usage
Go to Main Menu