Deployment guide

File Browser

Videos

Overview: File Browser on Ubuntu 24.04 LTS on Azure: overview (watch on YouTube)

Launch and log in: File Browser on Ubuntu 24.04 LTS on Azure: launch and log in (watch on YouTube)

Deep Dive: File Browser on Ubuntu 24.04 LTS on Azure: deep dive (watch on YouTube)

Overview

File Browser is a popular open source, self-hosted web file manager. From an ordinary browser you can browse, upload, download, edit, preview and share the files in a directory through a clean, fast web interface, with no desktop client to install. It is a lightweight alternative to hosted file managers, and you run it entirely inside your own network.

The SecureAnyCloud image serves File Browser 2.63.14 behind an nginx reverse proxy on a hardened Ubuntu 24.04 LTS base, patched at build time. The File Browser server is a single, self-contained Go binary that embeds its own SQLite datastore, so there is no separate database or runtime interpreter to manage. The server listens only on the loopback interface (127.0.0.1:8080), and nginx serves it on port 80.

A unique administrator password is generated on the first boot of every VM and written to a root-only file. No shared or default login ever ships in the image.

What you get:

  • File Browser 2.63.14 served behind nginx and managed by systemd.
  • The File Browser web interface on :80, with JSON authentication required from the first request.
  • A per-VM administrator password generated on first boot and recorded in a root-only file.
  • A fresh per-instance session signing key, recreated with the database on first boot, so sessions cannot be forged across deployments.
  • The File Browser server bound to 127.0.0.1:8080 only, never exposed directly to the network.
  • A dedicated Azure data disk at /var/lib/filebrowser for the SQLite database and the browsed files.
  • filebrowser.service and nginx.service as enabled systemd units.
  • An open /health endpoint for Azure Load Balancer health probes.
  • 24/7 SecureAnyCloud support.

Prerequisites

  • An active Azure subscription, an SSH key pair, and a VNet plus subnet in the target region.
  • A VM size to start with. Standard_B2s (2 vCPU / 4 GiB RAM) is a sensible starting point. Size up for heavier concurrent transfer loads.
  • NSG inbound rules that allow 22/tcp from your management network and 80/tcp for the web interface.

File Browser serves plain HTTP on port 80. For production, terminate TLS in front of it with your own domain. The File Browser server is never exposed directly: it listens on 127.0.0.1:8080 only, so port 8080 stays off the network.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, and search the Marketplace for File Browser by SecureAnyCloud. Select Create.

On the Basics tab, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22) and HTTP (80).

Review the dedicated data disk on the Disks tab. Then select Review + create and Create.

Step 2 - Deploy from the Azure CLI

# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:file-browser-ubuntu-24-04:default:latest
az vm create \
  --resource-group <your-rg> \
  --name file-browser \
  --image sac1647283583153:file-browser-ubuntu-24-04:default:latest \
  --size Standard_B2s \
  --admin-username azureuser \
  --generate-ssh-keys \
  --public-ip-sku Standard

Then open port 80 for the web interface:

az vm open-port --resource-group <your-rg> --name file-browser --port 80

Step 3 - Confirm the services are running

SSH in as azureuser and confirm that File Browser and nginx are active. The File Browser server listens only on 127.0.0.1:8080, and nginx serves the web interface on port 80.

systemctl is-active filebrowser nginx filebrowser-firstboot
ss -tlnp | grep -E ':80 |:8080 ' | sed 's/ */ /g'

Step 4 - Retrieve the per VM administrator password

Every VM generates its own administrator password on first boot. It writes the password, along with the login user and URL, to a root-only credentials file. Read the file with sudo:

sudo cat /root/filebrowser-credentials.txt

Sign in to File Browser with the username admin and the filebrowser.admin.pass value from this file. To prove the login works from the command line, request an API token with those credentials:

PASS=$(sudo grep '^filebrowser.admin.pass=' /root/filebrowser-credentials.txt | cut -d= -f2-); curl -s -o /dev/null -w 'login HTTP %{http_code}\n' -m 20 -H 'Content-Type: application/json' -d "{\"username\":\"admin\",\"password\":\"$PASS\"}" http://127.0.0.1/api/login

Step 5 - Sign in to File Browser

Browse to http://<vm-public-ip>/. File Browser opens on its sign-in screen. Enter the username admin and the password from Step 4.

After you sign in, you land on the file listing for the browsed files root. From here you can navigate folders and preview files. Use the toolbar to upload, create, rename, move and download items.

Step 6 - Upload, download and share files

Use the upload button in the toolbar to add files or whole folders by drag and drop. Select any item to preview it, download it, or generate a share link. A share link lets an external collaborator download that specific file without an account.

The files you manage all live under the browsed files root on the dedicated data disk:

sudo ls -la /var/lib/filebrowser/files | head

Step 7 - Add scoped user accounts

Open Settings, then User Management, to create additional accounts. Give each user its own scope (a subdirectory the user is limited to) and a permission set. Teams can then share one instance while keeping their directories isolated.

Step 8 - Verify the stack

Confirm the File Browser version, check that the services are enabled, and test the health endpoint that Azure Load Balancer probes:

/usr/local/bin/filebrowser version | head -1
systemctl is-enabled filebrowser nginx
curl -sI http://127.0.0.1/health | head -1

Step 9 - Where your data lives

The SQLite database and the browsed files both live on a dedicated Azure data disk mounted at /var/lib/filebrowser, separate from the OS disk. This disk is captured into the image and reprovisioned on every VM.

Confirm the mount and the filesystem:

df -h /var/lib/filebrowser | tail -1
findmnt -no SOURCE,TARGET,FSTYPE /var/lib/filebrowser

Security notes

  • File Browser serves plain HTTP on port 80. For production, put it behind your own TLS-terminating reverse proxy or an Azure Application Gateway with a certificate for your domain. Restrict port 80 in the NSG to trusted networks.
  • The File Browser server listens on 127.0.0.1:8080 only and is never exposed directly. Only nginx on port 80 faces the network.
  • Authentication is required from the first request. The per-VM administrator password lives in /root/filebrowser-credentials.txt, readable only by root. You can change it from Settings after you sign in. Keep a copy somewhere safe.
  • Create scoped, least-privilege user accounts for team members rather than sharing the administrator login.
  • Keep the VM patched. The image is patched at build time and ships with unattended security upgrades enabled.

Support

SecureAnyCloud images come with 24/7 support. If you have questions about this File Browser image or need help with your deployment, contact us through the SecureAnyCloud website.

Deploy on Azure

Launch File Browser on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure