Skip to content

Commit

Permalink
Merge branch 'master' into h265web.js
Browse files Browse the repository at this point in the history
  • Loading branch information
Isaac Connor committed Sep 1, 2024
2 parents 4df28f1 + 1e4bb47 commit 282a2e1
Show file tree
Hide file tree
Showing 106 changed files with 3,372 additions and 1,596 deletions.
2 changes: 1 addition & 1 deletion .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ task:
freebsd_instance:
matrix:
- image_family: freebsd-14-0
- image_family: freebsd-13-2
- image_family: freebsd-13-3

prepare_script:
- pkg install -yq git cmake pkgconf jpeg-turbo mysql80-client ffmpeg libvncserver libjwt catch p5-DBI p5-DBD-mysql p5-Date-Manip p5-Test-LWP-UserAgent p5-Sys-Mmap v4l_compat
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci-bullseye.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ jobs:
- name: Prepare
run: mkdir build
- name: Configure
run: cd build && cmake --version && cmake .. -DBUILD_MAN=0 -DBUILD_TEST_SUITE=1 -DENABLE_WERROR=1 -DZM_CRYPTO_BACKEND=${{ matrix.crypto_backend }} -DZM_JWT_BACKEND=${{ matrix.jwt_backend }}
run: cd build && cmake --version && cmake .. -DBUILD_MAN=0 -DBUILD_TEST_SUITE=0 -DENABLE_WERROR=1 -DZM_CRYPTO_BACKEND=${{ matrix.crypto_backend }} -DZM_JWT_BACKEND=${{ matrix.jwt_backend }}
- name: Build
run: cd build && make -j3 | grep --line-buffered -Ev '^(cp lib\/|Installing.+\.pm)' && (exit ${PIPESTATUS[0]})
- name: Run tests
run: cd build/tests && ./tests "~[notCI]"
#- name: Run tests
#run: cd build/tests && ./tests "~[notCI]"
6 changes: 3 additions & 3 deletions .github/workflows/ci-centos-8.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ jobs:
- name: Prepare
run: mkdir build
- name: Configure
run: cd build && cmake --version && cmake .. -DBUILD_MAN=0 -DBUILD_TEST_SUITE=1 -DENABLE_WERROR=1 -DZM_CRYPTO_BACKEND=${{ matrix.crypto_backend }} -DZM_JWT_BACKEND=${{ matrix.jwt_backend }}
run: cd build && cmake --version && cmake .. -DBUILD_MAN=0 -DBUILD_TEST_SUITE=0 -DENABLE_WERROR=1 -DZM_CRYPTO_BACKEND=${{ matrix.crypto_backend }} -DZM_JWT_BACKEND=${{ matrix.jwt_backend }}
- name: Build
run: cd build && make -j3 | grep --line-buffered -Ev '^(cp lib\/|Installing.+\.pm)' && (exit ${PIPESTATUS[0]})
- name: Run tests
run: cd build/tests && ./tests "~[notCI]"
#- name: Run tests
#run: cd build/tests && ./tests "~[notCI]"
3 changes: 3 additions & 0 deletions .github/workflows/create-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ jobs:
- os: ubuntu
dist: jammy
arch: x86_64
- os: ubuntu
dist: noble
arch: x86_64
- os: debian
dist: bookworm
arch: x86_64
Expand Down
3 changes: 1 addition & 2 deletions db/triggers.sql
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ BEGIN
UPDATE Storage SET DiskSpace = COALESCE(DiskSpace,0) + NEW.DiskSpace WHERE Storage.Id = NEW.StorageId;
END IF;
IF ( OLD.DiskSpace ) THEN
UPDATE Storage SET DiskSpace = GREATEST(COALESCE(DiskSpace,0) - OLD.DiskSpace,0) WHERE Storage.Id = OLD.StorageId;
UPDATE Storage SET DiskSpace = GREATEST(COALESCE(DiskSpace,0) - COALESCE(OLD.DiskSpace,0),0) WHERE Storage.Id = OLD.StorageId;
END IF;
END IF;

Expand Down Expand Up @@ -172,7 +172,6 @@ BEGIN
TotalEventDiskSpace = GREATEST(COALESCE(TotalEventDiskSpace,0) - COALESCE(OLD.DiskSpace,0) + COALESCE(NEW.DiskSpace,0),0)
WHERE Event_Summaries.MonitorId=OLD.MonitorId;
END IF;

