Hi Matt

Bravo! A terrific piece of work, and this is exactly the direction that I was 
hoping to take TiddlyDesktop. I’m on vacation at present, and will look forward 
to putting it through its paces when I return in 10 days or so,

Best wishes

Jeremy

> On 16 May 2016, at 14:57, Matthew Lauber <[email protected]> wrote:
> 
> All,
>    I am pleased to announce the initial public offering of software I've 
> taken to calling TiddlyServer <https://github.com/mklauber/TiddlyServer>.  
> TiddlyServer is a NW.js desktop application that can be used to setup a local 
> server serving  multiple Wikifolders.
> 
> To start off with, here's a quick look at the current UI.  
> 
>  
> <https://lh3.googleusercontent.com/-JAci075PzQM/Vzou22n4goI/AAAAAAAAATU/FlMnG_d3bqQr6ZueT4-FZnPVrS7C8HuxACLcB/s1600/Screenshot%2Bfrom%2B2016-05-16%2B16%253A33%253A51.png>
> 
> The top Row is how you add additional wiki folders.  Using the "Choose File" 
> button you can select the root folder of your WikiFolder instance.
> The text box is the prefix you want the site to be available at.  
> The Add button has a click event that adds the path and prefix to the config, 
> starts the server, and then refreshes the UI.
> 
> Below that are multiple rows of Individual wikis.  Right now they're very 
> sparse, grabbing just the title from the wiki itself, then listing the prefix 
> for that wiki.  Clicking anywhere on the row for a wiki opens it in your 
> default browser.
> The Delete word is a button that stops the server and removes the wiki from 
> the config file, then updates the UI.
> 
> Now a quick look at how this is designed.
> 
> This application is basically a big wrapper around being able to start 
> multiple instances of TW5.  the code here 
> <https://github.com/mklauber/TiddlyServer/blob/master/source/js/server.js> 
> contains most of the logic.  
> Upon starting up, it loads a config file if it exists, instantiates a TW5 
> instance for each wikifolder in the list.
> The instance of TW5 is running a custom TW5 command "unixserver 
> <https://github.com/mklauber/TiddlyWiki5/blob/multiserver/core/modules/commands/unixserver.js>"
>  that basically uses a unix socket file instead of a port number.
> Each instance of TW5 starts listening on it's socketPath.
> It also starts up a proxyServer listening on port 8080.  This proxyServer 
> looks at the path part of the url, and uses that to proxy the request to the 
> correct Socket.
> If the wiki path does not match any prefix it'll respond saying that path 
> doesn't match any wikis, please choose from the list below... and lists the 
> wikis
> Finally, the UI starts up.  The UI allows the end user to add or remove the 
> wikis and prefixes available.  
> A few notes at present.
> This likely only works on Unix and OSX.  I'm currently relying on Unix Socket 
> files to communicate between the proxy server.  AFAIK, unix socket files are 
> not supported on Windows.  It would be possible to change this to use 
> multiple ports.
> This does not support WikiFiles, yet.  Only WikiFolders.
> The UI was hacked together via React in an afternoon to demonstrate that this 
> was feasible.  It does not provide basically any error handling.
> 
> Installing:
> Download the stable release of nw.js from http://nwjs.io/ <http://nwjs.io/>
> extract nw.js
> Clone the repository at https://github.com/mklauber/TiddlyServer.git 
> <https://github.com/mklauber/TiddlyServer.git>
> cd to the `source` directory of the cloned repo
> run `npm install`
> Running: 
> run `/path/to/nw.js-vx.x.x-.../nw .`
> 
> I was inspired to tackle this based on some comments Jeremy made on the 
> direction that he'd like to take TiddlyDesktop.  Hopefully the community 
> finds it interesting, if not yet actually useful.  I would appreciate 
> feedback, suggestions, and especially Pull Requests.
> 
> Thanks,
> Matt Lauber
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "TiddlyWikiDev" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To post to this group, send email to [email protected] 
> <mailto:[email protected]>.
> Visit this group at https://groups.google.com/group/tiddlywikidev 
> <https://groups.google.com/group/tiddlywikidev>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/tiddlywikidev/f21846e3-f3ac-4b31-86af-b6f252da61f3%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/tiddlywikidev/f21846e3-f3ac-4b31-86af-b6f252da61f3%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tiddlywikidev.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/C2BA8CED-805B-49CA-B08A-1D0571FCA369%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to