Commit Graph

46 Commits

Author SHA1 Message Date
Ingo Oppermann
f97943b275 Move content encoding in the beginning of the middleware chain, update dependencies 2024-10-09 14:25:42 +02:00
Ingo Oppermann
487529c598 Expose general infos in cluster about, bump cluster API version to 2.0.0 2024-04-08 21:55:07 +02:00
Ingo Oppermann
68cb1b1bda Allow negative persist interval in order to avoid collecting and storing session history 2023-12-04 16:18:07 +01:00
Ingo Oppermann
2167895bb5 Add storage.memory.backup.dir and storage.memory.backup.patterns
It is now possible to create a backup of the contents of memfs before
the core is shutdown. Provide the path where to write the files and
a list of glob patterns for files to be written to disk. Use the
pattern "**" for all files. During start of the core the backuped
files will be written back to memfs.
2023-09-20 17:57:51 +02:00
Ingo Oppermann
71b613371a Add debug flag to cluster to disable FFmpeg check 2023-07-10 11:07:24 +02:00
Ingo Oppermann
c5d52dbeb3 Add gops agent
The gops agent can be enabled by providing an address to
CORE_DEBUG_AGENT_ADDRESS where it will listen to requests
from the gops utility.
2023-07-03 21:27:44 +02:00
Ingo Oppermann
adcbd98467 Add CORE_TLS_SECRET configuration
This secret will be used to encrypt automatically obtained secrets at
rest, i.e. in a storage. They will be decrypted on demand. If the
secret is wrong, stored certificates can't be decrypted. For changing
the secret, the stored certificated must be deleted first in order
to obtain new ones that will be encrypted with the new secret.
2023-07-03 16:02:39 +02:00
Ingo Oppermann
a6d454b03f Add CORE_TLS_STAGING
Set this value to true in order to use the Let's Encrypt staging CA,
otherwise the production CA will be used, which is the default.
2023-06-28 11:55:56 +02:00
Ingo Oppermann
72a0566bc6 Add CORE_CLUSTER_STARTUP_TIMEOUT_SEC configuration value 2023-06-28 11:41:24 +02:00
Ingo Oppermann
dd128ac99b Fix gathering of hostnames, add /v3/cluster/db/kv endpoint 2023-06-27 14:52:32 +02:00
Ingo Oppermann
9fc0bb0a64 Fix env variable for session log path pattern 2023-06-20 15:26:08 +02:00
Ingo Oppermann
d3eed2a417 Allow to log each finished session to filesystem
By providing CORE_SESSIONS_SESSION_LOG_PATH_PATTERN (e.g. "/log/%Y-%m-%d.log") all
finished sessions will be logged to a file according to the provided strftime-pattern. The
actual value is calculated from when the session closed. CORE_SESSIONS_PERSIST must
be set. Default: not set.

Set CORE_SESSIONS_SESSION_LOG_BUFFER_SEC to the number of seconds the log should be
buffered in memory before persisted to disk. Default 15 seconds.
2023-06-20 15:19:25 +02:00
Ingo Oppermann
a728cc7839 Fix clusterNode/proxyNode 2023-06-14 22:05:59 +02:00
Ingo Oppermann
ccf4bee56d WIP: cluster node revamp, add version and config comparison 2023-06-13 10:25:08 +02:00
Ingo Oppermann
7e7d1caca7 Add EmergencyLeaderTimeout parameter, ignore throttling nodes, implement NodeRecoverTimeout, introduce processNodeMap in cluster DB 2023-06-07 22:08:07 +02:00
Ingo Oppermann
bd75a5ad0f Add SyncInterval and NodeRecoverTimeout to cluster config 2023-06-07 10:18:23 +02:00
Ingo Oppermann
a79cfa0c77 Merge branch 'clusteriam' into vod 2023-06-01 15:16:54 +02:00
Ingo Oppermann
d201921a33 Allow to provide complete cluster configuration
Replace CORE_CLUSTER_JOIN_ADDRESS with CORE_CLUSTER_PEERS. This is
a comma separated list of cluster members with their IDs of the form
ID@host:port

On startup the node tries to connect to all the peers. In case of
sudden deaths of a node this will allow to find back into the
cluster. The list in CLUSTER_PEERS is a starting point of known
peers. Other node that are not in that list can still join the
cluster.

File and stream proxy has been moved to the Proxy type.
2023-05-03 16:13:05 +02:00
Ingo Oppermann
74f98e8c7e Define system CPU resources in percent 0-100, acquiring resources check with available system resources 2023-04-28 10:27:33 +02:00
Ingo Oppermann
7527f7833b Add resource manager 2023-04-27 17:02:20 +02:00
Ingo Oppermann
9b17ab2b29 Add global limits in config, fix not using process limits 2023-04-25 21:49:55 +02:00
Ingo Oppermann
75c11eb475 WIP: add recover option 2023-04-24 10:54:53 +02:00
Ingo Oppermann
27f19f9188 WIP: internal API 2023-04-17 14:01:20 +02:00
Ingo Oppermann
7643959bf8 WIP: raft leadership 2023-04-13 21:44:24 +02:00
Ingo Oppermann
8326160b28 Add option to set GOMAXPROCS automatically
Use the debug.auto_max_procs config value or the CORE_DEBUG_AUTO_MAX_PROCS
environment variable. Set it to "true" to enable this feature.
2023-04-11 17:12:01 +02:00
Ingo Oppermann
507b4f4b9a Merge branch 'dev' into vod 2023-04-11 08:29:39 +02:00
Ingo Oppermann
baf1c3391a Deprecate ENV names that do not correspond to JSON name 2023-04-03 21:21:02 +02:00
Ingo Oppermann
4ce8a0eaa3 Add config value for how many minimal process report should be kept in the history
A minimal history is a history entry without log and prelude.

The corresponding config entry is ffmpeg.log.max_minimal_history. This value is
added on top of the ffmpeg.log.max_history value. I.e. the latest max_history
entries contain the log and prelude, and the remaining entries don't have the
log and prelude. In total there are max_minimal_history+max_history history
entries.

If you want no history, set both values to 0.
If you want only full history, set max_minimal_history to 0.
If you want only minimal history, set max_history to 0.
2023-03-16 12:25:06 +01:00
Ingo Oppermann
1c04961fc1 Fix tests 2023-02-21 12:57:33 +01:00
Ingo Oppermann
2a3288ffd0 Use abstract filesystem for stores 2023-02-01 16:09:20 +01:00
Ingo Oppermann
e3d25b1bdd Add check for duplicate filesystem names 2023-01-31 15:53:48 +01:00
Ingo Oppermann
f519acfd71 Add S3 storage support 2023-01-31 14:45:58 +01:00
Ingo Oppermann
378a3cd9cf Allow to set a soft memory limit for the binary itself
The setting debug.memory_limit_mbytes should not be used in conjuction
with debug.force_gc because the memory limit influences the garbage
collector.
2023-01-02 11:58:54 +01:00
Ingo Oppermann
4d4e70571e Fix proper version handling for uploading a new config 2022-10-10 16:19:45 +02:00
Ingo Oppermann
33bd7bd384 Set default email address 2022-09-30 12:25:01 +02:00
Ingo Oppermann
fe2e9d375c Use LE porduction CA, allow to configure an email address 2022-09-30 12:12:36 +02:00
Ingo Oppermann
5cb0592854 Exclude .m3u8 and .mpd files from disk cache by default 2022-08-26 11:35:56 +03:00
Ingo Oppermann
273ca0abbc Add cache block list for extensions not to cache 2022-08-02 19:10:28 +02:00
Ingo Oppermann
c3d8c40162 Fix default config version number 2022-07-20 12:41:13 +02:00
Ingo Oppermann
00c382262e Add config migration from version 1 to version 2 2022-07-20 12:27:55 +02:00
Ingo Oppermann
971b8337fe Add new placeholders and parameters for placeholder 2022-07-06 19:51:47 +02:00
Ingo Oppermann
fa3f8b9b57 Allow RTMP server if RTMPS server is enabled 2022-07-05 20:30:40 +02:00
Ingo Oppermann
4420d04a3b Add config option for RTMPS listen address 2022-07-05 18:52:54 +02:00
Ingo Oppermann
2058554524 Allow to configure SRT logging 2022-07-01 18:39:39 +02:00
Jan Stabenow
eb1cc37456 Add GoSRT & improvements (repo-merge)
Commits (Ingo Oppermann):
- Add experimental SRT connection stats and logs
- Hide /config/reload endpoint in reade-only mode
- Add SRT server
- Create v16 in go.mod
- Fix data races, tests, lint, and update dependencies
- Add trailing slash for routed directories (datarhei/restreamer#340)
- Allow relative URLs in content in static routes

Co-Authored-By: Ingo Oppermann <57445+ioppermann@users.noreply.github.com>
2022-06-23 22:13:58 +02:00
Jan Stabenow
9c0b535199 Add v16.7.2 2022-05-13 19:26:45 +02:00