<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Unifi Dream Router on Ulis Notes</title>
    <link>https://wolf-u.li/en/tag/unifi-dream-router/</link>
    <description>Recent content in Unifi Dream Router on Ulis Notes</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>Copyright 2006-CURRENTYEAR Uli Wolf - All rights reserved</copyright>
    <lastBuildDate>Sat, 14 Jan 2023 08:01:08 +1400</lastBuildDate>
    <atom:link href="https://wolf-u.li/en/tag/unifi-dream-router/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Unifi Dream Router (UDR) shows internet offline but is online</title>
      
      
      <link>https://wolf-u.li/unifi-dream-router-shows-internet-offline-but-is-online/</link>
      <pubDate>Sat, 14 Jan 2023 08:01:08 +1400</pubDate>
      <guid>https://wolf-u.li/unifi-dream-router-shows-internet-offline-but-is-online/</guid>
      <description>&lt;p&gt;My Unifi Dream router showed the internet status as offline since it had been upgraded to Unifi OS 3.x&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://wolf-u.li/upload/2023/01/unifi-udr-internet-offline-1.webp&#34; alt=&#34;Unifi UDR shows offline&#34; loading=&#34;lazy&#34;&gt;&lt;/p&gt;
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
&lt;p&gt;Per default the device tries to reach the address &lt;code&gt;ping.ubnt.com&lt;/code&gt; which was reachable without any issues on the commandline of the device. Nevertheless i was not able to figure out why that doesn&amp;rsquo;t work. A &lt;link rel=dns-prefetch href=//www.reddit.com /&gt; &lt;a href=&#34;https://www.reddit.com/r/Ubiquiti/comments/wskjo6/udm_pro_shows_internet_health_red_and/&#34;
    title=&#34;thread on Reddit&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  thread on Reddit&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt; finally told me the correct solution - it is possible to change the address. And this is how::&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>My Unifi Dream router showed the internet status as offline since it had been upgraded to Unifi OS 3.x</p>
<p><img src="/upload/2023/01/unifi-udr-internet-offline-1.webp" alt="Unifi UDR shows offline" loading="lazy"></p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<p>Per default the device tries to reach the address <code>ping.ubnt.com</code> which was reachable without any issues on the commandline of the device. Nevertheless i was not able to figure out why that doesn&rsquo;t work. A <link rel=dns-prefetch href=//www.reddit.com /> <a href="https://www.reddit.com/r/Ubiquiti/comments/wskjo6/udm_pro_shows_internet_health_red_and/"
    title="thread on Reddit" 
     target="_blank" rel="nofollow noopener noreferrer" >
  thread on Reddit&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> finally told me the correct solution - it is possible to change the address. And this is how::</p>
<p>Navigate via <em>Geräte</em> -&gt; <em>UDR</em> -&gt; <em>Settings</em> to the section <em>Services</em>:</p>
<p><img src="/upload/2023/01/unifi-udr-internet-offline-2.webp" alt="UDR Services" loading="lazy"></p>
<p>Change the address of the Echo Servers to a public, highly available address (e.g.. <code>1.1.1.1</code> or <code>8.8.8.8</code> or <code>8.8.4.4</code>)</p>
<p><img src="/upload/2023/01/unifi-udr-internet-offline-3.webp" alt="UDR Services" loading="lazy"></p>
<p>Save and the internet status should go back to green:</p>
<p><img src="/upload/2023/01/unifi-udr-internet-offline-4.webp" alt="UDR Services" loading="lazy"></p>
]]></content:encoded>
    </item>
    <item>
      <title>Unifi Dream Router - Setup of podman</title>
      
      
      <link>https://wolf-u.li/unifi-dream-router-udr-setup-of-podman/</link>
      <pubDate>Mon, 22 Aug 2022 08:24:29 +2200</pubDate>
      <guid>https://wolf-u.li/unifi-dream-router-udr-setup-of-podman/</guid>
      <description>&lt;p&gt;After having the new Unifi Dream Router for a while i had the desire to add additional services like &lt;a href=&#34;https://wolf-u.li/en/unifi-dream-router-udr-setup-of-the-ntp-server/&#34;
    title=&#34;NTP&#34; 
   &gt;
  NTP&lt;/a&gt;. For this you&amp;rsquo;ll need a container engine like podman which unfortunately isn&amp;rsquo;t pre-installed anymore.&lt;/p&gt;
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
&lt;h2 id=&#34;on-boot-script&#34;&gt;On-Boot Script&lt;/h2&gt;
&lt;p&gt;Install the unifios-utilities according to &lt;link rel=dns-prefetch href=//github.com /&gt; &lt;a href=&#34;https://github.com/unifi-utilities/unifios-utilities/blob/main/on-boot-script/README.md&#34;
    title=&#34;instructions&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  instructions&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>After having the new Unifi Dream Router for a while i had the desire to add additional services like <a href="/en/unifi-dream-router-udr-setup-of-the-ntp-server/"
    title="NTP" 
   >
  NTP</a>. For this you&rsquo;ll need a container engine like podman which unfortunately isn&rsquo;t pre-installed anymore.</p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<h2 id="on-boot-script">On-Boot Script</h2>
<p>Install the unifios-utilities according to <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/blob/main/on-boot-script/README.md"
    title="instructions" 
     target="_blank" rel="nofollow noopener noreferrer" >
  instructions&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl -fsL <span class="s2">&#34;https://raw.githubusercontent.com/unifi-utilities/unifios-utilities/HEAD/on-boot-script/remote_install.sh&#34;</span> <span class="p">|</span> /bin/sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>The directory <code>/mnt/data/on_boot.d</code> should now be available. Unfortunately the filesystem layout has changed in Unifi OS 2.x, hence we need to move the directory to the internal SSD:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/on_boot.d/
</span></span><span class="line"><span class="cl">mv /mnt/data/on_boot.d/* /data/on_boot.d/
</span></span><span class="line"><span class="cl">mv /mnt/data/.cache /data/
</span></span><span class="line"><span class="cl">rm -Rf /mnt/data
</span></span><span class="line"><span class="cl">ln -snf /data /mnt/data
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="installation-of-podman">Installation of Podman</h2>
<ul>
<li>
<p>Navigate to the <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/actions/workflows/podman-udmse.yml"
    title="Build-Overview of the unifios-utilities" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Build-Overview of the unifios-utilities&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> for the &ldquo;<em>UDM-SE Podman</em>&rdquo;. Click on the latest build and download the file &ldquo;<em>udmse-podman-install.zip</em>&rdquo; from the artifacts section.</p>
</li>
<li>
<p>Unpack the file - this unpacks &ldquo;<em>podman-install.zip</em>&rdquo;.</p>
</li>
<li>
<p>Create a persistent directory on the UDR:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/podman/
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Move the file &ldquo;<em>podman-install.zip</em>&rdquo; to the UDR (e.g. via WinSCP) into the directory (<code>/data/podman/</code>).</p>
</li>
<li>
<p>Then unpack the file (this is the &ldquo;installation&rdquo;)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /data/podman/
</span></span><span class="line"><span class="cl">unzip podman-install.zip
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="configuraion-of-podman">Configuraion of Podman</h2>
<p>Now various config files have to be created.</p>
<h3 id="docker-registry-config">Docker Registry Config</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/podman/etc/containers/registries.conf.d
</span></span><span class="line"><span class="cl">cat &gt; /data/podman/etc/containers/registries.conf.d/dockerio.conf <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">unqualified-search-registries=[&#34;docker.io&#34;]
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="container-policy">Container Policy</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/podman/etc/containers/
</span></span><span class="line"><span class="cl">cat &gt; /data/podman/etc/containers/policy.json <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">{
</span></span></span><span class="line"><span class="cl"><span class="s">    &#34;default&#34;: [
</span></span></span><span class="line"><span class="cl"><span class="s">        {
</span></span></span><span class="line"><span class="cl"><span class="s">            &#34;type&#34;: &#34;insecureAcceptAnything&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">        }
</span></span></span><span class="line"><span class="cl"><span class="s">    ],
</span></span></span><span class="line"><span class="cl"><span class="s">    &#34;transports&#34;:
</span></span></span><span class="line"><span class="cl"><span class="s">        {
</span></span></span><span class="line"><span class="cl"><span class="s">            &#34;docker-daemon&#34;:
</span></span></span><span class="line"><span class="cl"><span class="s">                {
</span></span></span><span class="line"><span class="cl"><span class="s">                    &#34;&#34;: [{&#34;type&#34;:&#34;insecureAcceptAnything&#34;}]
</span></span></span><span class="line"><span class="cl"><span class="s">                }
</span></span></span><span class="line"><span class="cl"><span class="s">        }
</span></span></span><span class="line"><span class="cl"><span class="s">}
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="storage-config">Storage Config</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">  1
</span><span class="lnt">  2
</span><span class="lnt">  3
</span><span class="lnt">  4
</span><span class="lnt">  5
</span><span class="lnt">  6
</span><span class="lnt">  7
</span><span class="lnt">  8
</span><span class="lnt">  9
</span><span class="lnt"> 10
</span><span class="lnt"> 11
</span><span class="lnt"> 12
</span><span class="lnt"> 13
</span><span class="lnt"> 14
</span><span class="lnt"> 15
</span><span class="lnt"> 16
</span><span class="lnt"> 17
</span><span class="lnt"> 18
</span><span class="lnt"> 19
</span><span class="lnt"> 20
</span><span class="lnt"> 21
</span><span class="lnt"> 22
</span><span class="lnt"> 23
</span><span class="lnt"> 24
</span><span class="lnt"> 25
</span><span class="lnt"> 26
</span><span class="lnt"> 27
</span><span class="lnt"> 28
</span><span class="lnt"> 29
</span><span class="lnt"> 30
</span><span class="lnt"> 31
</span><span class="lnt"> 32
</span><span class="lnt"> 33
</span><span class="lnt"> 34
</span><span class="lnt"> 35
</span><span class="lnt"> 36
</span><span class="lnt"> 37
</span><span class="lnt"> 38
</span><span class="lnt"> 39
</span><span class="lnt"> 40
</span><span class="lnt"> 41
</span><span class="lnt"> 42
</span><span class="lnt"> 43
</span><span class="lnt"> 44
</span><span class="lnt"> 45
</span><span class="lnt"> 46
</span><span class="lnt"> 47
</span><span class="lnt"> 48
</span><span class="lnt"> 49
</span><span class="lnt"> 50
</span><span class="lnt"> 51
</span><span class="lnt"> 52
</span><span class="lnt"> 53
</span><span class="lnt"> 54
</span><span class="lnt"> 55
</span><span class="lnt"> 56
</span><span class="lnt"> 57
</span><span class="lnt"> 58
</span><span class="lnt"> 59
</span><span class="lnt"> 60
</span><span class="lnt"> 61
</span><span class="lnt"> 62
</span><span class="lnt"> 63
</span><span class="lnt"> 64
</span><span class="lnt"> 65
</span><span class="lnt"> 66
</span><span class="lnt"> 67
</span><span class="lnt"> 68
</span><span class="lnt"> 69
</span><span class="lnt"> 70
</span><span class="lnt"> 71
</span><span class="lnt"> 72
</span><span class="lnt"> 73
</span><span class="lnt"> 74
</span><span class="lnt"> 75
</span><span class="lnt"> 76
</span><span class="lnt"> 77
</span><span class="lnt"> 78
</span><span class="lnt"> 79
</span><span class="lnt"> 80
</span><span class="lnt"> 81
</span><span class="lnt"> 82
</span><span class="lnt"> 83
</span><span class="lnt"> 84
</span><span class="lnt"> 85
</span><span class="lnt"> 86
</span><span class="lnt"> 87
</span><span class="lnt"> 88
</span><span class="lnt"> 89
</span><span class="lnt"> 90
</span><span class="lnt"> 91
</span><span class="lnt"> 92
</span><span class="lnt"> 93
</span><span class="lnt"> 94
</span><span class="lnt"> 95
</span><span class="lnt"> 96
</span><span class="lnt"> 97
</span><span class="lnt"> 98
</span><span class="lnt"> 99
</span><span class="lnt">100
</span><span class="lnt">101
</span><span class="lnt">102
</span><span class="lnt">103
</span><span class="lnt">104
</span><span class="lnt">105
</span><span class="lnt">106
</span><span class="lnt">107
</span><span class="lnt">108
</span><span class="lnt">109
</span><span class="lnt">110
</span><span class="lnt">111
</span><span class="lnt">112
</span><span class="lnt">113
</span><span class="lnt">114
</span><span class="lnt">115
</span><span class="lnt">116
</span><span class="lnt">117
</span><span class="lnt">118
</span><span class="lnt">119
</span><span class="lnt">120
</span><span class="lnt">121
</span><span class="lnt">122
</span><span class="lnt">123
</span><span class="lnt">124
</span><span class="lnt">125
</span><span class="lnt">126
</span><span class="lnt">127
</span><span class="lnt">128
</span><span class="lnt">129
</span><span class="lnt">130
</span><span class="lnt">131
</span><span class="lnt">132
</span><span class="lnt">133
</span><span class="lnt">134
</span><span class="lnt">135
</span><span class="lnt">136
</span><span class="lnt">137
</span><span class="lnt">138
</span><span class="lnt">139
</span><span class="lnt">140
</span><span class="lnt">141
</span><span class="lnt">142
</span><span class="lnt">143
</span><span class="lnt">144
</span><span class="lnt">145
</span><span class="lnt">146
</span><span class="lnt">147
</span><span class="lnt">148
</span><span class="lnt">149
</span><span class="lnt">150
</span><span class="lnt">151
</span><span class="lnt">152
</span><span class="lnt">153
</span><span class="lnt">154
</span><span class="lnt">155
</span><span class="lnt">156
</span><span class="lnt">157
</span><span class="lnt">158
</span><span class="lnt">159
</span><span class="lnt">160
</span><span class="lnt">161
</span><span class="lnt">162
</span><span class="lnt">163
</span><span class="lnt">164
</span><span class="lnt">165
</span><span class="lnt">166
</span><span class="lnt">167
</span><span class="lnt">168
</span><span class="lnt">169
</span><span class="lnt">170
</span><span class="lnt">171
</span><span class="lnt">172
</span><span class="lnt">173
</span><span class="lnt">174
</span><span class="lnt">175
</span><span class="lnt">176
</span><span class="lnt">177
</span><span class="lnt">178
</span><span class="lnt">179
</span><span class="lnt">180
</span><span class="lnt">181
</span><span class="lnt">182
</span><span class="lnt">183
</span><span class="lnt">184
</span><span class="lnt">185
</span><span class="lnt">186
</span><span class="lnt">187
</span><span class="lnt">188
</span><span class="lnt">189
</span><span class="lnt">190
</span><span class="lnt">191
</span><span class="lnt">192
</span><span class="lnt">193
</span><span class="lnt">194
</span><span class="lnt">195
</span><span class="lnt">196
</span><span class="lnt">197
</span><span class="lnt">198
</span><span class="lnt">199
</span><span class="lnt">200
</span><span class="lnt">201
</span><span class="lnt">202
</span><span class="lnt">203
</span><span class="lnt">204
</span><span class="lnt">205
</span><span class="lnt">206
</span><span class="lnt">207
</span><span class="lnt">208
</span><span class="lnt">209
</span><span class="lnt">210
</span><span class="lnt">211
</span><span class="lnt">212
</span><span class="lnt">213
</span><span class="lnt">214
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir -p /data/podman/etc/containers/
</span></span><span class="line"><span class="cl">mkdir -p /data/podman/var/lib/containers/
</span></span><span class="line"><span class="cl">cat &gt; /data/podman/etc/containers/storage.conf <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s"># This file is is the configuration file for all tools
</span></span></span><span class="line"><span class="cl"><span class="s"># that use the containers/storage library. The storage.conf file
</span></span></span><span class="line"><span class="cl"><span class="s"># overrides all other storage.conf files. Container engines using the
</span></span></span><span class="line"><span class="cl"><span class="s"># container/storage library do not inherit fields from other storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s"># files.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s">#  Note: The storage.conf file overrides other storage.conf files based on this precedence:
</span></span></span><span class="line"><span class="cl"><span class="s">#      /usr/containers/storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s">#      /etc/containers/storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s">#      $HOME/.config/containers/storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s">#      $XDG_CONFIG_HOME/containers/storage.conf (If XDG_CONFIG_HOME is set)
</span></span></span><span class="line"><span class="cl"><span class="s"># See man 5 containers-storage.conf for more information
</span></span></span><span class="line"><span class="cl"><span class="s"># The &#34;container storage&#34; table contains all of the server options.
</span></span></span><span class="line"><span class="cl"><span class="s">[storage]
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Default Storage Driver, Must be set for proper operation.
</span></span></span><span class="line"><span class="cl"><span class="s">driver = &#34;vfs&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Temporary storage location
</span></span></span><span class="line"><span class="cl"><span class="s">runroot = &#34;/run/containers/storage&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Primary Read/Write location of container storage
</span></span></span><span class="line"><span class="cl"><span class="s"># When changing the graphroot location on an SELINUX system, you must
</span></span></span><span class="line"><span class="cl"><span class="s"># ensure  the labeling matches the default locations labels with the
</span></span></span><span class="line"><span class="cl"><span class="s"># following commands:
</span></span></span><span class="line"><span class="cl"><span class="s"># semanage fcontext -a -e /var/lib/containers/storage /NEWSTORAGEPATH
</span></span></span><span class="line"><span class="cl"><span class="s"># restorecon -R -v /NEWSTORAGEPATH
</span></span></span><span class="line"><span class="cl"><span class="s">graphroot = &#34;/var/lib/containers/storage&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Storage path for rootless users
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># rootless_storage_path = &#34;$HOME/.local/share/containers/storage&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">[storage.options]
</span></span></span><span class="line"><span class="cl"><span class="s"># Storage options to be passed to underlying storage drivers
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># AdditionalImageStores is used to pass paths to additional Read/Only image stores
</span></span></span><span class="line"><span class="cl"><span class="s"># Must be comma separated list.
</span></span></span><span class="line"><span class="cl"><span class="s">additionalimagestores = [
</span></span></span><span class="line"><span class="cl"><span class="s">]
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Remap-UIDs/GIDs is the mapping from UIDs/GIDs as they should appear inside of
</span></span></span><span class="line"><span class="cl"><span class="s"># a container, to the UIDs/GIDs as they should appear outside of the container,
</span></span></span><span class="line"><span class="cl"><span class="s"># and the length of the range of UIDs/GIDs.  Additional mapped sets can be
</span></span></span><span class="line"><span class="cl"><span class="s"># listed and will be heeded by libraries, but there are limits to the number of
</span></span></span><span class="line"><span class="cl"><span class="s"># mappings which the kernel will allow when you later attempt to run a
</span></span></span><span class="line"><span class="cl"><span class="s"># container.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># remap-uids = 0:1668442479:65536
</span></span></span><span class="line"><span class="cl"><span class="s"># remap-gids = 0:1668442479:65536
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Remap-User/Group is a user name which can be used to look up one or more UID/GID
</span></span></span><span class="line"><span class="cl"><span class="s"># ranges in the /etc/subuid or /etc/subgid file.  Mappings are set up starting
</span></span></span><span class="line"><span class="cl"><span class="s"># with an in-container ID of 0 and then a host-level ID taken from the lowest
</span></span></span><span class="line"><span class="cl"><span class="s"># range that matches the specified name, and using the length of that range.
</span></span></span><span class="line"><span class="cl"><span class="s"># Additional ranges are then assigned, using the ranges which specify the
</span></span></span><span class="line"><span class="cl"><span class="s"># lowest host-level IDs first, to the lowest not-yet-mapped in-container ID,
</span></span></span><span class="line"><span class="cl"><span class="s"># until all of the entries have been used for maps.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># remap-user = &#34;containers&#34;
</span></span></span><span class="line"><span class="cl"><span class="s"># remap-group = &#34;containers&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Root-auto-userns-user is a user name which can be used to look up one or more UID/GID
</span></span></span><span class="line"><span class="cl"><span class="s"># ranges in the /etc/subuid and /etc/subgid file.  These ranges will be partitioned
</span></span></span><span class="line"><span class="cl"><span class="s"># to containers configured to create automatically a user namespace.  Containers
</span></span></span><span class="line"><span class="cl"><span class="s"># configured to automatically create a user namespace can still overlap with containers
</span></span></span><span class="line"><span class="cl"><span class="s"># having an explicit mapping set.
</span></span></span><span class="line"><span class="cl"><span class="s"># This setting is ignored when running as rootless.
</span></span></span><span class="line"><span class="cl"><span class="s"># root-auto-userns-user = &#34;storage&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># Auto-userns-min-size is the minimum size for a user namespace created automatically.
</span></span></span><span class="line"><span class="cl"><span class="s"># auto-userns-min-size=1024
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># Auto-userns-max-size is the minimum size for a user namespace created automatically.
</span></span></span><span class="line"><span class="cl"><span class="s"># auto-userns-max-size=65536
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">[storage.options.overlay]
</span></span></span><span class="line"><span class="cl"><span class="s"># ignore_chown_errors can be set to allow a non privileged user running with
</span></span></span><span class="line"><span class="cl"><span class="s"># a single UID within a user namespace to run containers. The user can pull
</span></span></span><span class="line"><span class="cl"><span class="s"># and use any image even those with multiple uids.  Note multiple UIDs will be
</span></span></span><span class="line"><span class="cl"><span class="s"># squashed down to the default uid in the container.  These images will have no
</span></span></span><span class="line"><span class="cl"><span class="s"># separation between the users in the container. Only supported for the overlay
</span></span></span><span class="line"><span class="cl"><span class="s"># and vfs drivers.
</span></span></span><span class="line"><span class="cl"><span class="s">#ignore_chown_errors = &#34;false&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Inodes is used to set a maximum inodes of the container image.
</span></span></span><span class="line"><span class="cl"><span class="s"># inodes = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Path to an helper program to use for mounting the file system instead of mounting it
</span></span></span><span class="line"><span class="cl"><span class="s"># directly.
</span></span></span><span class="line"><span class="cl"><span class="s">#mount_program = &#34;/usr/bin/fuse-overlayfs&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># mountopt specifies comma separated list of extra mount options
</span></span></span><span class="line"><span class="cl"><span class="s">mountopt = &#34;nodev&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Set to skip a PRIVATE bind mount on the storage home directory.
</span></span></span><span class="line"><span class="cl"><span class="s"># skip_mount_home = &#34;false&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Size is used to set a maximum size of the container image.
</span></span></span><span class="line"><span class="cl"><span class="s"># size = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># ForceMask specifies the permissions mask that is used for new files and
</span></span></span><span class="line"><span class="cl"><span class="s"># directories.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># The values &#34;shared&#34; and &#34;private&#34; are accepted.
</span></span></span><span class="line"><span class="cl"><span class="s"># Octal permission masks are also accepted.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s">#  &#34;&#34;: No value specified.
</span></span></span><span class="line"><span class="cl"><span class="s">#     All files/directories, get set with the permissions identified within the
</span></span></span><span class="line"><span class="cl"><span class="s">#     image.
</span></span></span><span class="line"><span class="cl"><span class="s">#  &#34;private&#34;: it is equivalent to 0700.
</span></span></span><span class="line"><span class="cl"><span class="s">#     All files/directories get set with 0700 permissions.  The owner has rwx
</span></span></span><span class="line"><span class="cl"><span class="s">#     access to the files. No other users on the system can access the files.
</span></span></span><span class="line"><span class="cl"><span class="s">#     This setting could be used with networked based homedirs.
</span></span></span><span class="line"><span class="cl"><span class="s">#  &#34;shared&#34;: it is equivalent to 0755.
</span></span></span><span class="line"><span class="cl"><span class="s">#     The owner has rwx access to the files and everyone else can read, access
</span></span></span><span class="line"><span class="cl"><span class="s">#     and execute them. This setting is useful for sharing containers storage
</span></span></span><span class="line"><span class="cl"><span class="s">#     with other users.  For instance have a storage owned by root but shared
</span></span></span><span class="line"><span class="cl"><span class="s">#     to rootless users as an additional store.
</span></span></span><span class="line"><span class="cl"><span class="s">#     NOTE:  All files within the image are made readable and executable by any
</span></span></span><span class="line"><span class="cl"><span class="s">#     user on the system. Even /etc/shadow within your image is now readable by
</span></span></span><span class="line"><span class="cl"><span class="s">#     any user.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s">#   OCTAL: Users can experiment with other OCTAL Permissions.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s">#  Note: The force_mask Flag is an experimental feature, it could change in the
</span></span></span><span class="line"><span class="cl"><span class="s">#  future.  When &#34;force_mask&#34; is set the original permission mask is stored in
</span></span></span><span class="line"><span class="cl"><span class="s">#  the &#34;user.containers.override_stat&#34; xattr and the &#34;mount_program&#34; option must
</span></span></span><span class="line"><span class="cl"><span class="s">#  be specified. Mount programs like &#34;/usr/bin/fuse-overlayfs&#34; present the
</span></span></span><span class="line"><span class="cl"><span class="s">#  extended attribute permissions to processes within containers rather then the
</span></span></span><span class="line"><span class="cl"><span class="s">#  &#34;force_mask&#34;  permissions.
</span></span></span><span class="line"><span class="cl"><span class="s">#
</span></span></span><span class="line"><span class="cl"><span class="s"># force_mask = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">[storage.options.thinpool]
</span></span></span><span class="line"><span class="cl"><span class="s"># Storage Options for thinpool
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># autoextend_percent determines the amount by which pool needs to be
</span></span></span><span class="line"><span class="cl"><span class="s"># grown. This is specified in terms of % of pool size. So a value of 20 means
</span></span></span><span class="line"><span class="cl"><span class="s"># that when threshold is hit, pool will be grown by 20% of existing
</span></span></span><span class="line"><span class="cl"><span class="s"># pool size.
</span></span></span><span class="line"><span class="cl"><span class="s"># autoextend_percent = &#34;20&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># autoextend_threshold determines the pool extension threshold in terms
</span></span></span><span class="line"><span class="cl"><span class="s"># of percentage of pool size. For example, if threshold is 60, that means when
</span></span></span><span class="line"><span class="cl"><span class="s"># pool is 60% full, threshold has been hit.
</span></span></span><span class="line"><span class="cl"><span class="s"># autoextend_threshold = &#34;80&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># basesize specifies the size to use when creating the base device, which
</span></span></span><span class="line"><span class="cl"><span class="s"># limits the size of images and containers.
</span></span></span><span class="line"><span class="cl"><span class="s"># basesize = &#34;10G&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># blocksize specifies a custom blocksize to use for the thin pool.
</span></span></span><span class="line"><span class="cl"><span class="s"># blocksize=&#34;64k&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># directlvm_device specifies a custom block storage device to use for the
</span></span></span><span class="line"><span class="cl"><span class="s"># thin pool. Required if you setup devicemapper.
</span></span></span><span class="line"><span class="cl"><span class="s"># directlvm_device = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># directlvm_device_force wipes device even if device already has a filesystem.
</span></span></span><span class="line"><span class="cl"><span class="s"># directlvm_device_force = &#34;True&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># fs specifies the filesystem type to use for the base device.
</span></span></span><span class="line"><span class="cl"><span class="s"># fs=&#34;xfs&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># log_level sets the log level of devicemapper.
</span></span></span><span class="line"><span class="cl"><span class="s"># 0: LogLevelSuppress 0 (Default)
</span></span></span><span class="line"><span class="cl"><span class="s"># 2: LogLevelFatal
</span></span></span><span class="line"><span class="cl"><span class="s"># 3: LogLevelErr
</span></span></span><span class="line"><span class="cl"><span class="s"># 4: LogLevelWarn
</span></span></span><span class="line"><span class="cl"><span class="s"># 5: LogLevelNotice
</span></span></span><span class="line"><span class="cl"><span class="s"># 6: LogLevelInfo
</span></span></span><span class="line"><span class="cl"><span class="s"># 7: LogLevelDebug
</span></span></span><span class="line"><span class="cl"><span class="s"># log_level = &#34;7&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># min_free_space specifies the min free space percent in a thin pool require for
</span></span></span><span class="line"><span class="cl"><span class="s"># new device creation to succeed. Valid values are from 0% - 99%.
</span></span></span><span class="line"><span class="cl"><span class="s"># Value 0% disables
</span></span></span><span class="line"><span class="cl"><span class="s"># min_free_space = &#34;10%&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># mkfsarg specifies extra mkfs arguments to be used when creating the base
</span></span></span><span class="line"><span class="cl"><span class="s"># device.
</span></span></span><span class="line"><span class="cl"><span class="s"># mkfsarg = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># metadata_size is used to set the &#39;pvcreate --metadatasize&#39; options when
</span></span></span><span class="line"><span class="cl"><span class="s"># creating thin devices. Default is 128k
</span></span></span><span class="line"><span class="cl"><span class="s"># metadata_size = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># Size is used to set a maximum size of the container image.
</span></span></span><span class="line"><span class="cl"><span class="s"># size = &#34;&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># use_deferred_removal marks devicemapper block device for deferred removal.
</span></span></span><span class="line"><span class="cl"><span class="s"># If the thinpool is in use when the driver attempts to remove it, the driver
</span></span></span><span class="line"><span class="cl"><span class="s"># tells the kernel to remove it as soon as possible. Note this does not free
</span></span></span><span class="line"><span class="cl"><span class="s"># up the disk space, use deferred deletion to fully remove the thinpool.
</span></span></span><span class="line"><span class="cl"><span class="s"># use_deferred_removal = &#34;True&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># use_deferred_deletion marks thinpool device for deferred deletion.
</span></span></span><span class="line"><span class="cl"><span class="s"># If the device is busy when the driver attempts to delete it, the driver
</span></span></span><span class="line"><span class="cl"><span class="s"># will attempt to delete device every 30 seconds until successful.
</span></span></span><span class="line"><span class="cl"><span class="s"># If the program using the driver exits, the driver will continue attempting
</span></span></span><span class="line"><span class="cl"><span class="s"># to cleanup the next time the driver is used. Deferred deletion permanently
</span></span></span><span class="line"><span class="cl"><span class="s"># deletes the device and all data stored in device will be lost.
</span></span></span><span class="line"><span class="cl"><span class="s"># use_deferred_deletion = &#34;True&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s"># xfs_nospace_max_retries specifies the maximum number of retries XFS should
</span></span></span><span class="line"><span class="cl"><span class="s"># attempt to complete IO when ENOSPC (no space) error is returned by
</span></span></span><span class="line"><span class="cl"><span class="s"># underlying storage device.
</span></span></span><span class="line"><span class="cl"><span class="s"># xfs_nospace_max_retries = &#34;0&#34;
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="max-logsize-config">Max logsize Config</h3>
<p>Sets a limit of container logs (similar to <link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/tree/main/container-common"
    title="container-common" 
     target="_blank" rel="nofollow noopener noreferrer" >
  container-common&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> for unifi devices with podman). 104857600 Bytes = 100 Megabytes</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat &gt; /data/podman/etc/containers/libpod.conf <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">max_log_size = 104857600
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="boot-script">Boot Script</h3>
<p>This script ensures that podman is fully installed on the start of the UDR. All binaries are therefore linked from the persistent directory.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat &gt; /data/on_boot.d/07-podman.sh <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">#!/bin/bash
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /usr/share/containers
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /usr/libexec/podman
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /etc/containers
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /etc/containers/registries.conf.d
</span></span></span><span class="line"><span class="cl"><span class="s">mkdir -p /data/podman/var/lib/containers/
</span></span></span><span class="line"><span class="cl"><span class="s">
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/usr/share/containers/seccomp.json /usr/share/containers/seccomp.json
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/usr/libexec/podman/conmon /usr/libexec/podman/conmon
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/usr/bin/runc /usr/bin/runc
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/usr/bin/podman /usr/bin/podman
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/containers.conf /etc/containers/containers.conf
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/policy.json /etc/containers/policy.json
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/storage.conf /etc/containers/storage.conf
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/libpod.conf /etc/containers/libpod.conf
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/etc/containers/registries.conf.d/dockerio.conf /etc/containers/registries.conf.d/dockerio.conf
</span></span></span><span class="line"><span class="cl"><span class="s">ln -sf /data/podman/var/lib/containers/ /var/lib/containers
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span><span class="line"><span class="cl">chmod a+x /data/on_boot.d/07-podman.sh
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="quellen">Quellen</h2>
<ul>
<li><link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/issues/273#issuecomment-982135782#issuecomment-982135782"
    title="Comment in Issue #263 of the unifios-utilities" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Comment in Issue #263 of the unifios-utilities&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
<li><link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/issues/321#issuecomment-1034079344#issuecomment-1034079344"
    title="Comment in Issue #321 of the unifios-utilities" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Comment in Issue #321 of the unifios-utilities&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
<li><link rel=dns-prefetch href=//github.com /> <a href="https://github.com/unifi-utilities/unifios-utilities/issues/321#issuecomment-1098460030#issuecomment-1098460030"
    title="Comment in Issue #321 of the unifios-utilities" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Comment in Issue #321 of the unifios-utilities&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Unifi Dream Router (UDR) - Setup of the NTP Server</title>
      
      
      <link>https://wolf-u.li/unifi-dream-router-udr-setup-of-the-ntp-server/</link>
      <pubDate>Mon, 22 Aug 2022 08:24:29 +2200</pubDate>
      <guid>https://wolf-u.li/unifi-dream-router-udr-setup-of-the-ntp-server/</guid>
      <description>&lt;p&gt;After i had installed my new Unifi Dream Router i discovered after a while that the time of some of the devices in my network was screwed up. After a bit of research i found that the UDR (in contrast to my previous Unifi Gateway) doesn&amp;rsquo;t feature NTP. Hence i had a pretty timeless setup.&lt;/p&gt;
&lt;ins class=&#34;adsbygoogle&#34; style=&#34;display:block; text-align:center;&#34; data-ad-layout=&#34;in-article&#34; data-ad-format=&#34;fluid&#34; data-ad-client=&#34;ca-pub-2322978122735420&#34; data-ad-slot=&#34;3161252284&#34;&gt;&lt;/ins&gt;
&lt;h2 id=&#34;setup-of-podman&#34;&gt;Setup of podman&lt;/h2&gt;
&lt;p&gt;The NTP server is setup in a &lt;link rel=dns-prefetch href=//hub.docker.com /&gt; &lt;a href=&#34;https://hub.docker.com/r/tusc/chrony-udm&#34;
    title=&#34;container&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  container&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;, hence it is important to &lt;a href=&#34;https://wolf-u.li/en/unifi-dream-router-udr-setup-of-podman/&#34;
    title=&#34;first setup podman on the UDR&#34; 
   &gt;
  first setup podman on the UDR&lt;/a&gt;.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>After i had installed my new Unifi Dream Router i discovered after a while that the time of some of the devices in my network was screwed up. After a bit of research i found that the UDR (in contrast to my previous Unifi Gateway) doesn&rsquo;t feature NTP. Hence i had a pretty timeless setup.</p>
<ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-2322978122735420" data-ad-slot="3161252284"></ins>
<h2 id="setup-of-podman">Setup of podman</h2>
<p>The NTP server is setup in a <link rel=dns-prefetch href=//hub.docker.com /> <a href="https://hub.docker.com/r/tusc/chrony-udm"
    title="container" 
     target="_blank" rel="nofollow noopener noreferrer" >
  container&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>, hence it is important to <a href="/en/unifi-dream-router-udr-setup-of-podman/"
    title="first setup podman on the UDR" 
   >
  first setup podman on the UDR</a>.</p>
<h2 id="setup-of-the-ntp-container">Setup of the NTP Container</h2>
<p>To automatically start the container, the respective file has to be created. This is done through the following command:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat &gt; /data/on_boot.d/20-ntp.sh <span class="s">&lt;&lt;EOF
</span></span></span><span class="line"><span class="cl"><span class="s">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="s">CONTAINER=ntp
</span></span></span><span class="line"><span class="cl"><span class="s">if podman container exists ${CONTAINER}; then
</span></span></span><span class="line"><span class="cl"><span class="s">  podman start ${CONTAINER}
</span></span></span><span class="line"><span class="cl"><span class="s">else
</span></span></span><span class="line"><span class="cl"><span class="s">  podman run --device=/dev/net/tun --publish=123:123/udp --cap-add=SYS_TIME --name ${CONTAINER} -d tusc/chrony-udm
</span></span></span><span class="line"><span class="cl"><span class="s">fi
</span></span></span><span class="line"><span class="cl"><span class="s">EOF</span>
</span></span><span class="line"><span class="cl">chmod a+x /data/on_boot.d/20-ntp.sh
</span></span></code></pre></td></tr></table>
</div>
</div><p>Now pull the container:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">podman pull tusc/chrony-udm
</span></span></code></pre></td></tr></table>
</div>
</div><p>And start the container:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">/data/on_boot.d/20-ntp.sh
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="sources">Sources</h2>
<ul>
<li><link rel=dns-prefetch href=//community.ui.com /> <a href="https://community.ui.com/questions/PSA-UDM-will-not-act-as-an-NTP-server/327e85c8-8680-4c47-b60e-045894fc7cc4"
    title="PSA: UDM will not act as an NTP server" 
     target="_blank" rel="nofollow noopener noreferrer" >
  PSA: UDM will not act as an NTP server&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
<li><link rel=dns-prefetch href=//hub.docker.com /> <a href="https://hub.docker.com/r/tusc/chrony-udm"
    title="Dockerhub: tusc/chrony-udm" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Dockerhub: tusc/chrony-udm&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
