explaingit

mephisto1122/mevin

11HTMLAudience · ops devopsComplexity · 3/5ActiveLicenseSetup · moderate

TLDR

Self-hosted security-camera dashboard that pipes USB, RTSP, and phone camera frames to a local Ollama vision model, then flags AI descriptions containing trigger words like fire or intruder.

Mindmap

mindmap
  root((mevin))
    Inputs
      USB webcams
      RTSP IP cameras
      Video files
      Phone camera
    Outputs
      Web dashboard
      Alert badges
      Telegram messages
      Auto-saved snapshots
    Use Cases
      Home security
      Office monitoring
      Workshop watch
      Pet camera with alerts
    Tech Stack
      Python
      FastAPI
      Ollama
      SQLite

Things people build with this

USE CASE 1

Monitor a home with old IP cameras and get a Telegram ping when the AI sees smoke or a fall

USE CASE 2

Run a private camera dashboard with no cloud upload using a local Ollama model

USE CASE 3

Add custom alert keywords for a workshop, like spill or open flame

USE CASE 4

Stream a phone camera into the dashboard to watch a pet room from another floor

Tech stack

PythonFastAPIOllamaSQLiteuvicorn

Getting it running

Difficulty · moderate Time to first run · 30min

Needs Ollama installed and a vision model downloaded, plus a GPU for the larger models.

MIT license, use freely in commercial and personal projects with attribution.

In plain English

Mevin is a self-hosted security-camera dashboard with an AI vision model attached. Once you install it on a computer in your home or office, it can pull video from USB webcams, network IP cameras (the kind that speak RTSP or HTTP), recorded video files, and even the camera in your phone. Each frame gets fed to a local vision model running through Ollama, and the model writes a short sentence describing what it sees. Those sentences stream into a web dashboard in your browser. Nothing is sent to a cloud service. The most distinctive feature is the keyword alert system. The dashboard ships with about forty trigger words like weapon, fire, smoke, fight, intruder, fallen, bleeding, and so on. Whenever the AI description includes one of these words, the matching feed item is flagged with a red ALERT badge, an audio beep plays in the browser, a snapshot is auto-saved, and an optional Telegram message is sent to a bot you set up. The alert keyword list is editable from the settings tab. Getting Mevin running is a short process. You install Ollama from ollama.com, run ollama pull gemma3:4b to download the recommended vision model, then clone the repository, run pip install -r requirements.txt, and start it with python mevin.py. The dashboard opens at http://localhost:5555 and an auto-generated API documentation page sits at /docs. Several other vision models are listed in the README with rough speed and VRAM figures, from a small two-gigabyte moondream model up to a fifteen-gigabyte gemma4:26b for higher quality. The dashboard itself is a single HTML file with vanilla JavaScript, so no build step is needed. It shows a horizontal timeline of events similar to a video-editing tool, with three, six, twelve, and twenty-four hour ranges. A built-in network scanner can find USB cameras and RTSP devices on your LAN, a Guides tab lists the right RTSP URLs for Hikvision, Dahua, Reolink, Tapo, Xiaomi, and ONVIF cameras, and a header strip shows current GPU temperature, VRAM use, and utilisation. Under the hood the backend is FastAPI with uvicorn, and SQLite holds the observations and configuration. Optional bearer-token authentication is available through the MEVIN_TOKEN environment variable. The project is MIT licensed and the README is open to pull requests.

Copy-paste prompts

Prompt 1
Walk me through installing Mevin on a Linux box, pulling gemma3:4b in Ollama, and opening the dashboard at localhost:5555
Prompt 2
Show me how to point Mevin at a Reolink RTSP stream using the URL format from the Guides tab
Prompt 3
Write a snippet that sets the MEVIN_TOKEN env var and curls the /docs API with bearer auth
Prompt 4
Edit the Mevin alert keyword list to swap intruder for delivery and add package
Prompt 5
Give me a Telegram bot setup that receives Mevin alerts including the snapshot image
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.