# Freeloader

This is a file manager utility called Freeloader because it frees you from having to use SSH or SFTP to manage files on your AllStar node.

The utility requires a secure login to use.

## Install

First, after starting an SSH session into your node (or from the terminal CLI), go to a specific directory:

```
cd /etc/asterisk/local
```

If the directory does not exist, create it:

```
sudo mkdir -p /etc/asterisk/local
cd /etc/asterisk/local
```

Download the installer script:

```
sudo wget https://raw.githubusercontent.com/n5ad/freeloader/refs/heads/main/freeloader.sh
```

Run it:

```
sudo bash freeloader.sh
```

You will be prompted to create a password that you will need in order to use the utility. Once installed, open:

`http://node[your-node-number].local/freeloader/`

## Allowed directories

Only directories on the server whitelist can be browsed, uploaded to, edited, or deleted. Defaults (must match in both `freeloader_common.php` and `freeloader-helper.sh`):

- `/my_uploads`
- `/etc/asterisk`
- `/etc/asterisk/local`
- `/etc/allmon3`
- `/var/lib/asterisk`
- `/var/www/html/supermon`
- `/usr/share/allmon3`

`/usr/local/bin` and `/var/www/html/freeloader` are intentionally **not** allowed, so the privileged helper and the Freeloader app itself cannot be overwritten through the UI.

To change the list: edit **both** files, then reinstall/copy the helper with the installer (or copy `freeloader-helper.sh` to `/usr/local/bin/freeloader-helper` as root). It is the operator’s responsibility — no different than using the CLI — not to damage the node.

Not every file is editable in the UI (pattern-based). Executable / webshell extensions (`.php`, `.phar`, `.htaccess`, etc.) are blocked on upload and save.