END;

//
Expand Down
2 changes: 2 additions & 0 deletions db/zm_create.sql.in
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,7 @@ CREATE TABLE `Filters` (
`EmailTo` TEXT,
`EmailSubject` TEXT,
`EmailBody` TEXT,
`EmailServer` TEXT,
`EmailFormat` enum('Individual','Summary') NOT NULL default 'Individual',
`AutoMessage` tinyint(3) unsigned NOT NULL default '0',
`AutoExecute` tinyint(3) unsigned NOT NULL default '0',
Expand Down Expand Up @@ -559,6 +560,7 @@ CREATE TABLE `Monitors` (
`Encoder` varchar(32),
`OutputContainer` enum('auto','mp4','mkv','webm'),
`EncoderParameters` TEXT,
`WallClockTimestamps` TINYINT NOT NULL DEFAULT '0',
`RecordAudio` TINYINT NOT NULL DEFAULT '0',
`RecordingSource` enum('Primary','Secondary','Both') NOT NULL DEFAULT 'Primary',
`RTSPDescribe` tinyint(1) unsigned,
Expand Down
8 changes: 4 additions & 4 deletions db/zm_update-1.37.27.sql
Original file line number Diff line number Diff line change
Expand Up @@ -113,12 +113,12 @@ PREPARE stmt FROM @s;
EXECUTE stmt;

REPLACE INTO Monitors_Permissions (UserId,Permission, MonitorId)
SELECT Id, 'Edit', SUBSTRING_INDEX(SUBSTRING_INDEX(t.MonitorIds, ',', n.n), ',', -1) value FROM Users t CROSS JOIN (
SELECT a.N + b.N * 10 + 1 n FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b ORDER BY n ) n WHERE t.Monitors='Edit' and t.MonitorIds != '' AND n.n <= 1 + (LENGTH(t.MonitorIds) - LENGTH(REPLACE(t.MonitorIds, ',', ''))) ORDER BY value;
SELECT Id, 'Edit', SUBSTRING_INDEX(SUBSTRING_INDEX(Users.MonitorIds, ',', n.n), ',', -1) value FROM Users CROSS JOIN (
SELECT a.N + b.N * 10 + 1 n FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b ORDER BY n ) n WHERE Users.Monitors='Edit' and Users.MonitorIds != '' AND n.n <= 1 + (LENGTH(Users.MonitorIds) - LENGTH(REPLACE(Users.MonitorIds, ',', ''))) ORDER BY value;

REPLACE INTO Monitors_Permissions (UserId,Permission, MonitorId)
SELECT Id, 'View', SUBSTRING_INDEX(SUBSTRING_INDEX(t.MonitorIds, ',', n.n), ',', -1) value FROM Users t CROSS JOIN (
SELECT a.N + b.N * 10 + 1 n FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b ORDER BY n ) n WHERE t.Monitors!='Edit' and t.MonitorIds != '' AND n.n <= 1 + (LENGTH(t.MonitorIds) - LENGTH(REPLACE(t.MonitorIds, ',', ''))) ORDER BY value;
SELECT Id, 'View', SUBSTRING_INDEX(SUBSTRING_INDEX(Users.MonitorIds, ',', n.n), ',', -1) value FROM Users CROSS JOIN (
SELECT a.N + b.N * 10 + 1 n FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b ORDER BY n ) n WHERE Users.Monitors!='Edit' and Users.MonitorIds != '' AND n.n <= 1 + (LENGTH(Users.MonitorIds) - LENGTH(REPLACE(Users.MonitorIds, ',', ''))) ORDER BY value;

DELETE FROM Monitors_Permissions WHERE MonitorID NOT IN (SELECT Id FROM Monitors);
ALTER TABLE Monitors_Permissions ADD CONSTRAINT Monitors_Permissions_ibfk_1 FOREIGN KEY (`MonitorId`) REFERENCES `Monitors` (`Id`) ON DELETE CASCADE;
20 changes: 20 additions & 0 deletions db/zm_update-1.37.62.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--
-- Update Monitors table to have WallClockTimestamps
--

SELECT 'Checking for WallClockTImestamps in Monitors';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Monitors'
AND table_schema = DATABASE()
AND column_name = 'WallClockTimestamps'
) > 0,
"SELECT 'Column WallClockTimestamps already exists on Monitors'",
"ALTER TABLE Monitors ADD `WallClockTimestamps` TINYINT NOT NULL DEFAULT '0' AFTER `EncoderParameters`"
));

