MCPcopy Index your code
hub / github.com/motioneye-project/motioneye

github.com/motioneye-project/motioneye @0.44.0b3 sqlite

repository ↗ · DeepWiki ↗ · release 0.44.0b3 ↗
992 symbols 3,749 edges 74 files 48 documented · 5%
README

What is motionEye?

motionEye is an online interface for the software motion, a video surveillance program with motion detection.

Check out the wiki for more details. Changelog is available on the releases page.

From version 0.43, motionEye is multilingual:

| [

](https://hosted.weblate.org/engage/motioneye-project/)

You can contribute to translations on Weblate.

Installation

  1. Install Python 3.7 or later and build dependencies

    Here the commands for APT-based Linux distributions are given.

    Thanks to pre-compiled wheels from PyPI, installing motionEye usually does not require anything but Python 3 and cURL with the ability to do HTTPS network requests:

    sh sudo apt update sudo apt --no-install-recommends install ca-certificates curl python3

    On ARMv6/ARMv7 (32-bit), RISC-V, and other rare CPU architectures additional build dependencies may be required to compile the Pillow, PycURL, and CFFI modules:

    sh sudo apt --no-install-recommends install python3-dev gcc libjpeg62-turbo-dev libcurl4-openssl-dev libssl-dev libffi-dev

  2. Install the Python package manager pip

    sh curl -sSfO 'https://bootstrap.pypa.io/get-pip.py' sudo python3 get-pip.py rm get-pip.py

    On recent distro versions, like Debian 12/Bookworm, Ubuntu 23.04/Lunar, and later, the libpython3.*-stdlib package ships a file /usr/lib/python3.*/EXTERNALLY-MANAGED, which prevents the installation of Python modules outside of venv environments. motionEye however has a small number of dependencies with no strict version requirements and hence is very unlikely to break any Python package you might have installed via APT. To bypass this block, add break-system-packages=true to the [global] section of your pip.conf:

    sh grep -q '\[global\]' /etc/pip.conf 2> /dev/null || printf '%b' '[global]\n' | sudo tee -a /etc/pip.conf > /dev/null sudo sed -i '/^\[global\]/a\break-system-packages=true' /etc/pip.conf

  3. Install and setup motionEye

    sh sudo python3 -m pip install motioneye sudo motioneye_init

    NB: motioneye_init currently assumes either an APT- or RPM-based distribution with systemd as init system. For a manual setup, config and service files can be found here: https://github.com/motioneye-project/motioneye/tree/dev/motioneye/extra

  4. Access the web interface

    After having successfully followed the installation instructions, the motionEye server should be running on your system and listening on port 8765. Fire up your favorite web browser and visit the following URL (replacing [your_ip] with... well, your system's IP address):

    http://[your_ip]:8765/

    Use usernamme admin with empty password when prompted for credentials. For security, please do set up a proper password for the admin user, at least if you plan to make your motionEye installation accessible from the Internet.

Upgrade

When upgrading motionEye, remember to restart the service. To rule out any mix of old in-memory backend code with new frontend assets, it is recommended to stop it prior to the upgrade, and start it back up afterwards:

sudo systemctl stop motioneye
sudo python3 -m pip install --upgrade motioneye
sudo systemctl start motioneye

Pre-releases

We may push beta versions to PyPI to give upcoming releases some testing period. Those can be installed with pip's --pre flag:

sudo systemctl stop motioneye
sudo python3 -m pip install --upgrade --pre motioneye
sudo systemctl start motioneye

If you want to test a recent commit on our development branch:

sudo systemctl stop motioneye
sudo python3 -m pip install --upgrade 'https://github.com/motioneye-project/motioneye/archive/dev.tar.gz'
sudo systemctl start motioneye

Core symbols most depended-on inside this repo

get
called by 298
motioneye/handlers/log.py
debug
called by 269
motioneye/uploadservices.py
error
called by 168
motioneye/uploadservices.py
markHideIfNull
called by 134
motioneye/static/js/main.js
finish_json
called by 105
motioneye/handlers/base.py
test
called by 58
motioneye/handlers/config.py
get_argument
called by 43
motioneye/handlers/base.py
info
called by 40
motioneye/uploadservices.py

Shape

Function 576
Method 360
Class 56

Languages

Python74%
TypeScript26%

Modules by API surface

motioneye/static/js/main.js123 symbols
motioneye/uploadservices.py106 symbols
motioneye/static/js/jquery.min.js91 symbols
motioneye/config.py49 symbols
tests/test_mediafiles.py47 symbols
tests/test_handlers/test_path_validation.py32 symbols
motioneye/static/js/ui.js31 symbols
tests/test_config.py30 symbols
motioneye/utils/__init__.py29 symbols
motioneye/mediafiles.py28 symbols
motioneye/mjpgclient.py27 symbols
motioneye/motionctl.py25 symbols

Dependencies from manifests, versioned

argon2-cffi
jinja2
pycurl
tornado6.5.7 · 1×

For agents

$ claude mcp add motioneye \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact