Add Contabo Object Storage support for Meet egress recordings.
Deploy Ladill Meet / deploy (push) Successful in 49s

Use a dedicated meet-recordings S3 disk with path-style endpoints for Contabo, and pass force_path_style through to LiveKit egress uploads.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-04 03:45:49 +00:00
co-authored by Cursor
parent ebc11691e2
commit d2bf08ec45
5 changed files with 54 additions and 6 deletions
@@ -203,6 +203,28 @@ class MeetLiveKitEgressRecordingTest extends TestCase
$this->assertSame('encoder crashed', $recording->failure_reason);
}
public function test_s3_upload_config_uses_contabo_path_style_defaults(): void
{
config([
'meet.recordings.egress.s3.bucket' => 'ladill-meet',
'meet.recordings.egress.s3.endpoint' => 'https://eu2.contabostorage.com',
'meet.recordings.egress.s3.region' => 'default',
'meet.recordings.egress.s3.force_path_style' => true,
'meet.recordings.egress.s3.access_key' => 'access',
'meet.recordings.egress.s3.secret' => 'secret',
]);
$service = app(LiveKitEgressService::class);
$method = new \ReflectionMethod($service, 's3UploadConfig');
$method->setAccessible(true);
$config = $method->invoke($service);
$this->assertSame('ladill-meet', $config['bucket']);
$this->assertSame('https://eu2.contabostorage.com', $config['endpoint']);
$this->assertSame('default', $config['region']);
$this->assertTrue($config['force_path_style']);
}
/**
* @return array{0: Session, 1: Participant}
*/