cmsc_319_final_project/README.md

1.9 KiB

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 Runs the local AI model
cloudflared Exposes Ollama over a public HTTPS URL
Obsidian Note-taking app
BMO Chatbot Plugin Connects Obsidian to the Ollama API

Setup

1. Start Ollama

ollama pull llama3.1
ollama serve

2. Create a Cloudflare Tunnel

cloudflared tunnel login
cloudflared tunnel create ollama-tunnel

Edit ~/.cloudflared/config.yml:

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
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