migrate therinaldos.com data
Build & Deploy to DigitalOcean Space / build (push) Failing after 2m38s

This commit is contained in:
2024-05-05 15:50:45 -04:00
commit ef1ff240d4
23182 changed files with 3801898 additions and 0 deletions
@@ -0,0 +1,257 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Activity app &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Memory caching" href="caching_configuration.html" />
<link rel="prev" title="Using the occ command" href="occ_command.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Activity app</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#enabling-the-activity-app">Enabling the activity app</a></li>
<li class="toctree-l3"><a class="reference internal" href="#configuring-your-nextcloud-for-the-activity-app">Configuring your Nextcloud for the activity app</a></li>
<li class="toctree-l3"><a class="reference internal" href="#activities-in-groupfolders-or-external-storages">Activities in groupfolders or external storages</a></li>
<li class="toctree-l3"><a class="reference internal" href="#better-scheduling-of-activity-emails">Better scheduling of activity emails</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Activity app</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/activity_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="activity-app">
<h1>Activity app<a class="headerlink" href="#activity-app" title="Link to this heading"></a></h1>
<p>You can configure your Nextcloud server to automatically send out e-mail notifications
to your users for various events like:</p>
<ul class="simple">
<li><p>A file or folder has been shared</p></li>
<li><p>A new file or folder has been created</p></li>
<li><p>A file or folder has been changed</p></li>
<li><p>A file or folder has been deleted</p></li>
</ul>
<p>Users can see actions (delete, add, modify) that happen to files they have access to.
Sharing actions are only visible to the sharer and sharee.</p>
<section id="enabling-the-activity-app">
<h2>Enabling the activity app<a class="headerlink" href="#enabling-the-activity-app" title="Link to this heading"></a></h2>
<p>The Activity App is shipped and enabled by default. If it is not enabled
simply go to your Nextcloud Apps page to enable it.</p>
</section>
<section id="configuring-your-nextcloud-for-the-activity-app">
<h2>Configuring your Nextcloud for the activity app<a class="headerlink" href="#configuring-your-nextcloud-for-the-activity-app" title="Link to this heading"></a></h2>
<p>To configure your Nextcloud to send out e-mail notifications a working
<a class="reference internal" href="email_configuration.html"><span class="doc">Email</span></a> is mandatory.</p>
<p>Furthermore it is recommended to configure the background job <code class="docutils literal notranslate"><span class="pre">Webcron</span></code> or
<code class="docutils literal notranslate"><span class="pre">Cron</span></code> as described in <a class="reference internal" href="background_jobs_configuration.html"><span class="doc">Background jobs</span></a>.</p>
<p>There is also a configuration option <code class="docutils literal notranslate"><span class="pre">activity_expire_days</span></code> available in your
<code class="docutils literal notranslate"><span class="pre">config.php</span></code> (See <a class="reference internal" href="config_sample_php_parameters.html#label-activity-app-config"><span class="std std-ref">Activity app</span></a>) which allows
you to clean-up older activities from the database.</p>
</section>
<section id="activities-in-groupfolders-or-external-storages">
<span id="label-activities-groupfolders"></span><h2>Activities in groupfolders or external storages<a class="headerlink" href="#activities-in-groupfolders-or-external-storages" title="Link to this heading"></a></h2>
<p>By default activities in groupfolders or external storages are only generated for the current user.
This is due to the logic of groupfolders and external storages. There is a config flag
<code class="docutils literal notranslate"><span class="pre">activity_use_cached_mountpoints</span></code> that makes activities in groupfolders and external storages work
like in normal shares when set to <code class="docutils literal notranslate"><span class="pre">true</span></code>.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>This config option comes with the following limitations:</p>
<ol class="arabic simple">
<li><p>If “Advanced Permissions” (ACLs) are enabled in a groupfolder, the activities dont respect the permissions and therefore all users see all activities, even for files and directories they dont have access to. <strong>This potentially leaks sensitive information!</strong> See <a class="reference external" href="https://github.com/nextcloud/groupfolders/issues/1057">this issue</a> for more information.</p></li>
<li><p>Users that had access to a groupfolder, share or external storage can see activities in their stream and emails that happen after they are removed until they login again</p></li>
<li><p>Users that are newly added to a groupfolder, share or external storage can not see activities in their stream nor emails that happen after they are added until they login again</p></li>
</ol>
</div>
</section>
<section id="better-scheduling-of-activity-emails">
<h2>Better scheduling of activity emails<a class="headerlink" href="#better-scheduling-of-activity-emails" title="Link to this heading"></a></h2>
<p>In certain scenarios it makes sense to send the activity emails out more regularly,
e.g. you want to send the hourly emails always at the full hour, daily emails before
people start to work in the morning and weekly mails shall be send on monday morning,
so people can read up when starting into the week.</p>
<p>A console command is available to trigger sending those emails.
This allows to set up special cron jobs on your server with the known
granularity, instead of relying on the Nextcloud cron feature which is not very flexible
on scheduling.</p>
<p>To implement the samples mentioned above, the following three entries are necessary:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># crontab -u www-data -e</span>
<span class="mi">0</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="n">php</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">occ</span> <span class="n">activity</span><span class="p">:</span><span class="n">send</span><span class="o">-</span><span class="n">mails</span> <span class="n">hourly</span>
<span class="mi">30</span> <span class="mi">7</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="n">php</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">occ</span> <span class="n">activity</span><span class="p">:</span><span class="n">send</span><span class="o">-</span><span class="n">mails</span> <span class="n">daily</span>
<span class="mi">30</span> <span class="mi">7</span> <span class="o">*</span> <span class="o">*</span> <span class="n">MON</span> <span class="n">php</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">occ</span> <span class="n">activity</span><span class="p">:</span><span class="n">send</span><span class="o">-</span><span class="n">mails</span> <span class="n">weekly</span>
</pre></div>
</div>
<p>If you want to manually send out all activity emails which are queued, you can run
<code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">activity:send-mails</span></code> without any argument.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="occ_command.html" class="btn btn-neutral float-left" title="Using the occ command" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="caching_configuration.html" class="btn btn-neutral float-right" title="Memory caching" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,214 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Admin right privilege &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Domain Change" href="domain_change.html" />
<link rel="prev" title="OAuth2" href="oauth2.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Admin right privilege</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#configuring-admin-right-privilege">Configuring Admin right privilege</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Admin right privilege</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/admin_delegation_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="admin-right-privilege">
<h1>Admin right privilege<a class="headerlink" href="#admin-right-privilege" title="Link to this heading"></a></h1>
<p>By default only members of the admin group can access and edit the admin
settings. It is sometimes needed to give some group of users access to a
setting page while not giving them access to everything. For this you can
use the <em>Admin right privilege</em> settings.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Not every setting pages support this features. This is due to either the
feature not being implemented yet for the specific setting page or due
to possible privilege escalations.</p>
</div>
<section id="configuring-admin-right-privilege">
<h2>Configuring Admin right privilege<a class="headerlink" href="#configuring-admin-right-privilege" title="Link to this heading"></a></h2>
<p>Go to the <em>Admin right privilege</em> Admin page, you should be presented
with the list of settings that support this features.</p>
<figure class="align-default">
<img alt="../_images/admin-right.png" src="../_images/admin-right.png" />
</figure>
<p>By clicking on the combobox, you will be able to choose which user groups
are able to access the selected setting. You can revoke the access at any
time by removing the group from the selection.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="oauth2.html" class="btn btn-neutral float-left" title="OAuth2" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="domain_change.html" class="btn btn-neutral float-right" title="Domain Change" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,374 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Antivirus scanner &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Dashboard app" href="dashboard_configuration.html" />
<link rel="prev" title="Logging" href="logging_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Antivirus scanner</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#installing-clamav">Installing ClamAV</a></li>
<li class="toctree-l3"><a class="reference internal" href="#enabling-the-antivirus-app-for-files">Enabling the antivirus app for files</a></li>
<li class="toctree-l3"><a class="reference internal" href="#configuring-clamav-on-nextcloud">Configuring ClamAV on Nextcloud</a></li>
<li class="toctree-l3"><a class="reference internal" href="#configuring-icap-on-nextcloud">Configuring ICAP on Nextcloud</a></li>
<li class="toctree-l3"><a class="reference internal" href="#disabling-background-scan-task">Disabling background scan task</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Antivirus scanner</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/antivirus_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="antivirus-scanner">
<h1>Antivirus scanner<a class="headerlink" href="#antivirus-scanner" title="Link to this heading"></a></h1>
<p>You can configure your Nextcloud server to automatically run a virus scan on
newly-uploaded files with the Antivirus app for Files. The Antivirus app for
Files integrates the open source anti-virus engine <a class="reference external" href="https://www.clamav.net/index.html">ClamAV</a> with Nextcloud. ClamAV detects all forms
of malware including Trojan horses, viruses, and worms, and it operates on all
major file types including Windows, Linux, and Mac files, compressed files,
executables, image files, Flash, PDF, and many others. ClamAVs Freshclam
daemon automatically updates its malware signature database at scheduled
intervals.</p>
<p>ClamAV runs on Linux and any Unix-type operating system, and Microsoft Windows.
However, it has only been tested with Nextcloud on Linux, so these instructions
are for Linux systems. You must first install ClamAV, and then install and
configure the Antivirus app for Files on Nextcloud.</p>
<section id="installing-clamav">
<h2>Installing ClamAV<a class="headerlink" href="#installing-clamav" title="Link to this heading"></a></h2>
<p>As always, the various Linux distributions manage installing and configuring
ClamAV in different ways.</p>
<dl>
<dt>Debian, Ubuntu, Linux Mint</dt><dd><p>On Debian and Ubuntu systems, and their many variants, install ClamAV with
these commands:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">clamav</span> <span class="n">clamav</span><span class="o">-</span><span class="n">daemon</span>
</pre></div>
</div>
</dd>
</dl>
<p>The installer automatically creates default configuration files and launches the
<code class="docutils literal notranslate"><span class="pre">clamd</span></code> and <code class="docutils literal notranslate"><span class="pre">freshclam</span></code> daemons. You dont have to do anything more, though
its a good idea to review the ClamAV documentation and your settings in
<code class="docutils literal notranslate"><span class="pre">/etc/clamav/</span></code>. Enable verbose logging in both <code class="docutils literal notranslate"><span class="pre">clamd.conf</span></code> and
<code class="docutils literal notranslate"><span class="pre">freshclam.conf</span></code> until you get any kinks worked out.</p>
<dl>
<dt>RedHat Enterprise Linux 7, CentOS 7</dt><dd><p>On RedHat Enterprise Linux 7 and related systems you must install the Extra Packages for
Enterprise Linux (EPEL) repository, and then install ClamAV:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">yum</span> <span class="n">install</span> <span class="n">epel</span><span class="o">-</span><span class="n">release</span>
<span class="n">yum</span> <span class="n">install</span> <span class="n">clamav</span> <span class="n">clamav</span><span class="o">-</span><span class="n">scanner</span> <span class="n">clamav</span><span class="o">-</span><span class="n">scanner</span><span class="o">-</span><span class="n">systemd</span> <span class="n">clamav</span><span class="o">-</span><span class="n">server</span>
<span class="n">clamav</span><span class="o">-</span><span class="n">server</span><span class="o">-</span><span class="n">systemd</span> <span class="n">clamav</span><span class="o">-</span><span class="n">update</span>
</pre></div>
</div>
</dd>
</dl>
<p>This installs two configuration files: <code class="docutils literal notranslate"><span class="pre">/etc/freshclam.conf</span></code> and
<code class="docutils literal notranslate"><span class="pre">/etc/clamd.d/scan.conf</span></code>. You must edit both of these before you can run
ClamAV. Both files are well-commented, and <code class="docutils literal notranslate"><span class="pre">man</span> <span class="pre">clamd.conf</span></code> and <code class="docutils literal notranslate"><span class="pre">man</span>
<span class="pre">freshclam.conf</span></code> explain all the options. Refer to <code class="docutils literal notranslate"><span class="pre">/etc/passwd</span></code> and
<code class="docutils literal notranslate"><span class="pre">/etc/group</span></code> when you need to verify the ClamAV user and group.</p>
<p>First edit <code class="docutils literal notranslate"><span class="pre">/etc/freshclam.conf</span></code> and configure your options.
<code class="docutils literal notranslate"><span class="pre">freshclam</span></code> updates your malware database, so you want it to run frequently to
get updated malware signatures. Run it manually post-installation to download
your first set of malware signatures:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">freshclam</span>
</pre></div>
</div>
<p>The EPEL packages do not include an init file for <code class="docutils literal notranslate"><span class="pre">freshclam</span></code>, so the quick
and easy way to set it up for regular checks is with a cron job. This example
runs it every hour at 47 minutes past the hour:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># m h dom mon dow command</span>
<span class="mi">47</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">freshclam</span> <span class="o">--</span><span class="n">quiet</span>
</pre></div>
</div>
<p>Please avoid any multiples of 10, because those are when the ClamAV servers are
hit the hardest for updates.</p>
<p>Next, edit <code class="docutils literal notranslate"><span class="pre">/etc/clamd.d/scan.conf</span></code>. When youre finished you must enable
the <code class="docutils literal notranslate"><span class="pre">clamd</span></code> service file and start <code class="docutils literal notranslate"><span class="pre">clamd</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">systemctl</span> <span class="n">enable</span> <span class="n">clamd</span><span class="nd">@scan</span><span class="o">.</span><span class="n">service</span>
<span class="n">systemctl</span> <span class="n">start</span> <span class="n">clamd</span><span class="nd">@scan</span><span class="o">.</span><span class="n">service</span>
</pre></div>
</div>
<p>That should take care of everything. Enable verbose logging in <code class="docutils literal notranslate"><span class="pre">scan.conf</span></code>
and <code class="docutils literal notranslate"><span class="pre">freshclam.conf</span></code> until it is running the way you want.</p>
<dl class="simple">
<dt>Docker, Docker-compose</dt><dd><p>To install ClamAV via docker or docker compose you can take official image of ClamAV, or build one by yourself.
This example is based on docker image from <a class="reference external" href="https://github.com/Cisco-Talos/clamav">https://github.com/Cisco-Talos/clamav</a>.</p>
</dd>
</dl>
<p>You can mount ClamAV Socket from the Docker Container to the host System as volume. In this case you do not need to expose any port outside of container.</p>
<p>For a Docker run this command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">docker</span> <span class="n">run</span> <span class="o">--</span><span class="n">name</span> <span class="n">clamav</span> <span class="o">-</span><span class="n">d</span> <span class="o">-</span><span class="n">v</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span> <span class="o">-</span><span class="n">v</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">docker</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span><span class="n">virus_db</span><span class="o">/</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span> <span class="n">clamav</span><span class="o">/</span><span class="n">clamav</span><span class="p">:</span><span class="n">stable_base</span>
</pre></div>
</div>
<p>For a Docker-compose use following settings:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">version</span><span class="p">:</span> <span class="s2">&quot;3.6&quot;</span>
<span class="n">services</span><span class="p">:</span>
<span class="n">clamav</span><span class="p">:</span>
<span class="n">image</span><span class="p">:</span> <span class="s2">&quot;clamav/clamav:stable_base&quot;</span>
<span class="n">container_name</span><span class="p">:</span> <span class="s2">&quot;clamav&quot;</span>
<span class="n">volumes</span><span class="p">:</span>
<span class="c1"># Socket</span>
<span class="o">-</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span>
<span class="c1"># Virus DB</span>
<span class="o">-</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">docker</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span><span class="n">virus_db</span><span class="o">/</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span>
<span class="n">restart</span><span class="p">:</span> <span class="n">unless</span><span class="o">-</span><span class="n">stopped</span>
</pre></div>
</div>
</section>
<section id="enabling-the-antivirus-app-for-files">
<h2>Enabling the antivirus app for files<a class="headerlink" href="#enabling-the-antivirus-app-for-files" title="Link to this heading"></a></h2>
<p>Place the <code class="docutils literal notranslate"><span class="pre">files_antivirus</span></code> app into the <code class="docutils literal notranslate"><span class="pre">apps</span></code> directory of your Nextcloud
server. Then the app shows up on the Nextcloud Apps page where it simply can be
enabled.</p>
<figure class="align-default">
<img alt="../_images/antivirus-app.png" src="../_images/antivirus-app.png" />
</figure>
</section>
<section id="configuring-clamav-on-nextcloud">
<h2>Configuring ClamAV on Nextcloud<a class="headerlink" href="#configuring-clamav-on-nextcloud" title="Link to this heading"></a></h2>
<p>Next, go to your Nextcloud Admin page and set your Nextcloud logging level to
Everything.</p>
<figure class="align-default">
<img alt="../_images/antivirus-logging.png" src="../_images/antivirus-logging.png" />
</figure>
<p>Now find your Antivirus Configuration panel on your Admin page.</p>
<figure class="align-default">
<img alt="../_images/antivirus-config.png" src="../_images/antivirus-config.png" />
</figure>
<p>ClamAV runs in one of three modes:</p>
<ul class="simple">
<li><p>Daemon (Socket): ClamAV is running on the same server as Nextcloud. The ClamAV
daemon, <code class="docutils literal notranslate"><span class="pre">clamd</span></code>, runs in the background. When there is no activity <code class="docutils literal notranslate"><span class="pre">clamd</span></code>
places a minimal load on your system. If your users upload large volumes of
files you will see high CPU usage.</p></li>
<li><p>Daemon: ClamAV is running on a different server. This is a good option
for Nextcloud servers with high volumes of file uploads.</p></li>
<li><p>Executable: ClamAV is running on the same server as Nextcloud, and the
<code class="docutils literal notranslate"><span class="pre">clamscan</span></code> command is started and then stopped with each file upload.
<code class="docutils literal notranslate"><span class="pre">clamscan</span></code> is slow and not always reliable for on-demand usage; it is
better to use one of the daemon modes.</p></li>
</ul>
<dl>
<dt>Daemon (Socket)</dt><dd><p>Nextcloud should detect your <code class="docutils literal notranslate"><span class="pre">clamd</span></code> socket and fill in the <code class="docutils literal notranslate"><span class="pre">Socket</span></code>
field. This is the <code class="docutils literal notranslate"><span class="pre">LocalSocket</span></code> option in <code class="docutils literal notranslate"><span class="pre">clamd.conf</span></code>. You can
run <code class="docutils literal notranslate"><span class="pre">netstat</span></code> to verify:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">netstat</span> <span class="o">-</span><span class="n">a</span><span class="o">|</span><span class="n">grep</span> <span class="n">clam</span>
<span class="n">unix</span> <span class="mi">2</span> <span class="p">[</span> <span class="n">ACC</span> <span class="p">]</span> <span class="n">STREAM</span> <span class="n">LISTENING</span> <span class="mi">15857</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">clamav</span><span class="o">/</span><span class="n">clamd</span><span class="o">.</span><span class="n">ctl</span>
</pre></div>
</div>
<figure class="align-default">
<img alt="../_images/antivirus-daemon-socket.png" src="../_images/antivirus-daemon-socket.png" />
</figure>
<p>The <code class="docutils literal notranslate"><span class="pre">Stream</span> <span class="pre">Length</span></code> value sets the number of bytes read in one pass.
10485760 bytes, or ten megabytes, is the default. This value should be
no larger than the PHP <code class="docutils literal notranslate"><span class="pre">memory_limit</span></code> settings, or physical memory if
<code class="docutils literal notranslate"><span class="pre">memory_limit</span></code> is set to -1 (no limit).</p>
<p><code class="docutils literal notranslate"><span class="pre">Action</span> <span class="pre">for</span> <span class="pre">infected</span> <span class="pre">files</span> <span class="pre">found</span> <span class="pre">while</span> <span class="pre">scanning</span></code> gives you the choice of
logging any alerts without deleting the files, or immediately deleting
infected files.</p>
</dd>
<dt>Daemon</dt><dd><p>For the Daemon option you need the hostname or IP address of the remote
server running ClamAV, and the servers port number.</p>
<figure class="align-default">
<img alt="../_images/antivirus-daemon.png" src="../_images/antivirus-daemon.png" />
</figure>
</dd>
<dt>Executable</dt><dd><p>The Executable option requires the path to <code class="docutils literal notranslate"><span class="pre">clamscan</span></code>, which is the
interactive ClamAV scanning command. Nextcloud should find it automatically.</p>
<figure class="align-default">
<img alt="../_images/antivirus-executable.png" src="../_images/antivirus-executable.png" />
</figure>
</dd>
</dl>
<p>When you are satisfied with how ClamAV is operating, you might want to go
back and change all of your logging to less verbose levels.</p>
</section>
<section id="configuring-icap-on-nextcloud">
<h2>Configuring ICAP on Nextcloud<a class="headerlink" href="#configuring-icap-on-nextcloud" title="Link to this heading"></a></h2>
<p>Nextcloud offers the integration of antivirus protection based on the ICAP protocol.
The settings are outlined here.
Additional documentation is work in progress.</p>
<figure class="align-default">
<img alt="../_images/antivirus-icap.png" src="../_images/antivirus-icap.png" />
</figure>
</section>
<section id="disabling-background-scan-task">
<h2>Disabling background scan task<a class="headerlink" href="#disabling-background-scan-task" title="Link to this heading"></a></h2>
<p>You can disable background scan with occ to only scan files during upload.</p>
<blockquote>
<div><p>occ config:app:set files_antivirus av_background_scan value=”off”</p>
</div></blockquote>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="logging_configuration.html" class="btn btn-neutral float-left" title="Logging" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="dashboard_configuration.html" class="btn btn-neutral float-right" title="Dashboard app" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,320 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Automatic setup &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Text app" href="text_configuration.html" />
<link rel="prev" title="Brute force protection" href="bruteforce_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Automatic setup</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="#automatic-configurations-examples">Automatic configurations examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#data-directory">Data Directory</a></li>
<li class="toctree-l4"><a class="reference internal" href="#sqlite-database">SQLite database</a></li>
<li class="toctree-l4"><a class="reference internal" href="#mysql-database">MySQL database</a></li>
<li class="toctree-l4"><a class="reference internal" href="#postgresql-database">PostgreSQL database</a></li>
<li class="toctree-l4"><a class="reference internal" href="#all-parameters">All parameters</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Automatic setup</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/automatic_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="automatic-setup">
<h1>Automatic setup<a class="headerlink" href="#automatic-setup" title="Link to this heading"></a></h1>
<p>If you need to install Nextcloud on multiple servers, you normally do not want
to set up each instance separately as described in
<a class="reference internal" href="../configuration_database/linux_database_configuration.html"><span class="doc">Database configuration</span></a>.
For this reason, Nextcloud provides an automatic configuration feature.</p>
<p>To take advantage of this feature, you must create a configuration file, called
<code class="file docutils literal notranslate"><span class="pre">config/autoconfig.php</span></code>, and set the file parameters as required.
You can specify any number of parameters in this file. Any unspecified parameters appear on the “Finish setup” screen when you first launch Nextcloud.</p>
<p>The <code class="file docutils literal notranslate"><span class="pre">config/autoconfig.php</span></code> is automatically removed after the initial configuration has been applied.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Keep in mind that the automatic configuration does not eliminate the need for
creating the database user and database in advance, as described in
<a class="reference internal" href="../configuration_database/linux_database_configuration.html"><span class="doc">Database configuration</span></a>.</p>
</div>
<section id="parameters">
<h2>Parameters<a class="headerlink" href="#parameters" title="Link to this heading"></a></h2>
<p>When configuring parameters, you must understand that two parameters are named differently in this configuration file when compared to the standard <code class="file docutils literal notranslate"><span class="pre">config.php</span></code> file.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>autoconfig.php</p></th>
<th class="head"><p>config.php</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>directory</p></td>
<td><p>datadirectory</p></td>
</tr>
<tr class="row-odd"><td><p>dbpass</p></td>
<td><p>dbpassword</p></td>
</tr>
</tbody>
</table>
</section>
<section id="automatic-configurations-examples">
<h2>Automatic configurations examples<a class="headerlink" href="#automatic-configurations-examples" title="Link to this heading"></a></h2>
<p>The following sections provide sample automatic configuration examples and what information is requested at the end of the configuration.</p>
<section id="data-directory">
<h3>Data Directory<a class="headerlink" href="#data-directory" title="Link to this heading"></a></h3>
<p>Using the following parameter settings, the “Finish setup” screen requests database and admin credentials settings.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;?php
$AUTOCONFIG = [
&quot;directory&quot; =&gt; &quot;/www/htdocs/nextcloud/data&quot;,
];
</pre></div>
</div>
</section>
<section id="sqlite-database">
<h3>SQLite database<a class="headerlink" href="#sqlite-database" title="Link to this heading"></a></h3>
<p>Using the following parameter settings, the “Finish setup” screen requests data directory and admin credentials settings.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;?php
$AUTOCONFIG = [
&quot;dbtype&quot; =&gt; &quot;sqlite&quot;,
&quot;dbname&quot; =&gt; &quot;nextcloud&quot;,
&quot;dbtableprefix&quot; =&gt; &quot;&quot;,
];
</pre></div>
</div>
</section>
<section id="mysql-database">
<h3>MySQL database<a class="headerlink" href="#mysql-database" title="Link to this heading"></a></h3>
<p>Using the following parameter settings, the “Finish setup” screen requests data directory and admin credentials settings.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;?php
$AUTOCONFIG = array(
&quot;dbtype&quot; =&gt; &quot;mysql&quot;,
&quot;dbname&quot; =&gt; &quot;nextcloud&quot;,
&quot;dbuser&quot; =&gt; &quot;username&quot;,
&quot;dbpass&quot; =&gt; &quot;password&quot;,
&quot;dbhost&quot; =&gt; &quot;localhost&quot;,
&quot;dbtableprefix&quot; =&gt; &quot;&quot;,
);
</pre></div>
</div>
</section>
<section id="postgresql-database">
<h3>PostgreSQL database<a class="headerlink" href="#postgresql-database" title="Link to this heading"></a></h3>
<p>Using the following parameter settings, the “Finish setup” screen requests data directory and admin credentials settings.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;?php
$AUTOCONFIG = array(
&quot;dbtype&quot; =&gt; &quot;pgsql&quot;,
&quot;dbname&quot; =&gt; &quot;nextcloud&quot;,
&quot;dbuser&quot; =&gt; &quot;username&quot;,
&quot;dbpass&quot; =&gt; &quot;password&quot;,
&quot;dbhost&quot; =&gt; &quot;localhost&quot;,
&quot;dbtableprefix&quot; =&gt; &quot;&quot;,
);
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Keep in mind that the automatic configuration does not eliminate the need for
creating the database user and database in advance, as described in
<a class="reference internal" href="../configuration_database/linux_database_configuration.html"><span class="doc">Database configuration</span></a>.</p>
</div>
</section>
<section id="all-parameters">
<h3>All parameters<a class="headerlink" href="#all-parameters" title="Link to this heading"></a></h3>
<p>Using the following parameter settings, because all parameters are already configured in the file, the Nextcloud installation skips the “Finish setup” screen.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;?php
$AUTOCONFIG = array(
&quot;dbtype&quot; =&gt; &quot;mysql&quot;,
&quot;dbname&quot; =&gt; &quot;nextcloud&quot;,
&quot;dbuser&quot; =&gt; &quot;username&quot;,
&quot;dbpass&quot; =&gt; &quot;password&quot;,
&quot;dbhost&quot; =&gt; &quot;localhost&quot;,
&quot;dbtableprefix&quot; =&gt; &quot;&quot;,
&quot;adminlogin&quot; =&gt; &quot;root&quot;,
&quot;adminpass&quot; =&gt; &quot;root-password&quot;,
&quot;directory&quot; =&gt; &quot;/www/htdocs/nextcloud/data&quot;,
);
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Keep in mind that the automatic configuration does not eliminate the need for
creating the database user and database in advance, as described in
<a class="reference internal" href="../configuration_database/linux_database_configuration.html"><span class="doc">Database configuration</span></a>.</p>
</div>
</section>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="bruteforce_configuration.html" class="btn btn-neutral float-left" title="Brute force protection" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="text_configuration.html" class="btn btn-neutral float-right" title="Text app" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,368 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Background jobs &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Configuration Parameters" href="config_sample_php_parameters.html" />
<link rel="prev" title="Memory caching" href="caching_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Background jobs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#maintenance-window-start"><code class="docutils literal notranslate"><span class="pre">maintenance_window_start</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#cron-jobs">Cron jobs</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#ajax">AJAX</a></li>
<li class="toctree-l4"><a class="reference internal" href="#webcron">Webcron</a></li>
<li class="toctree-l4"><a class="reference internal" href="#cron">Cron</a></li>
<li class="toctree-l4"><a class="reference internal" href="#systemd">systemd</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Background jobs</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/background_jobs_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="background-jobs">
<h1>Background jobs<a class="headerlink" href="#background-jobs" title="Link to this heading"></a></h1>
<p>A system like Nextcloud sometimes requires tasks to be done on a regular basis
without the need for user interaction or hindering Nextcloud performance. For
that purpose, as a system administrator, you can define background jobs (for
example, database clean-ups) which are executed without any need for user
interaction.</p>
<p>These jobs are typically referred to as <em>cron jobs</em>. Cron jobs are commands or
shell-based scripts that are scheduled to run periodically at fixed times,
dates, or intervals. <code class="docutils literal notranslate"><span class="pre">cron.php</span></code> is a Nextcloud internal process that runs
such background jobs on demand.</p>
<p>Nextcloud apps register actions with <code class="docutils literal notranslate"><span class="pre">cron.php</span></code> automatically
to take care of typical housekeeping operations, such as garbage collecting of
temporary files or checking for newly updated files using <code class="docutils literal notranslate"><span class="pre">filescan()</span></code> for
externally mounted file systems.</p>
<section id="parameters">
<h2>Parameters<a class="headerlink" href="#parameters" title="Link to this heading"></a></h2>
<section id="maintenance-window-start">
<h3><code class="docutils literal notranslate"><span class="pre">maintenance_window_start</span></code><a class="headerlink" href="#maintenance-window-start" title="Link to this heading"></a></h3>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This setting is only taken into account in <code class="docutils literal notranslate"><span class="pre">cron</span></code> mode.</p>
</div>
<p>In the <code class="docutils literal notranslate"><span class="pre">config/config.php</span></code> file you can specify this config.
Some background jobs only run once a day. When an hour is defined (timezone is UTC)
for this config, the background jobs which advertise themselves as not time-sensitive
will be delayed during the “working” hours and only run in the 4 hours after the given
time. This is e.g. used for activity expiration, suspicious login training, and update checks.</p>
<p>A value of 1 e.g. will only run these background jobs between 01:00am UTC and 05:00am UTC:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;maintenance_window_start&#39;</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span>
</pre></div>
</div>
<p>If you dont care when these jobs run, you can set the value to <code class="docutils literal notranslate"><span class="pre">100</span></code>, but beware that
resource intensive jobs may then run unnecessarily during high usage periods. This may lead to
slower performance and a lower quality user experience.</p>
<p>This setting may also be set directly via <code class="docutils literal notranslate"><span class="pre">occ</span></code> just like any other configuration parameter:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">system</span><span class="p">:</span><span class="nb">set</span> <span class="n">maintenance_window_start</span> <span class="o">--</span><span class="nb">type</span><span class="o">=</span><span class="n">integer</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">1</span>
</pre></div>
</div>
</section>
</section>
<section id="cron-jobs">
<h2>Cron jobs<a class="headerlink" href="#cron-jobs" title="Link to this heading"></a></h2>
<p>You can schedule cron jobs in three ways using AJAX, Webcron, or cron. The
default method is to use AJAX. However, the recommended method is to use cron.
The following sections describe the differences between each method.</p>
<section id="ajax">
<h3>AJAX<a class="headerlink" href="#ajax" title="Link to this heading"></a></h3>
<p><strong>Use case: Single user instance</strong></p>
<p>The AJAX scheduling method is the default option. Unfortunately, however, it is
also the least reliable. Each time a user visits the Nextcloud page, a single
background job is executed. The advantage of this mechanism is that it does not
require access to the system nor registration with a third-party service. The
disadvantage of this mechanism, when compared to the Webcron service, is that it
requires regular visits to the page for it to be triggered.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Especially when using the Activity app or external storages, where new
files are added, updated or deleted, or when <strong>multiple users</strong> use the server, it
is recommended to use <code class="docutils literal notranslate"><span class="pre">cron</span></code>.</p>
</div>
</section>
<section id="webcron">
<h3>Webcron<a class="headerlink" href="#webcron" title="Link to this heading"></a></h3>
<p><strong>Use case: Very small instance</strong> (15 users depending on the usage)</p>
<p>By registering your Nextcloud <code class="docutils literal notranslate"><span class="pre">cron.php</span></code> script address at an external webcron
service (for example, <a class="reference external" href="https://www.easycron.com/">easyCron</a>), you ensure that background jobs are executed
regularly. To use this type of service with your server, you must be able to
access your server using the Internet. For example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">URL</span> <span class="n">to</span> <span class="n">call</span><span class="p">:</span> <span class="n">http</span><span class="p">[</span><span class="n">s</span><span class="p">]:</span><span class="o">//&lt;</span><span class="n">domain</span><span class="o">-</span><span class="n">of</span><span class="o">-</span><span class="n">your</span><span class="o">-</span><span class="n">server</span><span class="o">&gt;/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">cron</span><span class="o">.</span><span class="n">php</span>
</pre></div>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Since WebCron is still executed via the web, the webserver in most cases limits the
resources on the execution. To avoid interrupts inside jobs only 1 job is executed
per call. When webcron is called once every 5 minutes this limits your instance to
288 background jobs per day, which is only suitable for very small instances.
For bigger instances, it is recommended to use <code class="docutils literal notranslate"><span class="pre">cron</span></code>.</p>
</div>
</section>
<section id="cron">
<span id="system-cron-configuration-label"></span><h3>Cron<a class="headerlink" href="#cron" title="Link to this heading"></a></h3>
<p>Using the operating system cron feature is the preferred method for executing
regular tasks. This method enables the execution of scheduled jobs without the
inherent limitations the Web server might have.</p>
<p>To run a cron job on a *nix system, every 5 minutes, under the default Web
server user (often, <code class="docutils literal notranslate"><span class="pre">www-data</span></code> or <code class="docutils literal notranslate"><span class="pre">wwwrun</span></code>), you must set up the following
cron job to call the <strong>cron.php</strong> script:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># crontab -u www-data -e</span>
</pre></div>
</div>
<p>And append this line:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">*/</span><span class="mi">5</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="n">php</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">cron</span><span class="o">.</span><span class="n">php</span>
</pre></div>
</div>
<p>You can verify if the cron job has been added and scheduled by executing:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># crontab -u www-data -l</span>
</pre></div>
</div>
<p>Which returns:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">snip</span><span class="p">]</span>
<span class="o">*/</span><span class="mi">5</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="n">php</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">cron</span><span class="o">.</span><span class="n">php</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You have to replace the path <code class="docutils literal notranslate"><span class="pre">/var/www/nextcloud/cron.php</span></code> with the
path to your current Nextcloud installation.</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>On some systems it might be required to call <strong>php-cli</strong> instead of <strong>php</strong>.</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>For some configurations, it might be necessary to append <code class="docutils literal notranslate"><span class="pre">--define</span> <span class="pre">apc.enable_cli=1</span></code> to the cron command. Please refer to <a class="reference internal" href="caching_configuration.html"><span class="doc">Memory caching</span></a> (section APCu).</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Please refer to the crontab man page for the exact command syntax.</p>
</div>
</section>
<section id="systemd">
<h3>systemd<a class="headerlink" href="#systemd" title="Link to this heading"></a></h3>
<p>If systemd is installed on the system, a systemd timer could be an alternative to a cronjob.</p>
<p>This approach requires two files: <strong>nextcloudcron.service</strong> and <strong>nextcloudcron.timer</strong>. Create these two files in <code class="docutils literal notranslate"><span class="pre">/etc/systemd/system/</span></code>.</p>
<p><strong>nextcloudcron.service</strong> should look like this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">Unit</span><span class="p">]</span>
<span class="n">Description</span><span class="o">=</span><span class="n">Nextcloud</span> <span class="n">cron</span><span class="o">.</span><span class="n">php</span> <span class="n">job</span>
<span class="p">[</span><span class="n">Service</span><span class="p">]</span>
<span class="n">User</span><span class="o">=</span><span class="n">www</span><span class="o">-</span><span class="n">data</span>
<span class="n">ExecCondition</span><span class="o">=</span><span class="n">php</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">occ</span> <span class="n">status</span> <span class="o">-</span><span class="n">e</span>
<span class="n">ExecStart</span><span class="o">=/</span><span class="n">usr</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">php</span> <span class="o">-</span><span class="n">f</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">cron</span><span class="o">.</span><span class="n">php</span>
<span class="n">KillMode</span><span class="o">=</span><span class="n">process</span>
</pre></div>
</div>
<p>Replace the user <code class="docutils literal notranslate"><span class="pre">www-data</span></code> with the user of your http server and <code class="docutils literal notranslate"><span class="pre">/var/www/nextcloud/cron.php</span></code> with the location of <strong>cron.php</strong> in your nextcloud directory.</p>
<p>The <cite>ExecCondition</cite> checks that the nextcloud instance is operating normally before running the background job, and skips it if otherwise.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">KillMode=process</span></code> setting is necessary for external programs that are started by the cron job to keep running after the cron job has finished.</p>
<p>Note that the <strong>.service</strong> unit file does not need an <code class="docutils literal notranslate"><span class="pre">[Install]</span></code> section. Please check your setup because we recommended it in earlier versions of this admin manual.</p>
<p><strong>nextcloudcron.timer</strong> should look like this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">Unit</span><span class="p">]</span>
<span class="n">Description</span><span class="o">=</span><span class="n">Run</span> <span class="n">Nextcloud</span> <span class="n">cron</span><span class="o">.</span><span class="n">php</span> <span class="n">every</span> <span class="mi">5</span> <span class="n">minutes</span>
<span class="p">[</span><span class="n">Timer</span><span class="p">]</span>
<span class="n">OnBootSec</span><span class="o">=</span><span class="mi">5</span><span class="nb">min</span>
<span class="n">OnUnitActiveSec</span><span class="o">=</span><span class="mi">5</span><span class="nb">min</span>
<span class="n">Unit</span><span class="o">=</span><span class="n">nextcloudcron</span><span class="o">.</span><span class="n">service</span>
<span class="p">[</span><span class="n">Install</span><span class="p">]</span>
<span class="n">WantedBy</span><span class="o">=</span><span class="n">timers</span><span class="o">.</span><span class="n">target</span>
</pre></div>
</div>
<p>The important parts in the timer-unit are <code class="docutils literal notranslate"><span class="pre">OnBootSec</span></code> and <code class="docutils literal notranslate"><span class="pre">OnUnitActiveSec</span></code>. <code class="docutils literal notranslate"><span class="pre">OnBootSec</span></code> will start the timer 5 minutes after boot, otherwise, you would have to start it manually after every boot. <code class="docutils literal notranslate"><span class="pre">OnUnitActiveSec</span></code> will set a 5-minute timer after the service-unit was last activated.</p>
<p>Now all that is left is to start and enable the timer by running this command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">systemctl</span> <span class="n">enable</span> <span class="o">--</span><span class="n">now</span> <span class="n">nextcloudcron</span><span class="o">.</span><span class="n">timer</span>
</pre></div>
</div>
<p>When the option <code class="docutils literal notranslate"><span class="pre">--now</span></code> is used with <code class="docutils literal notranslate"><span class="pre">enable</span></code>, the respective unit will also be started.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Selecting the option <code class="docutils literal notranslate"><span class="pre">Cron</span></code> in the admin menu for background jobs is not mandatory, because once <cite>cron.php</cite> is executed from the command line or cron service it will set it automatically to <code class="docutils literal notranslate"><span class="pre">Cron</span></code>.</p>
</div>
</section>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="caching_configuration.html" class="btn btn-neutral float-left" title="Memory caching" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="config_sample_php_parameters.html" class="btn btn-neutral float-right" title="Configuration Parameters" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,238 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Brute force protection &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Automatic setup" href="automatic_configuration.html" />
<link rel="prev" title="Reverse proxy" href="reverse_proxy_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Brute force protection</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#how-it-works">How it works</a></li>
<li class="toctree-l3"><a class="reference internal" href="#brute-force-protection-and-load-balancer-reverse-proxy">Brute force protection and load balancer/reverse proxy</a></li>
<li class="toctree-l3"><a class="reference internal" href="#exclude-ip-addresses-from-brute-force-protection">Exclude IP addresses from brute force protection</a></li>
<li class="toctree-l3"><a class="reference internal" href="#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Brute force protection</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/bruteforce_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="brute-force-protection">
<h1>Brute force protection<a class="headerlink" href="#brute-force-protection" title="Link to this heading"></a></h1>
<p>Nextcloud has built-in protection against brute force attempts. This protects
your system from attackers trying for example a lot of different passwords.</p>
<p>Brute force protection is enabled by default on Nextcloud.</p>
<section id="how-it-works">
<h2>How it works<a class="headerlink" href="#how-it-works" title="Link to this heading"></a></h2>
<p>The brute force protection is easiest to see in action on the login page.
If you try to log in the first time with an invalid username and/or password you
will not notice anything. But if you do this a few times you start to notice
that the verification of the login is taking longer each time. This is the
brute force protection kicking in.</p>
<p>The maximum delay is 25 seconds.</p>
<p>After a successful login the attempts will be cleared. And once a user is
properly authenticated they will no longer be hit by the delay.</p>
</section>
<section id="brute-force-protection-and-load-balancer-reverse-proxy">
<h2>Brute force protection and load balancer/reverse proxy<a class="headerlink" href="#brute-force-protection-and-load-balancer-reverse-proxy" title="Link to this heading"></a></h2>
<p>If you are behind a reverse proxy or load balancer it is important you make sure it is
setup properly. Especially the <strong>trusted_proxies</strong> and <strong>forwarded_for_headers</strong>
<cite>config.php</cite> variables need to be set correctly. Otherwise it can happen
that Nextcloud actually starts throttling all traffic coming from the reverse
proxy or load balancer. For more information see <a class="reference internal" href="reverse_proxy_configuration.html"><span class="doc">Reverse proxy</span></a>.</p>
</section>
<section id="exclude-ip-addresses-from-brute-force-protection">
<h2>Exclude IP addresses from brute force protection<a class="headerlink" href="#exclude-ip-addresses-from-brute-force-protection" title="Link to this heading"></a></h2>
<p>Its possible to exlude IP addresses from the brute force protection.</p>
<ul class="simple">
<li><p>Enable the bruteforcesettings app</p></li>
<li><p>Login as admin and go to Administration settings -&gt; Security</p></li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Note that any excluded IP address can perform authentication attempts without any throttling.
Its best to exclude as few IP addresses as you can, or even none at all.</p>
</div>
</section>
<section id="troubleshooting">
<h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading"></a></h2>
<p>On most setups Nextcloud will work out of the box without any issues. If you
run into a situation where login is often very slow for all users the first
step is to inspect the <cite>bruteforce_attempts</cite> table. There you can see
which IP addresses are actually throttled.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="reverse_proxy_configuration.html" class="btn btn-neutral float-left" title="Reverse proxy" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="automatic_configuration.html" class="btn btn-neutral float-right" title="Automatic setup" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,567 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Memory caching &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Background jobs" href="background_jobs_configuration.html" />
<link rel="prev" title="Activity app" href="activity_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Memory caching</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#recommendations-based-on-type-of-deployment">Recommendations based on type of deployment</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#small-private-home-server">Small/Private home server</a></li>
<li class="toctree-l4"><a class="reference internal" href="#organizations-with-single-server">Organizations with single-server</a></li>
<li class="toctree-l4"><a class="reference internal" href="#organizations-with-clustered-setups">Organizations with clustered setups</a></li>
<li class="toctree-l4"><a class="reference internal" href="#additional-notes-for-redis-vs-apcu-on-memory-caching">Additional notes for Redis vs. APCu on memory caching</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#id1">APCu</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id2">Redis</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#redis-configuration-in-nextcloud-config-php">Redis configuration in Nextcloud (config.php)</a></li>
<li class="toctree-l4"><a class="reference internal" href="#connecting-to-single-redis-server-over-tcp">Connecting to single Redis server over TCP</a></li>
<li class="toctree-l4"><a class="reference internal" href="#connecting-to-single-redis-server-over-tls">Connecting to single Redis server over TLS</a></li>
<li class="toctree-l4"><a class="reference internal" href="#connecting-to-redis-cluster-over-tls">Connecting to Redis cluster over TLS</a></li>
<li class="toctree-l4"><a class="reference internal" href="#connecting-to-single-redis-server-over-unix-socket">Connecting to single Redis server over UNIX socket</a></li>
<li class="toctree-l4"><a class="reference internal" href="#using-the-redis-session-handler">Using the Redis session handler</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#install-redis-label">Memcached</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#memcached-configuration-in-nextcloud-config-php">Memcached configuration in Nextcloud (config.php)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#cache-directory-location">Cache Directory location</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Memory caching</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/caching_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="memory-caching">
<h1>Memory caching<a class="headerlink" href="#memory-caching" title="Link to this heading"></a></h1>
<p>You can significantly improve your Nextcloud server performance with memory
caching, where frequently-requested objects are stored in memory for faster
retrieval. There are two types of caches to use: a PHP opcode cache, which is
commonly called <em>opcache</em>, and data cache for your web server, commonly called
“memcache”.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you do not install and enable a local memcache you will see a
warning on your Nextcloud admin page. <strong>A memcache is not required. You
may safely ignore the warning if you prefer.</strong> If you enable only a
distributed cache (<code class="docutils literal notranslate"><span class="pre">memcache.distributed</span></code>) in your <code class="docutils literal notranslate"><span class="pre">config.php</span></code> and not
a local cache (<code class="docutils literal notranslate"><span class="pre">memcache.local</span></code>) you will still see the cache warning.</p>
</div>
<p>A <strong>PHP opcache</strong> stores compiled PHP scripts, so they dont need to be re-compiled
every time they are called. PHP bundles the Zend OPcache in core since version
5.5, so you dont need to install an opcache manually.</p>
<p><strong>Data caching</strong> is supplied by the user. Nextcloud supports multiple memory
caching backends, so you can choose the type of memcache that best fits your
needs. The supported caching backends are:</p>
<ul class="simple">
<li><dl class="simple">
<dt><a class="reference external" href="https://pecl.php.net/package/APCu">APCu</a>, APCu 4.0.6 and up required.</dt><dd><p>A local cache for systems.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt><a class="reference external" href="http://redis.io/">Redis</a>, PHP module 2.2.6 and up required.</dt><dd><p>For local and distributed caching, as well as transactional file locking.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt><a class="reference external" href="https://www.memcached.org/">Memcached</a></dt><dd><p>For distributed caching.</p>
</dd>
</dl>
</li>
</ul>
<p>Data caches, or memcaches, must be explicitly configured in Nextcloud by installing
and enabling your desired cache, and then adding the appropriate entry to
<code class="docutils literal notranslate"><span class="pre">config.php</span></code> (See <a class="reference internal" href="config_sample_php_parameters.html"><span class="doc">Configuration Parameters</span></a> for an overview of
all possible config parameters).</p>
<section id="recommendations-based-on-type-of-deployment">
<h2>Recommendations based on type of deployment<a class="headerlink" href="#recommendations-based-on-type-of-deployment" title="Link to this heading"></a></h2>
<p>You may use both a local and a distributed cache. Recommended caches are APCu
and Redis. After installing and enabling your chosen memcache (data cache),
verify that it is active by running <a class="reference internal" href="../issues/general_troubleshooting.html#label-phpinfo"><span class="std std-ref">PHP version and information</span></a>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>See specific cache configuration options under the appropriate section further down.</p>
</div>
<section id="small-private-home-server">
<h3>Small/Private home server<a class="headerlink" href="#small-private-home-server" title="Link to this heading"></a></h3>
<p>Only use APCu:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\APCu&#39;</span><span class="p">,</span>
</pre></div>
</div>
</section>
<section id="organizations-with-single-server">
<h3>Organizations with single-server<a class="headerlink" href="#organizations-with-single-server" title="Link to this heading"></a></h3>
<p>Use Redis for everything except local memcache:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\APCu&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.distributed&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.locking&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
<span class="s1">&#39;redis&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;host&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;localhost&#39;</span><span class="p">,</span>
<span class="s1">&#39;port&#39;</span> <span class="o">=&gt;</span> <span class="mi">6379</span><span class="p">,</span>
<span class="p">],</span>
</pre></div>
</div>
</section>
<section id="organizations-with-clustered-setups">
<h3>Organizations with clustered setups<a class="headerlink" href="#organizations-with-clustered-setups" title="Link to this heading"></a></h3>
<p>Use APCu for local cache and either Redis cluster …:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\APCu&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.distributed&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.locking&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
<span class="s1">&#39;redis.cluster&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;seeds&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span> <span class="o">//</span> <span class="n">provide</span> <span class="n">some</span><span class="o">/</span><span class="nb">all</span> <span class="n">of</span> <span class="n">the</span> <span class="n">cluster</span> <span class="n">servers</span> <span class="n">to</span> <span class="n">bootstrap</span> <span class="n">discovery</span><span class="p">,</span> <span class="n">port</span> <span class="n">required</span>
<span class="s1">&#39;cache-cluster:7000&#39;</span><span class="p">,</span>
<span class="s1">&#39;cache-cluster:7001&#39;</span><span class="p">,</span>
<span class="p">],</span>
<span class="p">]</span>
</pre></div>
</div>
<p>… or Memcached cluster …:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\APCu&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.distributed&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Memcached&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.locking&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Memcached&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcached_servers&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="p">[</span> <span class="s1">&#39;server1.example.com&#39;</span><span class="p">,</span> <span class="mi">11211</span> <span class="p">],</span>
<span class="p">[</span> <span class="s1">&#39;server2.example.com&#39;</span><span class="p">,</span> <span class="mi">11211</span> <span class="p">],</span>
<span class="p">],</span>
</pre></div>
</div>
<p>… for distributed and locking caches.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you run multiple web servers and enable a distributed cache in
your <code class="docutils literal notranslate"><span class="pre">config.php</span></code> (<code class="docutils literal notranslate"><span class="pre">memcache.distributed</span></code>) or a file locking provider
(<code class="docutils literal notranslate"><span class="pre">memcache.locking</span></code>) you need to make sure that they are referring to the
very same memcache server/cluster and not to <code class="docutils literal notranslate"><span class="pre">localhost</span></code> or a unix socket.</p>
</div>
</section>
<section id="additional-notes-for-redis-vs-apcu-on-memory-caching">
<h3>Additional notes for Redis vs. APCu on memory caching<a class="headerlink" href="#additional-notes-for-redis-vs-apcu-on-memory-caching" title="Link to this heading"></a></h3>
<p>APCu is faster at local caching than Redis. If you have enough memory, use APCu for Memory Caching
and Redis for File Locking. If you are low on memory, use Redis for both.</p>
</section>
</section>
<section id="id1">
<h2>APCu<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<p>APCu is a data cache, and it is available in most
Linux distributions. On Red Hat/CentOS/Fedora systems install
<code class="docutils literal notranslate"><span class="pre">php-pecl-apcu</span></code>. On Debian/Ubuntu/Mint systems install <code class="docutils literal notranslate"><span class="pre">php-apcu</span></code>.</p>
<p>After restarting your Web server, add this line to your <code class="docutils literal notranslate"><span class="pre">config.php</span></code> file:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\APCu&#39;</span><span class="p">,</span>
</pre></div>
</div>
<p>Refresh your Nextcloud admin page, and the cache warning should disappear.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>APCu is disabled by default on CLI which could cause issues with nextclouds
cron jobs. Please make sure you set the <code class="docutils literal notranslate"><span class="pre">apc.enable_cli</span></code> to <code class="docutils literal notranslate"><span class="pre">1</span></code> on your <code class="docutils literal notranslate"><span class="pre">php.ini</span></code>
config file or append <code class="docutils literal notranslate"><span class="pre">--define</span> <span class="pre">apc.enable_cli=1</span></code> to the cron job call.</p>
</div>
</section>
<section id="id2">
<h2>Redis<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<p>Redis is an excellent modern memcache to use for distributed caching, and
as a key-value store for <a class="reference internal" href="../configuration_files/files_locking_transactional.html"><span class="doc">Transactional File Locking</span></a> because it guarantees
that cached objects are available for as long as they are needed.</p>
<p>The Redis PHP module must be version 2.2.6+. If you are running a Linux
distribution that does not package the supported versions of this module, or
does not package Redis at all, see <a class="reference internal" href="#install-redis-label"><span class="std std-ref">Memcached</span></a>.</p>
<p>On Debian/Ubuntu/Mint, install <code class="docutils literal notranslate"><span class="pre">redis-server</span></code> and <code class="docutils literal notranslate"><span class="pre">php-redis</span></code>. The installer
will automatically launch <code class="docutils literal notranslate"><span class="pre">redis-server</span></code> and configure it to launch at
startup.</p>
<p>On CentOS and Fedora, install <code class="docutils literal notranslate"><span class="pre">redis</span></code> and <code class="docutils literal notranslate"><span class="pre">php-pecl-redis</span></code>. It will not
start automatically, so you must use your service manager to start
<code class="docutils literal notranslate"><span class="pre">redis</span></code>, and to launch it at boot as a daemon.</p>
<p>You can verify that the Redis daemon is running with <code class="docutils literal notranslate"><span class="pre">ps</span> <span class="pre">ax</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>ps ax | grep redis
22203 ? Ssl 0:00 /usr/bin/redis-server 127.0.0.1:6379
</pre></div>
</div>
<p>Restart your Web server, add the appropriate entries to your <code class="docutils literal notranslate"><span class="pre">config.php</span></code>, and
refresh your Nextcloud admin page.</p>
<section id="redis-configuration-in-nextcloud-config-php">
<h3>Redis configuration in Nextcloud (config.php)<a class="headerlink" href="#redis-configuration-in-nextcloud-config-php" title="Link to this heading"></a></h3>
<p>For best performance, use Redis for file locking by adding this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.locking&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
</pre></div>
</div>
<p>Additionally, you should use Redis for the distributed server cache:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.distributed&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
</pre></div>
</div>
<p>Furthermore, you could use Redis for the local cache like so, but its not recommended (see warning below):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
</pre></div>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Using Redis for local cache on a multi-server setup can cause issues. Also, even on a single-server setup, APCu (see section above) should be faster.</p>
</div>
<p>When using Redis for any of the above cache settings, you also need to
specify either the <code class="docutils literal notranslate"><span class="pre">redis</span></code> or <code class="docutils literal notranslate"><span class="pre">redis.cluster</span></code> configuration in <code class="docutils literal notranslate"><span class="pre">config.php</span></code>.</p>
<p>The following options are available to configure when using a single redis server (all but <code class="docutils literal notranslate"><span class="pre">host</span></code> and <code class="docutils literal notranslate"><span class="pre">port</span></code> are optional. For the latter two, see the next sections):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.locking&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.distributed&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span><span class="s1">&#39;\OC\Memcache\Redis&#39;</span> <span class="p">,</span>
<span class="s1">&#39;redis&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="o">//</span> <span class="s1">&#39;host&#39;</span> <span class="o">=&gt;</span> <span class="n">see</span> <span class="n">connection</span> <span class="n">parameters</span> <span class="n">below</span>
<span class="o">//</span> <span class="s1">&#39;port&#39;</span> <span class="o">=&gt;</span> <span class="n">see</span> <span class="n">connection</span> <span class="n">parameters</span> <span class="n">below</span>
<span class="s1">&#39;user&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;nextcloud&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;password&#39;</span><span class="p">,</span>
<span class="s1">&#39;dbindex&#39;</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span>
<span class="s1">&#39;timeout&#39;</span> <span class="o">=&gt;</span> <span class="mf">1.5</span><span class="p">,</span>
<span class="s1">&#39;read_timeout&#39;</span> <span class="o">=&gt;</span> <span class="mf">1.5</span><span class="p">,</span>
<span class="p">]</span>
</pre></div>
</div>
<p>The following options are available to configure when using a redis cluster (all but <code class="docutils literal notranslate"><span class="pre">seeds</span></code> are optional):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.locking&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.distributed&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Redis&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span><span class="s1">&#39;\OC\Memcache\Redis&#39;</span> <span class="p">,</span>
<span class="s1">&#39;redis.cluster&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;seeds&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span> <span class="o">//</span> <span class="n">provide</span> <span class="n">some</span><span class="o">/</span><span class="nb">all</span> <span class="n">of</span> <span class="n">the</span> <span class="n">cluster</span> <span class="n">servers</span> <span class="n">to</span> <span class="n">bootstrap</span> <span class="n">discovery</span><span class="p">,</span> <span class="n">port</span> <span class="n">required</span>
<span class="s1">&#39;cache-cluster:7000&#39;</span><span class="p">,</span>
<span class="s1">&#39;cache-cluster:7001&#39;</span><span class="p">,</span>
<span class="s1">&#39;cache-cluster:7002&#39;</span><span class="p">,</span>
<span class="s1">&#39;cache-cluster:7003&#39;</span><span class="p">,</span>
<span class="s1">&#39;cache-cluster:7004&#39;</span><span class="p">,</span>
<span class="s1">&#39;cache-cluster:7005&#39;</span>
<span class="p">],</span>
<span class="s1">&#39;failover_mode&#39;</span> <span class="o">=&gt;</span> \<span class="n">RedisCluster</span><span class="p">::</span><span class="n">FAILOVER_ERROR</span>
<span class="s1">&#39;timeout&#39;</span> <span class="o">=&gt;</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s1">&#39;read_timeout&#39;</span> <span class="o">=&gt;</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s1">&#39;user&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;nextcloud&#39;</span><span class="p">,</span>
<span class="s1">&#39;password&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;password&#39;</span><span class="p">,</span>
<span class="s1">&#39;dbindex&#39;</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span>
<span class="p">]</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The port is required as part of the server URL. However, it is not necesarry to list all servers: for example, if all servers are load balanced via the same DNS name, only that server name is required.</p>
</div>
</section>
<section id="connecting-to-single-redis-server-over-tcp">
<h3>Connecting to single Redis server over TCP<a class="headerlink" href="#connecting-to-single-redis-server-over-tcp" title="Link to this heading"></a></h3>
<p>To connect to a remote or local Redis server over TCP use:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;redis&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;host&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;redis-host.example.com&#39;</span><span class="p">,</span>
<span class="s1">&#39;port&#39;</span> <span class="o">=&gt;</span> <span class="mi">6379</span><span class="p">,</span>
<span class="p">],</span>
</pre></div>
</div>
</section>
<section id="connecting-to-single-redis-server-over-tls">
<h3>Connecting to single Redis server over TLS<a class="headerlink" href="#connecting-to-single-redis-server-over-tls" title="Link to this heading"></a></h3>
<p>To connect via TCP over TLS, add the following configuration:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;redis&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;host&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;tls://127.0.0.1&#39;</span><span class="p">,</span>
<span class="s1">&#39;port&#39;</span> <span class="o">=&gt;</span> <span class="mi">6379</span><span class="p">,</span>
<span class="s1">&#39;ssl_context&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;local_cert&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;/certs/redis.crt&#39;</span><span class="p">,</span>
<span class="s1">&#39;local_pk&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;/certs/redis.key&#39;</span><span class="p">,</span>
<span class="s1">&#39;cafile&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;/certs/ca.crt&#39;</span><span class="p">,</span>
<span class="s1">&#39;verify_peer_name&#39;</span> <span class="o">=&gt;</span> <span class="n">false</span>
<span class="p">]</span>
<span class="p">]</span>
</pre></div>
</div>
</section>
<section id="connecting-to-redis-cluster-over-tls">
<h3>Connecting to Redis cluster over TLS<a class="headerlink" href="#connecting-to-redis-cluster-over-tls" title="Link to this heading"></a></h3>
<p>To connect via TCP over TLS, add the following configuration:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;redis.cluster&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;seeds&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span> <span class="o">//</span> <span class="n">provide</span> <span class="n">some</span><span class="o">/</span><span class="nb">all</span> <span class="n">of</span> <span class="n">the</span> <span class="n">cluster</span> <span class="n">servers</span> <span class="n">to</span> <span class="n">bootstrap</span> <span class="n">discovery</span><span class="p">,</span> <span class="n">port</span> <span class="n">required</span>
<span class="s1">&#39;cache-cluster:7000&#39;</span><span class="p">,</span>
<span class="s1">&#39;cache-cluster:7001&#39;</span><span class="p">,</span>
<span class="p">],</span>
<span class="s1">&#39;ssl_context&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;local_cert&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;/certs/redis.crt&#39;</span><span class="p">,</span>
<span class="s1">&#39;local_pk&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;/certs/redis.key&#39;</span><span class="p">,</span>
<span class="s1">&#39;cafile&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;/certs/ca.crt&#39;</span><span class="p">,</span>
<span class="s1">&#39;verify_peer_name&#39;</span> <span class="o">=&gt;</span> <span class="n">false</span>
<span class="p">]</span>
<span class="p">]</span>
</pre></div>
</div>
</section>
<section id="connecting-to-single-redis-server-over-unix-socket">
<h3>Connecting to single Redis server over UNIX socket<a class="headerlink" href="#connecting-to-single-redis-server-over-unix-socket" title="Link to this heading"></a></h3>
<p>If you want to connect to Redis configured to listen on an Unix socket (which is
recommended if Redis is running on the same system as Nextcloud) use this example
<code class="docutils literal notranslate"><span class="pre">config.php</span></code> configuration:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;redis&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;host&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;/run/redis/redis-server.sock&#39;</span><span class="p">,</span>
<span class="s1">&#39;port&#39;</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span>
<span class="p">],</span>
</pre></div>
</div>
<p>Only “host” and “port” variables are required, the other ones are optional.</p>
<p>Update the redis configuration in <code class="docutils literal notranslate"><span class="pre">/etc/redis/redis.conf</span></code> accordingly: uncomment Unix socket options and ensure the “socket” and “port” settings match your Nextcloud configuration.</p>
<p>Be sure to set the right permissions on redis.sock so that your webserver can
read and write to it. For this you typically have to add the webserver user
to the redis group:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usermod</span> <span class="o">-</span><span class="n">a</span> <span class="o">-</span><span class="n">G</span> <span class="n">redis</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span>
</pre></div>
</div>
<p>And modify the <code class="docutils literal notranslate"><span class="pre">unixsocketperm</span></code> of the <code class="docutils literal notranslate"><span class="pre">redis.conf</span></code> accordingly:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">unixsocketperm</span> <span class="mi">770</span>
</pre></div>
</div>
<p>You might need to restart apache and redis for the changes to take effect:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">systemctl</span> <span class="n">restart</span> <span class="n">apache2</span>
<span class="n">systemctl</span> <span class="n">restart</span> <span class="n">redis</span><span class="o">-</span><span class="n">server</span>
</pre></div>
</div>
<p>Redis is very configurable; consult <a class="reference external" href="http://redis.io/documentation">the Redis documentation</a> to learn more.</p>
</section>
<section id="using-the-redis-session-handler">
<h3>Using the Redis session handler<a class="headerlink" href="#using-the-redis-session-handler" title="Link to this heading"></a></h3>
<p>If you are using Redis for locking and/or caching,
you may also wish to use Redis for session management. Redis can be used for centralized
session management across multiple Nextcloud application servers, unlike the standard
<cite>files</cite> handler. If you use the Redis handler, though, you <em>MUST</em> ensure that session
locking is enabled. As of this writing, the Redis session handler does <em>NOT</em> enable
session locking by default, which can lead to session corruption in some Nextcloud apps
that make heavy use of session writes such as Talk. In addition, even when session locking
is enabled, if the application fails to acquire a lock, the Redis session handler does not
currently return an error. Adding the following settings in your <code class="docutils literal notranslate"><span class="pre">php.ini</span></code> file will
prevent session corruption when using Redis as your session handler:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">redis</span><span class="o">.</span><span class="n">session</span><span class="o">.</span><span class="n">locking_enabled</span><span class="o">=</span><span class="mi">1</span>
<span class="n">redis</span><span class="o">.</span><span class="n">session</span><span class="o">.</span><span class="n">lock_retries</span><span class="o">=-</span><span class="mi">1</span>
<span class="n">redis</span><span class="o">.</span><span class="n">session</span><span class="o">.</span><span class="n">lock_wait_time</span><span class="o">=</span><span class="mi">10000</span>
</pre></div>
</div>
<p>More information on configuration of phpredis session handler can be found on the
<a class="reference external" href="https://github.com/phpredis/phpredis">PhpRedis GitHub page</a></p>
</section>
</section>
<section id="install-redis-label">
<span id="id3"></span><h2>Memcached<a class="headerlink" href="#install-redis-label" title="Link to this heading"></a></h2>
<p>Memcached is a reliable oldtimer for shared caching on distributed servers,
and performs well with Nextcloud with one exception: it is not suitable to use
with <a class="reference internal" href="../configuration_files/files_locking_transactional.html"><span class="doc">Transactional File Locking</span></a>
because it does not store locks, and data can disappear from the cache at any time
(Redis is the best memcache for this).</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Be sure to install the <strong>memcached</strong> PHP module, and not memcache, as
in the following examples. Nextcloud supports only the <strong>memcached</strong> PHP
module.</p>
</div>
<p>Setting up Memcached is easy. On Debian/Ubuntu/Mint install <code class="docutils literal notranslate"><span class="pre">memcached</span></code> and
<code class="docutils literal notranslate"><span class="pre">php-memcached</span></code>. The installer will automatically start <code class="docutils literal notranslate"><span class="pre">memcached</span></code> and
configure it to launch at startup.</p>
<p>On Red Hat/CentOS/Fedora install <code class="docutils literal notranslate"><span class="pre">memcached</span></code> and
<code class="docutils literal notranslate"><span class="pre">php-pecl-memcached</span></code>. It will not start automatically, so you must use
your service manager to start <code class="docutils literal notranslate"><span class="pre">memcached</span></code>, and to launch it at boot as a
daemon.</p>
<p>You can verify that the Memcached daemon is running with <code class="docutils literal notranslate"><span class="pre">ps</span> <span class="pre">ax</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>ps ax | grep memcached
19563 ? Sl 0:02 /usr/bin/memcached -m 64 -p 11211 -u memcache -l
127.0.0.1
</pre></div>
</div>
<p>Restart your Web server, add the appropriate entries to your
<code class="docutils literal notranslate"><span class="pre">config.php</span></code>, and refresh your Nextcloud admin page.</p>
<section id="memcached-configuration-in-nextcloud-config-php">
<h3>Memcached configuration in Nextcloud (config.php)<a class="headerlink" href="#memcached-configuration-in-nextcloud-config-php" title="Link to this heading"></a></h3>
<p>This example uses APCu for the local cache, Memcached as the distributed memcache,
and lists all the servers in the shared cache pool with their port numbers:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;memcache.local&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\APCu&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.distributed&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Memcached&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcache.locking&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;\OC\Memcache\Memcached&#39;</span><span class="p">,</span>
<span class="s1">&#39;memcached_servers&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="p">[</span> <span class="s1">&#39;server0.example.com&#39;</span><span class="p">,</span> <span class="mi">11211</span> <span class="p">],</span>
<span class="p">[</span> <span class="s1">&#39;server1.example.com&#39;</span><span class="p">,</span> <span class="mi">11211</span> <span class="p">],</span>
<span class="p">[</span> <span class="s1">&#39;server2.example.com&#39;</span><span class="p">,</span> <span class="mi">11211</span> <span class="p">],</span>
<span class="p">],</span>
</pre></div>
</div>
</section>
</section>
<section id="cache-directory-location">
<h2>Cache Directory location<a class="headerlink" href="#cache-directory-location" title="Link to this heading"></a></h2>
<p>The cache directory defaults to <code class="docutils literal notranslate"><span class="pre">data/$user/cache</span></code> where <code class="docutils literal notranslate"><span class="pre">$user</span></code> is the
current user. You may use the <code class="docutils literal notranslate"><span class="pre">'cache_path'</span></code> directive in <code class="docutils literal notranslate"><span class="pre">config.php</span></code>
(See <a class="reference internal" href="config_sample_php_parameters.html"><span class="doc">Configuration Parameters</span></a>) to select a different location.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="activity_configuration.html" class="btn btn-neutral float-left" title="Activity app" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="background_jobs_configuration.html" class="btn btn-neutral float-right" title="Background jobs" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,217 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Dashboard app &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Reverse proxy" href="reverse_proxy_configuration.html" />
<link rel="prev" title="Antivirus scanner" href="antivirus_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Dashboard app</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#enabling-the-dashboard-app">Enabling the dashboard app</a></li>
<li class="toctree-l3"><a class="reference internal" href="#configuring-your-nextcloud-for-the-activity-app">Configuring your Nextcloud for the activity app</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Dashboard app</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/dashboard_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="dashboard-app">
<h1>Dashboard app<a class="headerlink" href="#dashboard-app" title="Link to this heading"></a></h1>
<p>The Nextcloud Dashboard is your starting point of the day, giving users an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking.</p>
<section id="enabling-the-dashboard-app">
<h2>Enabling the dashboard app<a class="headerlink" href="#enabling-the-dashboard-app" title="Link to this heading"></a></h2>
<p>The Dashboard App is shipped and enabled by default. If it is not enabled
simply go to your Nextcloud Apps page to enable it.</p>
</section>
<section id="configuring-your-nextcloud-for-the-activity-app">
<h2>Configuring your Nextcloud for the activity app<a class="headerlink" href="#configuring-your-nextcloud-for-the-activity-app" title="Link to this heading"></a></h2>
<p>The dashboard widgets are provided by apps and have a unique identifier. This can be used to customize the default layout of the dashboard as an administrator. The layout is stored as a comma-separated list of widget identifiers.</p>
<p>The layout of an existing user can be read with the following command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">setting</span> <span class="n">admin</span> <span class="n">dashboard</span> <span class="n">layout</span>
</pre></div>
</div>
<p>The layout of the dashboard for a specific user can be set with the following command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">setting</span> <span class="n">admin</span> <span class="n">dashboard</span> <span class="n">layout</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="s2">&quot;calendar,files,activity&quot;</span>
</pre></div>
</div>
<p>The default layout of the dashboard for all users can be set with the following command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">dashboard</span> <span class="n">layout</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="s2">&quot;files,activity,calendar&quot;</span>
</pre></div>
</div>
<p>Changing the default layout will not affect existing users that already have a custom layout stored.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="antivirus_configuration.html" class="btn btn-neutral float-left" title="Antivirus scanner" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="reverse_proxy_configuration.html" class="btn btn-neutral float-right" title="Reverse proxy" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,195 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Domain Change &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Apps management" href="../apps_management.html" />
<link rel="prev" title="Admin right privilege" href="admin_delegation_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Domain Change</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/domain_change.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="domain-change">
<h1>Domain Change<a class="headerlink" href="#domain-change" title="Link to this heading"></a></h1>
<p>Changing the domain after the first setup is currently not supported by Nextcloud. That is mainly because Nextclouds apps dont support changing the domain after they are set up.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This documentation will get updated with steps what needs to be done if you want to change the domain as soon as this feature is available.</p>
</div>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="admin_delegation_configuration.html" class="btn btn-neutral float-left" title="Admin right privilege" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../apps_management.html" class="btn btn-neutral float-right" title="Apps management" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,578 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Email &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Linking external sites" href="external_sites.html" />
<link rel="prev" title="Configuration Parameters" href="config_sample_php_parameters.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Email</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#configuring-an-smtp-server">Configuring an SMTP server</a></li>
<li class="toctree-l3"><a class="reference internal" href="#configuring-sendmail-qmail">Configuring Sendmail/qmail</a></li>
<li class="toctree-l3"><a class="reference internal" href="#using-email-templates">Using email templates</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#modifying-the-look-of-emails-beyond-the-theming-app-capabilities">Modifying the look of emails beyond the theming app capabilities</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#setting-mail-server-parameters-in-config-php">Setting mail server parameters in config.php</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#smtp">SMTP</a></li>
<li class="toctree-l4"><a class="reference internal" href="#sendmail">Sendmail</a></li>
<li class="toctree-l4"><a class="reference internal" href="#qmail">qmail</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#send-a-test-email">Send a test email</a></li>
<li class="toctree-l3"><a class="reference internal" href="#troubleshooting">Troubleshooting</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#enabling-debug-mode">Enabling debug mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="#why-is-my-web-domain-different-from-my-mail-domain">Why is my web domain different from my mail domain?</a></li>
<li class="toctree-l4"><a class="reference internal" href="#how-can-i-find-out-if-an-smtp-server-is-reachable">How can I find out if an SMTP server is reachable?</a></li>
<li class="toctree-l4"><a class="reference internal" href="#how-can-i-find-out-if-the-smtp-server-is-listening-on-a-specific-tcp-port">How can I find out if the SMTP server is listening on a specific TCP port?</a></li>
<li class="toctree-l4"><a class="reference internal" href="#how-can-i-determine-if-the-smtp-server-supports-the-smtps-protocol">How can I determine if the SMTP server supports the SMTPS protocol?</a></li>
<li class="toctree-l4"><a class="reference internal" href="#how-can-i-determine-what-authorization-and-encryption-protocols-the-mail-server-supports">How can I determine what authorization and encryption protocols the mail server supports?</a></li>
<li class="toctree-l4"><a class="reference internal" href="#how-can-i-send-mail-using-self-signed-certificates-or-use-starttls-with-self-signed-certificates">How can I send mail using self-signed certificates or use STARTTLS with self signed certificates?</a></li>
<li class="toctree-l4"><a class="reference internal" href="#all-emails-keep-getting-rejected-even-though-only-one-email-address-is-invalid">All emails keep getting rejected even though only one email address is invalid.</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Email</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/email_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="email">
<span id="email-config"></span><h1>Email<a class="headerlink" href="#email" title="Link to this heading"></a></h1>
<p>Nextcloud is capable of sending password reset emails, notifying users of new
file shares, changes in files, and activity notifications. Your users configure
which notifications they want to receive on their Personal pages.</p>
<p>Nextcloud does not contain a full email server, but rather connects to your
existing mail server. You must have a functioning mail server for Nextcloud to be
able to send emails. You may have a mail server on the same machine as Nextcloud,
or it may be a remote server.</p>
<p>To access the setup page below log in with an admin account. Click on your avatar
in the top right, and then click Settings. On the left side under Administration and
click Basic settings.</p>
<figure class="align-default">
<img alt="../_images/smtp-config-wizard.png" src="../_images/smtp-config-wizard.png" />
</figure>
<p>With the wizard, connecting Nextcloud to your mail server is fast and easy.
The wizard fills in the values in <code class="docutils literal notranslate"><span class="pre">config/config.php</span></code>, so you may use either
or both as you prefer.</p>
<p>The Nextcloud Email wizard supports three types of mail server connections:
SMTP, qmail, and Sendmail. Use the SMTP configurator for a remote server or
Sendmail when your mail server is on the same machine as Nextcloud.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The Sendmail option refers to the Sendmail SMTP server and any
drop-in Sendmail replacement such as Postfix, Exim, or Courier. All of
these include a <code class="docutils literal notranslate"><span class="pre">sendmail</span></code> binary, and are freely-interchangeable.</p>
</div>
<section id="configuring-an-smtp-server">
<span id="email-smtp-config"></span><h2>Configuring an SMTP server<a class="headerlink" href="#configuring-an-smtp-server" title="Link to this heading"></a></h2>
<p>You need the following information from your mail server administrator to
connect Nextcloud to a remote SMTP server:</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>There were changes to the 3rd party mailer library in Nextcloud 26:</p>
<ul class="simple">
<li><p>STARTTLS cannot be enforced. It will be used automatically if the mail server supports it. The encryption type should be set to None/STARTTLS in this case. See <a class="reference internal" href="#tlspeerverification"><span class="std std-ref">here</span></a> for an example on how to configure self signed certificates.</p></li>
<li><p>NTLM authentication for Microsoft Exchange is not supported by the new mailer library. Try using <a class="reference external" href="https://learn.microsoft.com/en-us/exchange/client-developer/exchange-web-services/authentication-and-ews-in-exchange#basic-authentication">basic authentication</a> instead.</p></li>
</ul>
</div>
<ul>
<li><p>Encryption type: None/STARTTLS or SSL</p></li>
<li><p>The From address you want your outgoing Nextcloud mails to use</p></li>
<li><p>Whether authentication is required</p></li>
<li><p>Authentication: when authentication is required, the underlying mailer will try the following authentication methods in the order theyre listed:</p>
<blockquote>
<div><ul class="simple">
<li><p>CramMd5</p></li>
<li><p>Login</p></li>
<li><p>Plain</p></li>
<li><p>XOAuth2</p></li>
</ul>
</div></blockquote>
</li>
<li><p>The servers IP address or fully-qualified domain name and the SMTP port</p></li>
<li><p>Login credentials (if required)</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <code class="docutils literal notranslate"><span class="pre">overwrite.cli.url</span></code> parameter from <code class="docutils literal notranslate"><span class="pre">config.php</span></code> will be used for the SMTP EHLO.</p>
</div>
<p>Your changes are saved immediately, and you can click the Send Email button to
test your configuration. This sends a test message to the email address you
configured on your Personal page. The test message says:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">If</span> <span class="n">you</span> <span class="n">received</span> <span class="n">this</span> <span class="n">email</span><span class="p">,</span> <span class="n">the</span> <span class="n">settings</span> <span class="n">seem</span> <span class="n">to</span> <span class="n">be</span> <span class="n">correct</span><span class="o">.</span>
<span class="o">--</span>
<span class="n">Nextcloud</span>
<span class="n">a</span> <span class="n">safe</span> <span class="n">home</span> <span class="k">for</span> <span class="nb">all</span> <span class="n">your</span> <span class="n">data</span>
</pre></div>
</div>
</section>
<section id="configuring-sendmail-qmail">
<h2>Configuring Sendmail/qmail<a class="headerlink" href="#configuring-sendmail-qmail" title="Link to this heading"></a></h2>
<p>Configuring Sendmail or qmail requires only that you select one of them
instead of SMTP, and then enter your desired return email address.</p>
<p>In most cases the <code class="docutils literal notranslate"><span class="pre">SMTP</span></code> option is best, since you will be able to control all
of your mail server options in one place, in your mail server configuration then.</p>
</section>
<section id="using-email-templates">
<h2>Using email templates<a class="headerlink" href="#using-email-templates" title="Link to this heading"></a></h2>
<p>We designed a mechanism that generates emails which follow the theming
settings and look the same in all the different email clients out there.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If, for some reason, you need text-only emails, consider simply configuring
this on the client side or let the receiving (or even sending) mail server drop the
HTML part. Note that there is no security impact from <strong>sending</strong> HTML emails, just
from displaying them and thus any security risk can only be mitigated by disabling
showing HTML on the client (or removing the HTML part in the mail server).</p>
</div>
<section id="modifying-the-look-of-emails-beyond-the-theming-app-capabilities">
<h3>Modifying the look of emails beyond the theming app capabilities<a class="headerlink" href="#modifying-the-look-of-emails-beyond-the-theming-app-capabilities" title="Link to this heading"></a></h3>
<p>You can overwrite templates by writing a class that implements the template interface
(or extends it to not need to copy over everything). Easiest way is to then put this class into
an app and load it so you do not need to patch it on every update.</p>
<p>This is the interface of the class that needs to be implemented: <a class="reference external" href="https://github.com/nextcloud/server/blob/master/lib/public/Mail/IEMailTemplate.php">https://github.com/nextcloud/server/blob/master/lib/public/Mail/IEMailTemplate.php</a></p>
<p>That is the implementation that could be extended and used to see how it works: <a class="reference external" href="https://github.com/nextcloud/server/blob/master/lib/private/Mail/EMailTemplate.php">https://github.com/nextcloud/server/blob/master/lib/private/Mail/EMailTemplate.php</a></p>
<p>An example from <a class="reference external" href="https://portal.nextcloud.com/article/customized-email-templates-29.html">a GitHub issue</a>:</p>
<ol class="arabic simple">
<li><p>Look at the source code of extended class <a class="reference external" href="https://github.com/nextcloud/server/blob/master/lib/private/Mail/EMailTemplate.php">OC\Mail\EMailTemplate::class</a></p></li>
<li><p>Then override what you need in your own <cite>OC\Mail\EMailTemplate::class</cite> extension</p></li>
</ol>
<p><strong>Example:</strong></p>
<p>Lets assume that we need to override the email header:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;?php
namespace \OCA\MyApp;
use OC\Mail\EMailTemplate;
class MyClass extends EMailTemplate
{
protected string $header = &lt;&lt;&lt;EOF
&lt;table align=&quot;center&quot; class=&quot;wrapper&quot;&gt;
// your theme email header modification
&lt;/table&gt;
EOF;
}
</pre></div>
</div>
<ol class="arabic" start="3">
<li><p>Then in <code class="docutils literal notranslate"><span class="pre">config/config.php</span></code> change <code class="docutils literal notranslate"><span class="pre">mail_template_class</span></code> to your class namespace:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;mail_template_class&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;OCA</span><span class="se">\\</span><span class="s1">MyApp</span><span class="se">\\</span><span class="s1">MyClass&#39;</span><span class="p">,</span>
</pre></div>
</div>
</li>
</ol>
<p>You will find a detailed step by step guide in our <a class="reference external" href="https://portal.nextcloud.com/article/customized-email-templates-29.html">support portal</a>.</p>
</section>
</section>
<section id="setting-mail-server-parameters-in-config-php">
<h2>Setting mail server parameters in config.php<a class="headerlink" href="#setting-mail-server-parameters-in-config-php" title="Link to this heading"></a></h2>
<p>If you prefer, you may set your mail server parameters in <code class="docutils literal notranslate"><span class="pre">config/config.php</span></code>.
The following examples are for SMTP, Sendmail, and Qmail.</p>
<section id="smtp">
<h3>SMTP<a class="headerlink" href="#smtp" title="Link to this heading"></a></h3>
<p>If you want to send email using a local or remote SMTP server it is necessary
to enter the name or IP address of the server, optionally followed by a colon
separated port number, e.g. <strong>:425</strong>. If this value is not given the default
port 25/tcp will be used unless you change that by modifying the
<strong>mail_smtpport</strong> parameter.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpmode&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;smtp&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtphost&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;smtp.server.dom:425&quot;</span><span class="p">,</span>
</pre></div>
</div>
<p>or</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpmode&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;smtp&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtphost&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;smtp.server.dom&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpport&quot;</span> <span class="o">=&gt;</span> <span class="mi">425</span><span class="p">,</span>
</pre></div>
</div>
<p>If a malware or SPAM scanner is running on the SMTP server it might be
necessary that you increase the SMTP timeout to e.g. 30s:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtptimeout&quot;</span> <span class="o">=&gt;</span> <span class="mi">30</span><span class="p">,</span>
</pre></div>
</div>
<p>If the SMTP server accepts insecure connections, the default setting can be
used:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpsecure&quot;</span> <span class="o">=&gt;</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
</pre></div>
</div>
<p>The connection will be upgraded automatically via STARTTLS if the SMTP server
supports it.</p>
<p>If required by the SMTP server, a secure SSL/TLS connection can be enforced
via the SMTPS protocol which uses the port 465/tcp:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtphost&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;smtp.server.dom:465&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpsecure&quot;</span> <span class="o">=&gt;</span> <span class="s1">&#39;ssl&#39;</span><span class="p">,</span>
</pre></div>
</div>
<p>And finally it is necessary to configure if the SMTP server requires
authentication, if not, the default values can be taken as is.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpauth&quot;</span> <span class="o">=&gt;</span> <span class="n">false</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpname&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtppassword&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
</pre></div>
</div>
<p>If SMTP authentication is required you have to set the required username
and password.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpauth&quot;</span> <span class="o">=&gt;</span> <span class="n">true</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpname&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;username&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtppassword&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;password&quot;</span><span class="p">,</span>
</pre></div>
</div>
</section>
<section id="sendmail">
<h3>Sendmail<a class="headerlink" href="#sendmail" title="Link to this heading"></a></h3>
<p>If you want to use the well known Sendmail program to send email, it is
necessary to have an installed and working email system on your *nix server.
The sendmail binary (<strong>/usr/sbin/sendmail</strong>) is usually part of that system.
Nextcloud should be able to send email out of the box.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpmode&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;sendmail&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtphost&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;127.0.0.1&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpport&quot;</span> <span class="o">=&gt;</span> <span class="mi">25</span><span class="p">,</span>
<span class="s2">&quot;mail_smtptimeout&quot;</span> <span class="o">=&gt;</span> <span class="mi">10</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpsecure&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpauth&quot;</span> <span class="o">=&gt;</span> <span class="n">false</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpauthtype&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;LOGIN&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpname&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtppassword&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
</pre></div>
</div>
</section>
<section id="qmail">
<h3>qmail<a class="headerlink" href="#qmail" title="Link to this heading"></a></h3>
<p>If you want to use the qmail program to send email, it is necessary to have an
installed and working qmail email system on your server. The qmail binary
installed on your server will then be used to send email. Nextcloud should
be able to send email out of the box.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpmode&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;qmail&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtphost&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;127.0.0.1&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpport&quot;</span> <span class="o">=&gt;</span> <span class="mi">25</span><span class="p">,</span>
<span class="s2">&quot;mail_smtptimeout&quot;</span> <span class="o">=&gt;</span> <span class="mi">10</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpsecure&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpauth&quot;</span> <span class="o">=&gt;</span> <span class="n">false</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpauthtype&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;LOGIN&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtpname&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="s2">&quot;mail_smtppassword&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
</pre></div>
</div>
</section>
</section>
<section id="send-a-test-email">
<h2>Send a test email<a class="headerlink" href="#send-a-test-email" title="Link to this heading"></a></h2>
<p>To test your email configuration, save your email address in your personal
settings and then use the <strong>Send email</strong> button in the <em>Email Server</em> section
of the Admin settings page.</p>
</section>
<section id="troubleshooting">
<h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading"></a></h2>
<section id="enabling-debug-mode">
<h3>Enabling debug mode<a class="headerlink" href="#enabling-debug-mode" title="Link to this heading"></a></h3>
<p>If you are unable to send email, it might be useful to activate further debug
messages by enabling the <code class="docutils literal notranslate"><span class="pre">mail_smtpdebug</span></code> parameter and temporarily setting your NC loglevel to DEBUG:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpdebug&quot;</span> <span class="o">=&gt;</span> <span class="n">true</span><span class="p">,</span>
<span class="s2">&quot;loglevel&quot;</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span>
</pre></div>
</div>
<p>Be cautious setting your <code class="docutils literal notranslate"><span class="pre">loglevel</span></code> to DEBUG (<code class="docutils literal notranslate"><span class="pre">0</span></code>) since itll apply to everything occurring on your NC instance, not just email.
And dont forget to set it back to a more reasonable level when youre done troubleshooting:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpdebug&quot;</span> <span class="o">=&gt;</span> <span class="n">false</span><span class="p">,</span>
<span class="s2">&quot;loglevel&quot;</span> <span class="o">=&gt;</span> <span class="mi">2</span><span class="p">,</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Immediately after pressing the <strong>Send email</strong> button, as described
before, several <strong>SMTP -&gt; get_lines(): …</strong> messages appear on the screen.
This is expected behavior and can be ignored.</p>
</div>
</section>
<section id="why-is-my-web-domain-different-from-my-mail-domain">
<h3>Why is my web domain different from my mail domain?<a class="headerlink" href="#why-is-my-web-domain-different-from-my-mail-domain" title="Link to this heading"></a></h3>
<p>The default domain name used for the sender address is the hostname
where your Nextcloud installation is served. If you have a different mail domain
name you can override this behavior by setting the following configuration
parameter:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_domain&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;example.com&quot;</span><span class="p">,</span>
</pre></div>
</div>
<p>This setting results in every email sent by Nextcloud (for example, the password
reset email) having the domain part of the sender address appear as follows:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">no</span><span class="o">-</span><span class="n">reply</span><span class="nd">@example</span><span class="o">.</span><span class="n">com</span>
</pre></div>
</div>
</section>
<section id="how-can-i-find-out-if-an-smtp-server-is-reachable">
<h3>How can I find out if an SMTP server is reachable?<a class="headerlink" href="#how-can-i-find-out-if-an-smtp-server-is-reachable" title="Link to this heading"></a></h3>
<p>Use the ping command to check the server availability:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">ping</span> <span class="n">smtp</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">dom</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">PING</span> <span class="n">smtp</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">dom</span> <span class="p">(</span><span class="n">ip</span><span class="o">-</span><span class="n">address</span><span class="p">)</span> <span class="mi">56</span><span class="p">(</span><span class="mi">84</span><span class="p">)</span> <span class="nb">bytes</span> <span class="n">of</span> <span class="n">data</span><span class="o">.</span>
<span class="mi">64</span> <span class="nb">bytes</span> <span class="kn">from</span> <span class="nn">your</span><span class="o">-</span><span class="n">server</span><span class="o">.</span><span class="n">local</span><span class="o">.</span><span class="n">lan</span> <span class="p">(</span><span class="mf">192.168.1.10</span><span class="p">):</span> <span class="n">icmp_req</span><span class="o">=</span><span class="mi">1</span> <span class="n">ttl</span><span class="o">=</span><span class="mi">64</span>
<span class="n">time</span><span class="o">=</span><span class="mf">3.64</span><span class="n">ms</span>
</pre></div>
</div>
</section>
<section id="how-can-i-find-out-if-the-smtp-server-is-listening-on-a-specific-tcp-port">
<h3>How can I find out if the SMTP server is listening on a specific TCP port?<a class="headerlink" href="#how-can-i-find-out-if-the-smtp-server-is-listening-on-a-specific-tcp-port" title="Link to this heading"></a></h3>
<p>The best way to get mail server information is to ask your mail
server admin. If you are the mail server admin, or need information in a
hurry, you can use the <code class="docutils literal notranslate"><span class="pre">netstat</span></code> command. This example shows all active
servers on your system, and the ports they are listening on. The SMTP server is
listening on localhost port 25.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># netstat -pant</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Active</span> <span class="n">Internet</span> <span class="n">connections</span> <span class="p">(</span><span class="n">servers</span> <span class="ow">and</span> <span class="n">established</span><span class="p">)</span>
<span class="n">Proto</span> <span class="n">Recv</span><span class="o">-</span><span class="n">Q</span> <span class="n">Send</span><span class="o">-</span><span class="n">Q</span> <span class="n">Local</span> <span class="n">Address</span> <span class="n">Foreign</span> <span class="n">Address</span> <span class="n">State</span> <span class="n">ID</span><span class="o">/</span><span class="n">Program</span> <span class="n">name</span>
<span class="n">tcp</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mf">0.0.0.0</span><span class="p">:</span><span class="mi">631</span> <span class="mf">0.0.0.0</span><span class="p">:</span><span class="o">*</span> <span class="n">LISTEN</span> <span class="mi">4418</span><span class="o">/</span><span class="n">cupsd</span>
<span class="n">tcp</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">25</span> <span class="mf">0.0.0.0</span><span class="p">:</span><span class="o">*</span> <span class="n">LISTEN</span> <span class="mi">2245</span><span class="o">/</span><span class="n">exim4</span>
<span class="n">tcp</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mf">127.0.0.1</span><span class="p">:</span><span class="mi">3306</span> <span class="mf">0.0.0.0</span><span class="p">:</span><span class="o">*</span> <span class="n">LISTEN</span> <span class="mi">1524</span><span class="o">/</span><span class="n">mysqld</span>
</pre></div>
</div>
<ul class="simple">
<li><p>25/tcp is unencrypted smtp</p></li>
<li><p>110/tcp/udp is unencrypted pop3</p></li>
<li><p>143/tcp/udp is unencrypted imap4</p></li>
<li><p>465/tcp is encrypted submissions</p></li>
<li><p>587/tcp is opportunistically-encrypted submission</p></li>
<li><p>993/tcp/udp is encrypted imaps</p></li>
<li><p>995/tcp/udp is encrypted pop3s</p></li>
</ul>
</section>
<section id="how-can-i-determine-if-the-smtp-server-supports-the-smtps-protocol">
<h3>How can I determine if the SMTP server supports the SMTPS protocol?<a class="headerlink" href="#how-can-i-determine-if-the-smtp-server-supports-the-smtps-protocol" title="Link to this heading"></a></h3>
<p>A good indication that the SMTP server supports the SMTPS protocol
is that it is listening on the <cite>submissions</cite> port <strong>465</strong>.</p>
</section>
<section id="how-can-i-determine-what-authorization-and-encryption-protocols-the-mail-server-supports">
<h3>How can I determine what authorization and encryption protocols the mail server supports?<a class="headerlink" href="#how-can-i-determine-what-authorization-and-encryption-protocols-the-mail-server-supports" title="Link to this heading"></a></h3>
<p>SMTP servers usually announce the availability of STARTTLS
immediately after a connection has been established. You can easily check this
using the <code class="docutils literal notranslate"><span class="pre">telnet</span></code> command.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You must enter the marked lines to obtain the information displayed.</p>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">telnet</span> <span class="n">smtp</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">dom</span> <span class="mi">25</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Trying</span> <span class="mf">192.168.1.10</span><span class="o">...</span>
<span class="n">Connected</span> <span class="n">to</span> <span class="n">smtp</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">dom</span><span class="o">.</span>
<span class="n">Escape</span> <span class="n">character</span> <span class="ow">is</span> <span class="s1">&#39;^]&#39;</span><span class="o">.</span>
<span class="mi">220</span> <span class="n">smtp</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">dom</span> <span class="n">ESMTP</span> <span class="n">Exim</span> <span class="mf">4.80.1</span> <span class="n">Tue</span><span class="p">,</span> <span class="mi">22</span> <span class="n">Jan</span> <span class="mi">2013</span> <span class="mi">22</span><span class="p">:</span><span class="mi">39</span><span class="p">:</span><span class="mi">55</span> <span class="o">+</span><span class="mi">0100</span>
<span class="n">EHLO</span> <span class="n">your</span><span class="o">-</span><span class="n">server</span><span class="o">.</span><span class="n">local</span><span class="o">.</span><span class="n">lan</span> <span class="c1"># &lt;&lt;&lt; enter this command</span>
<span class="mi">250</span><span class="o">-</span><span class="n">smtp</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">dom</span> <span class="n">Hello</span> <span class="n">your</span><span class="o">-</span><span class="n">server</span><span class="o">.</span><span class="n">local</span><span class="o">.</span><span class="n">lan</span> <span class="p">[</span><span class="n">ip</span><span class="o">-</span><span class="n">address</span><span class="p">]</span>
<span class="mi">250</span><span class="o">-</span><span class="n">SIZE</span> <span class="mi">52428800</span>
<span class="mi">250</span><span class="o">-</span><span class="mi">8</span><span class="n">BITMIME</span>
<span class="mi">250</span><span class="o">-</span><span class="n">PIPELINING</span>
<span class="mi">250</span><span class="o">-</span><span class="n">AUTH</span> <span class="n">PLAIN</span> <span class="n">LOGIN</span> <span class="n">CRAM</span><span class="o">-</span><span class="n">MD5</span> <span class="c1"># &lt;&lt;&lt; Supported auth protocols</span>
<span class="mi">250</span><span class="o">-</span><span class="n">STARTTLS</span> <span class="c1"># &lt;&lt;&lt; Encryption is supported</span>
<span class="mi">250</span> <span class="n">HELP</span>
<span class="n">QUIT</span> <span class="c1"># &lt;&lt;&lt; enter this command</span>
<span class="mi">221</span> <span class="n">smtp</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">dom</span> <span class="n">closing</span> <span class="n">connection</span>
<span class="n">Connection</span> <span class="n">closed</span> <span class="n">by</span> <span class="n">foreign</span> <span class="n">host</span><span class="o">.</span>
</pre></div>
</div>
</section>
<section id="how-can-i-send-mail-using-self-signed-certificates-or-use-starttls-with-self-signed-certificates">
<span id="tlspeerverification"></span><h3>How can I send mail using self-signed certificates or use STARTTLS with self signed certificates?<a class="headerlink" href="#how-can-i-send-mail-using-self-signed-certificates-or-use-starttls-with-self-signed-certificates" title="Link to this heading"></a></h3>
<p>To disable peer verification or to use self signed certificates, add the following
to your <code class="docutils literal notranslate"><span class="pre">config/config.php</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;mail_smtpstreamoptions&quot;</span> <span class="o">=&gt;</span> <span class="n">array</span><span class="p">(</span>
<span class="s1">&#39;ssl&#39;</span> <span class="o">=&gt;</span> <span class="n">array</span><span class="p">(</span>
<span class="s1">&#39;allow_self_signed&#39;</span> <span class="o">=&gt;</span> <span class="n">true</span><span class="p">,</span>
<span class="s1">&#39;verify_peer&#39;</span> <span class="o">=&gt;</span> <span class="n">false</span><span class="p">,</span>
<span class="s1">&#39;verify_peer_name&#39;</span> <span class="o">=&gt;</span> <span class="n">false</span>
<span class="p">)</span>
<span class="p">),</span>
</pre></div>
</div>
</section>
<section id="all-emails-keep-getting-rejected-even-though-only-one-email-address-is-invalid">
<h3>All emails keep getting rejected even though only one email address is invalid.<a class="headerlink" href="#all-emails-keep-getting-rejected-even-though-only-one-email-address-is-invalid" title="Link to this heading"></a></h3>
<p>Partial sending, i. e. sending to all but the faulty email address is not possible.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Immediately after pressing the <strong>Send email</strong> button, as described
before, several <strong>SMTP -&gt; get_lines(): …</strong> messages appear on the screen.
This is expected behavior and can be ignored.</p>
</div>
</section>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="config_sample_php_parameters.html" class="btn btn-neutral float-left" title="Configuration Parameters" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="external_sites.html" class="btn btn-neutral float-right" title="Linking external sites" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,252 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Linking external sites &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Language &amp; Locale" href="language_configuration.html" />
<link rel="prev" title="Email" href="email_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Linking external sites</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#configurations-preventing-embedding">Configurations preventing embedding</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Linking external sites</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/external_sites.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="linking-external-sites">
<h1>Linking external sites<a class="headerlink" href="#linking-external-sites" title="Link to this heading"></a></h1>
<p>You can embed external websites or documents inside your Nextcloud pages with the <strong>External
sites</strong> app, as this screenshot shows.</p>
<figure class="align-default" id="id1">
<img alt="../_images/external-sites-1.png" src="../_images/external-sites-1.png" />
<figcaption>
<p><span class="caption-text"><em>Click to enlarge</em></span><a class="headerlink" href="#id1" title="Link to this image"></a></p>
</figcaption>
</figure>
<p>This is useful for quick access to important pages such as the
Nextcloud manuals and informational pages for your company, and for presenting
external pages inside your custom Nextcloud branding, if you use your own custom
themes.</p>
<p>The External sites app can be easily installed from the app store. Go to <strong>Settings &gt; Apps &gt;
Customization</strong> to enable it. Then go to your Nextcloud <strong>Settings &gt; Administration &gt; External sites</strong> to create your
links, which are saved automatically.</p>
<p>Each link can have a unique icon, which can be uploaded in the admin settings.
If you select a language, the link will only be displayed for users with the selected language.
This allows you to have different documentation links for users depending on their language.</p>
<p>It is also possible to add links for a special device (recognized by the user agent).
Currently the following options are available: All devices, Android app, iOS app, Desktop client and all others (Browsers).</p>
<p>It is also possible to add links only for members of a given group.</p>
<figure class="align-default" id="id2">
<img alt="../_images/external-sites-2.png" src="../_images/external-sites-2.png" />
<figcaption>
<p><span class="caption-text"><em>Click to enlarge</em></span><a class="headerlink" href="#id2" title="Link to this image"></a></p>
</figcaption>
</figure>
<p>The links appear in the Nextcloud menu on the top or in the settings menu, after
reloading the page.</p>
<figure class="align-default">
<img alt="../_images/external-sites-3.png" src="../_images/external-sites-3.png" />
</figure>
<section id="configurations-preventing-embedding">
<h2>Configurations preventing embedding<a class="headerlink" href="#configurations-preventing-embedding" title="Link to this heading"></a></h2>
<p>Your links may or may not work correctly due to the various ways that Web
browsers and Web sites handle HTTP and HTTPS URLs, and because the External
Sites app embeds external links in IFrames. Modern Web browsers try very hard
to protect Web surfers from dangerous links, and safety apps like
<a class="reference external" href="https://www.eff.org/privacybadger">Privacy Badger</a> and ad-blockers may block
embedded pages. It is strongly recommended to enforce HTTPS on your Nextcloud
server; do not weaken this, or any of your security tools, just to make
embedded Web pages work. After all, you can freely access them outside of
Nextcloud.</p>
<p>Most Web sites that offer login functionalities use the <code class="docutils literal notranslate"><span class="pre">X-Frame-Options</span></code> or
<code class="docutils literal notranslate"><span class="pre">Content-Security-Policy</span></code> HTTP header which instructs browsers to not
allow their pages to be embedded for security reasons (e.g. “Clickjacking”). You
can usually verify the reason why embedding the website is not possible by using
your browsers console tool. For example, this page has an invalid SSL
certificate.</p>
<figure class="align-default">
<img alt="../_images/external-sites-4.png" src="../_images/external-sites-4.png" />
</figure>
<p>On this page, X-Frame-Options prevents the embedding.</p>
<figure class="align-default">
<img alt="../_images/external-sites-5.png" src="../_images/external-sites-5.png" />
</figure>
<p>There is also a redirect option, which allows that those websites can still be added for quick access.
Instead of embedding the website the user will be redirected to it.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="email_configuration.html" class="btn btn-neutral float-left" title="Email" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="language_configuration.html" class="btn btn-neutral float-right" title="Language &amp; Locale" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,374 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Nextcloud configuration &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Warnings on admin page" href="security_setup_warnings.html" />
<link rel="prev" title="Example installation on OpenBSD" href="../installation/example_openbsd.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Nextcloud configuration</a><ul>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Nextcloud configuration</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/index.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="nextcloud-configuration">
<h1>Nextcloud configuration<a class="headerlink" href="#nextcloud-configuration" title="Link to this heading"></a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a><ul>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#cache-warnings">Cache warnings</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#transactional-file-locking-is-disabled">Transactional file locking is disabled</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#you-are-accessing-this-site-via-http">You are accessing this site via HTTP</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#the-test-with-getenv-path-only-returns-an-empty-response">The test with getenv(&quot;PATH&quot;) only returns an empty response</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#the-strict-transport-security-http-header-is-not-configured">The “Strict-Transport-Security” HTTP header is not configured</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#dev-urandom-is-not-readable-by-php">/dev/urandom is not readable by PHP</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#your-web-server-is-not-yet-set-up-properly-to-allow-file-synchronization">Your Web server is not yet set up properly to allow file synchronization</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#outdated-nss-openssl-version">Outdated NSS / OpenSSL version</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#your-web-server-is-not-set-up-properly-to-resolve-well-known-caldav-or-well-known-carddav">Your Web server is not set up properly to resolve /.well-known/caldav/ or /.well-known/carddav/</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#some-files-have-not-passed-the-integrity-check">Some files have not passed the integrity check</a></li>
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html#your-database-does-not-run-with-read-commited-transaction-isolation-level">Your database does not run with “READ COMMITED” transaction isolation level</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="occ_command.html">Using the occ command</a><ul>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#occ-command-directory">occ command Directory</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#run-occ-as-your-http-user">Run occ as your HTTP user</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#enabling-autocompletion">Enabling autocompletion</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#run-commands-in-maintenance-mode">Run commands in maintenance mode</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#apps-commands">Apps commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#background-jobs-selector">Background jobs selector</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#config-commands">Config commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#dav-commands">Dav commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#database-conversion">Database conversion</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#add-missing-indices">Add missing indices</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#encryption">Encryption</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#federation-sync">Federation sync</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#file-operations">File operations</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#files-sharing">Files Sharing</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#files-external">Files external</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#integrity-check">Integrity check</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#l10n-create-javascript-translation-files-for-apps">l10n, create JavaScript translation files for apps</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#ldap-commands">LDAP commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#logging-commands">Logging commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#maintenance-commands">Maintenance commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#security">Security</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#status">Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#trashbin">Trashbin</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#user-commands">User commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#group-commands">Group commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#versions">Versions</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#command-line-installation">Command line installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#command-line-upgrade">Command line upgrade</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#two-factor-authentication">Two-factor authentication</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#disable-users">Disable users</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#system-tags">System Tags</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html#debugging">Debugging</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="activity_configuration.html">Activity app</a><ul>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html#enabling-the-activity-app">Enabling the activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html#configuring-your-nextcloud-for-the-activity-app">Configuring your Nextcloud for the activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html#activities-in-groupfolders-or-external-storages">Activities in groupfolders or external storages</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html#better-scheduling-of-activity-emails">Better scheduling of activity emails</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="caching_configuration.html">Memory caching</a><ul>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html#recommendations-based-on-type-of-deployment">Recommendations based on type of deployment</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html#id1">APCu</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html#id2">Redis</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html#install-redis-label">Memcached</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html#cache-directory-location">Cache Directory location</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html#parameters">Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html#cron-jobs">Cron jobs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a><ul>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#multiple-config-php-file">Multiple config.php file</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#default-parameters">Default Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#default-config-php-examples">Default config.php Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#user-experience">User Experience</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#user-session">User session</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#mail-parameters">Mail Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#proxy-configurations">Proxy Configurations</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#deleted-items-trash-bin">Deleted Items (trash bin)</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#file-versions">File versions</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#nextcloud-verifications">Nextcloud Verifications</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#logging">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#alternate-code-locations">Alternate Code Locations</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#apps">Apps</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#previews">Previews</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#ldap">LDAP</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#comments">Comments</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#maintenance">Maintenance</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#ssl">SSL</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#memory-caching-backend-configuration">Memory caching backend configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#using-object-store-with-nextcloud">Using Object Store with Nextcloud</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#sharing">Sharing</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#hashing">Hashing</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#all-other-configuration-options">All other configuration options</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html#app-config-options">App config options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="email_configuration.html">Email</a><ul>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html#configuring-an-smtp-server">Configuring an SMTP server</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html#configuring-sendmail-qmail">Configuring Sendmail/qmail</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html#using-email-templates">Using email templates</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html#setting-mail-server-parameters-in-config-php">Setting mail server parameters in config.php</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html#send-a-test-email">Send a test email</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="external_sites.html">Linking external sites</a><ul>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html#configurations-preventing-embedding">Configurations preventing embedding</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a><ul>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html#default-language">Default language</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html#force-language">Force language</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html#default-locale">Default locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html#force-locale">Force locale</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="logging_configuration.html">Logging</a><ul>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html#log-level">Log level</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html#log-type">Log type</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html#log-fields-explained">Log fields explained</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html#admin-audit-log-optional">Admin audit log (Optional)</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html#workflow-log">Workflow log</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html#temporary-overrides">Temporary overrides</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a><ul>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html#installing-clamav">Installing ClamAV</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html#enabling-the-antivirus-app-for-files">Enabling the antivirus app for files</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html#configuring-clamav-on-nextcloud">Configuring ClamAV on Nextcloud</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html#configuring-icap-on-nextcloud">Configuring ICAP on Nextcloud</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html#disabling-background-scan-task">Disabling background scan task</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a><ul>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html#enabling-the-dashboard-app">Enabling the dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html#configuring-your-nextcloud-for-the-activity-app">Configuring your Nextcloud for the activity app</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a><ul>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html#defining-trusted-proxies">Defining trusted proxies</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html#overwrite-parameters">Overwrite parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html#service-discovery">Service Discovery</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html#example">Example</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a><ul>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html#how-it-works">How it works</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html#brute-force-protection-and-load-balancer-reverse-proxy">Brute force protection and load balancer/reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html#exclude-ip-addresses-from-brute-force-protection">Exclude IP addresses from brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a><ul>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html#parameters">Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html#automatic-configurations-examples">Automatic configurations examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="text_configuration.html">Text app</a><ul>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html#disable-rich-workspaces-globally">Disable rich workspaces globally</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html#default-file-extension">Default file extension</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html#disable-rich-text-editing">Disable rich text editing</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="theming.html">Theming</a><ul>
<li class="toctree-l2"><a class="reference internal" href="theming.html#modify-the-appearance-of-nextcloud">Modify the appearance of Nextcloud</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html#configure-theming-through-cli">Configure theming through CLI</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html#theming-of-icons">Theming of icons</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html#branded-clients">Branded clients</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="oauth2.html">OAuth2</a><ul>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html#add-an-oauth2-application">Add an OAuth2 Application</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html#the-access-token">The access token</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html#security-considerations">Security considerations</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a><ul>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html#configuring-admin-right-privilege">Configuring Admin right privilege</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</div>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../installation/example_openbsd.html" class="btn btn-neutral float-left" title="Example installation on OpenBSD" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="security_setup_warnings.html" class="btn btn-neutral float-right" title="Warnings on admin page" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,258 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Language &amp; Locale &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Logging" href="logging_configuration.html" />
<link rel="prev" title="Linking external sites" href="external_sites.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Language &amp; Locale</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#default-language">Default language</a></li>
<li class="toctree-l3"><a class="reference internal" href="#force-language">Force language</a></li>
<li class="toctree-l3"><a class="reference internal" href="#default-locale">Default locale</a></li>
<li class="toctree-l3"><a class="reference internal" href="#force-locale">Force locale</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Language &amp; Locale</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/language_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="language-locale">
<h1>Language &amp; Locale<a class="headerlink" href="#language-locale" title="Link to this heading"></a></h1>
<section id="default-language">
<h2>Default language<a class="headerlink" href="#default-language" title="Link to this heading"></a></h2>
<p>In normal cases Nextcloud will automatically detect the language of the Web-GUI.
If this does not work properly or you want to make sure that Nextcloud always
starts with a given language, you can set a <strong>default_language</strong> parameter in the
<code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The default_language parameter is only used, when the browser does not
send any language, and the user hasnt configured own language preferences.</p>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;default_language&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;en&quot;</span><span class="p">,</span>
</pre></div>
</div>
</section>
<section id="force-language">
<h2>Force language<a class="headerlink" href="#force-language" title="Link to this heading"></a></h2>
<p>If you want to force a specific language, users will no longer be able to change
their language in the personal settings. You can set a <strong>force_language</strong> parameter
in the <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;force_language&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;en&quot;</span><span class="p">,</span>
</pre></div>
</div>
<p>If users shall be unable to change their language, but users have different languages,
this value can be set to <code class="docutils literal notranslate"><span class="pre">true</span></code> instead of a language code.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Please check <a class="reference external" href="https://explore.transifex.com/languages/">Transifex language codes</a> for the list of valid language
codes.</p>
</div>
</section>
<section id="default-locale">
<h2>Default locale<a class="headerlink" href="#default-locale" title="Link to this heading"></a></h2>
<p>The locale is used to define how dates and other formats are displayed. Nextcloud
should automatically pick an appropriate locale based on your current language.
Users can modify their locale inside their settings panel.
If that does not work properly or if you want to make sure that Nextcloud always
starts with a given locale, you can set a <strong>default_locale</strong> parameter in the
<code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The default_locale parameter is only used when the user hasnt configured
own locale preferences.</p>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;default_locale&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;en_US&quot;</span><span class="p">,</span>
</pre></div>
</div>
</section>
<section id="force-locale">
<h2>Force locale<a class="headerlink" href="#force-locale" title="Link to this heading"></a></h2>
<p>If you want to force a specific locale, users will no longer be able to change
their locale in the personal settings. You can set a <strong>force_locale</strong> parameter
in the <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;force_locale&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;en_US&quot;</span><span class="p">,</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Please check <a class="reference external" href="https://github.com/moment/moment/tree/2.18.1/locale">the list of MomentJS supported locales</a> for the list of valid
locales.</p>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="external_sites.html" class="btn btn-neutral float-left" title="Linking external sites" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="logging_configuration.html" class="btn btn-neutral float-right" title="Logging" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,384 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Logging &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Antivirus scanner" href="antivirus_configuration.html" />
<link rel="prev" title="Language &amp; Locale" href="language_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Logging</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#log-level">Log level</a></li>
<li class="toctree-l3"><a class="reference internal" href="#log-type">Log type</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#errorlog">errorlog</a></li>
<li class="toctree-l4"><a class="reference internal" href="#file">file</a></li>
<li class="toctree-l4"><a class="reference internal" href="#syslog">syslog</a></li>
<li class="toctree-l4"><a class="reference internal" href="#systemd">systemd</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#log-fields-explained">Log fields explained</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#example-log-entries">Example log entries</a></li>
<li class="toctree-l4"><a class="reference internal" href="#log-field-breakdown">Log field breakdown</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#admin-audit-log-optional">Admin audit log (Optional)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#log-level-interaction">Log level interaction</a></li>
<li class="toctree-l4"><a class="reference internal" href="#integrating-into-the-web-interface">Integrating into the Web Interface</a></li>
<li class="toctree-l4"><a class="reference internal" href="#configuring-through-admin-audit-app-settings">Configuring through admin_audit app settings</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#workflow-log">Workflow log</a></li>
<li class="toctree-l3"><a class="reference internal" href="#temporary-overrides">Temporary overrides</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Logging</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/logging_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="logging">
<h1>Logging<a class="headerlink" href="#logging" title="Link to this heading"></a></h1>
<p>Use your Nextcloud log to review system status, or to help debug problems. You may adjust logging levels, and choose how and where log data is stored. If additional event logging is required, you can optionally activate the <strong>admin_audit</strong> app.</p>
<p>When <code class="docutils literal notranslate"><span class="pre">file</span></code> based logging is utilized, both the Nextcloud log and, optionally, the <strong>admit_audit</strong> app log can be viewed within the Nextcloud interface under <em>Administration settings -&gt; Logging</em> (this functionality is provided by the <strong>logreader</strong> app).</p>
<p>Further configuration and usage details for both the standard Nextcloud log and the optional <strong>admin_audit</strong> app log can be found below.</p>
<section id="log-level">
<h2>Log level<a class="headerlink" href="#log-level" title="Link to this heading"></a></h2>
<p>Logging levels range from <strong>DEBUG</strong>, which logs all activity, to <strong>FATAL</strong>, which logs only fatal errors.</p>
<ul class="simple">
<li><p><strong>0</strong>: DEBUG: All activity; the most detailed logging.</p></li>
<li><p><strong>1</strong>: INFO: Activity such as user logins and file activities, plus warnings, errors, and fatal errors.</p></li>
<li><p><strong>2</strong>: WARN: Operations succeed, but with warnings of potential problems, plus errors and fatal errors.</p></li>
<li><p><strong>3</strong>: ERROR: An operation fails, but other services and operations continue, plus fatal errors.</p></li>
<li><p><strong>4</strong>: FATAL: The server stops.</p></li>
</ul>
<p>By default the log level is set to <strong>2</strong> (WARN). Use <strong>DEBUG</strong> when you have a problem to diagnose, and then reset your log level to a less-verbose level as <strong>DEBUG</strong> outputs a lot of information, and can affect your server performance.</p>
<p>Logging level parameters are set in the <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code> file.</p>
</section>
<section id="log-type">
<h2>Log type<a class="headerlink" href="#log-type" title="Link to this heading"></a></h2>
<section id="errorlog">
<h3>errorlog<a class="headerlink" href="#errorlog" title="Link to this heading"></a></h3>
<p>All log information will be sent to PHP <code class="docutils literal notranslate"><span class="pre">error_log()</span></code>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;log_type&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;errorlog&quot;</span><span class="p">,</span>
</pre></div>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Until version Nextcloud 25 log entries were prefixed with <code class="docutils literal notranslate"><span class="pre">[owncloud]</span></code>. From 26 onwards messages start with <code class="docutils literal notranslate"><span class="pre">[nextcloud]</span></code>.</p>
</div>
</section>
<section id="file">
<h3>file<a class="headerlink" href="#file" title="Link to this heading"></a></h3>
<p>All log information will be written to a separate log file which can be
viewed using the log viewer on your Admin page. By default, a log
file named <strong>nextcloud.log</strong> will be created in the directory which has
been configured by the <strong>datadirectory</strong> parameter in <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>.</p>
<p>The desired date format can optionally be defined using the <strong>logdateformat</strong> parameter in <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>.
By default the <a class="reference external" href="http://www.php.net/manual/en/function.date.php">PHP date function</a> parameter <code class="docutils literal notranslate"><span class="pre">c</span></code> is used, and therefore the
date/time is written in the format <code class="docutils literal notranslate"><span class="pre">2013-01-10T15:20:25+02:00</span></code>. By using the
date format in the example below, the date/time format will be written in the format
<code class="docutils literal notranslate"><span class="pre">January</span> <span class="pre">10,</span> <span class="pre">2013</span> <span class="pre">15:20:25</span></code>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;log_type&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;file&quot;</span><span class="p">,</span>
<span class="s2">&quot;logfile&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;nextcloud.log&quot;</span><span class="p">,</span>
<span class="s2">&quot;loglevel&quot;</span> <span class="o">=&gt;</span> <span class="mi">3</span><span class="p">,</span>
<span class="s2">&quot;logdateformat&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;F d, Y H:i:s&quot;</span><span class="p">,</span>
</pre></div>
</div>
</section>
<section id="syslog">
<h3>syslog<a class="headerlink" href="#syslog" title="Link to this heading"></a></h3>
<p>All log information will be sent to your default syslog daemon.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;log_type&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;syslog&quot;</span><span class="p">,</span>
<span class="s2">&quot;syslog_tag&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;Nextcloud&quot;</span><span class="p">,</span>
<span class="s2">&quot;logfile&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="s2">&quot;loglevel&quot;</span> <span class="o">=&gt;</span> <span class="mi">3</span><span class="p">,</span>
</pre></div>
</div>
</section>
<section id="systemd">
<h3>systemd<a class="headerlink" href="#systemd" title="Link to this heading"></a></h3>
<p>All log information will be sent to Systemd journal. Requires <a class="reference external" href="https://github.com/systemd/php-systemd">php-systemd</a> extension.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;log_type&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;systemd&quot;</span><span class="p">,</span>
<span class="s2">&quot;syslog_tag&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;Nextcloud&quot;</span><span class="p">,</span>
</pre></div>
</div>
</section>
</section>
<section id="log-fields-explained">
<h2>Log fields explained<a class="headerlink" href="#log-fields-explained" title="Link to this heading"></a></h2>
<section id="example-log-entries">
<h3>Example log entries<a class="headerlink" href="#example-log-entries" title="Link to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="s2">&quot;reqId&quot;</span><span class="p">:</span><span class="s2">&quot;TBsuA2uE86DiOD0S8f9j&quot;</span><span class="p">,</span>
<span class="s2">&quot;level&quot;</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span>
<span class="s2">&quot;time&quot;</span><span class="p">:</span><span class="s2">&quot;April 13, 2021 16:55:37&quot;</span><span class="p">,</span>
<span class="s2">&quot;remoteAddr&quot;</span><span class="p">:</span><span class="s2">&quot;192.168.56.1&quot;</span><span class="p">,</span>
<span class="s2">&quot;user&quot;</span><span class="p">:</span><span class="s2">&quot;admin&quot;</span><span class="p">,</span>
<span class="s2">&quot;app&quot;</span><span class="p">:</span><span class="s2">&quot;admin_audit&quot;</span><span class="p">,</span>
<span class="s2">&quot;method&quot;</span><span class="p">:</span><span class="s2">&quot;GET&quot;</span><span class="p">,</span>
<span class="s2">&quot;url&quot;</span><span class="p">:</span><span class="s2">&quot;/ocs/v1.php/cloud/users?disabled&quot;</span><span class="p">,</span>
<span class="s2">&quot;message&quot;</span><span class="p">:</span><span class="s2">&quot;Login successful: </span><span class="se">\&quot;</span><span class="s2">admin</span><span class="se">\&quot;</span><span class="s2">&quot;</span><span class="p">,</span>
<span class="s2">&quot;userAgent&quot;</span><span class="p">:</span><span class="s2">&quot;curl/7.68.0&quot;</span><span class="p">,</span>
<span class="s2">&quot;version&quot;</span><span class="p">:</span><span class="s2">&quot;21.0.1.1&quot;</span>
<span class="p">}</span>
<span class="p">{</span>
<span class="s2">&quot;reqId&quot;</span><span class="p">:</span><span class="s2">&quot;ByeDVLuwkXKMfLpBgvxC&quot;</span><span class="p">,</span>
<span class="s2">&quot;level&quot;</span><span class="p">:</span><span class="mi">2</span><span class="p">,</span>
<span class="s2">&quot;time&quot;</span><span class="p">:</span><span class="s2">&quot;April 14, 2021 09:03:29&quot;</span><span class="p">,</span>
<span class="s2">&quot;remoteAddr&quot;</span><span class="p">:</span><span class="s2">&quot;192.168.56.1&quot;</span><span class="p">,</span>
<span class="s2">&quot;user&quot;</span><span class="p">:</span><span class="s2">&quot;--&quot;</span><span class="p">,</span>
<span class="s2">&quot;app&quot;</span><span class="p">:</span><span class="s2">&quot;no app in context&quot;</span><span class="p">,</span>
<span class="s2">&quot;method&quot;</span><span class="p">:</span><span class="s2">&quot;POST&quot;</span><span class="p">,</span>
<span class="s2">&quot;url&quot;</span><span class="p">:</span><span class="s2">&quot;/login&quot;</span><span class="p">,</span>
<span class="s2">&quot;message&quot;</span><span class="p">:</span><span class="s2">&quot;Login failed: asdf (Remote IP: 192.168.56.1)&quot;</span><span class="p">,</span>
<span class="s2">&quot;userAgent&quot;</span><span class="p">:</span><span class="s2">&quot;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36&quot;</span><span class="p">,</span>
<span class="s2">&quot;version&quot;</span><span class="p">:</span><span class="s2">&quot;21.0.1.1&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
</section>
<section id="log-field-breakdown">
<h3>Log field breakdown<a class="headerlink" href="#log-field-breakdown" title="Link to this heading"></a></h3>
<ul class="simple">
<li><p><strong>reqId</strong> (request id): any log lines related to a single request have the same value</p></li>
<li><p><strong>level</strong>: logged incidents level, always 1 in audit.log</p></li>
<li><p><strong>time</strong>: date and time (format and timezone can be configured in config.php)</p></li>
<li><p><strong>remoteAddr</strong>: the IP address of the user (if applicable empty for occ commands)</p></li>
<li><p><strong>user</strong>: acting users id (if applicable)</p></li>
<li><p><strong>app</strong>: affected app (always admin_audit in audit.log)</p></li>
<li><p><strong>method</strong>: HTTP method, for example GET, POST, PROPFIND, etc. empty on occ calls</p></li>
<li><p><strong>url</strong>: request path (if applicable empty on occ calls)</p></li>
<li><p><strong>message</strong>: event information message</p></li>
<li><p><strong>userAgent</strong>: user agent (if applicable empty on occ calls)</p></li>
<li><p><strong>exception</strong>: Full exception with trace (if applicable)</p></li>
<li><p><strong>data</strong> additional structured data (if applicable)</p></li>
<li><p><strong>version</strong>: Nextcloud version at the time of request</p></li>
</ul>
<p>Empty value are written as two dashes: <code class="docutils literal notranslate"><span class="pre">--</span></code>.</p>
</section>
</section>
<section id="admin-audit-log-optional">
<h2>Admin audit log (Optional)<a class="headerlink" href="#admin-audit-log-optional" title="Link to this heading"></a></h2>
<p>By enabling the <strong>admin_audit</strong> app, additional information about various events can be logged. Similar to the normal logging, the audit log can be provided to any of the existing logging mechanisms in <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>. The default behavior, if no parameters are specified after the app is enabled, is <code class="docutils literal notranslate"><span class="pre">file</span></code> based logging to a file called <code class="docutils literal notranslate"><span class="pre">audit.log</span></code> stored in the <code class="docutils literal notranslate"><span class="pre">datadirectory</span></code>.</p>
<p>If you wish to override this and log to syslog instead the following would be one approach:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;log_type_audit&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;syslog&quot;</span><span class="p">,</span>
<span class="s2">&quot;syslog_tag_audit&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;Nextcloud&quot;</span><span class="p">,</span>
<span class="s2">&quot;logfile_audit&quot;</span> <span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
</pre></div>
</div>
<section id="log-level-interaction">
<h3>Log level interaction<a class="headerlink" href="#log-level-interaction" title="Link to this heading"></a></h3>
<p>If system <code class="docutils literal notranslate"><span class="pre">loglevel</span></code> in <code class="docutils literal notranslate"><span class="pre">config.php</span></code> is set to <code class="docutils literal notranslate"><span class="pre">2</span></code> or higher, audit logging needs to be triggered explicitly by adding the following setting to <code class="docutils literal notranslate"><span class="pre">config.php</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;log.condition&quot;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s2">&quot;apps&quot;</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="s2">&quot;admin_audit&quot;</span><span class="p">],</span>
<span class="p">],</span>
</pre></div>
</div>
<p>Find detailed documentation on auditable events for enterprises in our <a class="reference external" href="https://portal.nextcloud.com/article/using-the-audit-log-44.html">customer portal</a>.</p>
</section>
<section id="integrating-into-the-web-interface">
<h3>Integrating into the Web Interface<a class="headerlink" href="#integrating-into-the-web-interface" title="Link to this heading"></a></h3>
<p>The built-in NC <code class="docutils literal notranslate"><span class="pre">logreader</span></code> app (which is what provides the <em>Administration settings-&gt;Logging</em> interface) only accesses the file-based <code class="docutils literal notranslate"><span class="pre">nextcloud.log</span></code>. The <strong>admin_audit</strong> app log output, however, can be integrated into the web interface by configuring it to <em>also</em> log to the <code class="docutils literal notranslate"><span class="pre">nextcloud.log</span></code>.</p>
<p>Add the following to your <code class="docutils literal notranslate"><span class="pre">config.php</span></code> (adjusting the path to your own <code class="docutils literal notranslate"><span class="pre">nextcloud.log</span></code> path):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s1">&#39;log.condition&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span>
<span class="s1">&#39;apps&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span> <span class="s1">&#39;admin_audit&#39;</span><span class="p">],</span>
<span class="p">],</span>
<span class="s1">&#39;logfile_audit&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;/var/www/html/data/nextcloud.log&#39;</span><span class="p">,</span>
</pre></div>
</div>
</section>
<section id="configuring-through-admin-audit-app-settings">
<h3>Configuring through admin_audit app settings<a class="headerlink" href="#configuring-through-admin-audit-app-settings" title="Link to this heading"></a></h3>
<p>Previously the audit logfile was defined in the app config. This config is still used when the system config is not provided, but is considered a legacy parameter.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">admin_audit</span> <span class="n">logfile</span> <span class="o">--</span><span class="n">value</span><span class="o">=/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">audit</span><span class="o">.</span><span class="n">log</span>
</pre></div>
</div>
</section>
</section>
<section id="workflow-log">
<h2>Workflow log<a class="headerlink" href="#workflow-log" title="Link to this heading"></a></h2>
<p>By default, the workflow log is stored to <cite>flow.log</cite> in the data folder.</p>
<p>The path of the workflow log can be set as follows:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">workflowengine</span> <span class="n">logfile</span> <span class="o">--</span><span class="n">value</span><span class="o">=/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">nextcloud</span><span class="o">/</span><span class="n">flow</span><span class="o">.</span><span class="n">log</span>
</pre></div>
</div>
<p>Set the value to <cite>/dev/null</cite> to avoid storing the log.</p>
</section>
<section id="temporary-overrides">
<h2>Temporary overrides<a class="headerlink" href="#temporary-overrides" title="Link to this heading"></a></h2>
<p>You can run override the config.php log level of <code class="docutils literal notranslate"><span class="pre">occ</span></code> commands with as <a class="reference internal" href="occ_command.html#occ-debugging"><span class="std std-ref">documented here</span></a>.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="language_configuration.html" class="btn btn-neutral float-left" title="Language &amp; Locale" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="antivirus_configuration.html" class="btn btn-neutral float-right" title="Antivirus scanner" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,229 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>OAuth2 &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Admin right privilege" href="admin_delegation_configuration.html" />
<link rel="prev" title="Theming" href="theming.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">OAuth2</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#add-an-oauth2-application">Add an OAuth2 Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="#the-access-token">The access token</a></li>
<li class="toctree-l3"><a class="reference internal" href="#security-considerations">Security considerations</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">OAuth2</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/oauth2.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="oauth2">
<h1>OAuth2<a class="headerlink" href="#oauth2" title="Link to this heading"></a></h1>
<p>Nextcloud allows connecting external services (for example Moodle) to your Nextcloud.
This is done via <code class="docutils literal notranslate"><span class="pre">OAuth2</span></code>. See <a class="reference external" href="https://tools.ietf.org/html/rfc6749">RFC6749</a> for the
OAuth2 specification.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Nextcloud does only support confidential clients.</p>
</div>
<section id="add-an-oauth2-application">
<h2>Add an OAuth2 Application<a class="headerlink" href="#add-an-oauth2-application" title="Link to this heading"></a></h2>
<p>Head over to your Administrator Security Settings. Here you can add a new <code class="docutils literal notranslate"><span class="pre">OAuth2</span></code> client.</p>
<figure class="align-default">
<img alt="../_images/oauth2-settings.png" src="../_images/oauth2-settings.png" />
</figure>
<p>Enter the name of your application and provide a redirection url.
You should now have a Client Identifier and Secret. Enter those into your <code class="docutils literal notranslate"><span class="pre">OAuth2</span></code> client.</p>
<p>Please provide the OAuth2 application the following details:</p>
<ul class="simple">
<li><p>Authorization endpoint: <code class="docutils literal notranslate"><span class="pre">https://cloud.example.org/apps/oauth2/authorize</span></code></p></li>
<li><p>Token endpoint: <code class="docutils literal notranslate"><span class="pre">https://cloud.example.org/apps/oauth2/api/v1/token</span></code></p></li>
</ul>
<p>Note that you must include <code class="docutils literal notranslate"><span class="pre">index.php</span></code> if pretty URL is not configured - i.e. <code class="docutils literal notranslate"><span class="pre">https://cloud.example.org/index.php/apps/oauth2/api/v1/token</span></code>.</p>
</section>
<section id="the-access-token">
<h2>The access token<a class="headerlink" href="#the-access-token" title="Link to this heading"></a></h2>
<p>The access token obtained is a so called Bearer token. Which means that for request to the
Nextcloud server you will have to send the proper authorization header.</p>
<p>Authorization: Bearer &lt;TOKEN&gt;</p>
<p>Note that apache by default strips this. Make sure you have <code class="docutils literal notranslate"><span class="pre">mod_headers</span></code>, <code class="docutils literal notranslate"><span class="pre">mod_rewrite</span></code> and <code class="docutils literal notranslate"><span class="pre">mod_env</span></code> enabled.</p>
</section>
<section id="security-considerations">
<h2>Security considerations<a class="headerlink" href="#security-considerations" title="Link to this heading"></a></h2>
<p>Nextcloud <code class="docutils literal notranslate"><span class="pre">OAuth2</span></code> implementation currently does not support scoped access. This means that every token has full access to the complete account including read and write permission to the stored files. It is essential to store the <code class="docutils literal notranslate"><span class="pre">OAuth2</span></code> tokens in a safe way!</p>
<p>Without scopes and restrictable access it is not recommended to use a Nextcloud instance as a user authentication service.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="theming.html" class="btn btn-neutral float-left" title="Theming" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="admin_delegation_configuration.html" class="btn btn-neutral float-right" title="Admin right privilege" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,362 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Reverse proxy &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Brute force protection" href="bruteforce_configuration.html" />
<link rel="prev" title="Dashboard app" href="dashboard_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Reverse proxy</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#defining-trusted-proxies">Defining trusted proxies</a></li>
<li class="toctree-l3"><a class="reference internal" href="#overwrite-parameters">Overwrite parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="#service-discovery">Service Discovery</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#apache2">Apache2</a></li>
<li class="toctree-l4"><a class="reference internal" href="#traefik-1">Traefik 1</a></li>
<li class="toctree-l4"><a class="reference internal" href="#traefik-2">Traefik 2</a></li>
<li class="toctree-l4"><a class="reference internal" href="#haproxy">HAProxy</a></li>
<li class="toctree-l4"><a class="reference internal" href="#nginx">NGINX</a></li>
<li class="toctree-l4"><a class="reference internal" href="#caddy">Caddy</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#multiple-domains-reverse-ssl-proxy">Multiple domains reverse SSL proxy</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Reverse proxy</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/reverse_proxy_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="reverse-proxy">
<span id="serverconf-reverseproxy"></span><h1>Reverse proxy<a class="headerlink" href="#reverse-proxy" title="Link to this heading"></a></h1>
<p>Nextcloud can be run through a reverse proxy, which can cache static assets such
as images, CSS or JS files, move the load of handling HTTPS to a different
server or load balance between multiple servers.</p>
<section id="defining-trusted-proxies">
<h2>Defining trusted proxies<a class="headerlink" href="#defining-trusted-proxies" title="Link to this heading"></a></h2>
<p>For security, you must explicitly define the proxy servers that Nextcloud is to
trust. Connections from trusted proxies will be specially treated to get the
real client information, for use in access control and logging. Parameters are
configured in <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code></p>
<p>Set the <code class="file docutils literal notranslate"><span class="pre">trusted_proxies</span></code> parameter as an array of:</p>
<ul class="simple">
<li><p>IPv4 addresses</p></li>
<li><p>IPv4 ranges in CIDR notation</p></li>
<li><p>IPv6 addresses</p></li>
<li><p>IPv6 ranges in CIDR notation</p></li>
</ul>
<p>to define the servers Nextcloud should trust as proxies. This parameter
provides protection against client spoofing, and you should secure those
servers as you would your Nextcloud server.</p>
<p>A reverse proxy can define HTTP headers with the original client IP address,
and Nextcloud can use those headers to retrieve that IP address. Nextcloud uses
the de-facto standard header X-Forwarded-For by default, but this can be
configured with the <strong>forwarded_for_headers</strong> parameter. This parameter is an
array of PHP lookup strings, for example X-Forwarded-For becomes
HTTP_X_FORWARDED_FOR. Incorrectly setting this parameter may allow clients
to spoof their IP address as visible to Nextcloud, even when going through the
trusted proxy! The correct value for this parameter is dependent on your
proxy software.</p>
</section>
<section id="overwrite-parameters">
<h2>Overwrite parameters<a class="headerlink" href="#overwrite-parameters" title="Link to this heading"></a></h2>
<p>The automatic hostname, protocol or webroot detection of Nextcloud can fail in
certain reverse proxy situations. This configuration allows the automatic detection
to be manually overridden. If Nextcloud fails to automatically detect the hostname, protocol
or webroot you can use the <strong>overwrite</strong> parameters inside the <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>.</p>
<ul class="simple">
<li><p><code class="file docutils literal notranslate"><span class="pre">overwritehost</span></code> set the hostname of the proxy. You can also specify a port.</p></li>
<li><p><code class="file docutils literal notranslate"><span class="pre">overwriteprotocol</span></code> set the protocol of the proxy. You can choose between the two options <strong>http</strong> and <strong>https</strong>.</p></li>
<li><p><code class="file docutils literal notranslate"><span class="pre">overwritewebroot</span></code> set the absolute web path of the proxy to the Nextcloud folder.</p></li>
<li><p><code class="file docutils literal notranslate"><span class="pre">overwritecondaddr</span></code> overwrite the values dependent on the remote address. The value must be a <strong>regular expression</strong> of the IP addresses of the proxy. This is useful when you use a reverse SSL proxy only for https access and you want to use the automatic detection for http access.</p></li>
<li><p><code class="file docutils literal notranslate"><span class="pre">overwrite.cli.url</span></code> the base URL for any URLs which are generated within Nextcloud using any kind of command line tools. For example, the value set here will be used by the notifications area.</p></li>
</ul>
<p>Leave the value empty or omit the parameter to keep the automatic detection.</p>
</section>
<section id="service-discovery">
<h2>Service Discovery<a class="headerlink" href="#service-discovery" title="Link to this heading"></a></h2>
<p>The redirects for CalDAV or CardDAV does not work if Nextcloud is running behind a
reverse proxy. The recommended solution is that your reverse proxy does the redirects.</p>
<section id="apache2">
<h3>Apache2<a class="headerlink" href="#apache2" title="Link to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">RewriteEngine</span> <span class="n">On</span>
<span class="n">RewriteRule</span> <span class="o">^/</span>\<span class="o">.</span><span class="n">well</span><span class="o">-</span><span class="n">known</span><span class="o">/</span><span class="n">carddav</span> <span class="n">https</span><span class="p">:</span><span class="o">//%</span><span class="p">{</span><span class="n">SERVER_NAME</span><span class="p">}</span><span class="o">/</span><span class="n">remote</span><span class="o">.</span><span class="n">php</span><span class="o">/</span><span class="n">dav</span><span class="o">/</span> <span class="p">[</span><span class="n">R</span><span class="o">=</span><span class="mi">301</span><span class="p">,</span><span class="n">L</span><span class="p">]</span>
<span class="n">RewriteRule</span> <span class="o">^/</span>\<span class="o">.</span><span class="n">well</span><span class="o">-</span><span class="n">known</span><span class="o">/</span><span class="n">caldav</span> <span class="n">https</span><span class="p">:</span><span class="o">//%</span><span class="p">{</span><span class="n">SERVER_NAME</span><span class="p">}</span><span class="o">/</span><span class="n">remote</span><span class="o">.</span><span class="n">php</span><span class="o">/</span><span class="n">dav</span><span class="o">/</span> <span class="p">[</span><span class="n">R</span><span class="o">=</span><span class="mi">301</span><span class="p">,</span><span class="n">L</span><span class="p">]</span>
</pre></div>
</div>
<p>Thanks to <a class="reference external" href="https://github.com/ffried">&#64;ffried</a> for apache2 example.</p>
</section>
<section id="traefik-1">
<h3>Traefik 1<a class="headerlink" href="#traefik-1" title="Link to this heading"></a></h3>
<p>Using Docker labels:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">traefik</span><span class="o">.</span><span class="n">frontend</span><span class="o">.</span><span class="n">redirect</span><span class="o">.</span><span class="n">permanent</span><span class="p">:</span> <span class="s1">&#39;true&#39;</span>
<span class="n">traefik</span><span class="o">.</span><span class="n">frontend</span><span class="o">.</span><span class="n">redirect</span><span class="o">.</span><span class="n">regex</span><span class="p">:</span> <span class="s1">&#39;https://(.*)/.well-known/(?:card|cal)dav&#39;</span>
<span class="n">traefik</span><span class="o">.</span><span class="n">frontend</span><span class="o">.</span><span class="n">redirect</span><span class="o">.</span><span class="n">replacement</span><span class="p">:</span> <span class="s1">&#39;https://$$1/remote.php/dav&#39;</span>
</pre></div>
</div>
<p>Using traefik.toml:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">frontends</span><span class="o">.</span><span class="n">frontend1</span><span class="o">.</span><span class="n">redirect</span><span class="p">]</span>
<span class="n">regex</span> <span class="o">=</span> <span class="s2">&quot;https://(.*)/.well-known/(?:card|cal)dav&quot;</span>
<span class="n">replacement</span> <span class="o">=</span> <span class="s2">&quot;https://$1/remote.php/dav</span>
<span class="n">permanent</span> <span class="o">=</span> <span class="n">true</span>
</pre></div>
</div>
<p>Thanks to <a class="reference external" href="https://github.com/pauvos">&#64;pauvos</a> and <a class="reference external" href="https://github.com/mrtumnus">&#64;mrtumnus</a> for traefik examples.</p>
</section>
<section id="traefik-2">
<h3>Traefik 2<a class="headerlink" href="#traefik-2" title="Link to this heading"></a></h3>
<p>Using Docker labels:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">traefik</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">routers</span><span class="o">.</span><span class="n">nextcloud</span><span class="o">.</span><span class="n">middlewares</span><span class="p">:</span> <span class="s1">&#39;nextcloud_redirectregex&#39;</span>
<span class="n">traefik</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">middlewares</span><span class="o">.</span><span class="n">nextcloud_redirectregex</span><span class="o">.</span><span class="n">redirectregex</span><span class="o">.</span><span class="n">permanent</span><span class="p">:</span> <span class="n">true</span>
<span class="n">traefik</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">middlewares</span><span class="o">.</span><span class="n">nextcloud_redirectregex</span><span class="o">.</span><span class="n">redirectregex</span><span class="o">.</span><span class="n">regex</span><span class="p">:</span> <span class="s1">&#39;https://(.*)/.well-known/(?:card|cal)dav&#39;</span>
<span class="n">traefik</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">middlewares</span><span class="o">.</span><span class="n">nextcloud_redirectregex</span><span class="o">.</span><span class="n">redirectregex</span><span class="o">.</span><span class="n">replacement</span><span class="p">:</span> <span class="s1">&#39;https://$$</span><span class="si">{1}</span><span class="s1">/remote.php/dav&#39;</span>
</pre></div>
</div>
<p>Using a TOML file:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">http</span><span class="o">.</span><span class="n">middlewares</span><span class="p">]</span>
<span class="p">[</span><span class="n">http</span><span class="o">.</span><span class="n">middlewares</span><span class="o">.</span><span class="n">nextcloud</span><span class="o">-</span><span class="n">redirectregex</span><span class="o">.</span><span class="n">redirectRegex</span><span class="p">]</span>
<span class="n">permanent</span> <span class="o">=</span> <span class="n">true</span>
<span class="n">regex</span> <span class="o">=</span> <span class="s2">&quot;https://(.*)/.well-known/(?:card|cal)dav&quot;</span>
<span class="n">replacement</span> <span class="o">=</span> <span class="s2">&quot;https://$</span><span class="si">{1}</span><span class="s2">/remote.php/dav&quot;</span>
</pre></div>
</div>
</section>
<section id="haproxy">
<h3>HAProxy<a class="headerlink" href="#haproxy" title="Link to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">acl</span> <span class="n">url_discovery</span> <span class="n">path</span> <span class="o">/.</span><span class="n">well</span><span class="o">-</span><span class="n">known</span><span class="o">/</span><span class="n">caldav</span> <span class="o">/.</span><span class="n">well</span><span class="o">-</span><span class="n">known</span><span class="o">/</span><span class="n">carddav</span>
<span class="n">http</span><span class="o">-</span><span class="n">request</span> <span class="n">redirect</span> <span class="n">location</span> <span class="o">/</span><span class="n">remote</span><span class="o">.</span><span class="n">php</span><span class="o">/</span><span class="n">dav</span><span class="o">/</span> <span class="n">code</span> <span class="mi">301</span> <span class="k">if</span> <span class="n">url_discovery</span>
</pre></div>
</div>
</section>
<section id="nginx">
<h3>NGINX<a class="headerlink" href="#nginx" title="Link to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>location /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
</pre></div>
</div>
<p>or</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>rewrite ^/\.well-known/carddav https://$server_name/remote.php/dav/ redirect;
rewrite ^/\.well-known/caldav https://$server_name/remote.php/dav/ redirect;
</pre></div>
</div>
</section>
<section id="caddy">
<h3>Caddy<a class="headerlink" href="#caddy" title="Link to this heading"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>subdomain.example.com {
redir /.well-known/carddav /remote.php/dav 301
redir /.well-known/caldav /remote.php/dav 301
reverse_proxy {$NEXTCLOUD_HOST:localhost}
}
</pre></div>
</div>
</section>
</section>
<section id="example">
<h2>Example<a class="headerlink" href="#example" title="Link to this heading"></a></h2>
<section id="multiple-domains-reverse-ssl-proxy">
<h3>Multiple domains reverse SSL proxy<a class="headerlink" href="#multiple-domains-reverse-ssl-proxy" title="Link to this heading"></a></h3>
<p>If you want to access your Nextcloud installation <strong>http://domain.tld/nextcloud</strong>
via a multiple domains reverse SSL proxy
<strong>https://ssl-proxy.tld/domain.tld/nextcloud</strong> with the IP address <strong>10.0.0.1</strong>
you can set the following parameters inside the <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>&lt;?php
$CONFIG = array (
&#39;trusted_proxies&#39; =&gt; [&#39;10.0.0.1&#39;],
&#39;overwritehost&#39; =&gt; &#39;ssl-proxy.tld&#39;,
&#39;overwriteprotocol&#39; =&gt; &#39;https&#39;,
&#39;overwritewebroot&#39; =&gt; &#39;/domain.tld/nextcloud&#39;,
&#39;overwritecondaddr&#39; =&gt; &#39;^10\.0\.0\.1$&#39;,
&#39;overwrite.cli.url&#39; =&gt; &#39;https://domain.tld/,
);
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you want to use the SSL proxy during installation you have to
create the <code class="file docutils literal notranslate"><span class="pre">config/config.php</span></code> otherwise you have to extend the existing
<strong>$CONFIG</strong> array.</p>
</div>
</section>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="dashboard_configuration.html" class="btn btn-neutral float-left" title="Dashboard app" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="bruteforce_configuration.html" class="btn btn-neutral float-right" title="Brute force protection" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,308 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Warnings on admin page &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Using the occ command" href="occ_command.html" />
<link rel="prev" title="Nextcloud configuration" href="index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">Warnings on admin page</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#cache-warnings">Cache warnings</a></li>
<li class="toctree-l3"><a class="reference internal" href="#transactional-file-locking-is-disabled">Transactional file locking is disabled</a></li>
<li class="toctree-l3"><a class="reference internal" href="#you-are-accessing-this-site-via-http">You are accessing this site via HTTP</a></li>
<li class="toctree-l3"><a class="reference internal" href="#the-test-with-getenv-path-only-returns-an-empty-response">The test with getenv(&quot;PATH&quot;) only returns an empty response</a></li>
<li class="toctree-l3"><a class="reference internal" href="#the-strict-transport-security-http-header-is-not-configured">The “Strict-Transport-Security” HTTP header is not configured</a></li>
<li class="toctree-l3"><a class="reference internal" href="#dev-urandom-is-not-readable-by-php">/dev/urandom is not readable by PHP</a></li>
<li class="toctree-l3"><a class="reference internal" href="#your-web-server-is-not-yet-set-up-properly-to-allow-file-synchronization">Your Web server is not yet set up properly to allow file synchronization</a></li>
<li class="toctree-l3"><a class="reference internal" href="#outdated-nss-openssl-version">Outdated NSS / OpenSSL version</a></li>
<li class="toctree-l3"><a class="reference internal" href="#your-web-server-is-not-set-up-properly-to-resolve-well-known-caldav-or-well-known-carddav">Your Web server is not set up properly to resolve /.well-known/caldav/ or /.well-known/carddav/</a></li>
<li class="toctree-l3"><a class="reference internal" href="#some-files-have-not-passed-the-integrity-check">Some files have not passed the integrity check</a></li>
<li class="toctree-l3"><a class="reference internal" href="#your-database-does-not-run-with-read-commited-transaction-isolation-level">Your database does not run with “READ COMMITED” transaction isolation level</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Warnings on admin page</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/security_setup_warnings.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="warnings-on-admin-page">
<h1>Warnings on admin page<a class="headerlink" href="#warnings-on-admin-page" title="Link to this heading"></a></h1>
<p>Your Nextcloud server has a built-in configuration checker, and it reports its
findings at the top of your Admin page. These are some of the warnings you
might see, and what to do about them.</p>
<figure class="align-default">
<img alt="../_images/security-setup-warning-1.png" src="../_images/security-setup-warning-1.png" />
</figure>
<p>You can use the <a class="reference external" href="https://scan.nextcloud.com">Nextcloud Security Scan</a> to see
if your system is up to date and well secured. We have ran this scan over public
IP addresses in the past to try and reach out to <a class="reference external" href="https://nextcloud.com/blog/nextcloud-releases-security-scanner-to-help-protect-private-clouds/">extremely outdated systems</a>
and might again in the future. Please, protect your privacy and keep your server
up to date! Privacy means little without security.</p>
<section id="cache-warnings">
<h2>Cache warnings<a class="headerlink" href="#cache-warnings" title="Link to this heading"></a></h2>
<p>“No memory cache has been configured. To enhance your performance please
configure a memcache if available.” Nextcloud supports multiple php caching
extensions:</p>
<ul class="simple">
<li><p>APCu (minimum required PHP extension version 4.0.6)</p></li>
<li><p>Memcached</p></li>
<li><p>Redis (minimum required PHP extension version: 2.2.6)</p></li>
</ul>
<p>You will see this warning if you have no caches installed and enabled, or if
your cache does not have the required minimum version installed; older versions
are disabled because of performance problems.</p>
<p>If you see “<em>{Cache}</em> below version <em>{Version}</em> is installed. for stability and
performance reasons we recommend to update to a newer <em>{Cache}</em> version” then
you need to upgrade, or, if youre not using it, remove it.</p>
<p>You are not required to use any caches, but caches improve server performance.
See <a class="reference internal" href="caching_configuration.html"><span class="doc">Memory caching</span></a>.</p>
</section>
<section id="transactional-file-locking-is-disabled">
<h2>Transactional file locking is disabled<a class="headerlink" href="#transactional-file-locking-is-disabled" title="Link to this heading"></a></h2>
<p>“Transactional file locking is disabled, this might lead to issues with race
conditions.”</p>
<p>Please see <a class="reference internal" href="../configuration_files/files_locking_transactional.html"><span class="doc">Transactional file locking</span></a> on how
to correctly configure your environment for transactional file locking.</p>
</section>
<section id="you-are-accessing-this-site-via-http">
<h2>You are accessing this site via HTTP<a class="headerlink" href="#you-are-accessing-this-site-via-http" title="Link to this heading"></a></h2>
<p>“You are accessing this site via HTTP. We strongly suggest you configure your
server to require using HTTPS instead.” Please take this warning seriously;
using HTTPS is a fundamental security measure. You must configure your Web
server to support it, and then there are some settings in the <strong>Security</strong>
section of your Nextcloud Admin page to enable. The following pages
describe how to enable HTTPS on the Apache and Nginx Web servers.</p>
<p><a class="reference internal" href="../installation/source_installation.html#enabling-ssl-label"><span class="std std-ref">Enabling SSL</span></a> (on Apache)</p>
<p><a class="reference internal" href="../installation/harden_server.html#use-https-label"><span class="std std-ref">Use HTTPS</span></a></p>
<p><a class="reference internal" href="../installation/nginx.html"><span class="doc">NGINX configuration</span></a></p>
</section>
<section id="the-test-with-getenv-path-only-returns-an-empty-response">
<h2>The test with getenv(&quot;PATH&quot;) only returns an empty response<a class="headerlink" href="#the-test-with-getenv-path-only-returns-an-empty-response" title="Link to this heading"></a></h2>
<p>Some environments are not passing a valid PATH variable to Nextcloud. The
<a class="reference internal" href="../installation/source_installation.html#php-fpm-tips-label"><span class="std std-ref">php-fpm configuration notes</span></a> provides the information about how to configure your
environment.</p>
</section>
<section id="the-strict-transport-security-http-header-is-not-configured">
<h2>The “Strict-Transport-Security” HTTP header is not configured<a class="headerlink" href="#the-strict-transport-security-http-header-is-not-configured" title="Link to this heading"></a></h2>
<p>“The “Strict-Transport-Security” HTTP header is not configured to least “15552000” seconds.
For enhanced security we recommend enabling HSTS as described in our security tips.”</p>
<p>The HSTS header needs to be configured within your Web server by following the
<a class="reference internal" href="../installation/harden_server.html#enable-hsts-label"><span class="std std-ref">Enable HTTP Strict Transport Security</span></a> documentation</p>
</section>
<section id="dev-urandom-is-not-readable-by-php">
<h2>/dev/urandom is not readable by PHP<a class="headerlink" href="#dev-urandom-is-not-readable-by-php" title="Link to this heading"></a></h2>
<p>“/dev/urandom is not readable by PHP which is highly discouraged for security reasons.
Further information can be found in our documentation.”</p>
<p>This message is another one which needs to be taken seriously. Please have a look
at the <a class="reference internal" href="../installation/harden_server.html#dev-urandom-label"><span class="std std-ref">Give PHP read access to /dev/urandom</span></a> documentation.</p>
</section>
<section id="your-web-server-is-not-yet-set-up-properly-to-allow-file-synchronization">
<h2>Your Web server is not yet set up properly to allow file synchronization<a class="headerlink" href="#your-web-server-is-not-yet-set-up-properly-to-allow-file-synchronization" title="Link to this heading"></a></h2>
<p>“Your web server is not yet set up properly to allow file synchronization because
the WebDAV interface seems to be broken.”</p>
<p>At the ownCloud community forums a larger <a class="reference external" href="https://forum.owncloud.org/viewtopic.php?f=17&amp;t=7536">FAQ</a>
is maintained containing various information and debugging hints.</p>
</section>
<section id="outdated-nss-openssl-version">
<h2>Outdated NSS / OpenSSL version<a class="headerlink" href="#outdated-nss-openssl-version" title="Link to this heading"></a></h2>
<p>“cURL is using an outdated OpenSSL version (OpenSSL/$version). Please update your
operating system or features such as installing and updating apps via the app store
or Federated Cloud Sharing will not work reliably.”</p>
<p>“cURL is using an outdated NSS version (NSS/$version). Please update your operating
system or features such as installing and updating apps via the app store or Federated
Cloud Sharing will not work reliably.”</p>
<p>There are known bugs in older OpenSSL and NSS versions leading to misbehavior in
combination with remote hosts using SNI. A technology used by most of the HTTPS
websites. To ensure that Nextcloud will work properly you need to update OpenSSL
to at least 1.0.2b or 1.0.1d. For NSS the patch version depends on your distribution
and an heuristic is running the test which actually reproduces the bug.</p>
</section>
<section id="your-web-server-is-not-set-up-properly-to-resolve-well-known-caldav-or-well-known-carddav">
<h2>Your Web server is not set up properly to resolve /.well-known/caldav/ or /.well-known/carddav/<a class="headerlink" href="#your-web-server-is-not-set-up-properly-to-resolve-well-known-caldav-or-well-known-carddav" title="Link to this heading"></a></h2>
<p>Both URLs need to be correctly redirected to the DAV endpoint of Nextcloud. Please
refer to <a class="reference internal" href="../issues/general_troubleshooting.html#service-discovery-label"><span class="std std-ref">Service discovery</span></a> for more info.</p>
</section>
<section id="some-files-have-not-passed-the-integrity-check">
<h2>Some files have not passed the integrity check<a class="headerlink" href="#some-files-have-not-passed-the-integrity-check" title="Link to this heading"></a></h2>
<p>Please refer to the <a class="reference internal" href="../issues/code_signing.html#code-signing-fix-warning-label"><span class="std std-ref">Fixing invalid code integrity messages</span></a> documentation how to debug this issue.</p>
</section>
<section id="your-database-does-not-run-with-read-commited-transaction-isolation-level">
<h2>Your database does not run with “READ COMMITED” transaction isolation level<a class="headerlink" href="#your-database-does-not-run-with-read-commited-transaction-isolation-level" title="Link to this heading"></a></h2>
<p>“Your database does not run with “READ COMMITED” transaction isolation level.
This can cause problems when multiple actions are executed in parallel.”</p>
<p>Please refer to <a class="reference internal" href="../configuration_database/linux_database_configuration.html#db-transaction-label"><span class="std std-ref">Database “READ COMMITTED” transaction isolation level</span></a> how to configure your database for this requirement.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="index.html" class="btn btn-neutral float-left" title="Nextcloud configuration" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="occ_command.html" class="btn btn-neutral float-right" title="Using the occ command" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,216 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Text app &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Theming" href="theming.html" />
<link rel="prev" title="Automatic setup" href="automatic_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Text app</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#disable-rich-workspaces-globally">Disable rich workspaces globally</a></li>
<li class="toctree-l3"><a class="reference internal" href="#default-file-extension">Default file extension</a></li>
<li class="toctree-l3"><a class="reference internal" href="#disable-rich-text-editing">Disable rich text editing</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="theming.html">Theming</a></li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Text app</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/text_configuration.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="text-app">
<h1>Text app<a class="headerlink" href="#text-app" title="Link to this heading"></a></h1>
<section id="disable-rich-workspaces-globally">
<h2>Disable rich workspaces globally<a class="headerlink" href="#disable-rich-workspaces-globally" title="Link to this heading"></a></h2>
<p>Rich workspaces can be disabled globally by the admin by setting the following config option to 0 (default is 1):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">text</span> <span class="n">workspace_available</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span>
</pre></div>
</div>
</section>
<section id="default-file-extension">
<h2>Default file extension<a class="headerlink" href="#default-file-extension" title="Link to this heading"></a></h2>
<p>The default file extension can be changed to txt in order to always create plain text files (default is md):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">text</span> <span class="n">default_file_extension</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="n">txt</span>
</pre></div>
</div>
</section>
<section id="disable-rich-text-editing">
<h2>Disable rich text editing<a class="headerlink" href="#disable-rich-text-editing" title="Link to this heading"></a></h2>
<p>Rich text editing can be turned off globally to always open markdown files in their raw format, without rendering of the formatting (default is 1):</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">text</span> <span class="n">rich_editing_enabled</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="automatic_configuration.html" class="btn btn-neutral float-left" title="Automatic setup" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="theming.html" class="btn btn-neutral float-right" title="Theming" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
@@ -0,0 +1,282 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Theming &mdash; Nextcloud latest Administration Manual latest documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/general.css" type="text/css" />
<link rel="stylesheet" href="../_static/dark_mode_css/dark.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/dark_mode_js/default_light.js?v=c2e647ce"></script>
<script src="../_static/dark_mode_js/theme_switcher.js?v=358d3910"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="OAuth2" href="oauth2.html" />
<link rel="prev" title="Text app" href="text_configuration.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../contents.html">
<img src="../_static/logo-white.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_notes/index.html">Release notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_schedule.html">Maintenance and release schedule</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation and server configuration</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Nextcloud configuration</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="security_setup_warnings.html">Warnings on admin page</a></li>
<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ command</a></li>
<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Activity app</a></li>
<li class="toctree-l2"><a class="reference internal" href="caching_configuration.html">Memory caching</a></li>
<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Background jobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Configuration Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email</a></li>
<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking external sites</a></li>
<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language &amp; Locale</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_configuration.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Antivirus scanner</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard_configuration.html">Dashboard app</a></li>
<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="bruteforce_configuration.html">Brute force protection</a></li>
<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="text_configuration.html">Text app</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Theming</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#modify-the-appearance-of-nextcloud">Modify the appearance of Nextcloud</a></li>
<li class="toctree-l3"><a class="reference internal" href="#configure-theming-through-cli">Configure theming through CLI</a></li>
<li class="toctree-l3"><a class="reference internal" href="#theming-of-icons">Theming of icons</a></li>
<li class="toctree-l3"><a class="reference internal" href="#branded-clients">Branded clients</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="oauth2.html">OAuth2</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_delegation_configuration.html">Admin right privilege</a></li>
<li class="toctree-l2"><a class="reference internal" href="domain_change.html">Domain Change</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps_management.html">Apps management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_user/index.html">User management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_files/index.html">File sharing and management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../file_workflows/index.html">Flow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../groupware/index.html">Groupware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../office/index.html">Office</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ai/index.html">Artificial Intelligence</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_database/index.html">Database configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration_mimetypes/index.html">Mimetypes management</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../gdpr/index.html">GDPR-compliance</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../contents.html">Nextcloud latest Administration Manual</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../contents.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Nextcloud configuration</a></li>
<li class="breadcrumb-item active">Theming</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/nextcloud/documentation/edit/master/admin_manual/configuration_server/theming.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="theming">
<h1>Theming<a class="headerlink" href="#theming" title="Link to this heading"></a></h1>
<p>With our theming feature, you are able to customize the look and feel of your
Nextcloud instance according to the corporate design of your organization by
replacing the Nextcloud logo and color with your own assets.</p>
<p>The theming app is enabled by default so the section should appear by default in
your admin-settings. If not, check in the apps management that this app is enabled.</p>
<section id="modify-the-appearance-of-nextcloud">
<h2>Modify the appearance of Nextcloud<a class="headerlink" href="#modify-the-appearance-of-nextcloud" title="Link to this heading"></a></h2>
<p>You can change the following parameters of the look and feel on your instance:</p>
<figure class="align-default">
<img alt="../_images/theming1.png" src="../_images/theming1.png" />
</figure>
<ul class="simple">
<li><p>Name (e.g. ACME Inc. Cloud)</p></li>
<li><p>Web link (e.g. <a class="reference external" href="https://acme.inc/">https://acme.inc/</a>)</p></li>
<li><p>Slogan</p></li>
<li><p>Color: The color of the header bar, checkboxes, and folder icon</p></li>
<li><p>Logo: The logo will appear in the header and on the login page. The default has 62/34 px.</p></li>
<li><p>Background and login image: The background image</p></li>
</ul>
<figure class="align-default">
<img alt="../_images/theming2.png" src="../_images/theming2.png" />
</figure>
<ul class="simple">
<li><p>Additional legal links (Legal notice and Privacy policy link)</p></li>
<li><p>Custom header logo and favicon as an alternative to auto-generation based on logo</p></li>
<li><p>Disable user theming: Although you can select and customize your instance, users can change their backgrounds and colors. If you want to enforce your customization, you can toggle this on.</p></li>
</ul>
</section>
<section id="configure-theming-through-cli">
<h2>Configure theming through CLI<a class="headerlink" href="#configure-theming-through-cli" title="Link to this heading"></a></h2>
<p>Theming configuration can also be adjusted through the <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">theming:config</span></code> command.</p>
<p>The following values are available to be set through this:</p>
<ul class="simple">
<li><p>name, url, imprintUrl, privacyUrl, slogan, color <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">theming:config</span> <span class="pre">name</span> <span class="pre">&quot;My</span> <span class="pre">Example</span> <span class="pre">Cloud&quot;</span></code></p></li>
<li><p>background, logo, favicon, logoheader <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">theming:config</span> <span class="pre">logo</span> <span class="pre">/tmp/mylogo.png</span></code></p></li>
<li><p>disable-user-theming (yes/no) <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">theming:config</span> <span class="pre">disable-user-theming</span> <span class="pre">yes</span></code></p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Images require to be read from a local file on the Nextcloud server</p>
</div>
<p>Use a color instead of an image as a background:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">theming</span><span class="p">:</span><span class="n">config</span> <span class="n">color</span> <span class="s2">&quot;#0082c9&quot;</span>
<span class="n">occ</span> <span class="n">theming</span><span class="p">:</span><span class="n">config</span> <span class="n">background</span> <span class="n">backgroundColor</span>
</pre></div>
</div>
</section>
<section id="theming-of-icons">
<h2>Theming of icons<a class="headerlink" href="#theming-of-icons" title="Link to this heading"></a></h2>
<p>According to the parameters you have set, Nextcloud will automatically generate
favicons and a header logo depending on the current logo and theming color.</p>
<p>This requires the following additional dependencies:</p>
<blockquote>
<div><ul class="simple">
<li><p>PHP module <code class="docutils literal notranslate"><span class="pre">imagick</span></code></p></li>
<li><p>SVG support for imagick (e.g. <code class="docutils literal notranslate"><span class="pre">libmagickcore-6.q16-3-extra</span></code> on Debian 9 and Ubuntu 18.04)</p></li>
</ul>
</div></blockquote>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>In the advanced options of the theming app you are able to set a custom
favicon in case you do not want to use the same logo resources you have set above
or you do not want to install the mentioned dependencies.</p>
</div>
</section>
<section id="branded-clients">
<h2>Branded clients<a class="headerlink" href="#branded-clients" title="Link to this heading"></a></h2>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Nextcloud GmbH provides branding services, delivering sync clients (mobile
and desktop) which use your corporate identity and are pre-configured to help your
users get up and running in no time. If you are interested in our advanced branding &amp;
support subscription, <a class="reference external" href="https://nextcloud.com/enterprise/">contact our sales team</a>.</p>
</div>
<p>The theming app supports changing the URLs to the mobile apps (Android &amp; iOS) that
are shown when the web interface is opened on one of those devices. Then there was a
header shown, that redirects the user to the app in the app store. By default,
this redirects to the Nextcloud apps. In some cases, it is wanted that this
links to branded versions of those apps. In those cases the IDs and URLs can be
set via the <code class="docutils literal notranslate"><span class="pre">occ</span></code>-command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">theming</span> <span class="n">AndroidClientUrl</span> <span class="o">--</span><span class="n">value</span> <span class="s2">&quot;https://play.google.com/store/apps/details?id=com.nextcloud.client&quot;</span>
<span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">theming</span> <span class="n">iTunesAppId</span> <span class="o">--</span><span class="n">value</span> <span class="s2">&quot;1125420102&quot;</span>
<span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="nb">set</span> <span class="n">theming</span> <span class="n">iOSClientUrl</span> <span class="o">--</span><span class="n">value</span> <span class="s2">&quot;https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8&quot;</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="text_configuration.html" class="btn btn-neutral float-left" title="Text app" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="oauth2.html" class="btn btn-neutral float-right" title="OAuth2" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2024 Nextcloud GmbH.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Read the Docs</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Versions</dt>
<dd><a href="https://docs.nextcloud.com/server/25/admin_manual">25</a></dd>
<dd><a href="https://docs.nextcloud.com/server/26/admin_manual">26</a></dd>
<dd><a href="https://docs.nextcloud.com/server/27/admin_manual">27</a></dd>
<dd><a href="https://docs.nextcloud.com/server/stable/admin_manual">stable</a></dd>
<dd><a href="https://docs.nextcloud.com/server/latest/admin_manual">latest</a></dd>
</dl>
<dl>
<dt>Downloads</dt>
</dl>
<dl>
<dt>On Read the Docs</dt>
<dd>
<a href="///projects//?fromdocs=">Project Home</a>
</dd>
<dd>
<a href="///builds//?fromdocs=">Builds</a>
</dd>
</dl>
</div>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>