92 lines
2.4 KiB
Markdown
92 lines
2.4 KiB
Markdown
# CMSC 319-001: Software Engineering Concepts Final Project - Steven McCaw
|
|
|
|
- Ollama + Cloudflare + Obsidian BMO Chatbot
|
|
|
|
- A self-hosted AI server running Ollama, tunneled through Cloudflare, and connected to Obsidian via the BMO Chatbot plugin.
|
|
|
|
---
|
|
|
|
## What It Is
|
|
|
|
- This system is an Obsidian plugin that integrates with the self hosted Ollama REST API to assist users in writing, organizing, summarizing, and generating notes. The system enables secure API communication using a Cloudflared tunnel, and maintains a structured local database within Obsidian for storing AI generated data and metadata. The goal of the system is to enhance productivity while maintaining strong security standards.
|
|
|
|
---
|
|
|
|
## How It Works
|
|
|
|
```
|
|
Obsidian BMO Plugin → Cloudflare Tunnel → Ollama
|
|
```
|
|
|
|
Your prompts go from Obsidian through a secure Cloudflare tunnel to Ollama running on your local machine. No cloud AI provider needed.
|
|
|
|
---
|
|
|
|
## Dependencies
|
|
|
|
| Tool | Purpose |
|
|
|---|---|
|
|
| [Ollama](https://ollama.com) | Runs the local AI model |
|
|
| [cloudflared](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/) | Exposes Ollama over a public HTTPS URL |
|
|
| [Obsidian](https://obsidian.md) | Note-taking app |
|
|
| [BMO Chatbot Plugin](https://github.com/longy2k/obsidian-bmo-chatbot) | Connects Obsidian to the Ollama API |
|
|
|
|
---
|
|
|
|
## Setup
|
|
|
|
### 1. Start Ollama
|
|
|
|
```bash
|
|
ollama pull llama3.1
|
|
ollama serve
|
|
```
|
|
|
|
### 2. Create a Cloudflare Tunnel
|
|
|
|
```bash
|
|
cloudflared tunnel login
|
|
cloudflared tunnel create ollama-tunnel
|
|
```
|
|
|
|
Edit `~/.cloudflared/config.yml`:
|
|
|
|
```yaml
|
|
tunnel: <YOUR_TUNNEL_ID>
|
|
credentials-file: /home/<USER>/.cloudflared/<YOUR_TUNNEL_ID>.json
|
|
|
|
ingress:
|
|
- hostname: ai.yourdomain.com
|
|
- service: http://localhost:11434
|
|
- service: http_status:404
|
|
```
|
|
|
|
```bash
|
|
cloudflared tunnel route dns ollama-tunnel ollama.yourdomain.com
|
|
cloudflared tunnel run ollama-tunnel
|
|
```
|
|
|
|
### 3. Configure BMO Plugin
|
|
|
|
1. Obsidian → Settings → Community Plugins → install **BMO Chatbot**
|
|
2. Set **REST API URL** to `https://ai-api.fortis-scientia.com`
|
|
3. Set **Model** to `llama3.1`
|
|
4. Leave **API Key** blank
|
|
|
|
---
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
|
|
|
├── README.md
|
|
├── config/
|
|
│ └── cloudflared-config.yml
|
|
├── docs/
|
|
│ ├── part1
|
|
│ │ ├── 01-requirements.docx
|
|
│ │ └── CMSC_319-API_project_diagram.png
|
|
│ └── part2
|
|
│ └── architecture.docx
|
|
└── requirements.md
|
|
``` |