Before you begin, ensure you have:
-
Install the Plugin
- Open Obsidian Settings
- Go to Community Plugins
- Search for "Mind Matrix"
- Click Install and Enable
- Download the latest release from GitHub Releases
- Extract the files to your vault's plugins directory:
.obsidian/plugins/mind-matrix/ - Restart Obsidian
- Enable the plugin in Community Plugins settings
-
Set Up Supabase
- Create a new Supabase project at supabase.com
- Go to Project Settings > Database
- Copy your database password
- Go to Project Settings > API
- Copy your Project URL
-
Configure the Plugin
- Open Mind Matrix settings in Obsidian
- Enter your Supabase credentials:
- Project URL
- Database Password
- Enter your OpenAI API key
- Click "Initialize Database" to create the required tables
-
Start Using
- The plugin will automatically sync your notes
- Use the command palette to search your knowledge base
- Configure exclusion patterns if needed
Before you begin, ensure you have the following installed:
- Node.js (v16 or higher)
- Yarn package manager
- PostgreSQL (v14 or higher)
- jq (for password encoding)
- coreutils (for timeout command)
The inspiration for this plugin came from watching Nate Herk's YouTube video Step by Step: RAG AI Agents Got Even Better. This is great to watch to setup your Telegram Chatbot using n8n to connect to the Supabase database. I made an "Obsidian" workflow which I can plug into other n8n workflows to get information from my Obsidian vault in different scenarios. It has made retrieving knowledge from my vault so much easier and more practical in different use cases.
-
Clone the repository
git clone https://github.com/yourusername/mindmatrix.git cd mindmatrix -
Install dependencies
yarn install
-
Set up environment variables
- Copy
.env.testto.env:cp .env.test .env
- Update the
.envfile with your Supabase credentials:SUPABASE_URL=https://your-project-ref.supabase.co SUPABASE_DB_PASSWORD=your-database-password
- Copy
-
Initialize the project
make init
This command will:
- Check for required tools
- Verify environment variables
- Test the database connection
- Set up the database schema
make dev- Start the development servermake test-db- Test the database connectionmake reset- Reset and set up the database
make install-postgres- Install PostgreSQL if not already installedmake test-db- Test the database connectionmake reset- Reset the database and run setup scripts
make release- Create a patch release (default)make release-major- Create a major releasemake release-minor- Create a minor releasemake release-patch- Create a patch release
The release workflow will:
- Check for a clean working directory
- Verify we're on the main branch
- Bump the version number
- Generate a changelog
- Create and push a git tag
If you encounter database connection issues:
-
Check IP Address Restrictions
- Run
make test-dbto see your current IP address - Add this IP to your Supabase project's network restrictions
- Wait a few minutes for changes to take effect
- Run
-
Verify Connection Details
- Ensure your
SUPABASE_URLandSUPABASE_DB_PASSWORDare correct - Check if the project reference matches your Supabase dashboard
- Verify there are no network restrictions or firewall rules blocking the connection
- Ensure your
-
Install Required Tools If you see errors about missing commands:
psql: Install PostgreSQL withmake install-postgresjq: Install withbrew install jqtimeout: Install withbrew install coreutils
If you encounter issues during release:
-
Working Directory Not Clean
- Commit or stash any changes before running release commands
- Use
git statusto check for uncommitted changes
-
Not on Main Branch
- Switch to the main branch with
git checkout main - Ensure all changes are merged before releasing
- Switch to the main branch with
-
Version Bump Issues
- Check
manifest.jsonandpackage.jsonfor correct version format - Ensure you have write permissions to these files
- Check
If you encounter any issues not covered in this guide:
- Check the error messages for specific details
- Review the troubleshooting steps above
- If the issue persists, please open an issue in the repository