FileGator on Ubuntu 24.04 on Azure User Guide
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 thedistdocument root - nginx serving the front controller, with
/var/www/filegator/distas 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/repositoryand a JSON user store at/var/www/filegator/private/users.json, no database server filegator-firstboot.servicegenerating 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 '

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

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

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/

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.

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.

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.

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 updateandsudo 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.