</span><spanid="__span-4-11"><aid="__codelineno-4-11"name="__codelineno-4-11"href="#__codelineno-4-11"></a><spanclass="w"></span><spanclass="nt">gethomepage.dev/app</span><spanclass="p">:</span><spanclass="w"></span><spanclass="l l-Scalar l-Scalar-Plain">emby-app</span><spanclass="w"></span><spanclass="c1"># optional, may be needed if app.kubernetes.io/name != ingress metadata.name</span>
<li>In the UNRAID webGUI, go to the <strong>Apps</strong> tab.</li>
<li>In the search bar, search for <code>homepage</code>.</li>
<li>Click on <strong>Install</strong>.</li>
<li>Change the parameters to your liking.<ul>
<li>Change the parameters to your liking.</li>
<li>Click on <strong>APPLY</strong>.</li>
</ul>
</li>
</ul>
<h2id="run-the-container">Run the Container</h2>
<ul>
<li>While the container is running, open the WebUI.<ul>
<li>While the container is running, open the WebUI.</li>
<li>Opening the page will generate the configuration files.</li>
</ul>
</li>
</ul>
<p>You may need to set the permissions of the folders to be able to edit the files.</p>
<ul>
<li>Click on the Homepage icon.</li>
<li>Click on <strong>Console</strong>.<ul>
<li>Click on <strong>Console</strong>.</li>
<li>Enter <code>chmod -R u-x,go-rwx,go+u,ugo+X /app/config</code> and press <strong>Enter</strong>.</li>
<li>Enter <code>chmod -R u-x,go-rwx,go+u,ugo+X /app/public/icons</code> and press <strong>Enter</strong>.</li>
<li>Enter <code>chown -R nobody:users /app/config</code> and press <strong>Enter</strong>.</li>
<li>Enter <code>chown -R nobody:users /app/public/icons</code> and press <strong>Enter</strong>.</li>
</ul>
</li>
</ul>
<h2id="some-other-notes">Some Other Notes</h2>
<ul>
<li>
<p>To use the <ahref="../../configs/docker/">Docker integration</a>, you only need to use the <code>container:</code> parameter. There is no need to set the server.</p>
<divclass="admonition note">
<pclass="admonition-title">Note</p>
<p>To view detailed container statistics (CPU, RAM, etc.), or if you use a remote docker socket, <code>container:</code> will still need to be set. For example:</p>
</div>
<li>To use the <ahref="../../configs/docker/">Docker integration</a>, you only need to use the <code>container:</code> parameter. There is no need to set the server.</li>
</ul>
<p>!!! note</p>
<divclass="language-text highlight"><pre><span></span><code> To view detailed container statistics (CPU, RAM, etc.), or if you use a remote docker socket, `container:` will still need to be set. For example:
<p>When you upload a new image into the <strong>/images</strong> folder, you will need to restart the container for it to show up in the WebUI. Please see the <ahref="../../configs/services/#icons">service icons</a> for more information.</p>
</li>
<ul>
<li>When you upload a new image into the <strong>/images</strong> folder, you will need to restart the container for it to show up in the WebUI. Please see the <ahref="../../configs/services/#icons">service icons</a> for more information.</li>
<h2id="code-formatting-with-pre-commit-hooks">Code formatting with pre-commit hooks</h2>
<p>To ensure a consistent style and formatting across the project source, the project utilizes Git <ahref="https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks"><code>pre-commit</code></a> hooks to perform some formatting and linting before a commit is allowed.
That way, everyone uses the same style and some common issues can be caught early on.</p>
<p>Once installed, hooks will run when you commit. If the formatting isn't quite right or a linter catches something, the commit will be rejected.
You'll need to look at the output and fix the issue. Some hooks will format failing files, so all you need to do is <code>git add</code> those files again
<li>Under the <code>User Groups</code> tab of the user config dialogue check the box for <code>Administrators</code>.</li>
<li>On the <code>Permissions</code> tab check the top box for <code>No Access</code>, effectively prohibiting the user from accessing anything in the shared folders.</li>
<li>Under <code>Applications</code> check the box next to <code>Deny</code> in the header to explicitly prohibit login to all applications.</li>
<li>Now <em>only</em> allow login to the <code>Download Station</code> application, either by<ul>
<li>Now <em>only</em> allow login to the <code>Download Station</code> application, either by</li>
<li>unchecking <code>Deny</code> in the respective row, or (if inheriting permission doesn't work because of other group settings)</li>
<li>checking <code>Allow</code> for this app, or</li>
<li>checking <code>By IP</code> for this app to limit the source of login attempts to one or more IP addresses/subnets.</li>
</ul>
</li>
<li>When the <code>Preview</code> column shows <code>Allow</code> in the <code>Download Station</code> row, click <code>Save</code>.</li>
</ol>
<p>Now configure the widget with the correct login information and test it.</p>
<p>Up to a maximum of four custom states and/or templates can be queried via the <code>custom</code> property like in the example below.
The <code>custom</code> property will have no effect as long as the <code>fields</code> property is defined.</p>
<ul>
<li><code>state</code> will query the state of the specified <code>entity_id</code><ul>
<li><code>state</code> will query the state of the specified <code>entity_id</code></li>
<li>state labels and values can be user defined and may reference entity attributes in curly brackets</li>
<li>if no state label is defined it will default to <code>"{attributes.friendly_name}"</code></li>
<li>if no state value is defined it will default to <code>"{state} {attributes.unit_of_measurement}"</code></li>
</ul>
</li>
<li><code>template</code> will query the specified template, see (Home Assistant Templating)[https://www.home-assistant.io/docs/configuration/templating]<ul>
<li><code>template</code> will query the specified template, see (Home Assistant Templating)[https://www.home-assistant.io/docs/configuration/templating]</li>
<li>if no template label is defined it will be empty</li>