cmsc_319_final_project/README.md

86 lines
1.9 KiB
Markdown

# Ollama + Cloudflare + Obsidian BMO Chatbot
**Course:** Software Engineering Concepts — Final Project
A self-hosted AI server running Ollama, tunneled through Cloudflare, and connected to Obsidian via the BMO Chatbot plugin.
---
## 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
```