Introduction
Droppy is a file storage server with a web interface and is capable to edit any type of text files and view any media (photos, videos, etc.) files directly in the browser without downloading them. It is particularly designed to be run on low-end hardware like the Raspberry Pi, Banana Pi, Nvidia Jetson, ASUS Tinker, etc. You can use droppy with unlimited storage and all your data will be with you and no other company will get access to it thereby maintaining your privacy. I think you know what I am trying to point out.
Special thanks to silverwind.
About Device
- Raspberry Pi: Raspberry Pi is a low-cost, credit-card-sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It is a capable little device that enables people of all ages to explore computing and to learn how to program in languages like Scratch and Python. It’s capable of doing everything you’d expect a desktop computer to do, from browsing the internet and playing high-definition video, to making spreadsheets, word-processing, playing games, and many more. It has the ability to interact with the outside world and has been used in a wide array of digital maker projects, from music machines and parent detectors to weather stations and tweeting birdhouses with infra-red cameras. You can download the raspberry pi OS from here.
- SD card (64Gb): It is a type of storage device. It is used to read and write large data. In our project, we use this to write raspberry pi OS image and store our server data. Use SD card of reading speed 100mb/s. Buy a SD card from here.
I am using Rufus for writing OS image in SD Card.
I am not showing in this article and tutorial video how you can write OS image in SD Card. You will find many videos related to this on YouTube.
- 5v DC fan: This fan helps to cool down your raspberry pi as its processor and RAM start heating up after a long time. I would also suggest that you use heat sink on its processor and RAM for better cooling. Buy from here.
- Power Supply: Use any 5v and 4amp power supply according to raspberry pi used by you.
You can use any model of the raspberry pi for this project but for smooth performance use raspberry pi 4B with at least 4Gb ram. Buy from here.
Your server’s storage will depend on your SD card.
It works on the latest node versions only.
Technical Implementation: Server Architecture and Network Protocols
This project is a sophisticated exploration of network technology and data interaction. By focusing on the essential building blocks—the Node.js server stack and the high-performance file-system permissions and security logic—you'll learn how to communicate and synchronize data tasks using specialized software logic and a robust setup.
The project reveals the hidden layers of simple file serving:
- Identification layer: The Raspberry Pi OS acts as the high-resolution chronological eye, measuring every point of the network traffic and coordinating the file-dispatch.
- Conversion layer: The system uses high-speed digital protocols to receive high-speed data chunks and coordinate mission-critical file serving tasks.
- Data Interface layer: The SD Card provides high-definition visual and mechanical feedback for your storage status check (e.g., Health/Capacity).
- Control Gateway layer: An SSH Client provides a manual command-override or autonomous status check during the initial calibration to coordinate system status.
- Processing Logic: The Droppy server code follows a "request-dispatch" strategy: it interprets incoming network requests and matches them to file-paths to provide safe and rhythmic data sharing.
- Communication Dialogue Loop: Logs are sent rhythmically to the terminal during the initial server startup to coordinate status.
Hardware-Network Infrastructure
- Raspberry Pi: The "brain" of the project, managing multi-directional network sampling and coordinating storage and security sync.
- SD Card: Providing a clear and reliable "Storage Link" for every point of the file system.
- Ethernet Cable/Wi-Fi: Providing high-capacity and reliable physical interface for your first successful "Data Mission."
- Pi Case: Essential for providing clear and energy-efficient protection for every point of the hardware.
- Power Supply: Used to power your Pi and provides the primary interface for the system controller.
Advantages
- Responsive HTML interface.
- Authentication is required for login.
- Real-time update on change file system.
- Multi Directory and File upload support.
- Drag-and-Drop option for uploading.
- Split-screen support.
- Search button provided.
- Zip download support for directories.
- Generate shareable links of files.
- Text editor to edit text files.
- Various language support for text editors.
- View media files online.
- Full-screen support.
- Homescreen support on android and win-10.
- Create file and directory support.
- Delete files and directory support.
- Add and Delete users.
- After some setup, it can be accessed over the network (Article will be updated after this feature is added).
Disadvantages
- Need constant power supply.
- Need constant internet connection.
- Don’t support separate storage partitions for multiple users.
- Don’t support the online view of word, excel, PowerPoint files.
- When we setup and use it over the network large files are not able to upload correctly. You have to upload all files in zip.
- Sometimes due to bad network connectivity, it takes lot of time to play the video online.
We are working on it to fix all its disadvantages and to add new user friendly features to it.
Detail Video tutorial
Please watch the complete video for the full tutorial.
And like, share, comment on this video if you are new subscribe to our YouTube channel and follow on Arduino ProjectHub.
Project Images
Below are some images of the project.
Commands used
apt-get update –yapt-get upgrade –yapt-get install npm –ynpm install –g nn latestnpm install –g droppynpm install –g localtunnelchmod –R ugo-rwx /srv/cp –rvf /usr/bin/nodejs /usr/bin/nodedroppy start –c /srv/droppy/config –f /srv/droppy/files
Now just copy the IP address from the terminal and paste it into your browser. For the first time, you have to set your username and password and after that, you can login from any device’s browser with the same username and password which you set.
Now you can store any files online on your own server and access them from anywhere. Enjoy!
[!IMPORTANT] The Droppy Server requires an accurate Permission mapping (e.g.,
chmod/chown) in the code to avoid unauthorized access to the files; always ensure you have an appropriate Fail-Safe flag in the loop if the power drops!
Future Expansion
- OLED Identity Dashboard Integration: Add a small OLED display on the Pi case to show "IP Address" or "Storage Usage (%)".
- Cloud Backup Synchronization: Connect specialized "Cloud Backup (Rclone)" to perform higher-precision "Off-site Syncing" wirelessly via a cloud service.
- Cloud Interface Registration Support: Add a specialized web-dashboard on a smartphone over WiFi/BT to precisely track and log the total storage history.
- Advanced Automation Support: Add specialized "Machine Learning" to the code to allow triggers to be changed automatically based on user behavior patterns!
File Storage Server is a perfect project for any science enthusiast looking for a more interactive and engaging infrastructure tool!
I hope you enjoyed this project.
Thanks!