Arlen22 / TiddlyServer

v2 - A static file server that can also save files and mount TiddlyWiki folders
https://arlen22.github.io/tiddlyserver/
MIT License
257 stars 36 forks source link

Difference from tw5 fileserver? #100

Open phlummox opened 4 years ago

phlummox commented 4 years ago

Hi,

I'm just getting familiar with Tiddlywiki5, so please forgive me if this is obvious to more experienced users. I see from the tw5 documentation that it actually includes a static file server - so, in what ways is TiddlyServer different from the normal tw5 node client/server setup?

e.g. The README says a benefit of Tiddlyserver is it "Allows you to access your wikis from any computer on the network" - but can't I do that with tw5 anyway? I run "--listen" on one of my PCs (or some web app platform like Google App Engine), and it's accessible from any other.

As I say, I'm still getting familiar with what tw5 can do, so perhaps the answer is obvious to others. But it might be worth addressing in the README for other newcomers, so they know what TiddlyServer offers in comparison to normal TiddlyWiki5.

phlummox commented 4 years ago

Just adding: it might also be useful to say how compatible TiddlyServer is with TiddlyWiki5. e.g. can wiki instances easily be swapped from one to the other? I'm assuming so, but the README doesn't say, and doesn't give instructions on transferring a wiki from tw5 to TiddlyServer.

Arlen22 commented 3 years ago

Yes, wiki instances are intentionally 100% compatible for most standard setups. There are "mods" for TW5 which are incompatible because the make significant changes to the server component, but most normal data folders and normal plugins are 100% compatible. You definitely should not be running a datafolder in both at once because that is the same as running two instances of TiddlyWiki on the same data folder -- they would overwrite each others changes.

The main reason I made TiddlyServer was so I could have multiple data folder wikis without running multiple instances and having to deal with multiple ports. It just loads up a TiddlyWiki server instance for each data folder and distributes the requests to them. However, it does this within a single process, so rather than proxying requests, it actually hands them off within the Javascript environment, which is much less complicated than proxying multiple ports.

So yeah, TiddlyServer is actually multiple TiddlyWiki instances running in the same process and sharing the same listeners. There's quite a bit of code which I wrote myself to imitate a static server instance for serving single file wikis and other files.