Temporary Autonomous Zone - A lightweight, cross-platform web-based file manager for instant file sharing and management.
TAZ is a simple, self-contained web application that allows you to quickly set up a file management interface on any supported device. Perfect for temporary file sharing, collaborative work environments, or when you need instant access to files across different devices on a network.
The Android app provides a comprehensive mobile interface, allowing you to run as a local WiFi access point, connect via BLE discovery, or scan your existing network for peers.
- Web-based interface - Access from any browser
- Full file management - Upload, download, create folders, rename, delete
- BBS messaging system - Optional bulletin board for team communication with audio room capability
- Optional password protection - Secure write operations
- External links - Add custom links to your file manager homepage
- Responsive design - Works on desktop and mobile
- Zero dependencies - Single binary deployment
- Cross-platform - Available for Linux, macOS, Windows, and Android
- Logging support - Optional request logging to file or stderr
- Android app - Full source included with BLE connectivity, WiFi hotspot, and network scanning
The app launches with a dashboard offering five main functions:
- WiFi Server - Create a local WiFi access point with QR code sharing.
- Radio Scan - Scan for BLE tags to automatically connect to existing TAZ instances.
- Network Scan - Scan the local subnet to discover other TAZ nodes running on the network.
- Settings - Configure app behavior, server name, and security.
- Open - Open the embedded browser to manage your local files.
Before choosing an operational mode, you can configure the instance:
- Public - Toggle between public (0.0.0.0) or private (127.0.0.1) access.
- Bluetooth - Enable/disable BLE credential sharing when hosting.
- Name - Set a custom name for your TAZ node (defaults to a random ID).
- Password - Set a password for create/update/delete operations.
- Save & Return - Applies changes and restarts the internal server.
- Creates a temporary local WiFi network.
- Generates a random SSID and Password.
- Displays a status screen with two toggleable QR codes:
- Show WiFi QR: Scannable credentials to join the network.
- Show Browser QR: Scannable URL to open the file manager.
- Open Local: A shortcut to open the hosted instance in the internal view.
- Scans for Bluetooth Low Energy advertisements from other TAZ servers.
- Automatically receives WiFi credentials and IP information.
- Connects the device to the detected WiFi network and opens the interface.
- Scans the current local subnet (e.g.,
192.168.1.x) for port35248. - Lists all discovered active TAZ nodes.
- One-tap connection to any discovered node.
The Android app requires specific permissions to function:
- Location & Nearby Devices: Required for BLE scanning and WiFi management.
- Audio: Required for the BBS audio room feature.
- WiFi Control: Required to create hotspots and connect to networks.
The BBS (Bulletin Board System) feature provides a simple messaging interface for team communication with added audio capability:
- Audio Room: Special microphone button brings participants to an audio-only room.
- Audio Controls: Participants can enable/disable their microphone at any time.
- Download the appropriate binary for your platform from the Releases page.
- Make it executable (Unix-like systems):
chmod +x taz
- Run with default settings:
./taz
- Open your browser to
http://localhost:35248.
./taz -root /path/to/your/files./taz -password mypassword -web-port 8080./taz \
-password secret \
-url "Documentation|https://example.com/docs" \
-log \
-log-file taz.logFor complex setups, you can manage all command-line options using a JSON configuration file. This is useful for creating reusable and easily shareable configurations.
To use a configuration file, pass its path to the -config flag:
./taz -config my_settings.jsonIn the JSON file, the option names are the same as the command-line flags, but with hyphens (-) replaced by underscores (_).
Example config.json:
{
"web_host": "0.0.0.0",
"web_port": 8080,
"password": "secret",
"root": "/shared/team-files",
"log": true,
"log_file": "taz_access.log",
"url": [
"Documentation|https://example.com/docs",
"Team Chat|https://chat.example.com"
]
}Note: Any options passed directly on the command line will override the values specified in the configuration file. For example:
# The web port will be 9090, overriding the value in the config file.
./taz -config config.json -web-port 9090Here is the complete section for command line options, including the name parameter used by the Android application and the external link options.
| Option | Default | Description |
|---|---|---|
-name |
(empty) | Set the display name for the instance/node |
-web-host |
localhost |
Host address to listen on |
-web-port |
35248 |
Port for the web server |
-password |
(empty) | Password for write operations |
-root |
files |
Root directory for file management |
-log |
false |
Enable request logging |
-log-file |
(empty) | Path to log file (uses stderr if empty) |
-url |
(none) | External links (format: Name|URL), can be used multiple times |
-config |
(empty) | Path to a JSON configuration file |
You can add custom links to the homepage using the -url flag multiple times:
./taz \
-url "Company Intranet|http://intranet.company.com" \
-url "Project Repository|https://github.com/user/project" \
-url "https://eja.tv" # URL without custom nameTo build the console binary:
git clone https://github.com/eja/taz.git
cd taz
make