MindShelf¶
📋🧠 Overview¶
The Personal Wiki project is a structured knowledge base built using Obsidian for local editing and managed via a Git repository. It leverages GitLab CI/CD pipelines to automatically deploy content as a static site using MkDocs and GitLab Pages.
The notes compiled here cover both technical knowledge and hands-on experience from specific projects, such as the coding project DashLab.
🛠️ Technologies Used¶
- Obsidian — local Markdown knowledge management
- GitLab — repository hosting and CI/CD
- MkDocs — static site generator for Markdown files
- Material for MkDocs — theme for modern documentation sites
- GitLab Pages — hosting the static website generated from the Obsidian vault
🚀 Implementation Steps¶
- Create and organize notes in Obsidian using folders and frontmatter metadata.
- Use Templater and Dataview plugins for better automation and navigation.
- Sync notes to a private GitLab repository.
- Set up a
.gitlab-ci.yml
pipeline to: - Convert notes using MkDocs
- Deploy the site using GitLab Pages
- Add
.gitlab-ci.yml
andmkdocs.yml
to the root of the repo to configure builds. - Enable Pages in the GitLab repository settings.
⚙️ GitLab CI/CD Setup¶
image: python:3.8-slim
pages:
stage: deploy
script:
- pip install -r requirements.txt
- mkdocs build --verbose
artifacts:
paths:
- public
only:
- main
📌 Challenges Encountered¶
- Mapping Obsidian folder structure to MkDocs navigation
- Managing internal links and custom plugins compatibility
✨ What I Learned¶
- How to automate documentation deployment using GitLab CI/CD
- Best practices for maintaining clean and modular Markdown documentation
- Importance of frontmatter metadata and note structure for scalability
🔗 Related Resources¶
🧠 Notes & Tips¶
- Use
.gitignore
to exclude system-specific files from the repo - Customize MkDocs navigation with
mkdocs.yml
using note structure - Obsidian canvas is not rendered in the final site — keep visual notes locally
- Regularly pull/push with the Obsidian Git plugin, especially after mobile edits