Overview
This deployment utilizes a headless architecture, eschewing conventional servers or databases. Instead, the KB functions as a flat file website, with content primarily formatted in Markdown (.md file extension). These flat files are hosted by Cloudflare Pages.
Source Locations
Source Content: The Knowledge Base (KB) content is meticulously maintained in markdown files, ensuring a lightweight and flexible documentation system. These files are securely hosted in a private GitHub repository at:
missingmoniker/ovi-gc-knowledge-base.git
This setup allows for efficient version control and collaborative editing, making it easier to manage updates and track changes over time.
Production Hosting: Cloudflare serves as the hosting platform for the production content files of the KB website. The site is protected and access is limited to company employees, who can securely access the content from anywhere in the world. This robust hosting solution ensures high availability, fast load times, and a seamless user experience for all authorized personnel.
Development Hosting: To contribute to the KB, content cont clone the repository to their local environment using GitHub. This workflow facilitates a streamlined development process where contributors can work on updates independently and submit pull requests to propose changes.
Content Development: Obsidian is the primary Integrated Development Environment (IDE) used for writing and editing markdown (.md) files. Obsidian's user-friendly interface and powerful features make it an ideal tool for managing and developing content. Most contributions, including writing, formatting, and linking documents, can be efficiently handled within Obsidian.
Advanced Development and Testing: For contributors responsible for more complex tasks, such as testing the formatting and structure before deployment, MkDocs can be installed locally. This requires Python and pip. By running MkDocs locally, power users can preview the changes in a live server environment, ensuring that the content appears as expected before making a pull request. This local testing phase is crucial for maintaining the quality and consistency of the KB.
Workflow Summary
- Clone the Repository: Contributors clone the GitHub repository to their local machines.
- Develop Content: Using Obsidian, contributors write and edit markdown files.
- Local Testing: Advanced users install MkDocs locally to preview changes.
- Submit Pull Requests: Changes are proposed via pull requests on GitHub.
- Review and Merge: Changes are reviewed, approved, and merged into the main branch.
- Deployment: Approved changes are automatically deployed to the production site on Cloudflare.
By following this workflow, we ensure that our Knowledge Base remains up-to-date, accurate, and accessible to all employees.
graph TD;
A[<b>Clone the Repository</b><br>Contributors clone the GitHub repository to their local machines.] --> B[<b>Develop Content in Obsidian</b><br>Using Obsidian, contributors write and edit markdown files.];
B --> C[<b>Local Testing with MkDocs</b><br>Advanced users install MkDocs locally to preview changes.];
C --> D[<b>Submit Pull Requests on GitHub</b><br>Changes are proposed via pull requests on GitHub.];
D --> E[<b>Review and Merge Changes</b><br>Changes are reviewed, approved, and merged into the main branch.];
E --> F[<b>Deploy to Production Site on Cloudflare</b><br>Approved changes are automatically deployed to the production site on Cloudflare.];
subgraph "Workflow Summary"
A
B
C
D
E
F
end
style A fill:#f9f,stroke:#333,stroke-width:2px, color:#000, font-size:14px;
style B fill:#bbf,stroke:#333,stroke-width:2px, color:#000, font-size:14px;
style C fill:#fbf,stroke:#333,stroke-width:2px, color:#000, font-size:14px;
style D fill:#bfb,stroke:#333,stroke-width:2px, color:#000, font-size:14px;
style E fill:#ff9,stroke:#333,stroke-width:2px, color:#000, font-size:14px;
style F fill:#9f9,stroke:#333,stroke-width:2px, color:#000, font-size:14px;
linkStyle default stroke:#333,stroke-width:2px, fill:none;
classDef default font-family:Arial, font-size:12px;