FilePi is a lightweight, self-hosted file manager application built with a Rust backend and a Blazor WebAssembly frontend. It allows you to easily manage and serve files from your server.
Before building and running FilePi, ensure you have the following installed:
-
Rust: Install Rust (latest stable version)
-
.NET SDK: Install .NET SDK (version 10.0)
-
.Net Libman
- Install .Net Libman
dotnet tool install --global dotnet-libman
-
FFmpeg
sudo apt update sudo apt install ffmpeg
brew install ffmpeg
To build the project, simply run the build script:
- Linux/macOS:
./build.sh - Windows:
./build.ps1
Note
If you have a Syncfusion license key, set the SYNCFUSION_LICENSE_KEY environment variable before building to inject it into the application.
After building, you can run the application using the generated binary.
The application can be configured using the following environment variables:
| Variable | Description | Default |
|---|---|---|
FILE_PI_ROOT_DIR |
The root directory to serve files from. | . (Current Directory) |
FILE_PI_PORT |
The HTTP port the server will listen on. | 8080 |
FILE_PI_LOGLEVEL |
The logging level (e.g., info, debug, error). |
info |
FILE_PI_LOG_DIR |
The directory where logs will be stored. | ./logs |
Run the server serving files from your home directory on port 3000:
export FILE_PI_ROOT_DIR=$HOME
export FILE_PI_PORT=3000
./filepiOr inline:
FILE_PI_ROOT_DIR=/path/to/files FILE_PI_PORT=9090 ./filepifilepi-server/: Rust backend source code.frontend/: Blazor WebAssembly frontend source code.build.sh: Main build script.webdeploy/: Directory where frontend assets are deployed (served by the backend).