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.
