Installation
The ew-npvr service is distributed as a CentOS/Red Hat RPM and is available
as ew-npvr.service when installed. It works on Red Hat 8 and compatible versions.
To install version x.y.z, the rpm command can be used as follows:
dnf install ./ew-npvr-x.y.z-1.el8.x86_64.rpm
The service can be controlled with the standard systemctl commands:
systemctl start ew-npvr
systemctl stop ew-npvr
systemctl status ew-npvr
Logs from the service can be seen using journalctl -u ew-npvr.
The unit file is available in /usr/lib/systemd/system/ew-npvr.service.
When run as a service, ew-npvr reads its initial configuration from the AgileTV Origin configuration system.
To uninstall the service, do:
dnf remove ew-npvr
When uninstalling it is recommended to first stop the service.
Prerequisites
Before installing ew-npvr, ensure the following prerequisites are met:
- Database (Optional): PostgreSQL database server accessible from the ew-npvr host
- Required for management API functionality
- Not required if only using media streaming API
- Storage: Sufficient disk space for NPVR recordings at configured storage locations
- Live Ingest: AgileTV Origin live ingest service (ESB3003) if recording live channels
- Network: Network connectivity to database and channel sources
Note: The service operates in degraded mode if the database is unavailable - the media API will continue to function for streaming existing content, but the management API will not be available for creating or managing recordings.
Directory Structure
After installation, the following directories are created:
/var/log/edgeware/ew-npvr/: Log files directoryew-npvr.log: General service logsew-npvr-streaming.log: Media streaming logsew-npvr-admin.log: Administration API logs
/var/run/edgeware/ew-npvr/: Runtime files (Unix sockets)/etc/edgeware/ew-npvr/: Configuration files
Initial Setup
- Configure the database connection in the AgileTV Origin configuration
- Set up NPVR storage locations
- Configure live ingest channels for NPVR integration
- Start the service:
systemctl start ew-npvr - Verify the service is running:
systemctl status ew-npvr
Command Line Options
The ew-npvr service supports the following command-line options:
--print-schema: Print the embedded JSON schema for configuration and exit--management-address <address>: Address for management API server (default: 0.0.0.0:8099)--media-address <address>: Address for media API server (default: unix:///var/run/edgeware/ew-npvr/sock.sock)- Supports both TCP addresses (e.g.,
0.0.0.0:8080) and Unix sockets (e.g.,unix:///var/run/edgeware/ew-npvr/sock.sock)
- Supports both TCP addresses (e.g.,
--content-info-cache-size <size>: Maximum number of entries in content info cache (default: 1000, range: 1-65536)--write-rate-limit <bytes>: Write rate limit in bytes per second when copying files (default: 0 = no limit)- Use this to prevent storage I/O saturation during recording operations
- Example:
--write-rate-limit 104857600limits writes to 100 MB/s
These options can be configured in the systemd service file at /usr/lib/systemd/system/ew-npvr.service.
Accessing API Documentation
Once the service is running, Swagger API documentation is available at:
http://<management-address>/swagger/
For example, with default settings:
http://localhost:8099/swagger/