/motioneye

A web frontend for the motion daemon.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

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:


You can contribute to translations on Weblate.

Installation

These install instructions are constantly tested via CI/CD pipeline on Debian Bullseye and Ubuntu Focal.

  1. Install Python 3.7 or later and build dependencies

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

    On 32-bit ARMv6 and ARMv7 systems, thanks to piwheels, no development headers are required:

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

    On all other architectures additional development headers are required:

    sudo apt update
    sudo apt --no-install-recommends install ca-certificates curl python3 python3-dev libcurl4-openssl-dev gcc libssl-dev
  2. Install the Python package manager pip

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

    On recent Debian (Bookworm ant later) and Ubuntu (Lunar and later) versions, 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:

    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

    On 32-bit ARMv6 and ARMv7 systems, additionally configure pip to use pre-compiled wheels from piwheels:

    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\extra-index-url=https://www.piwheels.org/simple/' /etc/pip.conf
  3. Install and setup motionEye

    sudo python3 -m pip install --pre 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

Upgrade

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