We love wikis, and we believe that knowledge management is fundamental to achieving countless goals. Now, weโre reimagining both. If youโd like to use memoWikis, visit https://memoWikis.net. If youโre interested in hosting or improving it, check out the sections below.
We view wikis as excellent knowledge-management tools, yet weโve always believed thereโs more to knowledge management than simply organizing documents. While document organization remains at its core, itโs equally important to understandโand visualizeโwhat you already know. Providing the right tools and training to facilitate learning is core aspect of memoWikis.
We provide Docker images for the backend and frontend.
- https://github.com/MemoWikis/webapp/pkgs/container/mem-backend
- https://github.com/MemoWikis/webapp/pkgs/container/mem-nuxt
For configuration, see "Local development" for instructions. It is best to adjust the Docker Compose files to suit your needs. If you need further help, just get in contact ๐.
If you have a publicly accessible memoWikis instance, weโd be happy to link your page here. Weโre also curious to hear about your experiences, so please drop us a note!
This web application is built around a Nuxt 3 frontend and a .NET backend, complemented by additional services including Dockerized MySQL, Redis, Meilisearch, and Hocuspocus for Tiptap.
- Git โ for cloning the repository
- Docker & docker-compose โ to run the backend services
- Node.js & npm โ for the Nuxt 3 frontend
- Rider / Visual Studio โ for debugging the .NET backend
- A terminal of your choice (e.g., PowerShell on Windows or Bash on Linux)
Clone the repository to your local machine:
git clone https://github.com/memoWikis/webapp.git
cd webappThe project uses example configuration files that need to be copied to their corresponding development files.
cp ./Backend/appsettings.Development.json.example ./Backend/appsettings.Development.json
cp ./Docker/Dev/.env.example ./Docker/Dev/.env
cd ./Docker/Dev
docker-compose up -dNote
- Copies the example config files:
appsettings.Development.json.exampleโappsettings.Development.json.env.exampleโ.env
- Starts the Docker services using
docker-compose up -d, which include:- Hocuspocus (for Tiptap collaboration)
- Redis (for state management for Tiptap Hocuspocus)
- MySQL (running in Docker)
- Meilisearch (to power the search functionality)
cp ./Backend/appsettings.Development.json.example ./Backend/appsettings.Development.json -Force; `
cp ./Docker/Dev/.env.example ./Docker/Dev/.env -Force; `
cd ./Docker/Dev; `
docker-compose up -d
To enable the AI functions within the application, you must supply a valid Anthropc API key. Open the file Backend/appsettings.Development.json and update the Anthropic section with your API key as follows:
{
"Anthropic": {
"ApiKey": "your-actual-api-key"
}
}Warning
Without a valid API key, the AI functions in the application will not work.
The Nuxt frontend project is located in the Frontend.Nuxt folder (inside the src folder). To start the Nuxt 3 development server, run:
cd ./Frontend.Nuxt
npm install # Run this if dependencies are not yet installed
npm run devNote
Note: Make sure your Node.js version meets Nuxt 3 requirements.
The backend solution file is located at the root of the src folder as memoWikis.sln. To run and debug the backend:
- Open memoWikis.sln in Visual Studio.
- Select your preferred debug configuration.
- Start the Backend.Api debug session.
-
Anthropic API Key for AI Functions: Ensure your valid Anthropc API key is inserted in the appsettings.Development.json file. Without this key, the AI features will not work.
-
Docker Management:
- To check the status of your containers:
bash docker-compose ps - To view logs for any service:
bash docker-compose logs [service-name]
- To check the status of your containers:
-
Nuxt Configuration: For frontend customizations, review the
nuxt.config.tsfile in theFrontend.Nuxtfolder.
To apply a new version of the SQL schema after you've completed the initial setup:
Important
Precondition: You must have completed the Setup steps above and have Docker services running.
Tip
GitHub Copilot Users: You can use the reset-dev-database skill in Copilot by typing reset dev db. This automated skill will copy the test scenario SQL dump, update the database name, and reinitialize the MySQL container for you.
cd ./src/Docker/Dev; `
docker-compose down; `
Remove-Item -Recurse -Force C:\mysql-data\development; `
docker-compose up -dcd ./Docker/Dev
docker-compose down
sudo rm -rf /var/lib/mysql/development # Adjust path if you use a different volume mount
docker-compose up -dThe MySQL container will automatically execute the schema.sql file from the ./Docker/Dev/mysql-init/ directory during initialization.
The schema.sql file can be generated from the test suite:
-
Run the test that creates the database dump:
Execute the test
ScenarioBuilderTests.Deterministic_Tiny_Scenario()in your test runner. -
Copy the generated dump file:
After the test runs, a SQL dump file will be created in:
/Tests/TestData/Dumps/memowikis-test-scenario_tiny.sql -
Replace and rename the database:
Copy the dump file to
./Docker/Dev/mysql-init/schema.sqland update the database name inside the file frommemoWikisTesttomemoWikis_dev.
Tip
The database name in the SQL file must match the MYSQL_DATABASE value in your .env file (default: memoWikis_dev).
This software is free for non-commercial use. You may use it within your business, as long as you do not charge others for it. See the full license details here: https://github.com/memoWikis/webapp/blob/master/licence.md.