Linux

Where Does motionEye Store Config and Video?

motionEye reads motioneye.conf from /etc/motioneye and records to /var/lib/motioneye. Docker mounts both from the host.

Last updated

motionEye splits config from footage. The motioneye.conf file (default /etc/motioneye/motioneye.conf, overridable with -c) holds paths, ports, timeouts, and UI-unchangeable options. Camera definitions and motion daemon configs live in the conf dir beside it. Recordings land under the media path, defaulting to /var/lib/motioneye.

Docker and Home Assistant layouts mount both trees from the host because the image is stateless. Copy the pair for migration; config without media loses footage, media without config loses camera definitions. motionEyeOS variants instead keep live config at /data/etc/motioneye.conf, templated from boot on first start.

Where motionEye stores this, by platform

Linux
/etc/motioneye (config dir)

motioneye.conf plus camera and motion daemon configs. Mount persistently in Docker; -c overrides the path. motionEyeOS uses /data/etc/motioneye.conf instead. Device nodes must exist on the host.

Linux
/var/lib/motioneye (media)

Recordings and snapshots per the media_path setting. Mount on bulk storage, not the OS disk. Pair with the config dir backup; footage without camera rows is unsearchable and vice versa.

Frequently asked questions

how do i back up motioneye

Copy /etc/motioneye (motioneye.conf plus camera configs) and dump or copy /var/lib/motioneye media with the service stopped. Restore to identical paths; camera device nodes (/dev/video*) must exist on the new host too.

motioneye.conf versus motion.conf, which is which

The motion daemon configs live in the same conf dir (motion.conf, thread configs) and are managed through motionEye, while media_path in motioneye.conf decides where footage lands. Keep the two straight: conf dir is settings, media dir is footage.

Notice an outdated path? Let us know.