AppFlowy
AppFlowy copied to clipboard
[FR] Server sync
1~3 main use cases of the proposed feature Are there plans to have a server one can self-host for syncing files between multiple devices (computers, cellphones, tablets...)? Alternatively it can be a good option to let the users decide where to store the sqlite database (dropbox, icloud, google drive, etc...)
what types of users can benefit from using your proposed feature Every user that uses more then 1 device
Additional context Nothing to add besides this is a great project and it looks great!
You may have few options:
- Store on Google Drive and share between devices
- Create Server API with realtime DB and storage on AWS S3 bucket.
Depends of complexity and requirements.
1~3 main use cases of the proposed feature Are there plans to have a server one can self-host for syncing files between multiple devices (computers, cellphones, tablets...)? Alternatively it can be a good option to let the users decide where to store the sqlite database (dropbox, icloud, google drive, etc...)
what types of users can benefit from using your proposed feature Every user that uses more then 1 device
Additional context Nothing to add besides this is a great project and it looks great!
Thanks a lot for your inputs. End-to-end encryption sync is sitting on our roadmap. This is something that users with more than one device would need. Your alternative plan sounds promising. I'm wondering where you'd like to store? Is there any data security concern?
Annie
self-host and share with peoole like website :D
I am working on a flutter + hive (can be other DB if it allow to define base class) + crdt + django channels backend package. Would it be something Appflowy is interested to use? If they implement offline working with that, my package can sync with django backend real time. For one user with multiple device it already works (need to clean the code etc). For multiple user I need to improve it. Of course the django app can be self hosted
Minio , S3 Or other object storage
Duplicate of https://github.com/AppFlowy-IO/AppFlowy/discussions/540
https://github.com/AppFlowy-IO/AppFlowy/issues/602
Some ideas, what do you think?
-
Would be nice (and cheap) to symmetrically encrypt per file and allow user to share by links.
-
There could be multiple kind of keys - owner, edit and view. Owner can manage them, generate multiple links with different keys etc. Owner keys could maybe be asymmetric public keys, edit key just random string.
-
By default owner file keys are stored in user account and view keys in parent folder (in a link to the child file?). User can get share link like: https://share.appflowy.io/FILE_ID#view=FILE_KEY&edit=EDIT_KEY.
-
On the server there will be dump CDN with SPA. It will get file by its ID from S3-like storage, decrypt by view key in hash and render. So viewing files will be cheap.
-
For saving and colaboration there will have to be some backend which will check edit and owner keys. Also it can enforce billing.
-
For sake of freedom there could be not only super simple to use official paid cloud, but also option to store plain markdown files anywhere (local, Dropbox, Drive, iCloud, …).
Thanks, @iBobik for your input. I'm learning new things from you! What benefits would you gain from assigning different keys for different permissions compared to other alternative ways of managing permissions?
Tell me about some specific alternative and I will compare it 😉
But generally usual solutions does not care about privacy and want to motivate more people to create accounts or at least generate leads (collect contacts).
Also my proposal is cheaper to operate. (At least view only sharing.)
Also that view only sharing could be very simple to implement.
Will WebDAV be supported?
Is there a chance that this is now implemented with AppFlowy-IO/AppFlowy-Cloud?
We now support self-hosting AppFlowy: https://docs.appflowy.io/docs/guides/appflowy/self-hosting-appflowy