

That’s a pretty big sandbox if you can host a web application from it though. It’s really not that restricted but there are compatibility issues so you find your self rebuilding primitives to make things work.
I think the next think I want to make is a notes/word processing web app. There is a pretty good use case to be to able to connect and process documents from a private server on any machine.
Ok,
Here is a more polished version with MIT license.
Improvements
-User counts
-Connection Status Indicator
-Ability to turn on persistent rooms. By default, the server only relays in real time. /persist turns on chat logs. The server then stores encrypted messages and users can chat asynchronously.
-Rotating onion address and keeping existing onion now work correctly. If you rotate a onion address, since encryption keys are partially derived from the onion address, the client will be unable to decrypt messages even if the same password is used.
-filter command can be used to bootstrap private rooms in a scenario where multiple people want to use the same server, yet chat privately. All it does is filter out messages that it can’t decrypt because it has the wrong password.
-Got rid of ncurses set up menus to slim down the script a bit.
-Removed redundant server manager commands and now only list two. Quit and Quit and Flush (this deletes everything in the server directory except persistent chat logs if they were turned on)
New UI
Example of Encrypted Chat Logs on Server Side
I noticed some of my devices during testing wouldn’t connect without hosting a server in a seperate instance. I’m not sure why this is happening but if you can’t connect, try to host a server and then connect to another host. This seemed to fix the issue.