TiddlyServer 1.0.0 has been released. See here: https://groups.google.com/forum/#!topic/tiddlywiki/QOoceRMdABE
On Monday, May 16, 2016 at 4:57:39 PM UTC-4, Matthew Lauber 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. > > 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/d1a4d1ce-741f-4c4a-bb17-953ec8ba132d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