PREPARE stmt FROM @s;
EXECUTE stmt;


11 changes: 11 additions & 0 deletions db/zm_update-1.37.63.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
SET @s = (SELECT IF(
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE()
AND table_name = 'Filters'
AND column_name = 'EmailServer'
) > 0,
"SELECT 'Column EmailServer already exists in Filters'",
"ALTER TABLE `Filters` ADD `EmailServer` TEXT AFTER `EmailBody`"
));

PREPARE stmt FROM @s;
EXECUTE stmt;
25 changes: 13 additions & 12 deletions distros/redhat/zoneminder.spec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
%global ceb_version 1.0-zm

# RtspServer is configured as a git submodule
%global rtspserver_commit eab32851421ffe54fec0229c3efc44c642bc8d46
%global rtspserver_commit 055d81fe1293429e496b19104a9ed3360755a440

%global sslcert %{_sysconfdir}/pki/tls/certs/localhost.crt
%global sslkey %{_sysconfdir}/pki/tls/private/localhost.key
Expand All @@ -18,8 +18,8 @@
%global zmtargetdistro %{?rhel:el%{rhel}}%{!?rhel:fc%{fedora}}

Name: zoneminder
Version: 1.37.60
Release: 2%{?dist}
Version: 1.36.34
Release: 1%{?dist}
Summary: A camera monitoring and analysis tool
Group: System Environment/Daemons
# jQuery is under the MIT license: https://jquery.org/license/
Expand All @@ -40,7 +40,7 @@ Source3: https://github.com/ZoneMinder/RtspServer/archive/%{rtspserver_commit}.t

%{?rhel:BuildRequires: epel-rpm-macros}
BuildRequires: systemd-devel
BuildRequires: mariadb-connector-c-devel
BuildRequires: mariadb-devel
BuildRequires: perl-podlators
BuildRequires: polkit-devel
BuildRequires: cmake
Expand Down Expand Up @@ -75,7 +75,6 @@ BuildRequires: libv4l-devel
BuildRequires: desktop-file-utils
BuildRequires: gzip
BuildRequires: zlib-devel
BuildRequires: gsoap-devel

# ZoneMinder looks for and records the location of the ffmpeg binary during build
BuildRequires: ffmpeg
Expand Down Expand Up @@ -106,6 +105,7 @@ Requires: php-gd
Requires: php-intl
Requires: php-process
Requires: php-json
Requires: cambozola
Requires: php-pecl-apcu
Requires: net-tools
Requires: psmisc
Expand All @@ -125,7 +125,6 @@ Requires: perl(LWP::Protocol::https)
Requires: perl(Module::Load::Conditional)
Requires: ca-certificates
Requires: zip
Requires: gsoap
%{?systemd_requires}

Requires(post): %{_bindir}/gpasswd
Expand Down Expand Up @@ -197,6 +196,7 @@ rm -rf ./dep/RtspServer
mv -f RtspServer-%{rtspserver_commit} ./dep/RtspServer

# Change the following default values
./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes
./utils/zmeditconfigdata.sh ZM_OPT_CONTROL yes
./utils/zmeditconfigdata.sh ZM_CHECK_FOR_UPDATES no

Expand All @@ -208,7 +208,8 @@ mv -f RtspServer-%{rtspserver_commit} ./dep/RtspServer
%cmake \
-DZM_WEB_USER="%{zmuid_final}" \
-DZM_WEB_GROUP="%{zmgid_final}" \
-DZM_TARGET_DISTRO="%{zmtargetdistro}"
-DZM_TARGET_DISTRO="%{zmtargetdistro}" \
.

%cmake_build

Expand All @@ -223,8 +224,6 @@ desktop-file-install \

# Remove unwanted files and folders
find %{buildroot} \( -name .htaccess -or -name .editorconfig -or -name .packlist -or -name .git -or -name .gitignore -or -name .gitattributes -or -name .travis.yml \) -type f -delete > /dev/null 2>&1 || :
rm -rf %{buildroot}/usr/include
rm -rf %{buildroot}/usr/cmake

