Installing, updating, and removing Episode archive🔗
The Episode archive service provides the possibility to keep individual archive fragments for an unlimited time. Using the Episode archive service, you can be sure that important archive fragments will not be lost due to loop recording or corruption of the main archive.
Note
This feature is available only for Enterprise and ULTRA licenses.
The service can be installed on any computer without installing the Eocortex server on it.
Only one service instance can be configured for the entire system.
The service can be installed using the following two options:
Online, if the device has Internet access.
Offline, if the device does not have Internet access.
Online installation
Add Eocortex repository:
wget -O - http://packages.eocortex.com/deb/install/eocortex-deps-debian.sh | bash
Install the service.
sudo apt-get install eocortex-archive-episodes-service
Offline installation
Warning
For this installation method, you will need a computer with Internet access and the same operating system as the one on which you want to install the Episode archive service.
Clear local repository:
sudo apt-get clean
Add Eocortex repository:
wget -O - http://packages.eocortex.com/deb/install/eocortex-deps-debian.sh | bash
Install all required packages (dependencies):
sudo apt-get install -d -y eocortex-archive-episodes-service
Create the ArchiveEpisodesPackages directory and transfer all downloaded packages to it:
mkdir ~/ArchiveEpisodesPackages/ && cp -R /var/cache/apt/archives/*.deb ~/ArchiveEpisodesPackages/
After that, copy the entire ArchiveEpisodesPackages directory to a USB drive and transfer the data to the server. Install the Episode archive service and all dependencies using the following command:
sudo dpkg -i /path_to_ArchiveEpisodesPackages/*.deb
Dependencies
The following dependency packages must be installed in the operating system for the service to work:
aspnetcore-runtime-6.0 (>= 6.0)
debconf (>= 0.5)
postgresql-12
During the online installation the dependency packages will be installed automatically, while during the offline installation they may require to be installed manually.
To check if a package is installed and its version, use the command dpkg -s %package_name%.
Update
To update the service, run the following commands:
sudo apt-get update
sudo apt-get install eocortex-archive-episodes-service
Or download a new version package from the repository and install it manually using the dpkg command.
Uninstallation
To uninstall the service, use the following command:
sudo apt-get remove eocortex-archive-episodes-service
Online installation
Add Eocortex repository:
wget -O - http://packages.eocortex.com/rpm/install/eocortex-deps-centos.sh | bash
Install the service.
sudo yum install eocortex-archive-episodes-service
Offline installation
Warning
For this installation method, you will need a computer with Internet access and the same operating system as the one on which you want to install the Episode archive service.
Add Eocortex repository:
wget -O - http://packages.eocortex.com/rpm/install/eocortex-deps-centos.sh | bash
Install yum extensions:
sudo yum install -y yum-utils
Install all required packages (dependencies):
sudo yumdownloader --downloadonly --downloaddir=~/ArchiveEpisodesPackages eocortex-archive-episodes-service --resolve
After that, copy the entire ArchiveEpisodesPackages directory to a USB drive and transfer the data to the server. Install the Episode archive service and all dependencies using the following command:
sudo rpm -ivh /path_to_ArchiveEpisodesPackages/*.rpm
Dependencies
The following dependency packages must be installed in the operating system for the service to work:
aspnetcore-runtime-6.0 >= 6.0
policycoreutils-python >= 2.5
postgresql12-server
During the online installation the dependency packages will be installed automatically, while during the offline installation they may require to be installed manually.
To check if a package is installed and its version, use the command sudo rpm -qa | grep %package_name%.
Update
To update the service, run the following command:
sudo yum update eocortex-archive-episodes-service
Or download a new version package from the repository and install it manually using the rpm command.
Uninstallation
To uninstall the service, use the following command:
sudo yum remove eocortex-archive-episodes-service
Specifics of work
When hosting the service on CentOS, specific problems may arise when the service is trying to work with its database. To avoid them, change the PostgreSQL settings.
Open the file pg_hba.conf in any text editor.
Default path:
/var/lib/pgsql/12/data/pg_hba.conf
Change the authentication method in the file from ident to md5 for all types of connections.
Before |
||||
---|---|---|---|---|
# TYPE |
DATABASE |
USER |
ADDRESS |
METHOD |
# "local" is for Unix domain socket connections only |
||||
local |
all |
all |
ident |
|
# IPv4 local connections: |
||||
host |
all |
all |
127.0.0.1/32 |
ident |
# IPv6 local connections: |
||||
host |
all |
all |
::1/128 |
ident |
After |
||||
---|---|---|---|---|
# TYPE |
DATABASE |
USER |
ADDRESS |
METHOD |
# "local" is for Unix domain socket connections only |
||||
local |
all |
all |
md5 |
|
# IPv4 local connections: |
||||
host |
all |
all |
127.0.0.1/32 |
md5 |
# IPv6 local connections: |
||||
host |
all |
all |
::1/128 |
md5 |
Network settings of the service
Warning
These settings should be made on the device where the service is installed.
As part of the installation process, a configuration file appsettings.json containing network settings will be created in the root directory of the service.
Default path:
/opt/eocortexArchiveEpisodesService/appsettings.json
Below is an example of default settings:
{
"ConnectionStrings": {
"DatabaseConnectionTemplateWithoutDbName": "Host=localhost; Port=5432;Database={0};Username=eocortex;Password=masterkey"
},
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"WriteTo": [
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "(@Level = 'Error' or @Level = 'Fatal' or @Level = 'Warning')"
}
}
],
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "%LogsDir%/service.log",
"rollOnFileSizeLimit": true,
"fileSizeLimitBytes": "52428800",
"retainedFileCountLimit": 10
}
}
]
}
}
},
{
"Name": "Console",
"Args": {
"outputTemplate": "===> {Timestamp:HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}"
}
}
],
"Enrich": [
"FromLogContext",
"WithMachineName",
"WithThreadId"
],
"Properties": {
"Application": "LongTerArchiveService"
}
},
"AllowedHosts": "*",
"EpisodesDbRelativePath": "ArchiveServiceData/episodes-database",
"AlwaysRedirectToHttps": "false",
"Network": {
"Endpoints": {
"Http": {
"Url": "http://*:8899"
}
}
}
}
To change the HTTP port, find the following section in the configuration file:
"Network": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8899"
}
}
},
And set a custom port in the Url line instead of the default 8899.
To add an SSL certificate to the service configuration and enable HTTPS connection, change the Network section by one of the following ways:
"Network": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8899"
},
"Https": {
"Url": "https://0.0.0.0:18899",
"Certificate": {
"Path": ".pfx file",
"Password": "cert_password"
}
}
}
}
Where:
Path: Location of the PFX file of the certificate.
Password: Password of the certificate.
"Network": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8899"
},
"HttpsInlineCertAndKeyFile": {
"Url": "https://0.0.0.0:18899",
"Certificate": {
"Path": ".pem/.crt file",
"KeyPath": ".key file",
"Password": "cert_password"
}
}
}
}
Where:
Path: Location of the .pem/.crt file of the certificate.
KeyPath: Location of the .key file of the certificate.
Password: Password of the certificate.
"Network": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8899"
},
"Https": {
"Url": "https://0.0.0.0:18899",
"Certificate": {
"Subject": "Subject",
"Store": "Store",
"Location": "Location",
"AllowInvalid": "true/false"
}
}
}
}
Where:
Subject: Name of the certificate subject.
Store: Name of the certificate storage.
Location: Location of the certificate storage. By default, CurrentUser.
AllowInvalid: State of the policy of using invalid (e.g. self-signed) certificates. By default, it's false.
Note
Changing the HTTPS port can be done similarly to the HTTP port, but for the relevant section.
To enable forced redirection of all requests to the service to a secured connection, find and change the value from false to true for the following line:
"AlwaysRedirectToHttps": false,
Note
After saving the settings, the service must be restarted via the Services snap-in to take all changes into effect.
Warning
Changing other settings provided in the configuration file may cause the service to malfunction or fail. It is not recommended to change settings that are not described in the present documentation.