This commit is contained in:
github-actions[bot] 2021-09-26 08:38:19 +00:00
parent 4d20a99272
commit b2be6d4365
46 changed files with 8645 additions and 2522 deletions

View file

@ -16,7 +16,7 @@
<link rel="canonical" href="https://docker-mailserver.github.io/docker-mailserver/edge/contributing/coding-style/">
<link rel="icon" href="../../assets/logo/favicon-32x32.png">
<meta name="generator" content="mkdocs-1.2.2, mkdocs-material-7.2.8">
<meta name="generator" content="mkdocs-1.2.2, mkdocs-material-7.3.0">
@ -24,7 +24,7 @@
<link rel="stylesheet" href="../../assets/stylesheets/main.92558b1b.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/main.8b42a75e.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.3f5d1f46.min.css">
@ -82,7 +82,9 @@
</div>
<header class="md-header" data-md-component="header">
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Docker Mailserver" class="md-header__button md-logo" aria-label="Docker Mailserver" data-md-component="logo">
@ -182,6 +184,7 @@
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
@ -189,6 +192,7 @@
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-tabs__inner md-grid">
<ul class="md-tabs__list">
@ -313,6 +317,7 @@
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
@ -396,10 +401,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" data-md-state="indeterminate" type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3">
Configuration
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3">
Configuration
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Configuration" data-md-level="1">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
@ -408,6 +417,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -418,8 +428,10 @@
</li>
@ -430,8 +442,10 @@
</li>
@ -441,10 +455,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" data-md-state="indeterminate" type="checkbox" id="__nav_3_3" checked>
<label class="md-nav__link" for="__nav_3_3">
User Management
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3_3">
User Management
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="User Management" data-md-level="2">
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
@ -453,6 +471,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -463,8 +482,10 @@
</li>
@ -475,14 +496,17 @@
</li>
</ul>
</nav>
</li>
@ -492,10 +516,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_4" data-md-state="indeterminate" type="checkbox" id="__nav_3_4" checked>
<label class="md-nav__link" for="__nav_3_4">
Best Practices
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3_4">
Best Practices
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Best Practices" data-md-level="2">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
@ -504,6 +532,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -514,8 +543,10 @@
</li>
@ -526,8 +557,10 @@
</li>
@ -538,8 +571,10 @@
</li>
@ -550,14 +585,17 @@
</li>
</ul>
</nav>
</li>
@ -567,10 +605,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_5" data-md-state="indeterminate" type="checkbox" id="__nav_3_5" checked>
<label class="md-nav__link" for="__nav_3_5">
Security
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3_5">
Security
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Security" data-md-level="2">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
@ -579,6 +621,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -589,8 +632,10 @@
</li>
@ -601,8 +646,10 @@
</li>
@ -613,8 +660,10 @@
</li>
@ -625,14 +674,17 @@
</li>
</ul>
</nav>
</li>
@ -642,10 +694,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_6" data-md-state="indeterminate" type="checkbox" id="__nav_3_6" checked>
<label class="md-nav__link" for="__nav_3_6">
Troubleshooting
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3_6">
Troubleshooting
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Troubleshooting" data-md-level="2">
<label class="md-nav__title" for="__nav_3_6">
<span class="md-nav__icon md-icon"></span>
@ -654,6 +710,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -664,14 +721,17 @@
</li>
</ul>
</nav>
</li>
@ -682,8 +742,10 @@
</li>
@ -693,10 +755,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_8" data-md-state="indeterminate" type="checkbox" id="__nav_3_8" checked>
<label class="md-nav__link" for="__nav_3_8">
Advanced Configuration
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3_8">
Advanced Configuration
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Advanced Configuration" data-md-level="2">
<label class="md-nav__title" for="__nav_3_8">
<span class="md-nav__icon md-icon"></span>
@ -705,6 +771,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -715,8 +782,10 @@
</li>
@ -726,10 +795,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_8_2" data-md-state="indeterminate" type="checkbox" id="__nav_3_8_2" checked>
<label class="md-nav__link" for="__nav_3_8_2">
Maintenance
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3_8_2">
Maintenance
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Maintenance" data-md-level="3">
<label class="md-nav__title" for="__nav_3_8_2">
<span class="md-nav__icon md-icon"></span>
@ -738,6 +811,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -748,14 +822,17 @@
</li>
</ul>
</nav>
</li>
@ -765,10 +842,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_8_3" data-md-state="indeterminate" type="checkbox" id="__nav_3_8_3" checked>
<label class="md-nav__link" for="__nav_3_8_3">
Override the Default Configs
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3_8_3">
Override the Default Configs
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Override the Default Configs" data-md-level="3">
<label class="md-nav__title" for="__nav_3_8_3">
<span class="md-nav__icon md-icon"></span>
@ -777,6 +858,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -787,8 +869,10 @@
</li>
@ -799,8 +883,10 @@
</li>
@ -811,14 +897,17 @@
</li>
</ul>
</nav>
</li>
@ -829,8 +918,10 @@
</li>
@ -841,8 +932,10 @@
</li>
@ -853,8 +946,10 @@
</li>
@ -864,10 +959,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_8_7" data-md-state="indeterminate" type="checkbox" id="__nav_3_8_7" checked>
<label class="md-nav__link" for="__nav_3_8_7">
Email Forwarding
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_3_8_7">
Email Forwarding
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Email Forwarding" data-md-level="3">
<label class="md-nav__title" for="__nav_3_8_7">
<span class="md-nav__icon md-icon"></span>
@ -876,6 +975,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -886,8 +986,10 @@
</li>
@ -898,14 +1000,17 @@
</li>
</ul>
</nav>
</li>
@ -916,8 +1021,10 @@
</li>
@ -928,8 +1035,10 @@
</li>
@ -940,8 +1049,10 @@
</li>
@ -952,12 +1063,14 @@
</li>
</ul>
</nav>
</li>
</ul>
</nav>
@ -978,10 +1091,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" data-md-state="indeterminate" type="checkbox" id="__nav_4" checked>
<label class="md-nav__link" for="__nav_4">
Examples
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_4">
Examples
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Examples" data-md-level="1">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
@ -990,6 +1107,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -999,10 +1117,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_1" data-md-state="indeterminate" type="checkbox" id="__nav_4_1" checked>
<label class="md-nav__link" for="__nav_4_1">
Tutorials
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_4_1">
Tutorials
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Tutorials" data-md-level="2">
<label class="md-nav__title" for="__nav_4_1">
<span class="md-nav__icon md-icon"></span>
@ -1011,6 +1133,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -1021,8 +1144,10 @@
</li>
@ -1033,8 +1158,10 @@
</li>
@ -1045,14 +1172,17 @@
</li>
</ul>
</nav>
</li>
@ -1062,10 +1192,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" data-md-state="indeterminate" type="checkbox" id="__nav_4_2" checked>
<label class="md-nav__link" for="__nav_4_2">
Use Cases
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_4_2">
Use Cases
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Use Cases" data-md-level="2">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
@ -1074,6 +1208,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -1084,8 +1219,10 @@
</li>
@ -1096,12 +1233,14 @@
</li>
</ul>
</nav>
</li>
</ul>
</nav>
@ -1139,10 +1278,14 @@
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" checked>
<label class="md-nav__link" for="__nav_6">
Contributing
<span class="md-nav__icon md-icon"></span>
</label>
<label class="md-nav__link" for="__nav_6">
Contributing
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Contributing" data-md-level="1">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
@ -1151,6 +1294,7 @@
<ul class="md-nav__list" data-md-scrollfix>
@ -1161,8 +1305,10 @@
</li>
@ -1271,8 +1417,10 @@
</li>
@ -1283,8 +1431,10 @@
</li>
@ -1295,6 +1445,7 @@
</li>
</ul>
</nav>
@ -1508,17 +1659,20 @@
<h3 id="error-tracing"><a class="toclink" href="#error-tracing">Error Tracing</a></h3>
<p>A construct to trace error in your scripts looks like this. Remember: Remove <code>set -x</code> in the end. This is for debugging purposes only.</p>
<div class="highlight"><pre><span></span><code><span class="nb">set</span> -xeuEo pipefail
<span class="nb">trap</span> <span class="s1">&#39;__log_err ${FUNCNAME[0]:-&quot;?&quot;} ${BASH_COMMAND:-&quot;?&quot;} ${LINENO:-&quot;?&quot;} ${?:-&quot;?&quot;}&#39;</span> ERR
<span class="nb">trap</span> <span class="s1">&#39;__err &quot;${BASH_SOURCE}&quot; &quot;${FUNCNAME[0]:-?}&quot; &quot;${BASH_COMMAND:-?}&quot; &quot;${LINENO:-?}&quot; &quot;${?:-?}&quot;&#39;</span> ERR
<span class="nv">SCRIPT</span><span class="o">=</span><span class="s1">&#39;name_of_this_script.sh&#39;</span>
<span class="k">function</span> __log_err
<span class="k">function</span> __err
<span class="o">{</span>
<span class="nb">printf</span> <span class="s2">&quot;\n--- \e[1m\e[31mUNCHECKED ERROR\e[0m\n%s\n%s\n%s\n%s\n\n&quot;</span> <span class="se">\</span>
<span class="s2">&quot; - script = </span><span class="si">${</span><span class="nv">SCRIPT</span><span class="k">:-</span><span class="si">${</span><span class="nv">0</span><span class="si">}}</span><span class="s2">&quot;</span> <span class="se">\</span>
<span class="s2">&quot; - function = </span><span class="si">${</span><span class="nv">1</span><span class="si">}</span><span class="s2"> / </span><span class="si">${</span><span class="nv">2</span><span class="si">}</span><span class="s2">&quot;</span> <span class="se">\</span>
<span class="s2">&quot; - line = </span><span class="si">${</span><span class="nv">3</span><span class="si">}</span><span class="s2">&quot;</span> <span class="se">\</span>
<span class="s2">&quot; - exit code = </span><span class="si">${</span><span class="nv">4</span><span class="si">}</span><span class="s2">&quot;</span> <span class="m">1</span>&gt;<span class="p">&amp;</span><span class="m">2</span>
<span class="nb">local</span> <span class="nv">RED</span><span class="o">=</span><span class="s2">&quot;\e[31m\e[1m&quot;</span>
<span class="nb">local</span> <span class="nv">RESET</span><span class="o">=</span><span class="s2">&quot;\e[0m&quot;</span>
<span class="nb">local</span> <span class="nv">ERR_MSG</span><span class="o">=</span><span class="s2">&quot;\n--- </span><span class="si">${</span><span class="nv">RED</span><span class="si">}</span><span class="s2">UNCHECKED ERROR</span><span class="si">${</span><span class="nv">RESET</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="nv">ERR_MSG</span><span class="o">+=</span><span class="s2">&quot;\n - script = </span><span class="si">${</span><span class="nv">1</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="nv">ERR_MSG</span><span class="o">+=</span><span class="s2">&quot;\n - function = </span><span class="si">${</span><span class="nv">2</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="nv">ERR_MSG</span><span class="o">+=</span><span class="s2">&quot;\n - command = </span><span class="si">${</span><span class="nv">3</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="nv">ERR_MSG</span><span class="o">+=</span><span class="s2">&quot;\n - line = </span><span class="si">${</span><span class="nv">4</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="nv">ERR_MSG</span><span class="o">+=</span><span class="s2">&quot;\n - exit code = </span><span class="si">${</span><span class="nv">5</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="nb">echo</span> -e <span class="s2">&quot;</span><span class="si">${</span><span class="nv">ERR_MSG</span><span class="si">}</span><span class="s2">&quot;</span>
&lt;CODE TO RUN AFTERWARDS&gt;
<span class="o">}</span>
@ -1629,10 +1783,12 @@
<p>&copy <a href="https://github.com/docker-mailserver"><em>Docker Mailserver Organization</em></a><br/><span>This project is licensed under the MIT license.</span></p>
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
@ -1644,10 +1800,10 @@
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.top", "navigation.expand", "navigation.instant"], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "../../assets/javascripts/workers/search.94ec81fe.min.js", "version": {"provider": "mike"}}</script>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.tabs", "navigation.top", "navigation.expand", "navigation.instant"], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "../../assets/javascripts/workers/search.f8263e09.min.js", "version": {"provider": "mike"}}</script>
<script src="../../assets/javascripts/bundle.48dfec6c.min.js"></script>
<script src="../../assets/javascripts/bundle.4fc53ad4.min.js"></script>
</body>