# Recursively change shebang in all relevant scripts and set execute permission
find %{buildroot}%{_datadir}/zoneminder/www/api \( -name cake -or -name cake.php \) -type f -exec sed -i 's\^#!/usr/bin/env bash$\#!%{_buildshell}\' {} \; -exec %{__chmod} 755 {} \;
Expand Down Expand Up @@ -337,8 +336,7 @@ ln -sf %{_sysconfdir}/zm/www/zoneminder.nginx.conf %{_sysconfdir}/zm/www/zonemin
%config(noreplace) %{_sysconfdir}/logrotate.d/zoneminder

%{_unitdir}/zoneminder.service
%{_datadir}/polkit-1/actions/com.zoneminder.*
%{_datadir}/polkit-1/rules.d/com.zoneminder.arp-scan.rules
%{_datadir}/polkit-1/actions/com.zoneminder.systemctl.policy
%{_bindir}/zmsystemctl.pl

%{_bindir}/zmaudit.pl
Expand All @@ -360,7 +358,6 @@ ln -sf %{_sysconfdir}/zm/www/zoneminder.nginx.conf %{_sysconfdir}/zm/www/zonemin
%{_bindir}/zmonvif-trigger.pl
%{_bindir}/zmstats.pl
%{_bindir}/zmrecover.pl
%{_bindir}/zmeventtool.pl
%{_bindir}/zm_rtsp_server

%{perl_vendorlib}/ZoneMinder*
Expand Down Expand Up @@ -417,6 +414,10 @@ ln -sf %{_sysconfdir}/zm/www/zoneminder.nginx.conf %{_sysconfdir}/zm/www/zonemin
%dir %attr(755,nginx,nginx) %{_localstatedir}/log/zoneminder

%changelog
* Fri Aug 16 2024 Andrew Bauer <zonexpertconsulting@outlook.com> - 1.36.34-1
- 1.36.34 release
- remove el7 support

* Sun Nov 12 2023 Jonathan Bennett <JBennett@IncomSystems.biz> - 1.37.47
- Specify folders to remove before packaging

Expand Down
14 changes: 7 additions & 7 deletions docs/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -481,8 +481,8 @@ Why do I only see black screens with a timestamp when monitoring my camera?
In the monitor windows where you see the black screen with a timestamp, select settings and enter the Brightness, Contrast, Hue, and Color settings reported for the device by ``zmu -d <device_path> -q -v``. 32768 may be appropriate values to try for these settings. After saving the settings, select Settings again to confirm they saved successfully.


How do I repair the MySQL Database?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
How do I repair the MySQL/MariaDB Database?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There is two ways to go about this. In most cases you can run from the command prompt ->
``mysqlcheck --all-databases --auto-repair -p your_database_password -u your_databse_user``

