UNPKG

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
# πŸ“‚ 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.