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. 1. Upon starting up, it loads a config file if it exists, instantiates a TW5 instance for each wikifolder in the list. 1. 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. 2. Each instance of TW5 starts listening on it's socketPath. 2. 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. 1. 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 3. 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:* 1. Download the stable release of nw.js from http://nwjs.io/ 2. extract nw.js 3. Clone the repository at https://github.com/mklauber/TiddlyServer.git 4. cd to the `source` directory of the cloned repo 5. run `npm install` *Running: * 1. 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]. 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/f21846e3-f3ac-4b31-86af-b6f252da61f3%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
