Storage Azure

FileRise on Ubuntu 24.04 on Azure User Guide

| Product: FileRise on Ubuntu 24.04 LTS on Azure

Overview

FileRise is a lightweight, self hosted web file manager: upload, organise, preview and share files straight from your browser, with folder level permissions, share links and optional folder encryption at rest. It needs no database - everything is stored as plain files on disk - which keeps it fast and simple to run and back up. The cloudimg image installs the current FileRise release served by Apache and PHP 8.3 on a hardened, fully patched Ubuntu 24.04 LTS base.

FileRise ships with no default administrator. On a plain install its first run flow would let anyone create the first admin, so the cloudimg image closes that wizard permanently and generates a unique administrator password on the first boot of every VM instead. The file store is therefore never reachable without authentication, and no shared or default credential ever exists in the image. Backed by 24/7 cloudimg support.

What is included:

  • FileRise 3.26.1 served by Apache 2 with PHP 8.3 (mod_php), managed by systemd
  • The web file manager on :80, with the first run setup wizard closed and a unique per VM admin account
  • The per VM admin password generated on first boot and recorded in a root only file
  • apache2.service enabled and active; filerise-firstboot.service seeds the admin on first boot
  • A flat file store at /var/www/{uploads,users,metadata}, kept outside the web root so files are served only through the authenticated API
  • Optional folder encryption at rest (PHP sodium), share links and folder level permissions
  • 24/7 cloudimg support

Prerequisites

An active Azure subscription, an SSH key pair, and a VNet plus subnet in the target region. Standard_B2s (2 vCPU / 4 GiB RAM) is a sensible starting point; size up for heavier use or large libraries, and grow the OS disk for more storage. NSG inbound: allow 22/tcp from your management network and 80/tcp for the web interface. FileRise serves plain HTTP on port 80; for production, terminate TLS in front of it with your own domain.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, search the Marketplace for FileRise by cloudimg, and select Create. On Basics 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). Then Review + create then Create.

Step 2 - Deploy from the Azure CLI

az vm create \
  --resource-group <your-rg> \
  --name filerise \
  --image <marketplace-image-urn> \
  --size Standard_B2s \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_ed25519.pub \
  --vnet-name <your-vnet> --subnet <your-subnet> \
  --public-ip-sku Standard

az vm open-port --resource-group <your-rg> --name filerise --port 80 --priority 1010

Step 3 - Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 - Confirm the service is running

FileRise is served by Apache on port 80 with PHP 8.3. Confirm the web service and the first boot service are active and that Apache is listening and responding:

systemctl is-active apache2 filerise-firstboot
sudo ss -tlnp | grep ':80 '
curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/

Apache and the filerise-firstboot service active, Apache listening on port 80 and FileRise returning HTTP 200

Step 5 - Retrieve your admin password

On the first boot of every VM the filerise-firstboot.service generates a unique administrator password, seeds the FileRise admin account with it, and writes the details to a root only file. Read it with:

sudo cat /root/filerise-credentials.txt

The per VM FileRise admin credentials file, 0600 root only, with the password unique to this VM

The password shown above is unique to your VM. There is no default login, so no two VMs ever share a credential.

Step 6 - Confirm the setup wizard is closed

Because FileRise ships no default admin, the cloudimg image closes its first run setup flow permanently: an unauthenticated request to create an administrator is refused, and only the per VM admin account exists. Confirm the PHP version, that the app responds, and that the setup wizard cannot be used to create a rogue admin:

php -v | head -1
curl -s -o /dev/null -w 'FileRise: HTTP %{http_code}\n' http://127.0.0.1/
curl -s -X POST -H 'Content-Type: application/json' \
  --data '{"username":"rogue","password":"x123456","isAdmin":true}' \
  http://127.0.0.1/api/admin/addUser.php?setup=1
echo
sudo grep -c ':' /var/www/users/users.txt

PHP 8.3, FileRise returning HTTP 200, the unauthenticated setup request refused, and exactly one account in users.txt

The setup request is refused (it never returns "User added successfully"), and users.txt still holds exactly one account - the per VM admin.

Step 7 - Sign in to FileRise

Browse to http://<vm-public-ip>/. Because the setup wizard is closed, a fresh VM always shows the sign in page - never a setup form. Enter admin and the password from Step 5.

The FileRise sign in page

Step 8 - Upload, browse and manage files

Once signed in you land in the file manager. Drag files onto the upload panel or use Choose files, and they appear immediately in the list with their size and modified time. From here you can preview, rename, move, share and delete files, tag and search them, and manage folder level access.

The FileRise file manager showing uploaded files and folders with the upload panel and folder tree

Step 9 - Organise files into folders

Use New then Folder to create folders, and drag files between them or into the folder tree on the left. Click a folder to open it; the breadcrumb at the top shows where you are and lets you navigate back. Each folder can have its own access rules for other users you add.

Browsing inside a folder in FileRise, showing the folder contents and breadcrumb navigation

Step 10 - Where your files live

FileRise stores everything as flat files under /var/www - uploads, the user database and metadata - kept outside the web root at /var/www/public, so files are only ever served through the authenticated API, never directly by the web server. There is no database to manage:

ls -ld /var/www/public /var/www/uploads /var/www/users /var/www/metadata
sudo grep -c ':' /var/www/users/users.txt
sudo ls /var/www/users/.setup_complete
sudo swapon --show || echo '(no swap)'

The FileRise data directories owned by www-data, the single admin account, the setup-complete marker and no swap on the image

Maintenance

  • Back up your files: because FileRise needs no database, a backup is simply a copy of /var/www/uploads (your files), /var/www/users (accounts and permissions) and /var/www/metadata (tags, share links and indexes). Snapshot the OS disk or tar those directories.
  • Add users: sign in as admin and use Admin then Users to add people and set folder level access, alongside the built in admin account. Change your own password from the account menu.
  • Storage capacity: files live on the VM's OS disk. Grow the disk in Azure, or attach and mount a data disk under /var/www/uploads, for larger libraries.
  • Optional features: folder encryption at rest is available (PHP sodium is installed). Virus scanning (ClamAV) and video thumbnails (FFmpeg) can be added if you need them.
  • Security updates: unattended security upgrades are enabled, so the OS keeps itself patched. Reboot when a new kernel is installed.
  • TLS: for production, front FileRise with your own domain and a TLS terminating reverse proxy or Azure Application Gateway.

Support

cloudimg provides 24/7/365 expert technical support for this image. Contact support@cloudimg.co.uk. FileRise is licensed under MIT. This image is provided by cloudimg; additional charges apply for build, maintenance and 24/7 support.