Skip to content

MemoWikis/webapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

memoWikis

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.

Knowledge management

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.

Table of Contents

Hosting

We provide Docker images for the backend and frontend.

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!

Local Development

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.

Prerequisites / TechStack

  • 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)

Setup

1. Clone the Repository

Clone the repository to your local machine:

git clone https://github.com/memoWikis/webapp.git
cd webapp

2. Configure Environment Files & Start Docker Services

The project uses example configuration files that need to be copied to their corresponding development files.

On Linux / macOS (Bash):

cp ./Backend/appsettings.Development.json.example ./Backend/appsettings.Development.json
cp ./Docker/Dev/.env.example ./Docker/Dev/.env
cd ./Docker/Dev
docker-compose up -d

Note

What This Does:

  • 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)

On Windows (PowerShell):

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

3. Set Up Your Anthropc API Key

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.

4. Run the Nuxt Frontend (Nuxt 3)

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 dev

Note

Note: Make sure your Node.js version meets Nuxt 3 requirements.

5. Launch the .NET Backend Debug Session

The backend solution file is located at the root of the src folder as memoWikis.sln. To run and debug the backend:

  1. Open memoWikis.sln in Visual Studio.
  2. Select your preferred debug configuration.
  3. Start the Backend.Api debug session.

Additional Tips

  • 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]
  • Nuxt Configuration: For frontend customizations, review the nuxt.config.ts file in the Frontend.Nuxt folder.

Common Tasks

Recreate Development Database

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.

On Windows (PowerShell):

cd ./src/Docker/Dev; `
docker-compose down; `
Remove-Item -Recurse -Force C:\mysql-data\development; `
docker-compose up -d

On Linux / macOS (Bash):

cd ./Docker/Dev
docker-compose down
sudo rm -rf /var/lib/mysql/development  # Adjust path if you use a different volume mount
docker-compose up -d

The MySQL container will automatically execute the schema.sql file from the ./Docker/Dev/mysql-init/ directory during initialization.

Update the schema.sql File

The schema.sql file can be generated from the test suite:

  1. Run the test that creates the database dump:

    Execute the test ScenarioBuilderTests.Deterministic_Tiny_Scenario() in your test runner.

  2. 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
    
  3. Replace and rename the database:

    Copy the dump file to ./Docker/Dev/mysql-init/schema.sql and update the database name inside the file from memoWikisTest to memoWikis_dev.

Tip

The database name in the SQL file must match the MYSQL_DATABASE value in your .env file (default: memoWikis_dev).

โš–๏ธ License

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.

About

Wikis for Knowledge Management and Learning ๐Ÿ“–

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 16