<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Webrtc on Layer5 Documentation</title><link>/tags/webrtc/</link><description>Recent content in Webrtc on Layer5 Documentation</description><generator>Hugo</generator><language>en</language><atom:link href="/tags/webrtc/index.xml" rel="self" type="application/rss+xml"/><item><title>Networking</title><link>/cloud/guides/self-hosted/planning/peer-to-peer-communication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/cloud/guides/self-hosted/planning/peer-to-peer-communication/</guid><description>&lt;p&gt;Plan these network paths before you deploy. Most are ordinary HTTPS traffic through your ingress. Real-time co-editing is the exception: it connects browsers directly to each other, and the deployment only introduces them.&lt;/p&gt;

&lt;h2 id="required-network-paths" class="heading-link"&gt;
 Required network paths
 &lt;a href="#required-network-paths" class="heading-anchor" aria-label="Permalink to this heading"&gt;🔗&lt;/a&gt;
&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;From&lt;/th&gt;
 &lt;th&gt;To&lt;/th&gt;
 &lt;th&gt;Protocol&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Browsers, Meshery Servers, API clients&lt;/td&gt;
 &lt;td&gt;Ingress, public hostname&lt;/td&gt;
 &lt;td&gt;HTTPS&lt;/td&gt;
 &lt;td&gt;UI, API, sign-in (&lt;code&gt;/kratos&lt;/code&gt;), and OAuth2 (&lt;code&gt;/hydra&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Browsers&lt;/td&gt;
 &lt;td&gt;Ingress, &lt;code&gt;/collaboration&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;WebSocket over HTTPS&lt;/td&gt;
 &lt;td&gt;Co-editing signaling&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Layer5 Cloud server&lt;/td&gt;
 &lt;td&gt;Kratos and Hydra services&lt;/td&gt;
 &lt;td&gt;HTTP, in cluster&lt;/td&gt;
 &lt;td&gt;Account and token operations. Default ports: Kratos public 9010 and admin 9011, Hydra public 4444 and admin 4445&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Kratos&lt;/td&gt;
 &lt;td&gt;Layer5 Cloud server&lt;/td&gt;
 &lt;td&gt;HTTP, in cluster&lt;/td&gt;
 &lt;td&gt;Registration hooks, and identity mail when the HTTP courier is selected&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Layer5 Cloud server, Kratos, Hydra&lt;/td&gt;
 &lt;td&gt;PostgreSQL&lt;/td&gt;
 &lt;td&gt;TCP 5432&lt;/td&gt;
 &lt;td&gt;Databases &lt;code&gt;meshery&lt;/code&gt;, &lt;code&gt;kratos&lt;/code&gt;, &lt;code&gt;hydra&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Layer5 Cloud server&lt;/td&gt;
 &lt;td&gt;SMTP relay&lt;/td&gt;
 &lt;td&gt;SMTP on 25, 465, 587, or 2525&lt;/td&gt;
 &lt;td&gt;Mail. The relay must resolve to a public address&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Layer5 Cloud server&lt;/td&gt;
 &lt;td&gt;Webhook receivers&lt;/td&gt;
 &lt;td&gt;HTTPS&lt;/td&gt;
 &lt;td&gt;Optional webhooks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Layer5 Cloud server&lt;/td&gt;
 &lt;td&gt;OpenTelemetry collector&lt;/td&gt;
 &lt;td&gt;OTLP gRPC&lt;/td&gt;
 &lt;td&gt;Optional traces&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Browsers&lt;/td&gt;
 &lt;td&gt;Public STUN and TURN hosts&lt;/td&gt;
 &lt;td&gt;UDP and TCP&lt;/td&gt;
 &lt;td&gt;Direct connections between co-editing browsers&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The ingress must support WebSocket upgrades. A controller or load balancer that closes idle connections shorter than the signaling keep-alive (below) disconnects users from their co-editing session.&lt;/p&gt;</description></item></channel></rss>