nhfs
Version:
NHFS β A sleek HTTP file server for the web built with Next.js and HeroUI. (Alpha)
128 lines (84 loc) β’ 2.63 kB
Markdown
# π NHFS (Next-HTTP-File-Server)
A **sleek and sexy** file manager built with **Next.js** and **HeroUI**.
Originally created as my **CS50x final project**, now evolving into a long-term side project.
Community pull requests are welcome.
> [!WARNING]
> **NHFS Is Still In Development** β Features are not well tested and may crash.
## β¨ Features β Ready β
- **Preview Files** β Videos, Images, and Audio
- **File Info** β Size, Path, and Date, etc.
- **File Uploads** β With drag & drop support
- **Create, Delete, Move, Rename, and Copy** files directly on the server
## π Usage:
```bash
npx nhfs
````
### CLI Options
* `--port`, `-p` β Server port (default: `3000`)
* `--dir`, `-d` β Base directory to serve (default: current working directory)
* `--hostname`, `-h` β Hostname (default: `localhost`)
Example:
```bash
npx nhfs -p 8080 -d ./files -h 0.0.0.0
```
## πΊ Roadmap
### Core Features
* **Authentication** (user login & permissions)
* **Secure File Operations** β e.g., secure delete, move, copy
* **Search Files**
### File Handling
* **Text Preview** + Syntax Highlighting π¨
* **Multiple File Selection**
* **Folder Size in Info**
* **File Icons by Type**
* **Download Directory as ZIP**
### Upload/Download Enhancements
* **Resumable Uploads**
* **Resumable Downloads**
## π Tech Stack
* **Next.js 15 (App Router)**
* **HeroUI** (UI components)
* **React Dropzone** (drag-and-drop)
* **TypeScript**
* **Node.js / Express-style API routes** for backend logic
> \[!WARNING]
> **Windows support** is not tested yet. If you are on Windows, use WSL.
## π§ͺ Testing Locally (Manual Setup)
> \[!NOTE]
> **Requirements:**
>
> * [Node.js](https://nodejs.org/en/download) version `>=18.18.0`
> * Linux π§ or macOS π
### 1οΈβ£ Clone the repository
```bash
git clone https://github.com/AliSananS/NHFS.git
cd NHFS
```
### 2οΈβ£ Install dependencies
```bash
npm install
```
### 3οΈβ£ Configure environment
Edit `.env` to set the base directory.
If not configured, the current working directory will be served.
### 4οΈβ£ Start the server
```bash
npm start
```
## π€ Contributing
See the [Contributing Guide](docs/contributing.md).
> [!NOTE]
> Lifeβs a little packed for me right now β Iβm balancing a busy schedule and a few other projects.
> I still care about this one and will check in when I can, but updates might be a bit slower.
> Thanks for your patience and for giving it a try! π
## π License
This project is licensed under the **MIT License**.
See [LICENSE](LICENSE) for details.