local-cloud
local-cloud copied to clipboard
Turn any computer at home into a cloud for easy sharing of files across your devices.
local-cloud
Looking for contributors. Please check the future plans if you wish to contribute and make a pull request.
This program can turn your desktop into a local cloud server. This is a website which will run locally over your wifi( without port forwarding) and will be accessible to all your devices.
You can now access and transfer files from your different devices with ease. The new version (version 2) has been implemented using vuejs. Version 1 was a pilot project and is not recommended for use(it is not supported by me any longer).
Version 2.4 is Here
What's new
-
Log the contents on the server console (The logging is colour coded)
- Red = Error/Delete
- Green = Access Files/ Download
- Blue = Upload/ Create new folder
-
Fixed bug - earlier if you uploaded a file that exists in root, into some subfolder, the root file would get deleted.
-
Several minor bugs fixed.
-
File Upload size increased to 60,000 MB from 256MB
-
Executables have been made available (since version 2.3)
Version 2.3 is Here
What's new
- Delete Files
- Download from releases, the app is finally PACKAGED as an executable!! You don't need to download nodejs or anything else anymore
- delete folder (in context menu- right click)
- download entire folder (in context menu- right click)
- Upload folder has shifted to home directory
- For windows => Users > username > HomeCloud
- You don't need to look for your ipv4 address anymore, it displays it for you
Table Of Contents
- Images:file_folder:
- Setup Requirements :rocket:
- Access the Website:key:
- Docker Setup:whale:
- Libraries Used:computer:
- Future Plans:bulb:
Images :file_folder:
These images might be from older versions of the same app and might appear different from the one you setup. Please open
an issue for requesting icons or suggesting any colour improvements.
Setup Requirements :rocket:
-
A computer :smiley:
-
Yarn (please use yarn), it can be downloaded via npm
npm install -g yarn
How to access the website/Setup Procedure :key:
Version 2(vuejs implementation)
If your wish to set it up for development follow these steps, else check the releases for a better bundled package
-
There are 2 main folders server and client, the vuejs code is inside client and the express backend code is inside server
-
open up 2 terminals/cmd in the root folder.
TERMINAL 1 yarn install yarn start TERMINAL 2 cd client yarn install yarn serve
-
The website can be found on ipv4:8080, ~~check version 1 procedure to see how you can find your ipv4 address~~. From version 2.4 onwards the ip address is displayed for you, visit that on any device on the same network.
For version 1
-
Open your desired terminal/command prompt - cmd, terminal, git bash on the computer you plan to use as your cloud server
-
Type
ipconfig
and find the IPv4 address -
The website will be available on IPv4 Address:5000 For example: 192.168.1.7:5000
-
To start the server run the following 2 commands
yarn install yarn start
-
You can access the website on any device at that address
Running inside of Docker :whale:
To run local-cloud inside of Docker, run the following command in the root directory
docker build -t local-cloud .
docker run -d -p 5000:5000 -v "uploads:/usr/src/app/uploads" local-cloud
Docker Compose
If you want to use Docker Compose, run the following command
docker-compose up -d
Libraries used - Links to some main ones npm/official website :computer:
- expressjs with axios, cors, multer, fs
- dropzone.js
- vuejs
- vue-sidebar-menu
- zip-a-folder
- local-ipv4-address
Future Plans and Timeline :bulb:
- [x] Pilot project with vanilla html-css and js
- [x] Implement with vuejs
- [x] Fix some UI issues - aligning etc
- [x] Create Folders
- [x] Download Files
- [x] Upload Files
- [x] Delete files
- [x] View File size
- [x] Delete Folders
- [x] Download entire folder(as a zip)
- [x] Coloured logging of events (for server console)
- [x] Implement some security features - Restricted access to other files on the system by blocking requests outside the
home directory - This has been done for navigation(getting directory content), for downloading files and folders and
for deleting files or folders
- [ ] File Chunking/Streaming for smoother downloads of larger files currently working on this
- [ ] Improve UI
- [ ] Password protect files (for downloading on other devices)
- [ ] Non downloadable files
- [ ] Move files into different directories
- [ ] Updated docker support -> Currently not working
Development oriented plans :bulb:
- Clean unnecessary code
- Make API RESTFUL
- make various synchronous processes asynchronous
- Reduce dependencies
Some useful new features
- Check file size
- ctrl + click on file to download directly
- Right click folder for context menu
Icon Credits
-
Icons made by xnimrodx from www.flaticon.com
-
Icons made by DinosoftLabs from www.flaticon.com
-
Icons made by Pixel perfect from www.flaticon.com
-
Icons made by Freepik from www.flaticon.com
-
Icons made by Kiranshastry from www.flaticon.com