{"id":28578110,"url":"https://github.com/tiddlywiki/multiwikiserver","last_synced_at":"2025-10-13T01:18:16.231Z","repository":{"id":278246102,"uuid":"934691629","full_name":"TiddlyWiki/MultiWikiServer","owner":"TiddlyWiki","description":"Multiple Users, Multiple Wikis","archived":false,"fork":false,"pushed_at":"2025-06-06T03:08:07.000Z","size":16979,"stargazers_count":24,"open_issues_count":24,"forks_count":9,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-06-06T03:20:18.519Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TiddlyWiki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-18T08:53:40.000Z","updated_at":"2025-06-01T12:16:47.000Z","dependencies_parsed_at":"2025-03-13T04:22:44.889Z","dependency_job_id":"dfe9d606-e48b-4d4b-b19f-ca218e4d0721","html_url":"https://github.com/TiddlyWiki/MultiWikiServer","commit_stats":null,"previous_names":["tiddlywiki/multiwikiserver"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FMultiWikiServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FMultiWikiServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FMultiWikiServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FMultiWikiServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TiddlyWiki","download_url":"https://codeload.github.com/TiddlyWiki/MultiWikiServer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TiddlyWiki%2FMultiWikiServer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259178493,"owners_count":22817387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-11T01:08:47.135Z","updated_at":"2025-10-13T01:18:16.226Z","avatar_url":"https://github.com/TiddlyWiki.png","language":"TypeScript","funding_links":["https://www.paypal.com/donate/?hosted_button_id=BVDDREGEU2ZEA"],"categories":[],"sub_categories":[],"readme":"# MultiWikiServer\n\n\u003ca href=\"https://www.paypal.com/donate/?hosted_button_id=BVDDREGEU2ZEA\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/6467378f-26fd-40ff-b60e-b8d62555c08a\" width=\"20\" /\u003e\nDonate via PayPal to support development\n\u003c/a\u003e\n\n---\n\nMultiple users, multiple wikis for TiddlyWiki.\n\n- Bag \u0026 Recipe system for storing tiddlers.\n- User and Role management with ACL.\n- Multiple database engines supported, using Prisma.\n- Third-party OAuth and password-based login.\n\n## Flexible and Extendible\n\n- Plugins can add routes and hooks.\n- Abstractions everywhere, allowing flexibility.\n- The source code is fully typed and easy to navigate.\n- Admin endpoints can also be called from the CLI.\n\nMost of these features are still in development.\n\n**Do not use it to protect feelings or intellectual property.**\n\n## Warning: Security is still a dumpster fire.\n\n**While the database structure is reliable, the security mechanism isn't. Do not use it to protect feelings or intellectual property. There are still ways to easily get around the security restrictions.**\n\n![this is fine](https://github.com/user-attachments/assets/49505d25-7a48-42f1-b4f7-73e8630c1ba1)\n\n\n## Also, this is a database, please make backups\n\nDatabases try very hard to be perfect, and data bugs are rare. But that doesn't mean things can't go wrong. Backups are pretty important. \n\n## How to run\n\nThe init command creates a new folder and installs what you need to get started. You can name \"my-folder\" whatever you want. \n\n- `npm init @tiddlywiki/mws@latest my-folder`\n- `cd my-folder`\n- `npx mws init-store`\n- `npx mws listen --listener`\n\nYou can run `npx mws help` to get more information about the commands. \n\n- the server runs on port `8080`. It does not use HTTPS by default, but you can enable it by specifying a key and cert.\n- A `passwords.key` file is created which contains the password master salt. If this file changes, all passwords will need to be reset.\n- Your database is in the `store` folder. All files in the `store` folder are data files, not temp or lock files! Never delete them! \n\nThe initial user created on first run has the username `admin` and password `1234`.\n\nIf you run into trouble, or need help figuring something out, feel free to [start a discussion](https://github.com/TiddlyWiki/MultiWikiServer/discussions). If you know what's wrong, you can also open an issue.\n\n## Updates\n\nIf upgrading from 0.0, 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 then create a new instance and import your wikis via the browser.\n\nIf updating within 0.1,\n\n- Copy or zip your entire folder to **a safe backup folder**.\n- `npm install @tiddlywiki/mws@latest`\n\nIf there are any database changes, MWS should pick them up and apply them on startup. The changes are generated by prisma's builtin migration and are supposed to preserve data, but backups are still highly recommended.\n\nThe 0.1 database is incompatible with the 0.0 database. Version 0.1 will detect this and exit immediately to prevent data loss.\n\n## Backups\n\nIt is recommended to backup your entire data folder, not just the `store` folder, except the `cache` folder. \n\n- You must *always* backup the *entire* `store` folder. Never delete any files in the `store` folder. All files in the `store` folder are data files!\n- You should definitely backup the `package.json` file, as it contains the MWS version you are currently using. The `package-lock.json` file is also useful if you don't want to back up the entire `node_modules` folder for some reason. \n- The `cache` folder (next to the `store` folder) is generated every time MWS starts, so you can exclude that from backups if you want. \n- The `node_modules` folder should be included in your backup, as it contains all the application code required to run your database, but it can also be reconstructed from the `package-lock.json` file or the `package.json` file. \n\nMWS uses NPM packages, so as long as you back up the *entire* store folder, and the package-lock.json file, you should have enough information for a NodeJS developer to reconstruct the site. \n\n## Development\n\nIn 0.1, the development data folder is `/dev/wiki`.\n\nIf you want to work on the project,\n\n- `git clone https://github.com/TiddlyWiki/MultiWikiServer`\n- `cd MultiWikiServer`\n- `npm install` or `npm run install-android`\n- `npm run certs` - if you want https (unix only)\n- `npm start init-store` - Create the `admin` user and import default wikis.\n- `npm start` - this will run the build every time, but it's very fast.\n\nThe development wiki will be active at http://localhost:8080/\n\nYou can change the listeners as explained in the mws.dev.mjs file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiddlywiki%2Fmultiwikiserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiddlywiki%2Fmultiwikiserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiddlywiki%2Fmultiwikiserver/lists"}