A fast, lightweight file browsing and download server with internationalization support (English, Chinese, Japanese).
- Lightning-fast loading with Vite
- Multi-language support (EN/中文/日本語)
- Folder navigation and file browsing
- Metadata sharding for fast loading - Only loads metadata for current directory
- Optimized for small files (JS, CSS, JSON, etc.)
- Clean, minimal UI
- Ready for Vercel deployment
- Place your files in
public/files/directory - Install dependencies:
pnpm install - Run development server:
pnpm run dev(starts Vite) - Run API server:
pnpm run server(for file browsing and admin panel)
A web-based admin panel is available for managing files:
- Start the server:
pnpm run server - Open browser:
http://localhost:3000/admin - Login with password (default:
admin123)
- 📤 Upload files (single or multiple)
- 📁 Create folders
- ✏️ Edit metadata.json files
- 🗑️ Delete files and folders
- 📝 Add file descriptions
# Windows PowerShell
$env:ADMIN_PASSWORD="your_password"
pnpm run server
# Linux/Mac
export ADMIN_PASSWORD=your_password
pnpm run serverNote: Admin panel files are in admin/ folder and excluded from Git.
For detailed admin documentation, see admin/README.md
public/
files/ # Put your files here
metadata-index.json # Metadata index (auto-generated)
metadata-root.json # Root directory metadata
folder1/
metadata.json # Folder1 metadata
file1.js
folder2/
metadata.json # Folder2 metadata
file2.css
This system uses a sharded metadata approach for optimal performance. Instead of loading one large metadata file, it loads only the metadata needed for the current directory.
Edit the metadata.json file in the corresponding directory:
{
"file1.js": {
"modified": "2026-02-06T10:00:00Z",
"description": "File description"
}
}Edit public/files/metadata-root.json:
{
"folder1": {
"description": "Folder description"
}
}- Push code to GitHub
- Import project in Vercel
- Upload your files to
public/files/directory - Deploy automatically
This system is designed for small files only. Large files may experience slow download speeds due to serverless function limitations.