Expand All @@ -491,9 +491,9 @@ If that does not work then you will have to make sure that ZoneMinder is stopped
``myisamchk --silent --force --fast --update-state -O key_buffer=64M -O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M /var/lib/mysql/*/*.MYI``


How do I repair the MySQL Database when the cli fails?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In Ubuntu, the commands listed above do not seem to work. However, actually doing it by hand from within MySQL does. (But that is beyond the scope of this document) But that got me thinking... And phpmyadmin does work. Bring up a terminal.
How do I repair the MySQL/MariaDB Database when the cli fails?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In Ubuntu, the commands listed above do not seem to work. However, actually doing it by hand from within MySQL/MariaDB does. (But that is beyond the scope of this document) But that got me thinking... And phpmyadmin does work. Bring up a terminal.
``sudo apt-get install phpmyadmin``

Now go to ``http://zoneminder_IP/`` and stop the ZM service. Continue to ``http://zoneminder_IP/phpmyadmin`` and select the zoneminder database. Select and tables marked 'in use' and pick the action 'repare' to fix. Restart the zoneminder service from the web browser. Remove or disable the phpmyadmin tool, as it is not always the most secure thing around, and opens your database wide to any skilled hacker.
Expand All @@ -508,8 +508,8 @@ Any time you update a major version that ZoneMinder depends on, you need to reco
Zoneminder doesn't start automatically on boot
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Check the list for log entries like "zmfix[766]: ERR [Can't connect to server: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)] ".
What can happen is that zoneminder is started too quickly after Mysql and tries to contact the database server before it's ready. Zoneminder gets no answer and aborts.
August 2010 - Ubuntu upgrades seem to be leaving several systems in this state. One way around this is to add a delay to the zoneminder startup script allowing Mysql to finish starting.
What can happen is that zoneminder is started too quickly after MySQL/MariaDB and tries to contact the database server before it's ready. Zoneminder gets no answer and aborts.
August 2010 - Ubuntu upgrades seem to be leaving several systems in this state. One way around this is to add a delay to the zoneminder startup script allowing MySQL/MariaDB to finish starting.
"Simply adding 'sleep 15' in the line above 'zmfix -a' in the /etc/init.d/zoneminder file fixed my ZoneMinder startup problems!" - credit to Pada.

Remote Path setup for Panasonic and other Camera
Expand Down
4 changes: 4 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ ZoneMinder Documentation
installationguide/index
userguide/index
api
web_ui_api
faq
contributing

Expand All @@ -23,6 +24,9 @@ If you are facing issues that are not covered in the documentation, please feel
:doc:`api`
Information on using the CakePHP based API for interfacing to ZoneMinder

:doc:`web_ui_api`
Information on interfacing to ZoneMinder's Web UI

:doc:`faq`
Frequently Asked Questions

Expand Down
5 changes: 3 additions & 2 deletions docs/installationguide/debian.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Run the following commands.

::

sudo apt install mariadb-server
sudo apt install apache2 mariadb-server

Switch into root user and create database and database user

Expand Down Expand Up @@ -74,7 +74,7 @@ The backports repository is deactivated by default, so with the second line we e

::

sudo echo 'deb http://deb.debian.org/debian bookworm-backports main contrib' >> /etc/apt/sources.list
sudo bash -c "echo 'deb http://deb.debian.org/debian bookworm-backports main contrib' >> /etc/apt/sources.list"
sudo apt update
sudo apt -t bookworm-backports install zoneminder

Expand Down Expand Up @@ -102,6 +102,7 @@ To make sure zoneminder can read the configuration file, run the following comma
sudo systemctl reload apache2.service
sudo systemctl restart zoneminder.service
sudo systemctl status zoneminder.service
sudo systemctl enable zoneminder.service # start zoneminder automatically at boot

If the zoneminder.service show to be active and without any errors, you should be able to access zoneminder at ``http://yourhostname/zm``

Expand Down
4 changes: 2 additions & 2 deletions docs/installationguide/multiserver.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ New installs

.. sidebar :: Note
For systemd based linux distros, inspect the zoneminder service file, typically found under /lib/systemd/system. Changes may be required for multiserver to function correctly. For example, the service file may check for a running instance of mysql or mariadb running locally on the server. This check will need to be removed. Rather than edit the service file directly, copy the service file to /etc/systemd/system and edit the file in that location.
For systemd based linux distros, inspect the zoneminder service file, typically found under /lib/systemd/system. Changes may be required for multiserver to function correctly. For example, the service file may check for a running instance of MySQL or MariaDB running locally on the server. This check will need to be removed. Rather than edit the service file directly, copy the service file to /etc/systemd/system and edit the file in that location.
2. On each ZoneMinder server, edit zm.conf. Find the ZM_DB_HOST variable and set it to the name or ip address of your Database Server. Find the ZM_SERVER_HOST and enter a name for this ZoneMinder server. Use a name easily recognizable by you. This name is not used by ZoneMinder for dns or any other form of network connectivity.

3. Copy the file /usr/share/zoneminder/db/zm_create.sql from one of the ZoneMinder Servers to the machine targeted as the Database Server.

4. Install mysql/mariadb server onto the Database Server.
4. Install MySQL/MariaDB server onto the Database Server.

5. It is advised to run "mysql_secure_installation" to help secure the server.

Expand Down
1 change: 1 addition & 0 deletions docs/userguide/filterevents.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ Here is what the filter window looks like
* %ED% Event description
* %ET% Time of the event
* %EL% Length of the event
* %ELOC% Location of event Latitude, Longitude
* %EF% Number of frames in the event
* %EFA% Number of alarm frames in the event
* %EST% Total score of the event
Expand Down
Loading

0 comments on commit 282a2e1

Please sign in to comment.