A lightweight local network file server built with Node.js and Express that lets you upload, browse, and download files between devices on the same network using their IP addresses — no FTP client needed, just a web browser.
- 📤 Upload files from any device on the same network
- 📥 Download files directly via browser
- 🌐 Web-based UI — no software installation required on the client side
- 🔍 Lists all available files with size and last modified date
- 📡 Accessible via local IP address from any device on the LAN
- Node.js (v14 or higher)
- npm
-
Clone or download this project to your machine.
-
Install dependencies:
npm install
-
Start the server:
node server.js
-
The terminal will display the server addresses:
===================================== Network File Server Started! ===================================== Local access: http://localhost:3000 Network access: http://192.168.x.x:3000 ===================================== -
Access the server:
- On the same machine: open
http://localhost:3000in your browser. - On another device (phone, laptop, etc.) on the same Wi-Fi/network: open
http://<server-IP>:3000in a browser.
- On the same machine: open
-
Transfer files:
- Use the Upload section to send a file to the server.
- Use the Download button next to any file to receive it.
ftp-server/
├── server.js # Main server file
├── package.json # Project metadata and dependencies
└── uploads/ # Directory where uploaded files are stored (auto-created)
| Method | Endpoint | Description |
|---|---|---|
| GET | / |
Serves the web interface |
| POST | /upload |
Upload a file |
| GET | /list |
Returns list of files (JSON) |
| GET | /download/:filename |
Download a specific file |
| Package | Version | Purpose |
|---|---|---|
| express | ^5.2.1 | Web server framework |
| multer | ^2.0.2 | Handling multipart file uploads |
You can change these values at the top of server.js:
| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
Port the server listens on |
UPLOAD_DIR |
./uploads |
Folder where files are saved |
- Both devices must be on the same local network (same Wi-Fi or LAN).
- Uploaded files are saved with their original filenames. Uploading a file with the same name will overwrite the existing one.
- This server has no authentication. Do not expose it to the public internet.