This is not ready for primetime. Do not use it to protect feelings or intellectual property.
You really shouldn't be using it to store anything important yet. It is still in the VERY early stages of development and we don't even have proper tests verifying the security mechanisms yet. So please try it out, kick the tires, import your multi-gigabyte wikis and play around with it, but don't actually store anything you want to keep. We'll hopefully get there soon, but even the database schema itself is still in flux as we figure out what the best layout is for all the stuff we have planned.
We are working on version 0.1.0. It's not recommended to install 0.0.x anymore as it is completely incompatible with version 0.1.x.
The best way to save your information is to open each wiki and click the cloud status icon, then click "save snapshot for offline use".
You can also use the command npm start -- --save-archive archive-folder
and then load that archive into version 0.1.x. 0.1.x will make a best-case attempt to load all of the bags from your archive. For the most part this should work fine and everything should be imported correctly. The importer will attempt a fix if it finds any incompatible recipes.
- Specifically, if you have modified a TiddlyWiki plugin and then saved the modified plugin back to its plugin bag, this will be lost. TiddlyWiki plugins will no longer be served via plugin bags.
- Any other tiddlers in the plugin bags will be preserved in a new plugin bag with a temporary name, and the recipe will be updated to import the corresponding TiddlyWiki plugin according to the new system.
- Plugin bags will no longer be writable in recipes. Instead, plugin bags will be modified by opening them directly in a virtual recipe containing only that bag so that the contents can be modified as desired.
Multiple users, multiple wikis for TiddlyWiki.
- Bag & Recipe system for storing tiddlers.
- User and Role management with ACL.
- Multiple database engines supported, using Prisma.
- Third-party OAuth and password-based login.
- Plugins can add routes and hooks.
- Abstractions everywhere, allowing flexibility.
- The source code is fully typed and easy to navigate.
- Admin endpoints can also be called from the CLI.
Most of these features are still in development.
Do not use it to protect feelings or intellectual property.
The init command creates a new folder and installs what you need to get started.
npm init @tiddlywiki/mws@latest mws
cd mws
npm start
You can customize the defaults by modifying mws.run.mjs
.
- the server runs on port
5000
. It does not use HTTPS by default, but you can enable it by specifying a key and cert. - A
localpass.key
file is created to hold the password keyfile. If this file changes, all passwords will need to be reset. - The data folder (
wikiPath
) iswiki
by default.
The initial user created on first run has the username admin
and password 1234
.
If you run into trouble, or need help figuring something out, feel free to start a discussion. If you know what's wrong, you can also open an issue.
This is the process for updating to a new version of MWS.
- Copy or zip your
store
folder to a safe backup folder. npm install @tiddlywiki/mws@latest
- Run
npm start
. This will update the database schema automatically if there are new changes.
If there are any database changes, MWS should pick them up and apply them. The changes are generated by prisma's builtin migration and are supposed to preserve data, but backups are still highly recommended.
If you want to work on the project,
git clone https://github.com/TiddlyWiki/MultiWikiServer
cd MultiWikiServer
npm install
ornpm run install-android
cd react-user-mgmt
npm install
cd ..
npm run certs
- if you want https (unix only)npm start
- this runs the build and test every time, but it's pretty fast
The development wiki will be active at http://localhost:8080/dev
You can change the listeners as explained in the mws.dev.mjs file.