daed / laverna

Attention: Development on Laverna has been moved to a new repository at https://github.com/encryptic-team/encryptic. This repository (as well as the master at laverna/Laverna) should be considered depricated.
https://encryptic.org
Mozilla Public License 2.0
38 stars 0 forks source link

OneNote Alternative for Noobs? #10

Open chr0max opened 5 years ago

chr0max commented 5 years ago

Hi,

I´m not very familiar with the whole fancy technology stuff, so I´m doomed to sell my privacy the big ones. Nextcloud shows that even a complex thing can be used by technology-noobs if they manage to upload some files on a server.

The point is, I only have a simple webspace with php and mysql. Can I use laverna (or connote tbd) for my personal online notebook there, with the data saved on the server?

Nextcloud works, but the note there has no image support. ☹️

I found many nice notebooks for servers, but mostly they uses fancy technologies that need a full server with SSH to install. I presume that most people (like me for example) don´t have this and a system that works even on this simple webspace could be popular. (Journalists for example)

My provider allows me in the backend a very convenient installation of wordpress. I already thought about to abuse it as a notebook, but if complex cms like wordpress is possible, there should be a little laverna also somehow 😇

daed commented 5 years ago

As it stands, you can actually statically host the /dist directory on a web server (apache, etc) and it seems to work just fine with no extra configuration. No node interpreter is actually required that way since you already have a webserver. I think this is because webpack sticks all of the modules we actually use inside client-side javascript. I'm still trying to better understand how that part works. I've got one set up at https://notforhire.org/laverna/ as a proof of concept.

You could host your own like that just fine. The issue would be synchronization. Even if you host the pages online, it still stores your notes in your broswer's local storage, so there's no major difference between that and the desktop app except that you don't need to download anything.

I think mongodb would be an easier place to go from here than mysql is, simply because it's halfway implemented already and it's a lot closer conceptually to local storage, which is basically just an overglorified directory of key-value pairs. The problem with that is that, while a lot of hosting companies will offer you free mysql, not so many offer mongodb as an option.

Since there is no backend code, everything is accessible to the browser. This creates interesting issues as it potentially exposes database connection info to whoever uses the software unless you keep it at a user configuration level. We already do that to some extent with dropbox, so other connection types should be possible, but I'm not sure how easy it is to just drop a new connection type in place. Based upon my effort to remove the signal server code, there's at least 3-4 files that need to be changed in addition to the actual code being put in place, and I'd need to look closer at the dropbox sync stuff to see how much of that is reusable.

From a technical point of view, I think this is something that could be doable. From a man-hours point of view, I'm already swamped. Semi-off topic: I was already thinking about a filesystem sync adapter so that you could use locally mounted nfs/samba directories. That would be nice because it could also be used for people who have issues with the dropbox api adapter, which from the number of complaints seems to be everyone other than me for some reason.

So I guess I can say that I understand what you're looking for, I think the idea is viable, and I would like to implement it, but I don't know when that'll happen. I will put it on the roadmap. I need to make a roadmap.

chr0max commented 5 years ago

Thanks for the energy you put into this. The easyness could be the different between this and the other notebooks out there.

I already discovered, that the notes are stored in the browser. (too bad that firefox doesn´t sync the website data....). How about thinking out of the box. A browser can do no ftp connection I presume, maybe a browser helper plugin could do? Or as a Nextcloud-App that is better than the Notes plugin there?

just some ideas....but you know better.

daed commented 5 years ago

I'm not sure I do. :D

I think most browser plugins have the ability to touch the local hard drive. Advanced capabilities I was considering included being able to outside-of-browser save your password and also do filesystem synchronization, which would also cover smb and nfs shares. Ftp might be tricky since it would depend upon an external application, but it might be doable. I think most OSes still come with a bundled ftp program with some basic level of functionality.

The ultimate goal as long as I'm daydreaming I suppose would be to have something modular enough that people could build extensions for whatever sync option they want and then just download / select the one of their choosing.

chr0max commented 5 years ago

I think most OSes still come with a bundled ftp program with some basic level of functionality.

On Windows....yeeess, but not very handy for beginners. On MacOS is only read through ftp possible and the connection is really fragile (finder freezes often). You have to use on all platforms Netdrive, Webdrive, ExpanDrive or Mountain Duck.

It´s strange to me, that I can install a forum, guestbook or wordpress, but a Notetool like laverna is a huge problem. For me is online-only acceptable.

daed commented 5 years ago

Well, the idea was that it could be used as a native means of note sync and all interactions with it happen behind the scenes. If MacOS is read-only though, that's kind of a non-starter. But ftp sync is a long ways off still and since this is javascript, I'm sure there's an js only ftp implementation out there somewhere.