# 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: credentials-file: /home//.cloudflared/.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 ```