Storage Azure

FileGator on Ubuntu 24.04 on Azure User Guide

| Product: FileGator on Ubuntu 24.04 LTS on Azure

Overview

FileGator is a self hosted, multi user web file manager. Through a clean browser interface your team can upload, download, zip, unzip, copy, move, rename, and edit files, with per user roles, granular permissions, and isolated home directories. The cloudimg image installs FileGator 7.14 on nginx and PHP 8.3, all from the Ubuntu 24.04 noble universe with no third party APT repositories. Files are stored on the local filesystem and users are held in a simple JSON store, so there is no database server to run or maintain. Only the public web folder is exposed, and the administrator password is generated uniquely per instance at first boot, so the well known default admin login never ships in the image.

What is included:

  • FileGator 7.14.4 (MIT) deployed to /var/www/filegator, served from the dist document root
  • nginx serving the front controller, with /var/www/filegator/dist as the only web exposed directory
  • PHP 8.3 FPM with the mbstring, dom, xml, zip, and curl extensions
  • Local filesystem storage at /var/www/filegator/repository and a JSON user store at /var/www/filegator/private/users.json, no database server
  • filegator-firstboot.service generating a per VM administrator password and writing it as a bcrypt hash
  • Host agnostic URLs: the app renders on the VM public IP, on 127.0.0.1, or on any domain you point at it
  • nginx and PHP FPM enabled and auto starting on boot
  • 24/7 cloudimg support

Prerequisites

An active Azure subscription, an SSH key, and a VNet with a subnet. Standard_B2s (2 vCPU, 4 GB RAM) is a comfortable starting point; move up to a D2s or D4s size for more concurrent users or larger transfers. Open inbound ports 80 and 443 (and 22 to your management network) on the network security group.

Step 1: Deploy and connect

Launch the image from the Azure Marketplace, then connect over SSH as azureuser:

ssh azureuser@<vm-ip>

The first boot service generates the per VM administrator credentials within a few seconds of the instance starting.

Step 2: Verify the services

Confirm nginx and PHP FPM are active and nginx is listening on port 80:

sudo systemctl is-active nginx php8.3-fpm
sudo ss -tlnp | grep ':80 '

nginx and PHP FPM active and listening on port 80

Step 3: Check the versions

The FileGator release is stamped as APP_VERSION in the front controller. Confirm the application, PHP, and nginx versions:

grep -oE "APP_VERSION', '[0-9.]+'" /var/www/filegator/dist/index.php
php -v | head -1
nginx -v

FileGator 7.14.4, PHP 8.3, and nginx version strings

Step 4: Confirm the per VM credential rotation

The image ships with no working default login. The first boot service generates a fresh administrator password, writes it as a bcrypt hash into the user store, and the upstream default admin / admin123 is rejected. The bundled check confirms this end to end and lists the users and their permissions:

sudo systemctl is-active filegator-firstboot.service
sudo bash /usr/local/sbin/filegator-cred-roundtrip.sh

The credential round trip confirming the per VM admin works and admin123 is rejected, with the admin and guest users

The guest account is retained with no permissions, so anonymous visitors reach the sign in screen but can do nothing until they authenticate.

Step 5: Read the administrator password

The per VM credentials are written to a root only file. Read it to pick up the FILEGATOR_ADMIN_USER and FILEGATOR_ADMIN_PASSWORD for signing in:

sudo cat /stage/scripts/filegator-credentials.log

The per VM credentials file with the administrator user and rotated password

Keep this file secure. Change the administrator password from within the app once you have signed in for the first time.

Step 6: Browse to FileGator

The app responds on whatever address you reach it on. Confirm it is serving locally, then browse to http://<vm-ip>/ in your browser:

curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/

The FileGator sign in screen

Sign in as admin with the password from Step 5.

Step 7: Manage files

After signing in you land on the file manager. Use Add files to upload, New to create folders and files, and the row actions to download, copy, move, rename, zip, and delete. Selecting one or more items reveals the batch actions, including zip and batch download.

The FileGator file manager listing folders and files with size and permissions

Step 8: Create users and set permissions

Open Users to manage accounts. Each user has a role, a home directory, and a granular permission set (read, write, upload, download, batch download, zip, chmod), so you can give some people upload only access and others full management of their own folder.

The FileGator Users panel showing the admin and guest accounts with roles and permissions

Step 9: Change the administrator password

Open your profile from the top navigation to change the administrator password. Set a new password here after your first sign in and store it in your own secrets manager.

The FileGator profile dialog for changing the administrator password

Step 10: Components

Component Path
FileGator application /var/www/filegator/
Document root /var/www/filegator/dist/
Configuration /var/www/filegator/configuration.php
Storage root /var/www/filegator/repository/
User store /var/www/filegator/private/users.json
nginx vhost /etc/nginx/sites-available/filegator.conf
Firstboot script /usr/local/sbin/filegator-firstboot.sh
Credentials /stage/scripts/filegator-credentials.log (mode 0600 root:root)

Step 11: Security and next steps

  • Change the administrator password from your profile after the first sign in.
  • Enable HTTPS by installing certbot and requesting a certificate for your domain:
sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.example.com
  • Restrict the network security group so that ports 80 and 443 are open only to your CDN or load balancer, and port 22 only to your management network.
  • Create least privilege users in the Users panel: give each person only the permissions and home directory they need.
  • Keep the OS patched regularly with sudo apt-get update and sudo apt-get upgrade.
  • Point your domain at the instance; because the app is host agnostic, no URL rewrite is needed.

Licensing

FileGator is distributed under the MIT licence and is free to use commercially. cloudimg packages and supports the image; support is available 24/7 at support@cloudimg.co.uk. All product and company names are trademarks or registered trademarks of their respective holders and their use does not imply affiliation or endorsement.