<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Operations on KubeVoIP Docs</title><link>https://docs.kubevoip.com/operations/</link><description>Recent content in Operations on KubeVoIP Docs</description><generator>Hugo</generator><language>en-US</language><copyright>Copyright (c) 2026 KubeVoIP</copyright><atom:link href="https://docs.kubevoip.com/operations/index.xml" rel="self" type="application/rss+xml"/><item><title>PostgreSQL</title><link>https://docs.kubevoip.com/operations/postgresql/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.kubevoip.com/operations/postgresql/</guid><description>&lt;p&gt;KubeVoIP requires a PostgreSQL database and a standard connection Secret with
&lt;code&gt;host&lt;/code&gt;, &lt;code&gt;port&lt;/code&gt;, &lt;code&gt;dbname&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, and &lt;code&gt;password&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The operator runs forward database migrations automatically during
reconciliation. PostgreSQL stores route data, dial policies, subscriber hashes,
registrations, trunk metadata, and digest HA1 values. HA1 is
credential-equivalent for its SIP realm.&lt;/p&gt;</description></item><item><title>Secrets</title><link>https://docs.kubevoip.com/operations/secrets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.kubevoip.com/operations/secrets/</guid><description>&lt;p&gt;KubeVoIP reads Secrets only in the operator installation namespace. SIP user
passwords, trunk digest credentials, caller ID values, and database credentials
should stay out of Git and ConfigMaps.&lt;/p&gt;
&lt;p&gt;Rendered ConfigMaps, statuses, Events, and logs must not expose raw passwords
or digest HA1 values.&lt;/p&gt;</description></item><item><title>Production setup</title><link>https://docs.kubevoip.com/operations/production/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.kubevoip.com/operations/production/</guid><description>&lt;p&gt;The quickstart is small on purpose: it creates a test PostgreSQL Deployment, two
demo users, one internal dial policy, and two routes. In production, keep the
same resource model, but replace the demo pieces with durable infrastructure and
real credentials.&lt;/p&gt;</description></item><item><title>Troubleshooting</title><link>https://docs.kubevoip.com/operations/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.kubevoip.com/operations/troubleshooting/</guid><description>&lt;p&gt;Start with resource status:&lt;/p&gt;



&lt;div class="expressive-code"&gt;
 &lt;figure class="frame is-terminal not-content"&gt;
 &lt;figcaption class="header"&gt;
 &lt;span class="title"&gt;&lt;/span&gt;
 &lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n telephony get networkprofile,sipgateway,mediarelay,asteriskpool,sipuser,siptrunk,callscope,dialpolicy,callroute
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n telephony describe sipgateway main
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n telephony logs deployment/kubevoip-kubevoip&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;For one-way audio, check RTPengine Service addresses, firewall rules, and RTP
port forwarding. SIP and RTP public ports must match the private ports.&lt;/p&gt;</description></item></channel></rss>