A multiplayer file system. All files synced realtime, offline-ready. Use apps for each file types. Make your own apps on the platform. Access control per-file.
git clone https://github.com/garden/tree
cd tree
mkdir -p admin/private; cp env.json admin/private/ # See admin/README.md
# For development:
make start
open http://[::1]:1234
# For production:
make install
tail -f admin/log/tree.log # to see errors.
sudo systemctl restart tree # when you need to restart the server.- Create
- file:
PUT /(content is body) - folder:
MKCOL /
- file:
- Read
GET /(show in default browser app)GET /?app=data(raw, optional headerDepth:3for folder; TODO slice)GET /?app=metadata Content-Type:multipart/form-data(JSON)
- Update
- single file:
- data:
- overwrite:
PUT / - TODO append:
POST /?op=append - TODO partial:
PATCH / - sync: websocket
/?op=edit&app=text(TODO json, dir)
- overwrite:
- metadata:
PUT /?app=metadata Content-Type:application/json(TODO:PATCH /)
- data:
- multiple files:
POST /?op=append&content Content-Type:multipart/form-data - folder:
- TODO copy:
COPY /from Destination:/to Overwrite:T - TODO move:
MOVE /from Destination:/to Overwrite:F - TODO shell:
POST /?op=shell&cmd=make&keep=a.out(stdin is body, stdout is result, unless websocket)
- TODO copy:
- single file:
- Delete:
DELETE /
- Open issues
- Send pull requests
- Contact Thaddee Tyl
- Allow user-made apps
- Send
APP_AUTH - Use a safe templating system
- Send
- JSON sync
- File search
- Snapshots (may require to migrate the file content to CockroachDB)
- Remote desktop
This project is covered by the GNU General Public License (version 2) and contains code from:
- ScoutCamp, a powerful web server (LGPL license)
- CodeMirror, a nifty in-browser code editor (MIT license)
- Canop, a real time sync system (MIT license)
- CockroachDB, a distributed SQL database