2502 lines
323 KiB
HTML
2502 lines
323 KiB
HTML
|
||
|
||
<!DOCTYPE html>
|
||
<html class="writer-html5" lang="en" data-content_root="./">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="readthedocs-addons-api-version" content="1"><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>Using the occ command — F7cloud latest Administration Manual latest documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
||
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
|
||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=8ff6e0db" />
|
||
<link rel="stylesheet" type="text/css" href="_static/dark_mode_css/general.css?v=c0a7eb24" />
|
||
<link rel="stylesheet" type="text/css" href="_static/dark_mode_css/dark.css?v=70edf1c7" />
|
||
|
||
|
||
<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=f4332903"></script>
|
||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<script src="_static/clipboard.min.js?v=a7894cd8"></script>
|
||
<script src="_static/copybutton.js?v=f281be69"></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>
|
||
<script src="_static/js/versions.js"></script>
|
||
<link rel="index" title="Index" href="genindex.html" />
|
||
<link rel="search" title="Search" href="search.html" />
|
||
<link rel="next" title="Reference management" href="reference/index.html" />
|
||
<link rel="prev" title="Theming" href="configuration_server/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 class="switch-menus">
|
||
<div class="version-switch"></div>
|
||
<div class="language-switch"></div>
|
||
</div>
|
||
<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">
|
||
<p class="caption" role="heading"><span class="caption-text">Getting Started</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="index.html">Introduction</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="gdpr/index.html">GDPR-compliance</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Release notes</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="release_notes/index.html">Critical changes</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Installation</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="installation/index.html">Installation and server configuration</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="configuration_database/index.html">Database configuration</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Configuration</span></p>
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="configuration_server/index.html">F7cloud configuration</a></li>
|
||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Using the occ command</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="#occ-command-directory">occ command Directory</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#run-occ-as-your-http-user">Run occ as your HTTP user</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#environment-variables">Environment variables</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#enabling-autocompletion">Enabling autocompletion</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#run-commands-in-maintenance-mode">Run commands in maintenance mode</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#apps-commands">Apps commands</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#background-jobs-selector">Background jobs selector</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#config-commands">Config commands</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#getting-a-single-configuration-value">Getting a single configuration value</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#setting-a-single-configuration-value">Setting a single configuration value</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#setting-an-array-configuration-value">Setting an array configuration value</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#setting-a-hierarchical-configuration-value">Setting a hierarchical configuration value</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#deleting-a-single-configuration-value">Deleting a single configuration value</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#dav-commands">Dav commands</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#manage-addressbooks">Manage addressbooks</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#list-all-addressbooks-of-a-user">List all addressbooks of a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#create-a-addressbook-for-a-user">Create a addressbook for a user</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#manage-calendars">Manage calendars</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#list-all-calendars-of-a-user">List all calendars of a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#create-a-calendar-for-a-user">Create a calendar for a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#delete-a-calendar-for-a-user">Delete a calendar for a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#move-a-calendar-of-a-user">Move a calendar of a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#export-a-calendar-of-a-user">Export a calendar of a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#import-a-calendar-to-a-user">Import a calendar to a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#misc">Misc</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#manage-calendar-subscriptions">Manage calendar subscriptions</a><ul>
|
||
<li class="toctree-l4"><a class="reference internal" href="#list-all-calendar-subscriptions-of-a-user">List all calendar subscriptions of a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#create-a-calendar-subscription-for-a-user">Create a calendar subscription for a user</a></li>
|
||
<li class="toctree-l4"><a class="reference internal" href="#delete-a-calendar-subscription-for-a-user">Delete a calendar subscription for a user</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#sync-system-address-book">Sync system address book</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#sync-birthday-calendar">Sync birthday calendar</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#disable-creation-of-example-events">Disable creation of example events</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#database-conversion">Database conversion</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#add-missing-indices">Add missing indices</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#encryption">Encryption</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#federation-sync">Federation sync</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#file-operations">File operations</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#scan">Scan</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#scan-appdata">Scan appdata</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#cleanup-previews">Cleanup previews</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#cleanup">Cleanup</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#repair-tree">Repair-Tree</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#sanitize-filenames">Sanitize filenames</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#transfer">Transfer</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#toggle-windows-compatibility">Toggle Windows compatibility</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#files-sharing">Files Sharing</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#files-external">Files external</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#integrity-check">Integrity check</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#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="#ldap-commands">LDAP commands</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-search">ldap:search</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-check-user">ldap:check-user</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-check-group">ldap:check-group</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-create-empty-config">ldap:create-empty-config</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-delete-config">ldap:delete-config</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-set-config">ldap:set-config</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-test-config">ldap:test-config</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-test-user-settings">ldap:test-user-settings</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#ldap-show-remnants">ldap:show-remnants</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#logging-commands">Logging commands</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#maintenance-commands">Maintenance commands</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#security">Security</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#status">Status</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#status-return-code">Status return code</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#trashbin">Trashbin</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#user-commands">User commands</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-add">user:add</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-resetpassword">user:resetpassword</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-delete">user:delete</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-lastseen">user:lastseen</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-profile">user:profile</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-setting">user:setting</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-report">user:report</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-list">user:list</a></li>
|
||
<li class="toctree-l3"><a class="reference internal" href="#user-info">user:info</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#group-commands">Group commands</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#versions">Versions</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#command-line-installation">Command line installation</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#command-line-upgrade">Command line upgrade</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#two-factor-authentication">Two-factor authentication</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#disable-users">Disable users</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#system-tags">System Tags</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#antivirus">Antivirus</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#setupchecks">Setupchecks</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#share-operations">Share operations</a><ul>
|
||
<li class="toctree-l3"><a class="reference internal" href="#list">List</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#debugging">Debugging</a></li>
|
||
</ul>
|
||
</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="webhook_listeners/index.html">Webhook Listeners</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="windmill_workflows/index.html">Windmill Workflows</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Files</span></p>
|
||
<ul>
|
||
<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="configuration_mimetypes/index.html">Mimetypes management</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Apps</span></p>
|
||
<ul>
|
||
<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="exapps_management/index.html">ExApps management</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="ai/index.html">Artificial Intelligence</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Users</span></p>
|
||
<ul>
|
||
<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="desktop/index.html">Desktop Clients</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Groupware</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="groupware/index.html">Groupware</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Office</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="office/index.html">Office</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Maintenance</span></p>
|
||
<ul>
|
||
<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>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Links</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference external" href="https://help.f7cloud.com/">Community Help Forum</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://docs.f7cloud.com/">User Manuals</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://docs.f7cloud.com/">Developer Manuals</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://f7cloud.com/install/">Download</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://apps.f7cloud.com">App Store</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://help.f7cloud.com/t/translation-knowledge-valid-for-the-entire-f7cloud-project-wiki/51550">Translations</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://github.com/f7cloud/">GitHub</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://github.com/f7cloud/server/wiki/Maintenance-and-Release-Schedule">Supported versions</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://f7cloud.com/enterprise/">F7cloud Enterprise</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://github.com/f7cloud/server/blob/master/COPYING-README">License</a></li>
|
||
<li class="toctree-l1"><a class="reference external" href="https://f7cloud.com/">F7cloud GmbH</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">F7cloud 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">Using the occ command</li>
|
||
<li class="wy-breadcrumbs-aside">
|
||
<a href="https://github.com/f7cloud/documentation/edit/master/admin_manual/occ_command.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="using-the-occ-command">
|
||
<span id="occ"></span><h1>Using the occ command<a class="headerlink" href="#using-the-occ-command" title="Link to this heading"></a></h1>
|
||
<p>F7cloud’s <code class="docutils literal notranslate"><span class="pre">occ</span></code> command (origins from “ownCloud Console”) is F7cloud’s command-line
|
||
interface. You can perform many common server operations with <code class="docutils literal notranslate"><span class="pre">occ</span></code>, such as
|
||
installing and upgrading F7cloud, manage users, encryption, passwords, LDAP
|
||
setting, and more.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">occ</span></code> is in the <code class="file docutils literal notranslate"><span class="pre">f7cloud/</span></code> directory; for example
|
||
<code class="file docutils literal notranslate"><span class="pre">/var/www/f7cloud</span></code> on Ubuntu Linux. <code class="docutils literal notranslate"><span class="pre">occ</span></code> is a PHP script. <strong>You must
|
||
run it as your HTTP user</strong> to ensure that the correct permissions are maintained
|
||
on your F7cloud files and directories.</p>
|
||
<section id="occ-command-directory">
|
||
<h2>occ command Directory<a class="headerlink" href="#occ-command-directory" title="Link to this heading"></a></h2>
|
||
<ul class="simple">
|
||
<li><p><a class="reference internal" href="#http-user-label"><span class="std std-ref">Run occ as your HTTP user</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#run-commands-in-maintenance-mode"><span class="std std-ref">Run commands in maintenance mode</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#apps-commands-label"><span class="std std-ref">Apps commands</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#background-jobs-selector-label"><span class="std std-ref">Background jobs selector</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#config-commands-label"><span class="std std-ref">Config commands</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#dav-label"><span class="std std-ref">Dav commands</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#database-conversion-label"><span class="std std-ref">Database conversion</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#database-add-indices-label"><span class="std std-ref">Add missing indices</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#encryption-label"><span class="std std-ref">Encryption</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#federation-sync-label"><span class="std std-ref">Federation sync</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#file-operations-label"><span class="std std-ref">File operations</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#files-external-label"><span class="std std-ref">Files external</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#integrity-check-label"><span class="std std-ref">Integrity check</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#create-javascript-translation-files-label"><span class="std std-ref">l10n, create JavaScript translation files for apps</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#ldap-commands-label"><span class="std std-ref">LDAP commands</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#logging-commands-label"><span class="std std-ref">Logging commands</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#maintenance-commands-label"><span class="std std-ref">Maintenance commands</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#security-commands-label"><span class="std std-ref">Security</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#trashbin-label"><span class="std std-ref">Trashbin</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#user-commands-label"><span class="std std-ref">User commands</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#group-commands-label"><span class="std std-ref">Group commands</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#versions-label"><span class="std std-ref">Versions</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#command-line-installation-label"><span class="std std-ref">Command line installation</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#command-line-upgrade-label"><span class="std std-ref">Command line upgrade</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#two-factor-auth-label"><span class="std std-ref">Two-factor authentication</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#disable-user-label"><span class="std std-ref">Disable users</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#system-tags-commands-label"><span class="std std-ref">System Tags</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#antivirus-commands-label"><span class="std std-ref">Antivirus</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#setupchecks-commands-label"><span class="std std-ref">Setupchecks</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#share-operations-label"><span class="std std-ref">Share operations</span></a></p></li>
|
||
<li><p><a class="reference internal" href="#debugging">Debugging</a></p></li>
|
||
</ul>
|
||
</section>
|
||
<section id="run-occ-as-your-http-user">
|
||
<span id="http-user-label"></span><h2>Run occ as your HTTP user<a class="headerlink" href="#run-occ-as-your-http-user" title="Link to this heading"></a></h2>
|
||
<p>The HTTP user is different on the various Linux distributions:</p>
|
||
<ul class="simple">
|
||
<li><p>The HTTP user and group in Debian/Ubuntu is www-data.</p></li>
|
||
<li><p>The HTTP user and group in Fedora/CentOS is apache.</p></li>
|
||
<li><p>The HTTP user and group in Arch Linux is http.</p></li>
|
||
<li><p>The HTTP user in openSUSE is wwwrun, and the HTTP group is www.</p></li>
|
||
</ul>
|
||
<p>If your HTTP server is configured to use a different PHP version than the
|
||
default (/usr/bin/php), <code class="docutils literal notranslate"><span class="pre">occ</span></code> should be run with the same version. For
|
||
example, in CentOS 6.5 with SCL-PHP70 installed, the command looks like this:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">u</span> <span class="n">apache</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">rh</span><span class="o">/</span><span class="n">php70</span><span class="o">/</span><span class="n">root</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">var</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">html</span><span class="o">/</span><span class="n">f7cloud</span><span class="o">/</span><span class="n">occ</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>Although the following examples make use of the <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-u</span> <span class="pre">...</span> <span class="pre">/path/to/php</span> <span class="pre">/path/to/occ</span></code> method, your environment may require use of a different wrapper utility than <code class="docutils literal notranslate"><span class="pre">sudo</span></code> to execute the command as the appropriate user. Other common wrappers:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">su</span> <span class="pre">--command</span> <span class="pre">'/path/to/php</span> <span class="pre">...'</span> <span class="pre">username</span></code> – Note here that the target user specification comes at the end, and the command to execute is specified first.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">runuser</span> <span class="pre">--user</span> <span class="pre">username</span> <span class="pre">--</span> <span class="pre">/path/to/php</span> <span class="pre">...</span></code> – This wrapper might be used in container contexts (ex: Docker / <code class="docutils literal notranslate"><span class="pre">arm32v7/f7cloud</span></code>) where both <code class="docutils literal notranslate"><span class="pre">sudo</span></code> and <code class="docutils literal notranslate"><span class="pre">su</span></code> wrapper utilities cannot be used.</p></li>
|
||
</ul>
|
||
</div>
|
||
<p>Running <code class="docutils literal notranslate"><span class="pre">occ</span></code> with no options lists all commands and options, like this
|
||
example on Ubuntu:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span>
|
||
<span class="n">F7cloud</span> <span class="n">version</span> <span class="mf">19.0.0</span>
|
||
|
||
<span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">command</span> <span class="p">[</span><span class="n">options</span><span class="p">]</span> <span class="p">[</span><span class="n">arguments</span><span class="p">]</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span>
|
||
<span class="o">-</span><span class="n">q</span><span class="p">,</span> <span class="o">--</span><span class="n">quiet</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">output</span> <span class="nb">any</span> <span class="n">message</span>
|
||
<span class="o">-</span><span class="n">V</span><span class="p">,</span> <span class="o">--</span><span class="n">version</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">application</span> <span class="n">version</span>
|
||
<span class="o">--</span><span class="n">ansi</span> <span class="n">Force</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">ansi</span> <span class="n">Disable</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">-</span><span class="n">n</span><span class="p">,</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">interaction</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">ask</span> <span class="nb">any</span> <span class="n">interactive</span> <span class="n">question</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">warnings</span> <span class="n">Skip</span> <span class="k">global</span> <span class="n">warnings</span><span class="p">,</span> <span class="n">show</span> <span class="n">command</span> <span class="n">output</span> <span class="n">only</span>
|
||
<span class="o">-</span><span class="n">v</span><span class="o">|</span><span class="n">vv</span><span class="o">|</span><span class="n">vvv</span><span class="p">,</span> <span class="o">--</span><span class="n">verbose</span> <span class="n">Increase</span> <span class="n">the</span> <span class="n">verbosity</span> <span class="n">of</span> <span class="n">messages</span><span class="p">:</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">normal</span> <span class="n">output</span><span class="p">,</span>
|
||
<span class="mi">2</span> <span class="k">for</span> <span class="n">more</span> <span class="n">verbose</span> <span class="n">output</span> <span class="ow">and</span> <span class="mi">3</span> <span class="k">for</span> <span class="n">debug</span>
|
||
|
||
<span class="n">Available</span> <span class="n">commands</span><span class="p">:</span>
|
||
<span class="n">check</span> <span class="n">check</span> <span class="n">dependencies</span> <span class="n">of</span> <span class="n">the</span> <span class="n">server</span>
|
||
<span class="n">environment</span>
|
||
<span class="n">help</span> <span class="n">Displays</span> <span class="n">help</span> <span class="k">for</span> <span class="n">a</span> <span class="n">command</span>
|
||
<span class="nb">list</span> <span class="n">Lists</span> <span class="n">commands</span>
|
||
<span class="n">status</span> <span class="n">show</span> <span class="n">some</span> <span class="n">status</span> <span class="n">information</span>
|
||
<span class="n">upgrade</span> <span class="n">run</span> <span class="n">upgrade</span> <span class="n">routines</span> <span class="n">after</span> <span class="n">installation</span> <span class="n">of</span>
|
||
<span class="n">a</span> <span class="n">new</span> <span class="n">release</span><span class="o">.</span> <span class="n">The</span> <span class="n">release</span> <span class="n">has</span> <span class="n">to</span> <span class="n">be</span>
|
||
<span class="n">installed</span> <span class="n">before</span><span class="o">.</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This is the same as <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-E</span> <span class="pre">-u</span> <span class="pre">www-data</span> <span class="pre">php</span> <span class="pre">occ</span> <span class="pre">list</span></code>.</p>
|
||
<p>Run it with the <code class="docutils literal notranslate"><span class="pre">-h</span></code> option for syntax help:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="o">-</span><span class="n">h</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Display your F7cloud version:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="o">-</span><span class="n">V</span>
|
||
<span class="n">F7cloud</span> <span class="n">version</span> <span class="mf">19.0.0</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Query your F7cloud server status:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">status</span>
|
||
<span class="o">-</span> <span class="n">installed</span><span class="p">:</span> <span class="n">true</span>
|
||
<span class="o">-</span> <span class="n">version</span><span class="p">:</span> <span class="mf">19.0.0.12</span>
|
||
<span class="o">-</span> <span class="n">versionstring</span><span class="p">:</span> <span class="mf">19.0.0</span>
|
||
<span class="o">-</span> <span class="n">edition</span><span class="p">:</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">occ</span></code> has options, commands, and arguments. Options and arguments are
|
||
optional, while commands are required. The syntax is:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">occ</span> <span class="p">[</span><span class="n">options</span><span class="p">]</span> <span class="n">command</span> <span class="p">[</span><span class="n">arguments</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Get detailed information on individual commands with the <code class="docutils literal notranslate"><span class="pre">help</span></code> command, like
|
||
this example for the <code class="docutils literal notranslate"><span class="pre">maintenance:mode</span></code> command:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">help</span> <span class="n">maintenance</span><span class="p">:</span><span class="n">mode</span>
|
||
<span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">mode</span> <span class="p">[</span><span class="n">options</span><span class="p">]</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">--</span><span class="n">on</span> <span class="n">enable</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
<span class="o">--</span><span class="n">off</span> <span class="n">disable</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span>
|
||
<span class="o">-</span><span class="n">q</span><span class="p">,</span> <span class="o">--</span><span class="n">quiet</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">output</span> <span class="nb">any</span> <span class="n">message</span>
|
||
<span class="o">-</span><span class="n">V</span><span class="p">,</span> <span class="o">--</span><span class="n">version</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">application</span> <span class="n">version</span>
|
||
<span class="o">--</span><span class="n">ansi</span> <span class="n">Force</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">ansi</span> <span class="n">Disable</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">-</span><span class="n">n</span><span class="p">,</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">interaction</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">ask</span> <span class="nb">any</span> <span class="n">interactive</span> <span class="n">question</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">warnings</span> <span class="n">Skip</span> <span class="k">global</span> <span class="n">warnings</span><span class="p">,</span> <span class="n">show</span> <span class="n">command</span> <span class="n">output</span> <span class="n">only</span>
|
||
<span class="o">-</span><span class="n">v</span><span class="o">|</span><span class="n">vv</span><span class="o">|</span><span class="n">vvv</span><span class="p">,</span> <span class="o">--</span><span class="n">verbose</span> <span class="n">Increase</span> <span class="n">the</span> <span class="n">verbosity</span> <span class="n">of</span> <span class="n">messages</span><span class="p">:</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">normal</span> <span class="n">output</span><span class="p">,</span>
|
||
<span class="mi">2</span> <span class="k">for</span> <span class="n">more</span> <span class="n">verbose</span> <span class="n">output</span> <span class="ow">and</span> <span class="mi">3</span> <span class="k">for</span> <span class="n">debug</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">status</span></code> command from above has an option to define the output format.
|
||
The default is plain text, but it can also be <code class="docutils literal notranslate"><span class="pre">json</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">status</span> <span class="o">--</span><span class="n">output</span><span class="o">=</span><span class="n">json</span>
|
||
<span class="p">{</span><span class="s2">"installed"</span><span class="p">:</span><span class="n">true</span><span class="p">,</span><span class="s2">"version"</span><span class="p">:</span><span class="s2">"19.0.0.9"</span><span class="p">,</span><span class="s2">"versionstring"</span><span class="p">:</span><span class="s2">"19.0.0"</span><span class="p">,</span><span class="s2">"edition"</span><span class="p">:</span><span class="s2">""</span><span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>or <code class="docutils literal notranslate"><span class="pre">json_pretty</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">status</span> <span class="o">--</span><span class="n">output</span><span class="o">=</span><span class="n">json_pretty</span>
|
||
<span class="p">{</span>
|
||
<span class="s2">"installed"</span><span class="p">:</span> <span class="n">true</span><span class="p">,</span>
|
||
<span class="s2">"version"</span><span class="p">:</span> <span class="s2">"19.0.0.12"</span><span class="p">,</span>
|
||
<span class="s2">"versionstring"</span><span class="p">:</span> <span class="s2">"19.0.0"</span><span class="p">,</span>
|
||
<span class="s2">"edition"</span><span class="p">:</span> <span class="s2">""</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This output option is available on all list and list-like commands:
|
||
<code class="docutils literal notranslate"><span class="pre">status</span></code>, <code class="docutils literal notranslate"><span class="pre">check</span></code>, <code class="docutils literal notranslate"><span class="pre">app:list</span></code>, <code class="docutils literal notranslate"><span class="pre">config:list</span></code>, <code class="docutils literal notranslate"><span class="pre">encryption:status</span></code>
|
||
and <code class="docutils literal notranslate"><span class="pre">encryption:list-modules</span></code></p>
|
||
<section id="environment-variables">
|
||
<h3>Environment variables<a class="headerlink" href="#environment-variables" title="Link to this heading"></a></h3>
|
||
<p><code class="docutils literal notranslate"><span class="pre">sudo</span></code> does not forward environment variables by default. Put the variables before the <code class="docutils literal notranslate"><span class="pre">php</span></code> command:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">NC_debug</span><span class="o">=</span><span class="n">true</span> <span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">status</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Alternatively, you can <code class="docutils literal notranslate"><span class="pre">export</span></code> the variable or use the <code class="docutils literal notranslate"><span class="pre">-E</span></code> switch for <code class="docutils literal notranslate"><span class="pre">sudo</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">NC_debug</span><span class="o">=</span><span class="n">true</span> <span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">status</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="enabling-autocompletion">
|
||
<h2>Enabling autocompletion<a class="headerlink" href="#enabling-autocompletion" title="Link to this heading"></a></h2>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>Command autocompletion currently only works if the user you use to execute the occ commands has a profile.
|
||
<code class="docutils literal notranslate"><span class="pre">www-data</span></code> in most cases is <code class="docutils literal notranslate"><span class="pre">nologon</span></code> and therefore <strong>cannot</strong> use this feature.</p>
|
||
</div>
|
||
<p>Autocompletion is available for bash (and bash based consoles).
|
||
To enable it, you have to run <strong>one</strong> of the following commands:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span># BASH ~4.x, ZSH
|
||
source <(/var/www/html/f7cloud/occ _completion --generate-hook)
|
||
|
||
# BASH ~3.x, ZSH
|
||
/var/www/html/f7cloud/occ _completion --generate-hook | source /dev/stdin
|
||
|
||
# BASH (any version)
|
||
eval $(/var/www/html/f7cloud/occ _completion --generate-hook)
|
||
</pre></div>
|
||
</div>
|
||
<p>This will allow you to use autocompletion with the full path <code class="docutils literal notranslate"><span class="pre">/var/www/html/f7cloud/occ</span> <span class="pre"><tab></span></code>.</p>
|
||
<p>If you also want to use autocompletion on occ from within the directory without using the full path,
|
||
you need to specify <code class="docutils literal notranslate"><span class="pre">--program</span> <span class="pre">occ</span></code> after the <code class="docutils literal notranslate"><span class="pre">--generate-hook</span></code>.</p>
|
||
<p>If you want the completion to apply automatically for all new shell sessions, add the command to your
|
||
shell’s profile (eg. <code class="docutils literal notranslate"><span class="pre">~/.bash_profile</span></code> or <code class="docutils literal notranslate"><span class="pre">~/.zshrc</span></code>).</p>
|
||
</section>
|
||
<section id="run-commands-in-maintenance-mode">
|
||
<span id="id1"></span><h2>Run commands in maintenance mode<a class="headerlink" href="#run-commands-in-maintenance-mode" title="Link to this heading"></a></h2>
|
||
<p>In maintenance mode, apps are not loaded <a class="footnote-reference brackets" href="#id4" id="id2" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a>, so commands from apps are unavailable. Commands integrated into F7cloud server are available in maintenance mode.</p>
|
||
<p>We discourage the use of maintenance mode unless the command explicitly prompts you to do so or unless the commands’ documentation explicitly states that maintenance mode should be used.</p>
|
||
<p>A command may use events to communicate with other apps. An app can only react to an event when loaded. Example: The command user:delete deletes a user account. UserDeletedEvent is emitted. Calendar app implements an event listener to delete user data <a class="footnote-reference brackets" href="#id5" id="id3" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a>. In maintenance mode, the Calendar app is not loaded, and hence the user data not deleted.</p>
|
||
<aside class="footnote-list brackets">
|
||
<aside class="footnote brackets" id="id4" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id2">1</a><span class="fn-bracket">]</span></span>
|
||
<p>Exception: <a class="reference external" href="https://github.com/f7cloud/server/blob/75f17b60945e15effc3eea41393eef2b13937226/lib/base.php#L780">The settings app is loaded</a></p>
|
||
</aside>
|
||
<aside class="footnote brackets" id="id5" role="doc-footnote">
|
||
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id3">2</a><span class="fn-bracket">]</span></span>
|
||
<p><a class="reference external" href="https://github.com/f7cloud/calendar/blob/87e8586971a8676dc15a90f0cd969274678b7009/lib/Listener/UserDeletedListener.php">Calendar app event listener for UserDeletedEvent</a></p>
|
||
</aside>
|
||
</aside>
|
||
</section>
|
||
<section id="apps-commands">
|
||
<span id="apps-commands-label"></span><h2>Apps commands<a class="headerlink" href="#apps-commands" title="Link to this heading"></a></h2>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">app</span></code> commands list, enable, and disable apps:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">app</span>
|
||
<span class="n">app</span><span class="p">:</span><span class="n">install</span> <span class="n">install</span> <span class="n">selected</span> <span class="n">app</span>
|
||
<span class="n">app</span><span class="p">:</span><span class="n">disable</span> <span class="n">disable</span> <span class="n">an</span> <span class="n">app</span>
|
||
<span class="n">app</span><span class="p">:</span><span class="n">enable</span> <span class="n">enable</span> <span class="n">an</span> <span class="n">app</span>
|
||
<span class="n">app</span><span class="p">:</span><span class="n">getpath</span> <span class="n">get</span> <span class="n">an</span> <span class="n">absolute</span> <span class="n">path</span> <span class="n">to</span> <span class="n">the</span> <span class="n">app</span> <span class="n">directory</span>
|
||
<span class="n">app</span><span class="p">:</span><span class="nb">list</span> <span class="nb">list</span> <span class="nb">all</span> <span class="n">available</span> <span class="n">apps</span>
|
||
<span class="n">app</span><span class="p">:</span><span class="n">update</span> <span class="n">update</span> <span class="n">an</span> <span class="n">app</span> <span class="ow">or</span> <span class="nb">all</span> <span class="n">apps</span>
|
||
<span class="n">app</span><span class="p">:</span><span class="n">remove</span> <span class="n">disable</span> <span class="ow">and</span> <span class="n">remove</span> <span class="n">an</span> <span class="n">app</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Download and install an app:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">install</span> <span class="n">twofactor_totp</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Install but don’t enable:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">install</span> <span class="o">--</span><span class="n">keep</span><span class="o">-</span><span class="n">disabled</span> <span class="n">twofactor_totp</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Install regardless of the F7cloud version requirement:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">install</span> <span class="o">--</span><span class="n">force</span> <span class="n">twofactor_totp</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>List all of your installed apps, and show whether they are
|
||
enabled or disabled:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="nb">list</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>List all of your installed and enabled (flag <code class="docutils literal notranslate"><span class="pre">--enabled</span></code>) or disabled (flag <code class="docutils literal notranslate"><span class="pre">--disabled</span></code>) apps:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="nb">list</span> <span class="o">--</span><span class="n">enabled</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>List non-shipped installed apps only:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="nb">list</span> <span class="o">--</span><span class="n">shipped</span> <span class="n">false</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Enable an app, for example the External Storage Support app:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">enable</span> <span class="n">files_external</span>
|
||
<span class="n">files_external</span> <span class="n">enabled</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Enable an app regardless of the F7cloud version requirement:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">enable</span> <span class="o">--</span><span class="n">force</span> <span class="n">files_external</span>
|
||
<span class="n">files_external</span> <span class="n">enabled</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Enable an app for specific groups of users:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">enable</span> <span class="o">--</span><span class="n">groups</span> <span class="n">admin</span> <span class="o">--</span><span class="n">groups</span> <span class="n">sales</span> <span class="n">files_external</span>
|
||
<span class="n">files_external</span> <span class="n">enabled</span> <span class="k">for</span> <span class="n">groups</span><span class="p">:</span> <span class="n">admin</span><span class="p">,</span> <span class="n">sales</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Enable multiple apps simultaneously:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">enable</span> <span class="n">app1</span> <span class="n">app2</span> <span class="n">app3</span>
|
||
<span class="n">app1</span> <span class="n">enabled</span>
|
||
<span class="n">app2</span> <span class="n">enabled</span>
|
||
<span class="n">app3</span> <span class="n">enabled</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Disable an app:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">disable</span> <span class="n">files_external</span>
|
||
<span class="n">files_external</span> <span class="n">disabled</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Disable and remove an app:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">remove</span> <span class="n">files_external</span>
|
||
<span class="n">files_external</span> <span class="n">disabled</span>
|
||
<span class="n">files_external</span> <span class="mf">1.21.0</span> <span class="n">removed</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Remove an app, but keep the app data:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">remove</span> <span class="o">--</span><span class="n">keep</span><span class="o">-</span><span class="n">data</span> <span class="n">files_external</span>
|
||
<span class="n">files_external</span> <span class="mf">1.21.0</span> <span class="n">removed</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You can get the full filepath to an app:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">getpath</span> <span class="n">notifications</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">f7cloud</span><span class="o">/</span><span class="n">apps</span><span class="o">/</span><span class="n">notifications</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>To update an app, for instance Contacts:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">update</span> <span class="n">contacts</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>To update all apps:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">update</span> <span class="o">--</span><span class="nb">all</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>To show available update(s) without updating:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">update</span> <span class="o">--</span><span class="n">showonly</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>To update an app to an unstable release, for instance News:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">update</span> <span class="o">--</span><span class="n">allow</span><span class="o">-</span><span class="n">unstable</span> <span class="n">news</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="background-jobs-selector">
|
||
<span id="background-jobs-selector-label"></span><h2>Background jobs selector<a class="headerlink" href="#background-jobs-selector" title="Link to this heading"></a></h2>
|
||
<p>Use the <code class="docutils literal notranslate"><span class="pre">background</span></code> command to select which scheduler you want to use for
|
||
controlling background jobs, Ajax, Webcron, or Cron. This is the same as using
|
||
the <strong>Cron</strong> section on your F7cloud Admin page:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">background</span>
|
||
<span class="n">background</span><span class="p">:</span><span class="n">ajax</span> <span class="n">Use</span> <span class="n">ajax</span> <span class="n">to</span> <span class="n">run</span> <span class="n">background</span> <span class="n">jobs</span>
|
||
<span class="n">background</span><span class="p">:</span><span class="n">cron</span> <span class="n">Use</span> <span class="n">cron</span> <span class="n">to</span> <span class="n">run</span> <span class="n">background</span> <span class="n">jobs</span>
|
||
<span class="n">background</span><span class="p">:</span><span class="n">webcron</span> <span class="n">Use</span> <span class="n">webcron</span> <span class="n">to</span> <span class="n">run</span> <span class="n">background</span> <span class="n">jobs</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example selects Ajax:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">background</span><span class="p">:</span><span class="n">ajax</span>
|
||
<span class="n">Set</span> <span class="n">mode</span> <span class="k">for</span> <span class="n">background</span> <span class="n">jobs</span> <span class="n">to</span> <span class="s1">'ajax'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The other two commands are:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">background:cron</span></code></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">background:webcron</span></code></p></li>
|
||
</ul>
|
||
<p>See <a class="reference internal" href="configuration_server/background_jobs_configuration.html"><span class="doc">Background jobs</span></a> to learn more.</p>
|
||
</section>
|
||
<section id="config-commands">
|
||
<span id="config-commands-label"></span><h2>Config commands<a class="headerlink" href="#config-commands" title="Link to this heading"></a></h2>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">config</span></code> commands are used to configure the F7cloud server:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">config</span>
|
||
<span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="n">delete</span> <span class="n">Delete</span> <span class="n">an</span> <span class="n">app</span> <span class="n">config</span> <span class="n">value</span>
|
||
<span class="n">config</span><span class="p">:</span><span class="n">app</span><span class="p">:</span><span class="n">get</span> <span class="n">Get</span> <span class="n">an</span> <span class="n">app</span> <span class="n">config</span> <span class="n">value</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">Set</span> <span class="n">an</span> <span class="n">app</span> <span class="n">config</span> <span class="n">value</span>
|
||
<span class="n">config</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="nn">Import</span> <span class="n">a</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">configs</span>
|
||
<span class="n">config</span><span class="p">:</span><span class="nb">list</span> <span class="n">List</span> <span class="nb">all</span> <span class="n">configs</span>
|
||
<span class="n">config</span><span class="p">:</span><span class="n">system</span><span class="p">:</span><span class="n">delete</span> <span class="n">Delete</span> <span class="n">a</span> <span class="n">system</span> <span class="n">config</span> <span class="n">value</span>
|
||
<span class="n">config</span><span class="p">:</span><span class="n">system</span><span class="p">:</span><span class="n">get</span> <span class="n">Get</span> <span class="n">a</span> <span class="n">system</span> <span class="n">config</span> <span class="n">value</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">Set</span> <span class="n">a</span> <span class="n">system</span> <span class="n">config</span> <span class="n">value</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>While setting a configuration value, multiple options are available:</p>
|
||
<blockquote>
|
||
<div><ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--value=VALUE</span></code> change the configuration value</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--type=TYPE</span></code> change the type of the value. Use carefully; can break your instance</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--lazy|--no-lazy</span></code> set value as <cite>lazy</cite></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--sensitive|--no-sensitive</span></code> set value as <cite>sensitive</cite></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--update-only</span></code> only updates if a value is already stored</p></li>
|
||
</ul>
|
||
</div></blockquote>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>See <a class="reference external" href="https://docs.f7cloud.com/server/latest/developer_manual/digging_deeper/config/appconfig.html#concept-overview">Appconfig Concepts</a> to learn more about <cite>typed value</cite>, <cite>lazy</cite> and <cite>sensitive</cite> flag.</p>
|
||
</div>
|
||
<p>You can list all configuration values with one command:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="nb">list</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>By default, passwords and other sensitive data are omitted from the report, so
|
||
the output can be posted publicly (e.g. as part of a bug report). In order to
|
||
generate a full backport of all configuration values the <code class="docutils literal notranslate"><span class="pre">--private</span></code> flag
|
||
needs to be set:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="nb">list</span> <span class="o">--</span><span class="n">private</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The exported content can also be imported again to allow the fast setup of
|
||
similar instances. The import command will only add or update values. Values
|
||
that exist in the current configuration, but not in the one that is being
|
||
imported are left untouched:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="nn">filename.json</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>It is also possible to import remote files, by piping the input:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">config</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="o"><</span> <span class="n">local</span><span class="o">-</span><span class="n">backup</span><span class="o">.</span><span class="n">json</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>While it is possible to update/set/delete the versions and installation
|
||
statuses of apps and F7cloud itself, it is <strong>not</strong> recommended to do this
|
||
directly. Use the <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">app:enable</span></code>, <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">app:disable</span></code> and <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">app:update</span></code>
|
||
commands instead.</p>
|
||
</div>
|
||
<section id="getting-a-single-configuration-value">
|
||
<h3>Getting a single configuration value<a class="headerlink" href="#getting-a-single-configuration-value" title="Link to this heading"></a></h3>
|
||
<p>These commands get the value of a single app or system configuration:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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="n">get</span> <span class="n">version</span>
|
||
<span class="mf">19.0.0.12</span>
|
||
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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="n">get</span> <span class="n">activity</span> <span class="n">installed_version</span>
|
||
<span class="mf">2.2.1</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="setting-a-single-configuration-value">
|
||
<h3>Setting a single configuration value<a class="headerlink" href="#setting-a-single-configuration-value" title="Link to this heading"></a></h3>
|
||
<p>These commands set the value of a single app or system configuration:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">logtimezone</span>
|
||
<span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="s2">"Europe/Berlin"</span>
|
||
<span class="n">System</span> <span class="n">config</span> <span class="n">value</span> <span class="n">logtimezone</span> <span class="nb">set</span> <span class="n">to</span> <span class="n">Europe</span><span class="o">/</span><span class="n">Berlin</span>
|
||
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">files_sharing</span>
|
||
<span class="n">incoming_server2server_share_enabled</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="s2">"yes"</span>
|
||
<span class="n">Config</span> <span class="n">value</span> <span class="n">incoming_server2server_share_enabled</span> <span class="k">for</span> <span class="n">app</span> <span class="n">files_sharing</span> <span class="nb">set</span> <span class="n">to</span> <span class="n">yes</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">config:system:set</span></code> command creates the value, if it does not already
|
||
exist. To update an existing value, set <code class="docutils literal notranslate"><span class="pre">--update-only</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">doesnotexist</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="s2">"true"</span>
|
||
<span class="o">--</span><span class="nb">type</span><span class="o">=</span><span class="n">boolean</span> <span class="o">--</span><span class="n">update</span><span class="o">-</span><span class="n">only</span>
|
||
<span class="n">Value</span> <span class="ow">not</span> <span class="n">updated</span><span class="p">,</span> <span class="k">as</span> <span class="n">it</span> <span class="n">has</span> <span class="ow">not</span> <span class="n">been</span> <span class="nb">set</span> <span class="n">before</span><span class="o">.</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Note that in order to write a Boolean, float, or integer value to the
|
||
configuration file, you need to specify the type on your command. This
|
||
applies only to the <code class="docutils literal notranslate"><span class="pre">config:system:set</span></code> command. The following values are
|
||
known:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">boolean</span></code></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">float</span></code></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">integer</span></code></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">json</span></code></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">null</span></code></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">string</span></code> (default)</p></li>
|
||
</ul>
|
||
<p>When you want to e.g. disable the maintenance mode run the following command:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="n">false</span> <span class="o">--</span><span class="nb">type</span><span class="o">=</span><span class="n">boolean</span>
|
||
<span class="n">F7cloud</span> <span class="ow">is</span> <span class="ow">in</span> <span class="n">maintenance</span> <span class="n">mode</span> <span class="o">-</span> <span class="n">no</span> <span class="n">app</span> <span class="n">have</span> <span class="n">been</span> <span class="n">loaded</span>
|
||
<span class="n">System</span> <span class="n">config</span> <span class="n">value</span> <span class="n">maintenance</span> <span class="nb">set</span> <span class="n">to</span> <span class="n">boolean</span> <span class="n">false</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="setting-an-array-configuration-value">
|
||
<h3>Setting an array configuration value<a class="headerlink" href="#setting-an-array-configuration-value" title="Link to this heading"></a></h3>
|
||
<p>Some configurations (e.g. the trusted domain setting) are an array of data.
|
||
In this case, <code class="docutils literal notranslate"><span class="pre">config:system:get</span></code> for this key will return multiple values:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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="n">get</span> <span class="n">trusted_domains</span>
|
||
<span class="n">localhost</span>
|
||
<span class="n">f7cloud</span><span class="o">.</span><span class="n">local</span>
|
||
<span class="n">sample</span><span class="o">.</span><span class="n">tld</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>To set one of multiple values, you need to specify the array index as the
|
||
second <code class="docutils literal notranslate"><span class="pre">name</span></code> in the <code class="docutils literal notranslate"><span class="pre">config:system:set</span></code> command, separated by a
|
||
space. For example, to replace <code class="docutils literal notranslate"><span class="pre">sample.tld</span></code> with <code class="docutils literal notranslate"><span class="pre">example.com</span></code>,
|
||
<code class="docutils literal notranslate"><span class="pre">trusted_domains</span> <span class="pre">=></span> <span class="pre">2</span></code> needs to be set:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">trusted_domains</span> <span class="mi">2</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="n">example</span><span class="o">.</span><span class="n">com</span>
|
||
<span class="n">System</span> <span class="n">config</span> <span class="n">value</span> <span class="n">trusted_domains</span> <span class="o">=></span> <span class="mi">2</span> <span class="nb">set</span> <span class="n">to</span> <span class="n">string</span> <span class="n">example</span><span class="o">.</span><span class="n">com</span>
|
||
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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="n">get</span> <span class="n">trusted_domains</span>
|
||
<span class="n">localhost</span>
|
||
<span class="n">f7cloud</span><span class="o">.</span><span class="n">local</span>
|
||
<span class="n">example</span><span class="o">.</span><span class="n">com</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Alternatively, you can set the entry array at once by using the <code class="docutils literal notranslate"><span class="pre">json</span></code> type:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">trusted_domains</span> <span class="o">--</span><span class="nb">type</span> <span class="n">json</span> <span class="o">--</span><span class="n">value</span> <span class="s1">'["f7cloud.local","example.com"]'</span>
|
||
<span class="n">System</span> <span class="n">config</span> <span class="n">value</span> <span class="n">trusted_domains</span> <span class="nb">set</span> <span class="n">to</span> <span class="n">json</span> <span class="p">[</span><span class="s2">"f7cloud.local"</span><span class="p">,</span><span class="s2">"example.com"</span><span class="p">]</span>
|
||
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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="n">get</span> <span class="n">trusted_domains</span>
|
||
<span class="n">f7cloud</span><span class="o">.</span><span class="n">local</span>
|
||
<span class="n">example</span><span class="o">.</span><span class="n">com</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="setting-a-hierarchical-configuration-value">
|
||
<h3>Setting a hierarchical configuration value<a class="headerlink" href="#setting-a-hierarchical-configuration-value" title="Link to this heading"></a></h3>
|
||
<p>Some configurations use hierarchical data. For example, the settings
|
||
for the Redis cache would look like this in the <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">'redis'</span> <span class="o">=></span> <span class="n">array</span><span class="p">(</span>
|
||
<span class="s1">'host'</span> <span class="o">=></span> <span class="s1">'/var/run/redis/redis.sock'</span><span class="p">,</span>
|
||
<span class="s1">'port'</span> <span class="o">=></span> <span class="mi">0</span><span class="p">,</span>
|
||
<span class="s1">'dbindex'</span> <span class="o">=></span> <span class="mi">0</span><span class="p">,</span>
|
||
<span class="s1">'password'</span> <span class="o">=></span> <span class="s1">'secret'</span><span class="p">,</span>
|
||
<span class="s1">'timeout'</span> <span class="o">=></span> <span class="mf">1.5</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Setting such hierarchical values works similarly to setting an array
|
||
value above. For this Redis example, use the following commands:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">redis</span> <span class="n">host</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">run</span><span class="o">/</span><span class="n">redis</span><span class="o">/</span><span class="n">redis</span><span class="o">.</span><span class="n">sock</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">redis</span> <span class="n">port</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">redis</span> <span class="n">dbindex</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mi">0</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">redis</span> <span class="n">password</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="n">secret</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">redis</span> <span class="n">timeout</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="mf">1.5</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Alternatively, you can set the entry configuration at once by using the <code class="docutils literal notranslate"><span class="pre">json</span></code> type:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">redis</span> <span class="o">--</span><span class="nb">type</span> <span class="n">json</span> <span class="o">--</span><span class="n">value</span> <span class="s1">'{"host":"/var/run/redis/redis.sock","port":0,"dbindex":0,"password":"secret","timeout":1.5}'</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="deleting-a-single-configuration-value">
|
||
<h3>Deleting a single configuration value<a class="headerlink" href="#deleting-a-single-configuration-value" title="Link to this heading"></a></h3>
|
||
<p>These commands delete the configuration of an app or system configuration:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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="n">delete</span> <span class="n">maintenance</span><span class="p">:</span><span class="n">mode</span>
|
||
<span class="n">System</span> <span class="n">config</span> <span class="n">value</span> <span class="n">maintenance</span><span class="p">:</span><span class="n">mode</span> <span class="n">deleted</span>
|
||
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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="n">delete</span> <span class="n">appname</span> <span class="n">provisioning_api</span>
|
||
<span class="n">Config</span> <span class="n">value</span> <span class="n">provisioning_api</span> <span class="n">of</span> <span class="n">app</span> <span class="n">appname</span> <span class="n">deleted</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The delete command will by default not complain if the configuration was not set
|
||
before. If you want to be notified in that case, set the
|
||
<code class="docutils literal notranslate"><span class="pre">--error-if-not-exists</span></code> flag:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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="n">delete</span> <span class="n">doesnotexist</span>
|
||
<span class="o">--</span><span class="n">error</span><span class="o">-</span><span class="k">if</span><span class="o">-</span><span class="ow">not</span><span class="o">-</span><span class="n">exists</span>
|
||
<span class="n">Config</span> <span class="n">provisioning_api</span> <span class="n">of</span> <span class="n">app</span> <span class="n">appname</span> <span class="n">could</span> <span class="ow">not</span> <span class="n">be</span> <span class="n">deleted</span> <span class="n">because</span> <span class="n">it</span> <span class="n">did</span> <span class="ow">not</span>
|
||
<span class="n">exist</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="dav-commands">
|
||
<span id="dav-label"></span><h2>Dav commands<a class="headerlink" href="#dav-commands" title="Link to this heading"></a></h2>
|
||
<p>Manage addressbooks and calendars:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dav</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">addressbook</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">dav</span> <span class="n">addressbook</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">calendar</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">dav</span> <span class="n">calendar</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">subscription</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">dav</span> <span class="n">subscription</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">delete</span><span class="o">-</span><span class="n">calendar</span> <span class="n">Delete</span> <span class="n">a</span> <span class="n">dav</span> <span class="n">calendar</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">delete</span><span class="o">-</span><span class="n">subscription</span> <span class="n">Delete</span> <span class="n">a</span> <span class="n">calendar</span> <span class="n">subscription</span> <span class="k">for</span> <span class="n">a</span> <span class="n">user</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">fix</span><span class="o">-</span><span class="n">missing</span><span class="o">-</span><span class="n">caldav</span><span class="o">-</span><span class="n">changes</span> <span class="n">Insert</span> <span class="n">missing</span> <span class="n">calendarchanges</span> <span class="n">rows</span> <span class="k">for</span> <span class="n">existing</span> <span class="n">events</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="nb">list</span><span class="o">-</span><span class="n">addressbooks</span> <span class="n">List</span> <span class="nb">all</span> <span class="n">addressbooks</span> <span class="n">of</span> <span class="n">a</span> <span class="n">user</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="nb">list</span><span class="o">-</span><span class="n">calendars</span> <span class="n">List</span> <span class="nb">all</span> <span class="n">calendars</span> <span class="n">of</span> <span class="n">a</span> <span class="n">user</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="nb">list</span><span class="o">-</span><span class="n">subscriptions</span> <span class="n">List</span> <span class="nb">all</span> <span class="n">calendar</span> <span class="n">subscriptions</span> <span class="k">for</span> <span class="n">a</span> <span class="n">user</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">move</span><span class="o">-</span><span class="n">calendar</span> <span class="n">Move</span> <span class="n">a</span> <span class="n">calendar</span> <span class="kn">from</span><span class="w"> </span><span class="nn">an</span> <span class="n">user</span> <span class="n">to</span> <span class="n">another</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">remove</span><span class="o">-</span><span class="n">invalid</span><span class="o">-</span><span class="n">shares</span> <span class="n">Remove</span> <span class="n">invalid</span> <span class="n">dav</span> <span class="n">shares</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">retention</span><span class="p">:</span><span class="n">clean</span><span class="o">-</span><span class="n">up</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">send</span><span class="o">-</span><span class="n">event</span><span class="o">-</span><span class="n">reminders</span> <span class="n">Sends</span> <span class="n">event</span> <span class="n">reminders</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">sync</span><span class="o">-</span><span class="n">birthday</span><span class="o">-</span><span class="n">calendar</span> <span class="n">Synchronizes</span> <span class="n">the</span> <span class="n">birthday</span> <span class="n">calendar</span>
|
||
<span class="n">dav</span><span class="p">:</span><span class="n">sync</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">addressbook</span> <span class="n">Synchronizes</span> <span class="n">users</span> <span class="n">to</span> <span class="n">the</span> <span class="n">system</span> <span class="n">addressbook</span>
|
||
<span class="n">calendar</span>
|
||
<span class="n">calendar</span><span class="p">:</span><span class="n">export</span> <span class="n">Export</span> <span class="n">a</span> <span class="n">calendar</span> <span class="n">of</span> <span class="n">a</span> <span class="n">user</span>
|
||
<span class="n">calendar</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="nn">Import</span> <span class="n">a</span> <span class="n">calendar</span> <span class="n">to</span> <span class="n">a</span> <span class="n">user</span>
|
||
</pre></div>
|
||
</div>
|
||
<section id="manage-addressbooks">
|
||
<h3>Manage addressbooks<a class="headerlink" href="#manage-addressbooks" title="Link to this heading"></a></h3>
|
||
<section id="list-all-addressbooks-of-a-user">
|
||
<h4>List all addressbooks of a user<a class="headerlink" href="#list-all-addressbooks-of-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:list-addressbooks</span> <span class="pre"><uid></span></code></p>
|
||
<p>This example will list all addressbooks for user annie:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="nb">list</span><span class="o">-</span><span class="n">addressbooks</span> <span class="n">annie</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="create-a-addressbook-for-a-user">
|
||
<h4>Create a addressbook for a user<a class="headerlink" href="#create-a-addressbook-for-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:create-addressbook</span> <span class="pre"><user></span> <span class="pre"><name></span></code></p>
|
||
<p>This example creates the addressbook <code class="docutils literal notranslate"><span class="pre">mollybook</span></code> for the user molly:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">addressbook</span> <span class="n">molly</span> <span class="n">mollybook</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="manage-calendars">
|
||
<h3>Manage calendars<a class="headerlink" href="#manage-calendars" title="Link to this heading"></a></h3>
|
||
<section id="list-all-calendars-of-a-user">
|
||
<h4>List all calendars of a user<a class="headerlink" href="#list-all-calendars-of-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:list-calendars</span> <span class="pre"><uid></span></code></p>
|
||
<p>This example will list all calendars for user annie:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="nb">list</span><span class="o">-</span><span class="n">calendars</span> <span class="n">annie</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="create-a-calendar-for-a-user">
|
||
<h4>Create a calendar for a user<a class="headerlink" href="#create-a-calendar-for-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:create-calendar</span> <span class="pre"><user></span> <span class="pre"><name></span></code></p>
|
||
<p>This example creates the calendar <code class="docutils literal notranslate"><span class="pre">mollycal</span></code> for the user molly:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">calendar</span> <span class="n">molly</span> <span class="n">mollycal</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="delete-a-calendar-for-a-user">
|
||
<h4>Delete a calendar for a user<a class="headerlink" href="#delete-a-calendar-for-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:delete-calendar</span> <span class="pre">[--birthday]</span> <span class="pre">[-f|--force]</span> <span class="pre">[--]</span> <span class="pre"><uid></span> <span class="pre">[<name>]</span></code> deletes the
|
||
calendar named <code class="docutils literal notranslate"><span class="pre">name</span></code> (or the birthday calendar if <code class="docutils literal notranslate"><span class="pre">--birthday</span></code> is
|
||
specified) of the user <code class="docutils literal notranslate"><span class="pre">uid</span></code>. You can use the force option <code class="docutils literal notranslate"><span class="pre">-f</span></code> or
|
||
<code class="docutils literal notranslate"><span class="pre">--force</span></code> to delete the calendar instead of moving it to the trashbin.</p>
|
||
<p>This example will delete the calendar mollycal of user molly:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">delete</span><span class="o">-</span><span class="n">calendar</span> <span class="n">molly</span> <span class="n">mollycal</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example will delete the birthday calendar of user molly:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">delete</span><span class="o">-</span><span class="n">calendar</span> <span class="o">--</span><span class="n">birthday</span> <span class="n">molly</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="move-a-calendar-of-a-user">
|
||
<h4>Move a calendar of a user<a class="headerlink" href="#move-a-calendar-of-a-user" title="Link to this heading"></a></h4>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>Note that this will change existing share URLs.</p>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:move-calendar</span> <span class="pre">[-f|--force]</span> <span class="pre">[--]</span> <span class="pre"><name></span> <span class="pre"><sourceuid></span> <span class="pre"><destinationuid></span></code> allows the admin to move a calendar named <code class="docutils literal notranslate"><span class="pre">name</span></code> from a user <code class="docutils literal notranslate"><span class="pre">sourceuid</span></code> to the user <code class="docutils literal notranslate"><span class="pre">destinationuid</span></code>. You can use the force option <cite>-f</cite> to enforce the move if there are conflicts with existing shares. The system will also generate a new unique calendar name in case there is a conflict over the destination user.</p>
|
||
<p>This example will move calendar named personal from user dennis to user sabine:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">move</span><span class="o">-</span><span class="n">calendar</span> <span class="n">personal</span> <span class="n">dennis</span> <span class="n">sabine</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="export-a-calendar-of-a-user">
|
||
<h4>Export a calendar of a user<a class="headerlink" href="#export-a-calendar-of-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">calendar:export</span> <span class="pre">[--format</span> <span class="pre">FORMAT]</span> <span class="pre">[--location</span> <span class="pre">LOCATION]</span> <span class="pre">[--]</span> <span class="pre"><uid></span> <span class="pre"><uri></span></code> exports the calendar entries from a calendar with the given <code class="docutils literal notranslate"><span class="pre">uri</span></code> of user <code class="docutils literal notranslate"><span class="pre">uid</span></code>.</p>
|
||
<p><strong>Arguments:</strong></p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">uid</span></code> (mandatory): User ID whose calendar will be exported.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">cid</span></code> (mandatory): Calendar URI to export.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--format</span> <span class="pre">FORMAT</span></code> (optional, defaults to <code class="docutils literal notranslate"><span class="pre">ical</span></code>): Output format. One of <code class="docutils literal notranslate"><span class="pre">ical</span></code>, <code class="docutils literal notranslate"><span class="pre">xcal</span></code>, or <code class="docutils literal notranslate"><span class="pre">jcal</span></code>.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--location</span> <span class="pre"><file</span> <span class="pre">path></span></code> (optional, defaults to stdout): Path to the file to export to. If omitted, output is written to standard output.</p></li>
|
||
</ul>
|
||
<p>The output format can be specified with the <code class="docutils literal notranslate"><span class="pre">--format</span></code> option. Valid formats are <code class="docutils literal notranslate"><span class="pre">ical</span></code> standard format (RFC 5545), <code class="docutils literal notranslate"><span class="pre">xcal</span></code> XML iCalendar (RFC 6321), and <code class="docutils literal notranslate"><span class="pre">jcal</span></code> JSON iCalendar (RFC 7265).</p>
|
||
<p>This example will export the calendar named personal of user dennis to a file named personal.ics in standard format:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">calendar</span><span class="p">:</span><span class="n">export</span> <span class="n">dennis</span> <span class="n">personal</span> <span class="o">--</span><span class="n">location</span> <span class="o">/</span><span class="n">tmp</span><span class="o">/</span><span class="n">personal</span><span class="o">.</span><span class="n">ics</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example will export the calendar in XML iCalendar format:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">calendar</span><span class="p">:</span><span class="n">export</span> <span class="n">dennis</span> <span class="n">personal</span> <span class="o">--</span><span class="nb">format</span> <span class="n">xcal</span> <span class="o">--</span><span class="n">location</span> <span class="o">/</span><span class="n">tmp</span><span class="o">/</span><span class="n">personal</span><span class="o">.</span><span class="n">xcal</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example will export the calendar in JSON iCalendar format to standard output:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">calendar</span><span class="p">:</span><span class="n">export</span> <span class="n">dennis</span> <span class="n">personal</span> <span class="o">--</span><span class="nb">format</span> <span class="n">jcal</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="import-a-calendar-to-a-user">
|
||
<h4>Import a calendar to a user<a class="headerlink" href="#import-a-calendar-to-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">calendar:import</span> <span class="pre">[--format</span> <span class="pre">FORMAT]</span> <span class="pre">[--errors</span> <span class="pre">ERRORS]</span> <span class="pre">[--validation</span> <span class="pre">VALIDATION]</span> <span class="pre">[--supersede]</span> <span class="pre">[--show-created]</span> <span class="pre">[--show-updated]</span> <span class="pre">[--show-skipped]</span> <span class="pre">[--show-errors]</span> <span class="pre">[--]</span> <span class="pre"><uid></span> <span class="pre"><uri></span> <span class="pre">[<location>]</span></code> imports a calendar entries to the calendar with the given <code class="docutils literal notranslate"><span class="pre">uri</span></code> of user <code class="docutils literal notranslate"><span class="pre">uid</span></code>.</p>
|
||
<p><strong>Arguments:</strong></p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">uid</span></code> (mandatory): User ID to import the calendar for.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">uri</span></code> (mandatory): Calendar URI to import into.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">location</span></code> (optional, defaults to stdin): Path to the file to import. If omitted, reads from standard input.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--format</span> <span class="pre">FORMAT</span></code> (optional, defaults to <code class="docutils literal notranslate"><span class="pre">ical</span></code>): Input format. One of <code class="docutils literal notranslate"><span class="pre">ical</span></code>, <code class="docutils literal notranslate"><span class="pre">xcal</span></code>, or <code class="docutils literal notranslate"><span class="pre">jcal</span></code>.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--supersede</span></code> (optional): Force override of existing objects with the same UID.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--show-created</span></code> (optional): Show UID of created objects after import.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--show-updated</span></code> (optional): Show UID of updated objects after import.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--show-skipped</span></code> (optional): Show UID of skipped objects (e.g., duplicates or invalid entries).</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--show-errors</span></code> (optional): Show UID of objects with errors during import.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--errors</span> <span class="pre">ERRORS</span></code> (optional): How to handle errors. <code class="docutils literal notranslate"><span class="pre">0</span></code> = continue on error, <code class="docutils literal notranslate"><span class="pre">1</span></code> = fail on error.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--validation</span> <span class="pre">VALIDATION</span></code> (optional): How to handle object validation. <code class="docutils literal notranslate"><span class="pre">0</span></code> = no validation, <code class="docutils literal notranslate"><span class="pre">1</span></code> = validate and skip on issue, <code class="docutils literal notranslate"><span class="pre">2</span></code> = validate and fail on issue.</p></li>
|
||
</ul>
|
||
<p>The input format can be specified with the <code class="docutils literal notranslate"><span class="pre">--format</span></code> option, valid formats are <code class="docutils literal notranslate"><span class="pre">ical</span></code> standard format (RFC 5545), <code class="docutils literal notranslate"><span class="pre">xcal</span></code> XML iCalendar (RFC 6321) and <code class="docutils literal notranslate"><span class="pre">jcal</span></code> JSON iCalendar (RFC 7265), the default is <code class="docutils literal notranslate"><span class="pre">ical</span></code>.</p>
|
||
<p>This example will import from a file named personal.ics in standard format to the calendar named personal of user dennis:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">calendar</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="nn">dennis</span> <span class="n">personal</span> <span class="o">/</span><span class="n">tmp</span><span class="o">/</span><span class="n">personal</span><span class="o">.</span><span class="n">ics</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example will import from a file named personal.xcal in XML iCalendar format to the calendar named personal of user dennis:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">calendar</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="o">--</span><span class="nb">format</span> <span class="n">xcal</span> <span class="n">dennis</span> <span class="n">personal</span> <span class="o">/</span><span class="n">tmp</span><span class="o">/</span><span class="n">personal</span><span class="o">.</span><span class="n">xcal</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example will import from a file named personal.jcal in JSON iCalendar format to the calendar named personal of user dennis:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">calendar</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="o">--</span><span class="nb">format</span> <span class="n">jcal</span> <span class="n">dennis</span> <span class="n">personal</span> <span class="o">/</span><span class="n">tmp</span><span class="o">/</span><span class="n">personal</span><span class="o">.</span><span class="n">jcal</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example will import from standard input to the calendar named personal of user dennis:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cat</span> <span class="o">/</span><span class="n">tmp</span><span class="o">/</span><span class="n">personal</span><span class="o">.</span><span class="n">ics</span> <span class="o">|</span> <span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">calendar</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="nn">dennis</span> <span class="n">personal</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="misc">
|
||
<h4>Misc<a class="headerlink" href="#misc" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:fix-missing-caldav-changes</span> <span class="pre">[<user>]</span></code> attempts to restore calendar sync changes when data in the calendarchanges table has been lost. If the user ID is omitted, the command runs for all users, which may take some time to complete.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:retention:clean-up</span></code> deletes elements from the CalDAV trash that are due for removal.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:remove-invalid-shares</span></code> removes invalid shares that were created due to a bug in the calendar app.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:send-event-reminders</span></code> is a command that should be called regularly through a dedicated
|
||
cron job to send event reminder notifications. See <a class="reference internal" href="groupware/calendar.html"><span class="doc">Calendar / CalDAV</span></a> for more information on how to use this command.</p>
|
||
</section>
|
||
</section>
|
||
<section id="manage-calendar-subscriptions">
|
||
<h3>Manage calendar subscriptions<a class="headerlink" href="#manage-calendar-subscriptions" title="Link to this heading"></a></h3>
|
||
<section id="list-all-calendar-subscriptions-of-a-user">
|
||
<h4>List all calendar subscriptions of a user<a class="headerlink" href="#list-all-calendar-subscriptions-of-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:list-subscriptions</span> <span class="pre"><uid></span></code></p>
|
||
<p>This example will list all calendar subscriptions for user annie:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="nb">list</span><span class="o">-</span><span class="n">subscriptions</span> <span class="n">annie</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="create-a-calendar-subscription-for-a-user">
|
||
<h4>Create a calendar subscription for a user<a class="headerlink" href="#create-a-calendar-subscription-for-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:create-subscription</span> <span class="pre"><user></span> <span class="pre"><name></span> <span class="pre"><url></span> <span class="pre">[<color>]</span></code></p>
|
||
<p>This example creates the subscription for the lunar calendar <code class="docutils literal notranslate"><span class="pre">Lunar</span> <span class="pre">Calendar</span></code> for the user molly:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">subscription</span> <span class="n">molly</span> <span class="s2">"Lunar Calendar"</span> <span class="n">webcal</span><span class="p">:</span><span class="o">//</span><span class="n">cantonbecker</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">astronomy</span><span class="o">-</span><span class="n">calendar</span><span class="o">/</span><span class="n">astrocal</span><span class="o">.</span><span class="n">ics</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Optionally, a color for the new subscription calendar can be passed as a HEX color code:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">subscription</span> <span class="n">molly</span> <span class="s2">"Lunar Calendar"</span> <span class="n">calendar</span> <span class="n">webcal</span><span class="p">:</span><span class="o">//</span><span class="n">cantonbecker</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">astronomy</span><span class="o">-</span><span class="n">calendar</span><span class="o">/</span><span class="n">astrocal</span><span class="o">.</span><span class="n">ics</span> <span class="s2">"#ff5733"</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If not set, the theming default color will be used.</p>
|
||
</section>
|
||
<section id="delete-a-calendar-subscription-for-a-user">
|
||
<h4>Delete a calendar subscription for a user<a class="headerlink" href="#delete-a-calendar-subscription-for-a-user" title="Link to this heading"></a></h4>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:delete-subscription</span> <span class="pre"><uid></span> <span class="pre"><uri></span></code></p>
|
||
<p>This example deletes the subscription for the lunar calendar <code class="docutils literal notranslate"><span class="pre">Lunar</span> <span class="pre">Calendar</span></code> for the user molly:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">delete</span><span class="o">-</span><span class="n">subscription</span> <span class="n">molly</span> <span class="s2">"Lunar Calendar"</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="sync-system-address-book">
|
||
<span id="dav-sync-system-address-book"></span><h3>Sync system address book<a class="headerlink" href="#sync-system-address-book" title="Link to this heading"></a></h3>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:sync-system-addressbook</span></code> synchronizes all users to the <a class="reference internal" href="groupware/contacts.html#system-address-book"><span class="std std-ref">system
|
||
address book</span></a>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">sync</span><span class="o">-</span><span class="n">system</span><span class="o">-</span><span class="n">addressbook</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="sync-birthday-calendar">
|
||
<h3>Sync birthday calendar<a class="headerlink" href="#sync-birthday-calendar" title="Link to this heading"></a></h3>
|
||
<p><code class="docutils literal notranslate"><span class="pre">dav:sync-birthday-calendar</span> <span class="pre">[<user>]</span></code> adds all birthdays to your calendar from
|
||
addressbooks shared with you. This example syncs to your calendar from user bernie:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">dav</span><span class="p">:</span><span class="n">sync</span><span class="o">-</span><span class="n">birthday</span><span class="o">-</span><span class="n">calendar</span> <span class="n">bernie</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="disable-creation-of-example-events">
|
||
<h3>Disable creation of example events<a class="headerlink" href="#disable-creation-of-example-events" title="Link to this heading"></a></h3>
|
||
<p>This will disable the automatic creation of example events in calendar:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">dav</span> <span class="n">create_example_event</span> <span class="o">--</span><span class="n">value</span><span class="o">=</span><span class="n">false</span> <span class="o">--</span><span class="nb">type</span><span class="o">=</span><span class="n">boolean</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="database-conversion">
|
||
<span id="database-conversion-label"></span><h2>Database conversion<a class="headerlink" href="#database-conversion" title="Link to this heading"></a></h2>
|
||
<p>The SQLite database is good for testing, and for F7cloud servers with small
|
||
single-user workloads that do not use sync clients, but production servers with
|
||
multiple users should use MariaDB, MySQL, or PostgreSQL. You can use <code class="docutils literal notranslate"><span class="pre">occ</span></code> to
|
||
convert from SQLite to one of these other databases.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">db</span>
|
||
<span class="n">db</span><span class="p">:</span><span class="n">convert</span><span class="o">-</span><span class="nb">type</span> <span class="n">Convert</span> <span class="n">the</span> <span class="n">F7cloud</span> <span class="n">database</span> <span class="n">to</span> <span class="n">the</span> <span class="n">newly</span>
|
||
<span class="n">configured</span> <span class="n">one</span>
|
||
<span class="n">db</span><span class="p">:</span><span class="n">generate</span><span class="o">-</span><span class="n">change</span><span class="o">-</span><span class="n">script</span> <span class="n">generates</span> <span class="n">the</span> <span class="n">change</span> <span class="n">script</span> <span class="kn">from</span><span class="w"> </span><span class="nn">the</span> <span class="n">current</span>
|
||
<span class="n">connected</span> <span class="n">db</span> <span class="n">to</span> <span class="n">db_structure</span><span class="o">.</span><span class="n">xml</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You need:</p>
|
||
<ul class="simple">
|
||
<li><p>Your desired database and its PHP connector installed.</p></li>
|
||
<li><p>The login and password of a database admin user.</p></li>
|
||
<li><p>The database port number, if it is a non-standard port.</p></li>
|
||
</ul>
|
||
<p>This is example converts SQLite to MySQL/MariaDB:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">db</span><span class="p">:</span><span class="n">convert</span><span class="o">-</span><span class="nb">type</span> <span class="n">mysql</span> <span class="n">oc_dbuser</span> <span class="mf">127.0.0.1</span>
|
||
<span class="n">oc_database</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>For a more detailed explanation see
|
||
<a class="reference internal" href="configuration_database/db_conversion.html"><span class="doc">Converting database type</span></a></p>
|
||
</section>
|
||
<section id="add-missing-indices">
|
||
<span id="database-add-indices-label"></span><h2>Add missing indices<a class="headerlink" href="#add-missing-indices" title="Link to this heading"></a></h2>
|
||
<p>It might happen that we add from time to time new indices to already existing database tables,
|
||
for example to improve performance. In order to check your database for missing indices run
|
||
following command:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">db</span><span class="p">:</span><span class="n">add</span><span class="o">-</span><span class="n">missing</span><span class="o">-</span><span class="n">indices</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Use option <code class="docutils literal notranslate"><span class="pre">--dry-run</span></code> to output the SQL queries without running them.</p>
|
||
</section>
|
||
<section id="encryption">
|
||
<span id="encryption-label"></span><h2>Encryption<a class="headerlink" href="#encryption" title="Link to this heading"></a></h2>
|
||
<p><code class="docutils literal notranslate"><span class="pre">occ</span></code> includes a complete set of commands for managing encryption:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>encryption
|
||
encryption:change-key-storage-root Change key storage root
|
||
encryption:decrypt-all Disable server-side encryption and
|
||
decrypt all files
|
||
encryption:disable Disable encryption
|
||
encryption:drop-legacy-filekey Drop legacy filekey for files still using it
|
||
encryption:enable Enable encryption
|
||
encryption:enable-master-key Enable the master key. Only available
|
||
for fresh installations with no existing
|
||
encrypted data! There is also no way to
|
||
disable it again.
|
||
encryption:encrypt-all Encrypt all files for all users
|
||
encryption:list-modules List all available encryption modules
|
||
encryption:set-default-module Set the encryption default module
|
||
encryption:show-key-storage-root Show current key storage root
|
||
encryption:status Lists the current status of encryption
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">encryption:status</span></code> shows whether you have active encryption, and your default
|
||
encryption module. To enable encryption you must first enable the Encryption
|
||
app, and then run <code class="docutils literal notranslate"><span class="pre">encryption:enable</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">app</span><span class="p">:</span><span class="n">enable</span> <span class="n">encryption</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">encryption</span><span class="p">:</span><span class="n">enable</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">encryption</span><span class="p">:</span><span class="n">status</span>
|
||
<span class="o">-</span> <span class="n">enabled</span><span class="p">:</span> <span class="n">true</span>
|
||
<span class="o">-</span> <span class="n">defaultModule</span><span class="p">:</span> <span class="n">OC_DEFAULT_MODULE</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">encryption:change-key-storage-root</span></code> is for moving your encryption keys to a
|
||
different folder. It takes one argument, <code class="docutils literal notranslate"><span class="pre">newRoot</span></code>, which defines your new
|
||
root folder:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">encryption</span><span class="p">:</span><span class="n">change</span><span class="o">-</span><span class="n">key</span><span class="o">-</span><span class="n">storage</span><span class="o">-</span><span class="n">root</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">oc</span><span class="o">-</span><span class="n">keys</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You can see the current location of your keys folder:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">encryption</span><span class="p">:</span><span class="n">show</span><span class="o">-</span><span class="n">key</span><span class="o">-</span><span class="n">storage</span><span class="o">-</span><span class="n">root</span>
|
||
<span class="n">Current</span> <span class="n">key</span> <span class="n">storage</span> <span class="n">root</span><span class="p">:</span> <span class="n">default</span> <span class="n">storage</span> <span class="n">location</span> <span class="p">(</span><span class="n">data</span><span class="o">/</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">encryption:list-modules</span></code> displays your available encryption modules. You will
|
||
see a list of modules only if you have enabled the Encryption app. Use
|
||
<code class="docutils literal notranslate"><span class="pre">encryption:set-default-module</span> <span class="pre">[module</span> <span class="pre">name]</span></code> to set your desired module.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">encryption:encrypt-all</span></code> encrypts all data files for all users. You must first
|
||
put your F7cloud server into <a class="reference internal" href="#maintenance-commands-label"><span class="std std-ref">maintenance
|
||
mode</span></a> to prevent any user activity until encryption
|
||
is completed.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">encryption:decrypt-all</span></code> decrypts all user data files, or optionally a single
|
||
user:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">encryption</span><span class="p">:</span><span class="n">decrypt</span> <span class="n">freda</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Users must have enabled recovery keys on their Personal pages.</p>
|
||
<p>Note that if you do not have master key/recovery key enabled, you can ONLY
|
||
decrypt files per user, one user at a time and NOT when in maintenance mode.
|
||
You will need the users’ password to decrypt the files.</p>
|
||
<p>Use <code class="docutils literal notranslate"><span class="pre">encryption:disable</span></code> to disable your encryption module. You must first put
|
||
your F7cloud server into <a class="reference internal" href="#maintenance-commands-label"><span class="std std-ref">maintenance mode</span></a>
|
||
to prevent any user activity.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">encryption:enable-master-key</span></code> creates a new master key, which is used for all
|
||
user data instead of individual user keys. This is especially useful to enable
|
||
single-sign on. Use this only on fresh installations with no existing data, or
|
||
on systems where encryption has not already been enabled. It is not possible to
|
||
disable it.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">encryption:drop-legacy-filekey</span></code> scans the files for the legacy filekey
|
||
format using RC4 and get rid of it (if master key is enabled). The operation can
|
||
be quite slow as it needs to rewrite each encrypted file. If you do not do it files
|
||
will be migrated to drop their legacy filekey on the first modification. If you have
|
||
old files from F7cloud<25 still using base64 encoding this will migrate them to the
|
||
binary format and save about 33% disk space.</p>
|
||
<p>See <a class="reference internal" href="configuration_files/encryption_configuration.html"><span class="doc">Server-side encryption configuration</span></a> to learn more.</p>
|
||
</section>
|
||
<section id="federation-sync">
|
||
<span id="federation-sync-label"></span><h2>Federation sync<a class="headerlink" href="#federation-sync" title="Link to this heading"></a></h2>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>This command is only available when the “Federation” app (<code class="docutils literal notranslate"><span class="pre">federation</span></code>) is
|
||
enabled.</p>
|
||
</div>
|
||
<p>Synchronize the addressbooks of all federated F7cloud servers:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">federation</span><span class="p">:</span><span class="n">sync</span><span class="o">-</span><span class="n">addressbooks</span> <span class="n">Synchronizes</span> <span class="n">addressbooks</span> <span class="n">of</span> <span class="nb">all</span>
|
||
<span class="n">federated</span> <span class="n">clouds</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>In F7cloud, servers connected with federation shares can share user
|
||
address books, and auto-complete usernames in share dialogs. Use this command
|
||
to synchronize federated servers:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">federation</span><span class="p">:</span><span class="n">sync</span><span class="o">-</span><span class="n">addressbooks</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="file-operations">
|
||
<span id="file-operations-label"></span><h2>File operations<a class="headerlink" href="#file-operations" title="Link to this heading"></a></h2>
|
||
<p>Available <code class="docutils literal notranslate"><span class="pre">occ</span></code> commands for the <code class="docutils literal notranslate"><span class="pre">files</span></code> namespace:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">files</span><span class="p">:</span><span class="n">cleanup</span> <span class="n">cleanup</span> <span class="n">filecache</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">copy</span> <span class="n">Copy</span> <span class="n">a</span> <span class="n">file</span> <span class="ow">or</span> <span class="n">folder</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">delete</span> <span class="n">Delete</span> <span class="n">a</span> <span class="n">file</span> <span class="ow">or</span> <span class="n">folder</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">get</span> <span class="n">Get</span> <span class="n">the</span> <span class="n">contents</span> <span class="n">of</span> <span class="n">a</span> <span class="n">file</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">move</span> <span class="n">Move</span> <span class="n">a</span> <span class="n">file</span> <span class="ow">or</span> <span class="n">folder</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="nb">object</span><span class="p">:</span><span class="n">delete</span> <span class="n">Delete</span> <span class="n">an</span> <span class="nb">object</span> <span class="kn">from</span><span class="w"> </span><span class="nn">the</span> <span class="nb">object</span> <span class="n">store</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="nb">object</span><span class="p">:</span><span class="n">get</span> <span class="n">Get</span> <span class="n">the</span> <span class="n">contents</span> <span class="n">of</span> <span class="n">an</span> <span class="nb">object</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="nb">object</span><span class="p">:</span><span class="n">put</span> <span class="n">Write</span> <span class="n">a</span> <span class="n">file</span> <span class="n">to</span> <span class="n">the</span> <span class="nb">object</span> <span class="n">store</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">put</span> <span class="n">Write</span> <span class="n">contents</span> <span class="n">of</span> <span class="n">a</span> <span class="n">file</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">recommendations</span><span class="p">:</span><span class="n">recommend</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">reminders</span> <span class="n">List</span> <span class="n">file</span> <span class="n">reminders</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">repair</span><span class="o">-</span><span class="n">tree</span> <span class="n">Try</span> <span class="ow">and</span> <span class="n">repair</span> <span class="n">malformed</span> <span class="n">filesystem</span> <span class="n">tree</span> <span class="n">structures</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">scan</span> <span class="n">rescan</span> <span class="n">filesystem</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">scan</span><span class="o">-</span><span class="n">app</span><span class="o">-</span><span class="n">data</span> <span class="n">rescan</span> <span class="n">the</span> <span class="n">AppData</span> <span class="n">folder</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">transfer</span><span class="o">-</span><span class="n">ownership</span> <span class="n">All</span> <span class="n">files</span> <span class="ow">and</span> <span class="n">folders</span> <span class="n">are</span> <span class="n">moved</span> <span class="n">to</span> <span class="n">another</span> <span class="n">user</span> <span class="o">-</span> <span class="n">outgoing</span> <span class="n">shares</span> <span class="ow">and</span> <span class="n">incoming</span> <span class="n">user</span> <span class="n">file</span> <span class="n">shares</span> <span class="p">(</span><span class="n">optionally</span><span class="p">)</span> <span class="n">are</span> <span class="n">moved</span> <span class="k">as</span> <span class="n">well</span><span class="o">.</span>
|
||
</pre></div>
|
||
</div>
|
||
<section id="scan">
|
||
<span id="occ-files-scan-label"></span><h3>Scan<a class="headerlink" href="#scan" title="Link to this heading"></a></h3>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">files:scan</span></code> command scans for new files and updates the file cache. You
|
||
may rescan all files, per-user, a space-delimited list of users, and limit the
|
||
search path. If not using <code class="docutils literal notranslate"><span class="pre">--quiet</span></code>, statistics will be shown at the end of
|
||
the scan:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files</span><span class="p">:</span><span class="n">scan</span> <span class="o">--</span><span class="n">help</span>
|
||
<span class="n">Description</span><span class="p">:</span>
|
||
<span class="n">rescan</span> <span class="n">filesystem</span>
|
||
|
||
<span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">scan</span> <span class="p">[</span><span class="n">options</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="p">]</span> <span class="p">[</span><span class="o"><</span><span class="n">user_id</span><span class="o">>...</span><span class="p">]</span>
|
||
|
||
<span class="n">Arguments</span><span class="p">:</span>
|
||
<span class="n">user_id</span> <span class="n">will</span> <span class="n">rescan</span> <span class="nb">all</span> <span class="n">files</span> <span class="n">of</span> <span class="n">the</span> <span class="n">given</span> <span class="n">user</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">--</span><span class="n">output</span><span class="p">[</span><span class="o">=</span><span class="n">OUTPUT</span><span class="p">]</span> <span class="n">Output</span> <span class="nb">format</span> <span class="p">(</span><span class="n">plain</span><span class="p">,</span> <span class="n">json</span> <span class="ow">or</span> <span class="n">json_pretty</span><span class="p">,</span> <span class="n">default</span> <span class="ow">is</span> <span class="n">plain</span><span class="p">)</span> <span class="p">[</span><span class="n">default</span><span class="p">:</span> <span class="s2">"plain"</span><span class="p">]</span>
|
||
<span class="o">-</span><span class="n">p</span><span class="p">,</span> <span class="o">--</span><span class="n">path</span><span class="o">=</span><span class="n">PATH</span> <span class="n">limit</span> <span class="n">rescan</span> <span class="n">to</span> <span class="n">this</span> <span class="n">path</span><span class="p">,</span> <span class="n">eg</span><span class="o">.</span> <span class="o">--</span><span class="n">path</span><span class="o">=</span><span class="s2">"/alice/files/Music"</span><span class="p">,</span> <span class="n">the</span> <span class="n">user_id</span> <span class="ow">is</span> <span class="n">determined</span> <span class="n">by</span> <span class="n">the</span> <span class="n">path</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">user_id</span> <span class="n">parameter</span> <span class="ow">and</span> <span class="o">--</span><span class="nb">all</span> <span class="n">are</span> <span class="n">ignored</span>
|
||
<span class="o">--</span><span class="n">generate</span><span class="o">-</span><span class="n">metadata</span> <span class="n">Generate</span> <span class="n">metadata</span> <span class="k">for</span> <span class="nb">all</span> <span class="n">scanned</span> <span class="n">files</span>
|
||
<span class="o">--</span><span class="nb">all</span> <span class="n">will</span> <span class="n">rescan</span> <span class="nb">all</span> <span class="n">files</span> <span class="n">of</span> <span class="nb">all</span> <span class="n">known</span> <span class="n">users</span>
|
||
<span class="o">--</span><span class="n">unscanned</span> <span class="n">only</span> <span class="n">scan</span> <span class="n">files</span> <span class="n">which</span> <span class="n">are</span> <span class="n">marked</span> <span class="k">as</span> <span class="ow">not</span> <span class="n">fully</span> <span class="n">scanned</span>
|
||
<span class="o">--</span><span class="n">shallow</span> <span class="n">do</span> <span class="ow">not</span> <span class="n">scan</span> <span class="n">folders</span> <span class="n">recursively</span>
|
||
<span class="o">--</span><span class="n">home</span><span class="o">-</span><span class="n">only</span> <span class="n">only</span> <span class="n">scan</span> <span class="n">the</span> <span class="n">home</span> <span class="n">storage</span><span class="p">,</span> <span class="n">ignoring</span> <span class="nb">any</span> <span class="n">mounted</span> <span class="n">external</span> <span class="n">storage</span> <span class="ow">or</span> <span class="n">share</span>
|
||
<span class="o">-</span><span class="n">h</span><span class="p">,</span> <span class="o">--</span><span class="n">help</span> <span class="n">Display</span> <span class="n">help</span> <span class="k">for</span> <span class="n">the</span> <span class="n">given</span> <span class="n">command</span><span class="o">.</span> <span class="n">When</span> <span class="n">no</span> <span class="n">command</span> <span class="ow">is</span> <span class="n">given</span> <span class="n">display</span> <span class="n">help</span> <span class="k">for</span> <span class="n">the</span> <span class="nb">list</span> <span class="n">command</span>
|
||
<span class="o">-</span><span class="n">q</span><span class="p">,</span> <span class="o">--</span><span class="n">quiet</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">output</span> <span class="nb">any</span> <span class="n">message</span>
|
||
<span class="o">-</span><span class="n">V</span><span class="p">,</span> <span class="o">--</span><span class="n">version</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">application</span> <span class="n">version</span>
|
||
<span class="o">--</span><span class="n">ansi</span><span class="o">|--</span><span class="n">no</span><span class="o">-</span><span class="n">ansi</span> <span class="n">Force</span> <span class="p">(</span><span class="ow">or</span> <span class="n">disable</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">ansi</span><span class="p">)</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">-</span><span class="n">n</span><span class="p">,</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">interaction</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">ask</span> <span class="nb">any</span> <span class="n">interactive</span> <span class="n">question</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">warnings</span> <span class="n">Skip</span> <span class="k">global</span> <span class="n">warnings</span><span class="p">,</span> <span class="n">show</span> <span class="n">command</span> <span class="n">output</span> <span class="n">only</span>
|
||
<span class="o">-</span><span class="n">v</span><span class="o">|</span><span class="n">vv</span><span class="o">|</span><span class="n">vvv</span><span class="p">,</span> <span class="o">--</span><span class="n">verbose</span> <span class="n">Increase</span> <span class="n">the</span> <span class="n">verbosity</span> <span class="n">of</span> <span class="n">messages</span><span class="p">:</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">normal</span> <span class="n">output</span><span class="p">,</span> <span class="mi">2</span> <span class="k">for</span> <span class="n">more</span> <span class="n">verbose</span> <span class="n">output</span> <span class="ow">and</span> <span class="mi">3</span> <span class="k">for</span> <span class="n">debug</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Verbosity levels of <code class="docutils literal notranslate"><span class="pre">-vv</span></code> or <code class="docutils literal notranslate"><span class="pre">-vvv</span></code> are automatically reset to <code class="docutils literal notranslate"><span class="pre">-v</span></code></p>
|
||
<p>Note for option <code class="docutils literal notranslate"><span class="pre">--unscanned</span></code>:
|
||
In general there is a background job (through cron) that will do that scan periodically.
|
||
The <code class="docutils literal notranslate"><span class="pre">--unscanned</span></code> option makes it possible to trigger this from the CLI.</p>
|
||
<p>When using the <code class="docutils literal notranslate"><span class="pre">--path</span></code> option, the path must consist of following
|
||
components:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="s2">"user_id/files/path"</span>
|
||
<span class="ow">or</span>
|
||
<span class="s2">"user_id/files/mount_name"</span>
|
||
<span class="ow">or</span>
|
||
<span class="s2">"user_id/files/mount_name/path"</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>where the term <code class="docutils literal notranslate"><span class="pre">files</span></code> is mandatory.</p>
|
||
<p>Example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">--</span><span class="n">path</span><span class="o">=</span><span class="s2">"/alice/files/Music"</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>In the example above, the user_id <code class="docutils literal notranslate"><span class="pre">alice</span></code> is determined implicitly from the
|
||
path component given.</p>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">--path</span></code>, <code class="docutils literal notranslate"><span class="pre">--all</span></code> and <code class="docutils literal notranslate"><span class="pre">[user_id]</span></code> parameters are exclusive - only
|
||
one must be specified.</p>
|
||
</section>
|
||
<section id="scan-appdata">
|
||
<h3>Scan appdata<a class="headerlink" href="#scan-appdata" title="Link to this heading"></a></h3>
|
||
<p>Appdata is a folder inside of the data directory which contains files that
|
||
are shared between users and can be put there by the server or apps like
|
||
avatar images, file previews and cached CSS files for example.</p>
|
||
<p>Since the regular files scan only operates on user files the <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">files:scan-app-data</span></code>
|
||
command will check the appdata directory and make sure that the filecache is consistent
|
||
with the files on the actual storage.:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">scan</span><span class="o">-</span><span class="n">app</span><span class="o">-</span><span class="n">data</span> <span class="p">[</span><span class="n">options</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="p">]</span> <span class="p">[</span><span class="o"><</span><span class="n">folder</span><span class="o">></span><span class="p">]</span>
|
||
|
||
<span class="n">Arguments</span><span class="p">:</span>
|
||
<span class="n">folder</span> <span class="n">The</span> <span class="n">appdata</span> <span class="n">subfolder</span> <span class="n">to</span> <span class="n">scan</span> <span class="p">[</span><span class="n">default</span><span class="p">:</span> <span class="s2">""</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="cleanup-previews">
|
||
<span id="occ-cleanup-previews"></span><h3>Cleanup previews<a class="headerlink" href="#cleanup-previews" title="Link to this heading"></a></h3>
|
||
<p><code class="docutils literal notranslate"><span class="pre">preview:cleanup</span></code> removes all of the server’s preview files. This is useful
|
||
when changing the previews configuration (sizes, quality or file), and especially
|
||
on systems using Object Storage as Primary Storage where the <code class="docutils literal notranslate"><span class="pre">appdata_xxx/preview</span></code>
|
||
folder can’t simply be deleted.</p>
|
||
<p>See <a class="reference internal" href="configuration_files/previews_configuration.html"><span class="doc">Previews configuration</span></a>.</p>
|
||
</section>
|
||
<section id="cleanup">
|
||
<h3>Cleanup<a class="headerlink" href="#cleanup" title="Link to this heading"></a></h3>
|
||
<p><code class="docutils literal notranslate"><span class="pre">files:cleanup</span></code> tidies up the server’s file cache by deleting all file
|
||
entries that have no matching entries in the storage table.</p>
|
||
</section>
|
||
<section id="repair-tree">
|
||
<h3>Repair-Tree<a class="headerlink" href="#repair-tree" title="Link to this heading"></a></h3>
|
||
<p><code class="docutils literal notranslate"><span class="pre">files:repair-tree</span></code> try and repair malformed filesystem tree structures.
|
||
If for any reason the path of an entry in the filecache doesn’t match with
|
||
it’s expected path, based on the path of it’s parent node, you end up with an
|
||
entry in the filecache that exists in different places based on how the entry
|
||
is generated. For example, if while listing folder <code class="docutils literal notranslate"><span class="pre">/foo</span></code> it contains a file
|
||
<code class="docutils literal notranslate"><span class="pre">bar.txt</span></code>, but when trying to do anything with <code class="docutils literal notranslate"><span class="pre">/foo/bar.txt</span></code> the file
|
||
doesn’t exists.</p>
|
||
<p>This command attempts to repair such entries by querying for entries where the path
|
||
doesn’t match the expected path based on it’s parent path and filename and resets it’s
|
||
path to the expected one.</p>
|
||
</section>
|
||
<section id="sanitize-filenames">
|
||
<span id="occ-files-sanitize-filenames"></span><h3>Sanitize filenames<a class="headerlink" href="#sanitize-filenames" title="Link to this heading"></a></h3>
|
||
<p>This command allows to automatically rename files not matching the current file naming constraints,
|
||
for example after enabling the <a class="reference internal" href="configuration_files/windows_compatible_filenames.html#windows-compatible-filenames"><span class="std std-ref">Windows compatible filenames</span></a>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">sanitize</span><span class="o">-</span><span class="n">filenames</span> <span class="p">[</span><span class="n">options</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="p">]</span> <span class="p">[</span><span class="o"><</span><span class="n">user_id</span><span class="o">>...</span><span class="p">]</span>
|
||
|
||
<span class="n">Arguments</span><span class="p">:</span>
|
||
<span class="n">user_id</span> <span class="n">Limit</span> <span class="n">filename</span> <span class="n">sanitizing</span> <span class="n">to</span> <span class="n">files</span> <span class="n">given</span> <span class="n">user</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="n">have</span> <span class="n">access</span> <span class="n">to</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">--</span><span class="n">dry</span><span class="o">-</span><span class="n">run</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">actually</span> <span class="n">rename</span> <span class="nb">any</span> <span class="n">files</span> <span class="n">but</span> <span class="n">just</span> <span class="n">check</span> <span class="n">filenames</span><span class="o">.</span>
|
||
<span class="o">-</span><span class="n">c</span><span class="p">,</span> <span class="o">--</span><span class="n">char</span><span class="o">-</span><span class="n">replacement</span><span class="o">=</span><span class="n">CHAR</span><span class="o">-</span><span class="n">REPLACEMENT</span> <span class="n">Replacement</span> <span class="k">for</span> <span class="n">invalid</span> <span class="n">character</span> <span class="p">(</span><span class="n">by</span> <span class="n">default</span> <span class="n">space</span><span class="p">,</span> <span class="n">underscore</span> <span class="ow">or</span> <span class="n">dash</span> <span class="ow">is</span> <span class="n">used</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>When running this command without parameters it will scan all files of all users
|
||
for filenames not comply with the current filename constraints and try to automatically
|
||
rename those files.
|
||
Invalid characters will be replaced by default with either a space, underscore, or dash
|
||
depending on which characters are allowed.
|
||
If your constraints forbid all of them, then you have to provide an character replacement
|
||
yourself by specifying the <code class="docutils literal notranslate"><span class="pre">--char-replacement</span></code> option.</p>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">--dry-run</span></code> option allows to perform the sanitizing without the actual renaming,
|
||
this is useful for estimating the execution time and to get an overview on what renaming
|
||
actions will be performed.</p>
|
||
</section>
|
||
<section id="transfer">
|
||
<h3>Transfer<a class="headerlink" href="#transfer" title="Link to this heading"></a></h3>
|
||
<p>The command <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">files:transfer-ownership</span></code> can be used to transfer files from one user to another:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">transfer</span><span class="o">-</span><span class="n">ownership</span> <span class="p">[</span><span class="n">options</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="p">]</span> <span class="o"><</span><span class="n">source</span><span class="o">-</span><span class="n">user</span><span class="o">></span> <span class="o"><</span><span class="n">destination</span><span class="o">-</span><span class="n">user</span><span class="o">></span>
|
||
|
||
<span class="n">Arguments</span><span class="p">:</span>
|
||
<span class="n">source</span><span class="o">-</span><span class="n">user</span> <span class="n">owner</span> <span class="n">of</span> <span class="n">files</span> <span class="n">which</span> <span class="n">shall</span> <span class="n">be</span> <span class="n">moved</span>
|
||
<span class="n">destination</span><span class="o">-</span><span class="n">user</span> <span class="n">user</span> <span class="n">who</span> <span class="n">will</span> <span class="n">be</span> <span class="n">the</span> <span class="n">new</span> <span class="n">owner</span> <span class="n">of</span> <span class="n">the</span> <span class="n">files</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">--</span><span class="n">path</span><span class="o">=</span><span class="n">PATH</span> <span class="n">selectively</span> <span class="n">provide</span> <span class="n">the</span> <span class="n">path</span> <span class="n">to</span> <span class="n">transfer</span><span class="o">.</span> <span class="n">For</span> <span class="n">example</span> <span class="o">--</span><span class="n">path</span><span class="o">=</span><span class="s2">"folder_name"</span> <span class="p">[</span><span class="n">default</span><span class="p">:</span> <span class="s2">""</span><span class="p">]</span>
|
||
<span class="o">--</span><span class="n">move</span> <span class="n">move</span> <span class="n">data</span> <span class="kn">from</span><span class="w"> </span><span class="nn">source</span> <span class="n">user</span> <span class="n">to</span> <span class="n">root</span> <span class="n">directory</span> <span class="n">of</span> <span class="n">destination</span> <span class="n">user</span><span class="p">,</span> <span class="n">which</span> <span class="n">must</span> <span class="n">be</span> <span class="n">empty</span>
|
||
<span class="o">--</span><span class="n">transfer</span><span class="o">-</span><span class="n">incoming</span><span class="o">-</span><span class="n">shares</span><span class="p">[</span><span class="o">=</span><span class="n">TRANSFER</span><span class="o">-</span><span class="n">INCOMING</span><span class="o">-</span><span class="n">SHARES</span><span class="p">]</span> <span class="n">transfer</span> <span class="n">incoming</span> <span class="n">user</span> <span class="n">file</span> <span class="n">shares</span> <span class="n">to</span> <span class="n">destination</span> <span class="n">user</span><span class="o">.</span> <span class="n">Usage</span><span class="p">:</span> <span class="o">--</span><span class="n">transfer</span><span class="o">-</span><span class="n">incoming</span><span class="o">-</span><span class="n">shares</span><span class="o">=</span><span class="mi">1</span> <span class="p">(</span><span class="n">value</span> <span class="n">required</span><span class="p">)</span> <span class="p">[</span><span class="n">default</span><span class="p">:</span> <span class="s2">"2"</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You may transfer all files and shares from one user to another. This is useful
|
||
before removing a user:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files</span><span class="p">:</span><span class="n">transfer</span><span class="o">-</span><span class="n">ownership</span> <span class="o"><</span><span class="n">source</span><span class="o">-</span><span class="n">user</span><span class="o">></span> <span class="o"><</span><span class="n">destination</span><span class="o">-</span><span class="n">user</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The transferred files will appear inside a new sub-directory in the destination user’s home.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>Unless server side encryption is enabled, <strong>the command will init the <destination-user> file system</strong> in F7cloud versions <strong>22.2.6, 23.0.3 and since 24</strong>. When it is unable to create the user’s folder in the data directory it will show the following error: <code class="docutils literal notranslate"><span class="pre">unable</span> <span class="pre">to</span> <span class="pre">rename,</span> <span class="pre">destination</span> <span class="pre">directory</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">writable</span></code>. Before 22.2.6 the command <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">files:transfer-ownership</span></code> would only work after the user has logged in for the first time.</p>
|
||
</div>
|
||
<p>If the destination user has no files at all (empty home), it is possible to also transfer all the source user’s files by passing <code class="docutils literal notranslate"><span class="pre">--move</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files</span><span class="p">:</span><span class="n">transfer</span><span class="o">-</span><span class="n">ownership</span> <span class="o">--</span><span class="n">move</span> <span class="o"><</span><span class="n">source</span><span class="o">-</span><span class="n">user</span><span class="o">></span> <span class="o"><</span><span class="n">destination</span><span class="o">-</span><span class="n">user</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>In this case no sub-directory is created and all files will appear directly in the root of the user’s home.</p>
|
||
<p>It is also possible to transfer only one directory along with its contents. This can be useful to restructure your organization or quotas. The <code class="docutils literal notranslate"><span class="pre">--path</span></code> argument is given as the path to the directory as seen from the source user:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files</span><span class="p">:</span><span class="n">transfer</span><span class="o">-</span><span class="n">ownership</span> <span class="o">--</span><span class="n">path</span><span class="o">=</span><span class="s2">"path_to_dir"</span> <span class="o"><</span><span class="n">source</span><span class="o">-</span><span class="n">user</span><span class="o">></span> <span class="o"><</span><span class="n">destination</span><span class="o">-</span><span class="n">user</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Incoming shares are not moved by default because the sharing user holds the ownership of the respective files. There is however an option to enable moving incoming shares.</p>
|
||
<p>In case the incoming shares must be transferred as well, use the argument <code class="docutils literal notranslate"><span class="pre">--transfer-incoming-shares</span></code> with <code class="docutils literal notranslate"><span class="pre">0</span></code> or <code class="docutils literal notranslate"><span class="pre">1</span></code> as parameters</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files</span><span class="p">:</span><span class="n">transfer</span><span class="o">-</span><span class="n">ownership</span> <span class="o">--</span><span class="n">transfer</span><span class="o">-</span><span class="n">incoming</span><span class="o">-</span><span class="n">shares</span><span class="o">=</span><span class="mi">1</span> <span class="o">--</span><span class="n">path</span><span class="o">=</span><span class="s2">"path_to_dir"</span> <span class="o"><</span><span class="n">source</span><span class="o">-</span><span class="n">user</span><span class="o">></span> <span class="o"><</span><span class="n">destination</span><span class="o">-</span><span class="n">user</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>As an alternative, the system configuration option <code class="docutils literal notranslate"><span class="pre">transferIncomingShares</span></code> in config.php can be set to <code class="docutils literal notranslate"><span class="pre">true</span></code> to always transfer incoming shares.</p>
|
||
<p>The command line option <code class="docutils literal notranslate"><span class="pre">--transfer-incoming-shares</span></code> overwrites the config.php option <code class="docutils literal notranslate"><span class="pre">transferIncomingShares</span></code>. For example, <code class="docutils literal notranslate"><span class="pre">'transferIncomingShares</span> <span class="pre">=></span> <span class="pre">true</span></code> can be overwritten by:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files</span><span class="p">:</span><span class="n">transfer</span><span class="o">-</span><span class="n">ownership</span> <span class="o">--</span><span class="n">transfer</span><span class="o">-</span><span class="n">incoming</span><span class="o">-</span><span class="n">shares</span><span class="o">=</span><span class="mi">0</span> <span class="o"><</span><span class="n">source</span><span class="o">-</span><span class="n">user</span><span class="o">></span> <span class="o"><</span><span class="n">destination</span><span class="o">-</span><span class="n">user</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Users may also transfer files or folders selectively by themselves.
|
||
See <a class="reference external" href="https://docs.f7cloud.com/server/latest/user_manual/en/files/transfer_ownership.html">user documentation</a> for details.</p>
|
||
</section>
|
||
<section id="toggle-windows-compatibility">
|
||
<span id="occ-files-windows-filenames"></span><h3>Toggle Windows compatibility<a class="headerlink" href="#toggle-windows-compatibility" title="Link to this heading"></a></h3>
|
||
<p>The command <code class="docutils literal notranslate"><span class="pre">occ</span> <span class="pre">files:windows-compatible-filenames</span></code> can be used to toggle
|
||
enforcing <a class="reference internal" href="configuration_files/windows_compatible_filenames.html#windows-compatible-filenames"><span class="std std-ref">Windows compatible filenames</span></a>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">files</span><span class="p">:</span><span class="n">windows</span><span class="o">-</span><span class="n">compatible</span><span class="o">-</span><span class="n">filenames</span> <span class="p">[</span><span class="n">options</span><span class="p">]</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">--</span><span class="n">enable</span> <span class="n">enable</span> <span class="n">enforcing</span> <span class="n">windows</span> <span class="n">compatible</span> <span class="n">filenames</span>
|
||
<span class="o">--</span><span class="n">disable</span> <span class="n">disable</span> <span class="n">enforcing</span> <span class="n">windows</span> <span class="n">compatible</span> <span class="n">filenames</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="files-sharing">
|
||
<span id="occ-sharing-label"></span><h2>Files Sharing<a class="headerlink" href="#files-sharing" title="Link to this heading"></a></h2>
|
||
<p>Commands for handling shares:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sharing</span>
|
||
<span class="n">sharing</span><span class="p">:</span><span class="n">cleanup</span><span class="o">-</span><span class="n">remote</span><span class="o">-</span><span class="n">storages</span> <span class="n">Cleanup</span> <span class="n">shared</span> <span class="n">storage</span> <span class="n">entries</span> <span class="n">that</span> <span class="n">have</span> <span class="n">no</span> <span class="n">matching</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">shares_external</span> <span class="n">table</span>
|
||
<span class="n">sharing</span><span class="p">:</span><span class="n">expiration</span><span class="o">-</span><span class="n">notification</span> <span class="n">Notify</span> <span class="n">share</span> <span class="n">initiators</span> <span class="n">when</span> <span class="n">a</span> <span class="n">share</span> <span class="n">will</span> <span class="n">expire</span> <span class="n">the</span> <span class="nb">next</span> <span class="n">day</span>
|
||
<span class="n">sharing</span><span class="p">:</span><span class="n">delete</span><span class="o">-</span><span class="n">orphan</span><span class="o">-</span><span class="n">shares</span> <span class="n">Delete</span> <span class="n">shares</span> <span class="n">where</span> <span class="n">the</span> <span class="n">owner</span> <span class="n">no</span> <span class="n">longer</span> <span class="n">has</span> <span class="n">access</span> <span class="n">to</span> <span class="n">the</span> <span class="n">file</span> <span class="ow">or</span> <span class="n">the</span> <span class="n">file</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">available</span> <span class="n">anymore</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="files-external">
|
||
<span id="files-external-label"></span><h2>Files external<a class="headerlink" href="#files-external" title="Link to this heading"></a></h2>
|
||
<p>These commands are used for managing F7cloud’s <em>External Storage</em> feature. In
|
||
addition to replicating the configuration capabilities in the Web UI, additional
|
||
capabilities include exporting / importing configurations, scanning <em>External
|
||
Storage</em> mounts that require login credentials, and configuring update notifications
|
||
(if supported by the storage type).</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>These commands are only available when the “External storage support” app
|
||
(<code class="docutils literal notranslate"><span class="pre">files_external</span></code>) is enabled.</p>
|
||
</div>
|
||
<p>Available commands for the “files_external” namespace:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">files_external</span><span class="p">:</span><span class="n">applicable</span> <span class="n">Manage</span> <span class="n">applicable</span> <span class="n">users</span> <span class="ow">and</span> <span class="n">groups</span> <span class="k">for</span> <span class="n">a</span> <span class="n">mount</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">backends</span> <span class="n">Show</span> <span class="n">available</span> <span class="n">authentication</span> <span class="ow">and</span> <span class="n">storage</span> <span class="n">backends</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">config</span> <span class="n">Manage</span> <span class="n">backend</span> <span class="n">configuration</span> <span class="k">for</span> <span class="n">a</span> <span class="n">mount</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">create</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">new</span> <span class="n">mount</span> <span class="n">configuration</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">delete</span> <span class="n">Delete</span> <span class="n">an</span> <span class="n">external</span> <span class="n">mount</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">export</span> <span class="n">Export</span> <span class="n">mount</span> <span class="n">configurations</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="nn">Import</span> <span class="n">mount</span> <span class="n">configurations</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="nb">list</span> <span class="n">List</span> <span class="n">configured</span> <span class="n">admin</span> <span class="ow">or</span> <span class="n">personal</span> <span class="n">mounts</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">notify</span> <span class="n">Listen</span> <span class="k">for</span> <span class="n">active</span> <span class="n">update</span> <span class="n">notifications</span> <span class="k">for</span> <span class="n">a</span> <span class="n">configured</span> <span class="n">external</span> <span class="n">mount</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">option</span> <span class="n">Manage</span> <span class="n">mount</span> <span class="n">options</span> <span class="k">for</span> <span class="n">a</span> <span class="n">mount</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">scan</span> <span class="n">Scan</span> <span class="n">an</span> <span class="n">external</span> <span class="n">storage</span> <span class="k">for</span> <span class="n">changed</span> <span class="n">files</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">verify</span> <span class="n">Verify</span> <span class="n">mount</span> <span class="n">configuration</span>
|
||
<span class="n">files_external</span><span class="p">:</span><span class="n">dependencies</span> <span class="n">Check</span> <span class="k">for</span> <span class="nb">any</span> <span class="n">missing</span> <span class="n">dependencies</span> <span class="n">needed</span> <span class="k">for</span> <span class="n">mounting</span> <span class="n">external</span> <span class="n">storages</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">files_external:scan</span></code> provides the ability to provide a username and/or password for cases where login credentials are used.</p>
|
||
<p>Use <code class="docutils literal notranslate"><span class="pre">files_external:export</span></code> to export all admin mounts to stdout, and
|
||
<code class="docutils literal notranslate"><span class="pre">files_external:export</span> <span class="pre">[user_id]</span></code> to export the mounts of the specified
|
||
F7cloud user.</p>
|
||
<p>Use <code class="docutils literal notranslate"><span class="pre">files_external:import</span> <span class="pre">[filename]</span></code> to import legacy JSON configurations,
|
||
and to copy external mount configurations to another F7cloud server.</p>
|
||
</section>
|
||
<section id="integrity-check">
|
||
<span id="integrity-check-label"></span><h2>Integrity check<a class="headerlink" href="#integrity-check" title="Link to this heading"></a></h2>
|
||
<p>Apps which have a <code class="docutils literal notranslate"><span class="pre">Featured</span></code> tag MUST be code signed with F7cloud. Unsigned featured apps won’t be installable anymore. Code signing is optional for all third-party applications:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">integrity</span>
|
||
<span class="n">integrity</span><span class="p">:</span><span class="n">check</span><span class="o">-</span><span class="n">app</span> <span class="n">Check</span> <span class="n">app</span> <span class="n">integrity</span> <span class="n">using</span> <span class="n">a</span> <span class="n">signature</span><span class="o">.</span>
|
||
<span class="n">integrity</span><span class="p">:</span><span class="n">check</span><span class="o">-</span><span class="n">core</span> <span class="n">Check</span> <span class="n">core</span> <span class="n">integrity</span> <span class="n">using</span> <span class="n">a</span> <span class="n">signature</span><span class="o">.</span>
|
||
<span class="n">integrity</span><span class="p">:</span><span class="n">sign</span><span class="o">-</span><span class="n">app</span> <span class="n">Signs</span> <span class="n">an</span> <span class="n">app</span> <span class="n">using</span> <span class="n">a</span> <span class="n">private</span> <span class="n">key</span><span class="o">.</span>
|
||
<span class="n">integrity</span><span class="p">:</span><span class="n">sign</span><span class="o">-</span><span class="n">core</span> <span class="n">Sign</span> <span class="n">core</span> <span class="n">using</span> <span class="n">a</span> <span class="n">private</span> <span class="n">key</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>After creating your signing key, sign your app like this example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">integrity</span><span class="p">:</span><span class="n">sign</span><span class="o">-</span><span class="n">app</span> <span class="o">--</span><span class="n">privateKey</span><span class="o">=/</span><span class="n">Users</span><span class="o">/</span><span class="n">lukasreschke</span><span class="o">/</span><span class="n">contacts</span><span class="o">.</span><span class="n">key</span> <span class="o">--</span><span class="n">certificate</span><span class="o">=/</span><span class="n">Users</span><span class="o">/</span><span class="n">lukasreschke</span><span class="o">/</span><span class="n">CA</span><span class="o">/</span><span class="n">contacts</span><span class="o">.</span><span class="n">crt</span> <span class="o">--</span><span class="n">path</span><span class="o">=/</span><span class="n">Users</span><span class="o">/</span><span class="n">lukasreschke</span><span class="o">/</span><span class="n">Programming</span><span class="o">/</span><span class="n">contacts</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Verify your app:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">integrity</span><span class="p">:</span><span class="n">check</span><span class="o">-</span><span class="n">app</span> <span class="o">--</span><span class="n">path</span><span class="o">=/</span><span class="n">pathto</span><span class="o">/</span><span class="n">app</span> <span class="n">appname</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>When it returns nothing, your app is signed correctly. When it returns a message then there is an error. See <a class="reference external" href="https://docs.f7cloud.com/server/latest/developer_manual/app_publishing_maintenance/code_signing.html#how-to-get-your-app-signed">Code Signing</a> in the Developer manual for more detailed information.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">integrity:sign-core</span></code> is for F7cloud core developers only.</p>
|
||
<p>See <a class="reference internal" href="issues/code_signing.html"><span class="doc">Code signing</span></a> to learn more.</p>
|
||
</section>
|
||
<section id="l10n-create-javascript-translation-files-for-apps">
|
||
<span id="create-javascript-translation-files-label"></span><h2>l10n, create JavaScript translation files for apps<a class="headerlink" href="#l10n-create-javascript-translation-files-for-apps" title="Link to this heading"></a></h2>
|
||
<p>This command is for app developers to update their translation mechanism from
|
||
ownCloud 7 to F7cloud.</p>
|
||
</section>
|
||
<section id="ldap-commands">
|
||
<span id="ldap-commands-label"></span><h2>LDAP commands<a class="headerlink" href="#ldap-commands" title="Link to this heading"></a></h2>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>These commands are only available when the “LDAP user and group backend” app
|
||
(<code class="docutils literal notranslate"><span class="pre">user_ldap</span></code>) is enabled.</p>
|
||
</div>
|
||
<p>These LDAP commands appear only when you have enabled the LDAP app. Then
|
||
you can run the following LDAP commands with <code class="docutils literal notranslate"><span class="pre">occ</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">ldap</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">check</span><span class="o">-</span><span class="n">user</span> <span class="n">checks</span> <span class="n">whether</span> <span class="n">a</span> <span class="n">user</span> <span class="n">exists</span> <span class="n">on</span> <span class="n">LDAP</span><span class="o">.</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">check</span><span class="o">-</span><span class="n">group</span> <span class="n">checks</span> <span class="n">whether</span> <span class="n">a</span> <span class="n">group</span> <span class="n">exists</span> <span class="n">on</span> <span class="n">LDAP</span><span class="o">.</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">empty</span><span class="o">-</span><span class="n">config</span> <span class="n">creates</span> <span class="n">an</span> <span class="n">empty</span> <span class="n">LDAP</span> <span class="n">configuration</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">delete</span><span class="o">-</span><span class="n">config</span> <span class="n">deletes</span> <span class="n">an</span> <span class="n">existing</span> <span class="n">LDAP</span> <span class="n">configuration</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">search</span> <span class="n">executes</span> <span class="n">a</span> <span class="n">user</span> <span class="ow">or</span> <span class="n">group</span> <span class="n">search</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="nb">set</span><span class="o">-</span><span class="n">config</span> <span class="n">modifies</span> <span class="n">an</span> <span class="n">LDAP</span> <span class="n">configuration</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">show</span><span class="o">-</span><span class="n">config</span> <span class="n">shows</span> <span class="n">the</span> <span class="n">LDAP</span> <span class="n">configuration</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">show</span><span class="o">-</span><span class="n">remnants</span> <span class="n">shows</span> <span class="n">which</span> <span class="n">users</span> <span class="n">are</span> <span class="ow">not</span> <span class="n">available</span> <span class="n">on</span>
|
||
<span class="n">LDAP</span> <span class="n">anymore</span><span class="p">,</span> <span class="n">but</span> <span class="n">have</span> <span class="n">remnants</span> <span class="ow">in</span>
|
||
<span class="n">F7cloud</span><span class="o">.</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">test</span><span class="o">-</span><span class="n">config</span> <span class="n">tests</span> <span class="n">an</span> <span class="n">LDAP</span> <span class="n">configuration</span>
|
||
<span class="n">ldap</span><span class="p">:</span><span class="n">test</span><span class="o">-</span><span class="n">user</span><span class="o">-</span><span class="n">settings</span> <span class="n">runs</span> <span class="n">tests</span> <span class="ow">and</span> <span class="n">show</span> <span class="n">information</span> <span class="n">about</span> <span class="n">user</span>
|
||
<span class="n">related</span> <span class="n">LDAP</span> <span class="n">settings</span>
|
||
</pre></div>
|
||
</div>
|
||
<section id="ldap-search">
|
||
<h3>ldap:search<a class="headerlink" href="#ldap-search" title="Link to this heading"></a></h3>
|
||
<p>Search for an LDAP user, using this syntax</p>
|
||
<blockquote>
|
||
<div><p>sudo -E -u www-data php occ <a class="reference external" href="ldap:search">ldap:search</a> [–group] [–offset=”…”]
|
||
[–limit=”…”] search</p>
|
||
</div></blockquote>
|
||
<p>Searches will match at the beginning of the attribute value only. This example
|
||
searches for givenNames that start with “rob”:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">search</span> <span class="s2">"rob"</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This will find robbie, roberta, and robin. Broaden the search to find, for
|
||
example, <code class="docutils literal notranslate"><span class="pre">jeroboam</span></code> with the asterisk wildcard:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">search</span> <span class="s2">"*rob"</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>User search attributes are set with <code class="docutils literal notranslate"><span class="pre">ldap:set-config</span></code>
|
||
(below). For example, if your search attributes are
|
||
<code class="docutils literal notranslate"><span class="pre">givenName</span></code> and <code class="docutils literal notranslate"><span class="pre">sn</span></code> you can find users by first name + last name very
|
||
quickly. For example, you’ll find Terri Hanson by searching for <code class="docutils literal notranslate"><span class="pre">te</span> <span class="pre">ha</span></code>.
|
||
Trailing whitespaces are ignored.</p>
|
||
<p>Check if an LDAP user exists. This works only if the F7cloud server is
|
||
connected to an LDAP server:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">check</span><span class="o">-</span><span class="n">user</span> <span class="n">robert</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="ldap-check-user">
|
||
<h3>ldap:check-user<a class="headerlink" href="#ldap-check-user" title="Link to this heading"></a></h3>
|
||
<p>Will not run a check when it finds a disabled LDAP
|
||
connection. This prevents users that exist on disabled LDAP connections from
|
||
being marked as deleted. If you know for certain that the user you are searching for
|
||
is not in one of the disabled connections, and exists on an active connection,
|
||
use the <code class="docutils literal notranslate"><span class="pre">--force</span></code> option to force it to check all active LDAP connections:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">check</span><span class="o">-</span><span class="n">user</span> <span class="o">--</span><span class="n">force</span> <span class="n">robert</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="ldap-check-group">
|
||
<h3>ldap:check-group<a class="headerlink" href="#ldap-check-group" title="Link to this heading"></a></h3>
|
||
<p>Checks whether a group still exists in the LDAP directory.
|
||
Use with <code class="docutils literal notranslate"><span class="pre">--update</span></code> to update the group membership cache on the F7cloud side:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">check</span><span class="o">-</span><span class="n">group</span> <span class="o">--</span><span class="n">update</span> <span class="n">mygroup</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="ldap-create-empty-config">
|
||
<h3>ldap:create-empty-config<a class="headerlink" href="#ldap-create-empty-config" title="Link to this heading"></a></h3>
|
||
<p>Creates an empty LDAP configuration. The first one you create
|
||
has <code class="docutils literal notranslate"><span class="pre">configID</span></code> <code class="docutils literal notranslate"><span class="pre">s01</span></code>, and all subsequent configurations
|
||
that you create are automatically assigned IDs:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">create</span><span class="o">-</span><span class="n">empty</span><span class="o">-</span><span class="n">config</span>
|
||
<span class="n">Created</span> <span class="n">new</span> <span class="n">configuration</span> <span class="k">with</span> <span class="n">configID</span> <span class="s1">'s01'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Then you can list and view your configurations:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">show</span><span class="o">-</span><span class="n">config</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>And view the configuration for a single configID:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">show</span><span class="o">-</span><span class="n">config</span> <span class="n">s01</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="ldap-delete-config">
|
||
<h3>ldap:delete-config<a class="headerlink" href="#ldap-delete-config" title="Link to this heading"></a></h3>
|
||
<p>Deletes an existing LDAP configuration:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">delete</span> <span class="n">s01</span>
|
||
<span class="n">Deleted</span> <span class="n">configuration</span> <span class="k">with</span> <span class="n">configID</span> <span class="s1">'s01'</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="ldap-set-config">
|
||
<h3>ldap:set-config<a class="headerlink" href="#ldap-set-config" title="Link to this heading"></a></h3>
|
||
<p>This command is for manipulating configurations, like this
|
||
example that sets search attributes:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="nb">set</span><span class="o">-</span><span class="n">config</span> <span class="n">s01</span> <span class="n">ldapAttributesForUserSearch</span>
|
||
<span class="s2">"cn;givenname;sn;displayname;mail"</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="ldap-test-config">
|
||
<h3>ldap:test-config<a class="headerlink" href="#ldap-test-config" title="Link to this heading"></a></h3>
|
||
<p>Tests whether your configuration is correct and can bind to
|
||
the server:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>sudo -E -u www-data php occ ldap:test-config s01
|
||
The configuration is valid and the connection could be established!
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="ldap-test-user-settings">
|
||
<h3>ldap:test-user-settings<a class="headerlink" href="#ldap-test-user-settings" title="Link to this heading"></a></h3>
|
||
<p>Tests user-related LDAP settings:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">ldap</span><span class="p">:</span><span class="n">test</span><span class="o">-</span><span class="n">user</span><span class="o">-</span><span class="n">settings</span> <span class="s2">"cn=philip j. fry,ou=people,dc=planetexpress,dc=com"</span> <span class="o">--</span><span class="n">group</span> <span class="s2">"Everyone"</span>
|
||
|
||
<span class="n">User</span> <span class="n">cn</span><span class="o">=</span><span class="n">philip</span> <span class="n">j</span><span class="o">.</span> <span class="n">fry</span><span class="p">,</span><span class="n">ou</span><span class="o">=</span><span class="n">people</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">planetexpress</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">com</span> <span class="ow">is</span> <span class="n">mapped</span> <span class="k">with</span> <span class="n">account</span> <span class="n">name</span> <span class="n">fry</span><span class="o">.</span>
|
||
<span class="n">Known</span> <span class="n">UUID</span> <span class="ow">is</span> <span class="n">ce6cd914</span><span class="o">-</span><span class="mi">71</span><span class="n">d5</span><span class="o">-</span><span class="mi">103</span><span class="n">f</span><span class="o">-</span><span class="mi">95</span><span class="n">a8</span><span class="o">-</span><span class="n">ad2dab17b2f9</span><span class="o">.</span>
|
||
<span class="n">Configuration</span> <span class="n">prefix</span> <span class="ow">is</span> <span class="n">s01</span>
|
||
|
||
<span class="n">Attributes</span> <span class="nb">set</span> <span class="ow">in</span> <span class="n">configuration</span><span class="p">:</span>
|
||
<span class="o">-</span> <span class="n">ldapExpertUsernameAttr</span><span class="p">:</span> <span class="n">uid</span>
|
||
<span class="o">-</span> <span class="n">ldapUuidUserAttribute</span><span class="p">:</span> <span class="n">auto</span>
|
||
<span class="o">-</span> <span class="n">ldapEmailAttribute</span><span class="p">:</span> <span class="n">mail</span>
|
||
<span class="o">-</span> <span class="n">ldapUserDisplayName</span><span class="p">:</span> <span class="n">cn</span>
|
||
|
||
<span class="n">Attributes</span> <span class="n">fetched</span> <span class="kn">from</span><span class="w"> </span><span class="nn">LDAP</span> <span class="n">using</span> <span class="nb">filter</span> <span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">objectclass</span><span class="o">=</span><span class="n">inetOrgPerson</span><span class="p">)):</span>
|
||
<span class="o">-</span> <span class="n">entryuuid</span><span class="p">:</span> <span class="p">[</span><span class="s2">"ce6cd914-71d5-103f-95a8-ad2dab17b2f9"</span><span class="p">]</span>
|
||
<span class="o">-</span> <span class="n">uid</span><span class="p">:</span> <span class="p">[</span><span class="s2">"fry"</span><span class="p">]</span>
|
||
<span class="o">-</span> <span class="n">mail</span><span class="p">:</span> <span class="p">[</span><span class="s2">"fry@planetexpress.com"</span><span class="p">]</span>
|
||
<span class="o">-</span> <span class="n">cn</span><span class="p">:</span> <span class="p">[</span><span class="s2">"Philip J. Fry"</span><span class="p">]</span>
|
||
|
||
<span class="n">Detected</span> <span class="n">UUID</span> <span class="n">attribute</span><span class="p">:</span> <span class="n">entryuuid</span>
|
||
|
||
<span class="n">UUID</span> <span class="k">for</span> <span class="n">cn</span><span class="o">=</span><span class="n">philip</span> <span class="n">j</span><span class="o">.</span> <span class="n">fry</span><span class="p">,</span><span class="n">ou</span><span class="o">=</span><span class="n">people</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">planetexpress</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">com</span><span class="p">:</span> <span class="n">ce6cd914</span><span class="o">-</span><span class="mi">71</span><span class="n">d5</span><span class="o">-</span><span class="mi">103</span><span class="n">f</span><span class="o">-</span><span class="mi">95</span><span class="n">a8</span><span class="o">-</span><span class="n">ad2dab17b2f9</span>
|
||
|
||
<span class="n">Group</span> <span class="n">information</span><span class="p">:</span>
|
||
<span class="n">Configuration</span><span class="p">:</span>
|
||
<span class="o">-</span> <span class="n">ldapGroupFilter</span><span class="p">:</span> <span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">objectclass</span><span class="o">=</span><span class="n">groupOfNames</span><span class="p">))</span>
|
||
<span class="o">-</span> <span class="n">ldapGroupMemberAssocAttr</span><span class="p">:</span> <span class="n">member</span>
|
||
|
||
<span class="n">Primary</span> <span class="n">group</span><span class="p">:</span>
|
||
<span class="n">Group</span> <span class="kn">from</span><span class="w"> </span><span class="nn">gidNumber</span><span class="p">:</span>
|
||
<span class="n">All</span> <span class="n">known</span> <span class="n">groups</span><span class="p">:</span> <span class="p">[</span><span class="s2">"Ship crew"</span><span class="p">,</span> <span class="s2">"Everyone"</span><span class="p">]</span>
|
||
<span class="n">MemberOf</span> <span class="n">usage</span><span class="p">:</span> <span class="n">off</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
|
||
|
||
<span class="n">Group</span> <span class="n">Everyone</span><span class="p">:</span>
|
||
<span class="n">Group</span> <span class="n">cn</span><span class="o">=</span><span class="n">everyone</span><span class="p">,</span><span class="n">ou</span><span class="o">=</span><span class="n">groups</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">planetexpress</span><span class="p">,</span><span class="n">dc</span><span class="o">=</span><span class="n">com</span> <span class="ow">is</span> <span class="n">mapped</span> <span class="k">with</span> <span class="n">name</span> <span class="n">Everyone</span><span class="o">.</span>
|
||
<span class="n">Known</span> <span class="n">UUID</span> <span class="ow">is</span> <span class="n">ce8b61c2</span><span class="o">-</span><span class="mi">71</span><span class="n">d5</span><span class="o">-</span><span class="mi">103</span><span class="n">f</span><span class="o">-</span><span class="mi">95</span><span class="n">af</span><span class="o">-</span><span class="n">ad2dab17b2f9</span><span class="o">.</span>
|
||
<span class="n">Members</span><span class="p">:</span> <span class="p">[</span><span class="s2">"bender"</span><span class="p">,</span> <span class="s2">"fry"</span><span class="p">,</span> <span class="s2">"leela"</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="ldap-show-remnants">
|
||
<h3>ldap:show-remnants<a class="headerlink" href="#ldap-show-remnants" title="Link to this heading"></a></h3>
|
||
<p>Used to cleaning up the LDAP mappings table, and is
|
||
documented in <a class="reference internal" href="configuration_user/user_auth_ldap_cleanup.html"><span class="doc">LDAP user cleanup</span></a>.</p>
|
||
</section>
|
||
</section>
|
||
<section id="logging-commands">
|
||
<span id="logging-commands-label"></span><h2>Logging commands<a class="headerlink" href="#logging-commands" title="Link to this heading"></a></h2>
|
||
<p>These commands view and configure your F7cloud logging preferences:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">log</span>
|
||
<span class="n">log</span><span class="p">:</span><span class="n">file</span> <span class="n">manipulate</span> <span class="n">F7cloud</span> <span class="n">logging</span> <span class="n">backend</span>
|
||
<span class="n">log</span><span class="p">:</span><span class="n">manage</span> <span class="n">manage</span> <span class="n">logging</span> <span class="n">configuration</span>
|
||
<span class="n">log</span><span class="p">:</span><span class="n">tail</span> <span class="n">tail</span> <span class="n">the</span> <span class="n">f7cloud</span> <span class="n">logfile</span> <span class="p">[</span><span class="n">requires</span> <span class="n">app</span> <span class="s2">"Log Reader"</span> <span class="n">to</span> <span class="n">be</span> <span class="n">enabled</span><span class="p">]</span>
|
||
<span class="n">log</span><span class="p">:</span><span class="n">watch</span> <span class="n">watch</span> <span class="n">the</span> <span class="n">f7cloud</span> <span class="n">logfile</span> <span class="n">live</span> <span class="p">[</span><span class="n">requires</span> <span class="n">app</span> <span class="s2">"Log Reader"</span> <span class="n">to</span> <span class="n">be</span> <span class="n">enabled</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Run <code class="docutils literal notranslate"><span class="pre">log:file</span> <span class="pre">[--]</span> <span class="pre">[--enable]</span> <span class="pre">[--file]</span> <span class="pre">[--rotate-size]</span></code> to see your current logging status:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">log</span><span class="p">:</span><span class="n">file</span>
|
||
<span class="n">Log</span> <span class="n">backend</span> <span class="n">F7cloud</span><span class="p">:</span> <span class="n">enabled</span>
|
||
<span class="n">Log</span> <span class="n">file</span><span class="p">:</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">f7cloud</span><span class="o">/</span><span class="n">data</span><span class="o">/</span><span class="n">f7cloud</span><span class="o">.</span><span class="n">log</span>
|
||
<span class="n">Rotate</span> <span class="n">at</span><span class="p">:</span> <span class="n">disabled</span>
|
||
</pre></div>
|
||
</div>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--enable</span></code> turns on logging.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--file</span></code> sets a different log file path.</p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--rotate-size</span></code> sets your rotation by log file size in bytes with; 0 disables rotation.</p></li>
|
||
</ul>
|
||
<p><code class="docutils literal notranslate"><span class="pre">log:manage</span> <span class="pre">[--backend]</span> <span class="pre">[--level]</span> <span class="pre">[--timezone]</span></code> sets your logging backend, log level, and timezone. The defaults
|
||
are <code class="docutils literal notranslate"><span class="pre">file</span></code>, <code class="docutils literal notranslate"><span class="pre">warning</span></code>, and <code class="docutils literal notranslate"><span class="pre">UTC</span></code>. Available options are:</p>
|
||
<ul class="simple">
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--backend</span> <span class="pre">[file,</span> <span class="pre">syslog,</span> <span class="pre">errorlog,</span> <span class="pre">systemd]</span></code></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--level</span> <span class="pre">[debug|info|warning|error|fatal]</span></code></p></li>
|
||
<li><p><code class="docutils literal notranslate"><span class="pre">--timezone</span></code> according to <a class="reference external" href="https://www.php.net/manual/en/timezones.php">https://www.php.net/manual/en/timezones.php</a></p></li>
|
||
</ul>
|
||
</section>
|
||
<section id="maintenance-commands">
|
||
<span id="maintenance-commands-label"></span><h2>Maintenance commands<a class="headerlink" href="#maintenance-commands" title="Link to this heading"></a></h2>
|
||
<p>Use these commands when you upgrade F7cloud, manage encryption, perform
|
||
backups and other tasks that require locking users out until you are finished:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">maintenance</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">data</span><span class="o">-</span><span class="n">fingerprint</span> <span class="n">update</span> <span class="n">the</span> <span class="n">systems</span> <span class="n">data</span><span class="o">-</span><span class="n">fingerprint</span> <span class="n">after</span> <span class="n">a</span> <span class="n">backup</span> <span class="ow">is</span> <span class="n">restored</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">mimetype</span><span class="p">:</span><span class="n">update</span><span class="o">-</span><span class="n">db</span> <span class="n">Update</span> <span class="n">database</span> <span class="n">mimetypes</span> <span class="ow">and</span> <span class="n">update</span> <span class="n">filecache</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">mimetype</span><span class="p">:</span><span class="n">update</span><span class="o">-</span><span class="n">js</span> <span class="n">Update</span> <span class="n">mimetypelist</span><span class="o">.</span><span class="n">js</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">mode</span> <span class="nb">set</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">repair</span> <span class="n">repair</span> <span class="n">this</span> <span class="n">installation</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">theme</span><span class="p">:</span><span class="n">update</span> <span class="n">Apply</span> <span class="n">custom</span> <span class="n">theme</span> <span class="n">changes</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">update</span><span class="p">:</span><span class="n">htaccess</span> <span class="n">Updates</span> <span class="n">the</span> <span class="o">.</span><span class="n">htaccess</span> <span class="n">file</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">repair</span><span class="o">-</span><span class="n">share</span><span class="o">-</span><span class="n">owner</span> <span class="n">Fix</span> <span class="n">some</span> <span class="n">shares</span> <span class="n">owner</span> <span class="k">if</span> <span class="n">it</span> <span class="n">felt</span> <span class="n">out</span> <span class="n">of</span> <span class="n">sync</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">maintenance:mode</span></code> locks the sessions of all logged-in users, including
|
||
administrators, and displays a status screen warning that the server is in
|
||
maintenance mode. Users who are not already logged in cannot log in until
|
||
maintenance mode is turned off. When you take the server out of maintenance mode
|
||
logged-in users must refresh their Web browsers to continue working:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">maintenance</span><span class="p">:</span><span class="n">mode</span> <span class="o">--</span><span class="n">on</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">maintenance</span><span class="p">:</span><span class="n">mode</span> <span class="o">--</span><span class="n">off</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>After restoring a backup of your data directory or the database, you should always
|
||
call <code class="docutils literal notranslate"><span class="pre">maintenance:data-fingerprint</span></code> once. This changes the ETag for all files
|
||
in the communication with sync clients, allowing them to realize a file was modified.</p>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">maintenance:repair</span></code> command runs automatically during upgrades to clean
|
||
up the database, so while you can run it manually there usually isn’t a need
|
||
to:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">maintenance</span><span class="p">:</span><span class="n">repair</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">maintenance:mimetype:update-db</span></code> updates the F7cloud database and file cache
|
||
with changed mimetypes found in <code class="docutils literal notranslate"><span class="pre">config/mimetypemapping.json</span></code>. Run this
|
||
command after modifying <code class="docutils literal notranslate"><span class="pre">config/mimetypemapping.json</span></code>. If you change a
|
||
mimetype, run <code class="docutils literal notranslate"><span class="pre">maintenance:mimetype:update-db</span> <span class="pre">--repair-filecache</span></code> to apply the
|
||
change to existing files.</p>
|
||
<p>Run the <code class="docutils literal notranslate"><span class="pre">maintenance:theme:update</span></code> command if the icons of your custom theme are not
|
||
updated correctly. This updates the mimetypelist.js and clears the image cache.</p>
|
||
</section>
|
||
<section id="security">
|
||
<span id="security-commands-label"></span><h2>Security<a class="headerlink" href="#security" title="Link to this heading"></a></h2>
|
||
<p>Use these commands to manage server-wide security related parameters. Currently this
|
||
includes <a class="reference internal" href="configuration_server/bruteforce_configuration.html"><span class="doc">Brute force protection</span></a> and SSL certificates (the latter are useful when
|
||
creating federation connections with other F7cloud servers that use self-signed certificates:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">security</span>
|
||
<span class="n">security</span><span class="p">:</span><span class="n">bruteforce</span><span class="p">:</span><span class="n">attempts</span> <span class="n">show</span> <span class="n">bruteforce</span> <span class="n">attempts</span> <span class="n">status</span> <span class="k">for</span> <span class="n">a</span> <span class="n">given</span> <span class="n">IP</span> <span class="n">address</span>
|
||
<span class="n">security</span><span class="p">:</span><span class="n">bruteforce</span><span class="p">:</span><span class="n">reset</span> <span class="n">resets</span> <span class="n">bruteforce</span> <span class="n">attempts</span> <span class="k">for</span> <span class="n">a</span> <span class="n">given</span> <span class="n">IP</span> <span class="n">address</span>
|
||
<span class="n">security</span><span class="p">:</span><span class="n">certificates</span> <span class="nb">list</span> <span class="n">trusted</span> <span class="n">certificates</span>
|
||
<span class="n">security</span><span class="p">:</span><span class="n">certificates</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="nn">import</span> <span class="n">trusted</span> <span class="n">certificate</span>
|
||
<span class="n">security</span><span class="p">:</span><span class="n">certificates</span><span class="p">:</span><span class="n">remove</span> <span class="n">remove</span> <span class="n">trusted</span> <span class="n">certificate</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Reset an IP:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">security</span><span class="p">:</span><span class="n">bruteforce</span><span class="p">:</span><span class="n">reset</span> <span class="p">[</span><span class="n">IP</span> <span class="n">address</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example lists your installed certificates:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">security</span><span class="p">:</span><span class="n">certificates</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Import a new certificate:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">security</span><span class="p">:</span><span class="n">certificates</span><span class="p">:</span><span class="kn">import</span><span class="w"> </span><span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">certificate</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Remove a certificate:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">security</span><span class="p">:</span><span class="n">certificates</span><span class="p">:</span><span class="n">remove</span> <span class="p">[</span><span class="n">certificate</span> <span class="n">name</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="status">
|
||
<h2>Status<a class="headerlink" href="#status" title="Link to this heading"></a></h2>
|
||
<p>Use the status command to retrieve information about the current installation:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ sudo -E -u www-data php occ status
|
||
- installed: true
|
||
- version: 25.0.2.3
|
||
- versionstring: 25.0.2
|
||
- edition:
|
||
- maintenance: false
|
||
- needsDbUpgrade: false
|
||
- productname: F7cloud
|
||
- extendedSupport: false
|
||
</pre></div>
|
||
</div>
|
||
<p>This information can also be formatted via JSON instead of plain text:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ sudo -E -u www-data php occ status --output=json_pretty
|
||
{
|
||
"installed": true,
|
||
"version": "25.0.2.3",
|
||
"versionstring": "25.0.2",
|
||
"edition": "",
|
||
"maintenance": false,
|
||
"needsDbUpgrade": false,
|
||
"productname": "F7cloud",
|
||
"extendedSupport": false
|
||
}
|
||
</pre></div>
|
||
</div>
|
||
<section id="status-return-code">
|
||
<h3>Status return code<a class="headerlink" href="#status-return-code" title="Link to this heading"></a></h3>
|
||
<p>And finally, the <code class="docutils literal notranslate"><span class="pre">-e</span></code> (for exit code) parameter can be used to check
|
||
the state of the f7cloud installation via return code:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ sudo -E -u www-data php occ status -e
|
||
$ echo $?
|
||
0
|
||
$ sudo -E -u www-data php occ maintenance:mode --on
|
||
Maintenance mode enabled
|
||
$ sudo -E -u www-data php occ status -e
|
||
$ echo $?
|
||
1
|
||
$ sudo -E -u www-data php occ maintenance:mode --off
|
||
Maintenance mode disabled
|
||
$ sudo -E -u www-data php occ status -e
|
||
$ echo $?
|
||
0
|
||
</pre></div>
|
||
</div>
|
||
<p>Note that by default there is no output when run with <code class="docutils literal notranslate"><span class="pre">-e</span></code>. This is
|
||
intentional, so it can be used in scripts, monitoring checks, and systemd
|
||
units.</p>
|
||
<table class="docutils align-default">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Return code</p></th>
|
||
<th class="head"><p>Description</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p>0</p></td>
|
||
<td><p>normal operation</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p>1</p></td>
|
||
<td><p>maintenance mode is enabled; the instance is currently
|
||
unavailable to users.</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p>2</p></td>
|
||
<td><p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">-E</span> <span class="pre">-u</span> <span class="pre">www-data</span> <span class="pre">php</span> <span class="pre">occ</span> <span class="pre">upgrade</span></code> is required</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
<section id="trashbin">
|
||
<span id="trashbin-label"></span><h2>Trashbin<a class="headerlink" href="#trashbin" title="Link to this heading"></a></h2>
|
||
<p>These commands allow for manually managing various aspects of the trash bin (deleted files):</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">trashbin</span>
|
||
<span class="n">trashbin</span><span class="p">:</span><span class="n">cleanup</span> <span class="n">Permanently</span> <span class="n">remove</span> <span class="n">deleted</span> <span class="n">files</span>
|
||
<span class="n">trashbin</span><span class="p">:</span><span class="n">expire</span> <span class="n">Expires</span> <span class="n">the</span> <span class="n">users</span> <span class="n">trashbin</span>
|
||
<span class="n">trashbin</span><span class="p">:</span><span class="n">size</span> <span class="n">Configure</span> <span class="n">the</span> <span class="n">target</span> <span class="n">trashbin</span> <span class="n">size</span>
|
||
<span class="n">trashbin</span><span class="p">:</span><span class="n">restore</span> <span class="n">Restore</span> <span class="nb">all</span> <span class="n">deleted</span> <span class="n">files</span> <span class="n">according</span> <span class="n">to</span> <span class="n">the</span> <span class="n">given</span> <span class="n">filters</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>These commands are only available when the “Deleted files” app
|
||
(<code class="docutils literal notranslate"><span class="pre">files_trashbin</span></code>) is enabled.</p>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">trashbin:cleanup</span>  <span class="pre">[--all-users]</span> <span class="pre">[--]</span> <span class="pre">[<user_id>...]</span></code> command removes the deleted files of the specified
|
||
users in a space-delimited list, or all users if –all-users is specified.</p>
|
||
<p>This example permanently removes the deleted files of all users:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">trashbin</span><span class="p">:</span><span class="n">cleanup</span> <span class="o">--</span><span class="nb">all</span><span class="o">-</span><span class="n">users</span>
|
||
<span class="n">Remove</span> <span class="nb">all</span> <span class="n">deleted</span> <span class="n">files</span> <span class="k">for</span> <span class="nb">all</span> <span class="n">users</span>
|
||
<span class="n">Remove</span> <span class="n">deleted</span> <span class="n">files</span> <span class="k">for</span> <span class="n">users</span> <span class="n">on</span> <span class="n">backend</span> <span class="n">Database</span>
|
||
<span class="n">freda</span>
|
||
<span class="n">molly</span>
|
||
<span class="n">stash</span>
|
||
<span class="n">rosa</span>
|
||
<span class="n">edward</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example permanently removes the deleted files of users molly and freda:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">trashbin</span><span class="p">:</span><span class="n">cleanup</span> <span class="n">molly</span> <span class="n">freda</span>
|
||
<span class="n">Remove</span> <span class="n">deleted</span> <span class="n">files</span> <span class="n">of</span> <span class="n">molly</span>
|
||
<span class="n">Remove</span> <span class="n">deleted</span> <span class="n">files</span> <span class="n">of</span> <span class="n">freda</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">trashbin:restore</span>  <span class="pre">[--all-users]</span> <span class="pre">[--scope[=SCOPE]]</span> <span class="pre">[--since[=SINCE]]</span> <span class="pre">[--until[=UNTIL]]</span> <span class="pre">[--dry-run]</span> <span class="pre">[--]</span> <span class="pre">[<user_id>...]</span></code> command restores the deleted files of the specified
|
||
users in a space-delimited list, or all users if –all-users is specified.</p>
|
||
<p>This example restores the deleted user-files of all users:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">trashbin</span><span class="p">:</span><span class="n">restore</span> <span class="o">--</span><span class="nb">all</span><span class="o">-</span><span class="n">users</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example restores the deleted user-files of users molly and freda:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">trashbin</span><span class="p">:</span><span class="n">restore</span> <span class="n">molly</span> <span class="n">freda</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">--scope</span></code> option can be used to limit the restore to a specific scope.
|
||
Possible values are “user”, “groupfolders” or “all” [default: “user”].</p>
|
||
<p>This example restores the deleted files of all groupfolders which are visible to the user freda:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">trashbin</span><span class="p">:</span><span class="n">restore</span> <span class="o">--</span><span class="n">scope</span> <span class="n">groupfolders</span> <span class="n">freda</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">--since</span></code> and <code class="docutils literal notranslate"><span class="pre">--until</span></code> options can be used to limit the restore to files deleted inside of the given time period.</p>
|
||
<p>This example restores the locally deleted files and files of any groupfolders which are visible to the user
|
||
freda. Additionally the files have to be deleted between <code class="docutils literal notranslate"><span class="pre">01.08.2023</span> <span class="pre">11:55:22</span></code> and <code class="docutils literal notranslate"><span class="pre">02.08.2023</span> <span class="pre">01:33</span></code>:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">trashbin</span><span class="p">:</span><span class="n">restore</span> <span class="o">--</span><span class="n">scope</span> <span class="nb">all</span> <span class="o">--</span><span class="n">since</span> <span class="s2">"01.08.2023 11:55:22"</span> <span class="o">--</span><span class="n">until</span> <span class="s2">"02.08.2023 01:33"</span> <span class="n">freda</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">--dry-run</span></code> option can be used to simulate the restore without actually restoring the files.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>You can use the verbose options (<code class="docutils literal notranslate"><span class="pre">-v</span></code> or <code class="docutils literal notranslate"><span class="pre">-vv</span></code>) to get more information about
|
||
the restore process and why some files might be skipped.</p>
|
||
</div>
|
||
</section>
|
||
<section id="user-commands">
|
||
<span id="user-commands-label"></span><h2>User commands<a class="headerlink" href="#user-commands" title="Link to this heading"></a></h2>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">user</span></code> commands create and remove users, reset passwords, manage authentication tokens / sessions, display a simple
|
||
report showing how many users you have, and when a user was last logged in:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">user</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">add</span> <span class="n">adds</span> <span class="n">a</span> <span class="n">user</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">add</span><span class="o">-</span><span class="n">app</span><span class="o">-</span><span class="n">password</span> <span class="n">adds</span> <span class="n">a</span> <span class="n">app</span> <span class="n">password</span> <span class="n">named</span> <span class="s2">"cli"</span> <span class="p">(</span><span class="n">deprecated</span><span class="p">:</span> <span class="n">alias</span> <span class="k">for</span> <span class="n">user</span><span class="p">:</span><span class="n">auth</span><span class="o">-</span><span class="n">tokens</span><span class="p">:</span><span class="n">add</span><span class="p">)</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">auth</span><span class="o">-</span><span class="n">tokens</span><span class="p">:</span><span class="n">add</span> <span class="n">Add</span> <span class="n">app</span> <span class="n">password</span> <span class="k">for</span> <span class="n">the</span> <span class="n">named</span> <span class="n">account</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">auth</span><span class="o">-</span><span class="n">tokens</span><span class="p">:</span><span class="n">delete</span> <span class="n">Deletes</span> <span class="n">an</span> <span class="n">authentication</span> <span class="n">token</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">auth</span><span class="o">-</span><span class="n">tokens</span><span class="p">:</span><span class="nb">list</span> <span class="n">List</span> <span class="n">authentication</span> <span class="n">tokens</span> <span class="n">of</span> <span class="n">an</span> <span class="n">user</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">clear</span><span class="o">-</span><span class="n">avatar</span><span class="o">-</span><span class="n">cache</span> <span class="n">clear</span> <span class="n">avatar</span> <span class="n">cache</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">delete</span> <span class="n">deletes</span> <span class="n">the</span> <span class="n">specified</span> <span class="n">user</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">disable</span> <span class="n">disables</span> <span class="n">the</span> <span class="n">specified</span> <span class="n">user</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">enable</span> <span class="n">enables</span> <span class="n">the</span> <span class="n">specified</span> <span class="n">user</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">info</span> <span class="n">shows</span> <span class="n">information</span> <span class="n">about</span> <span class="n">the</span> <span class="n">specific</span> <span class="n">user</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">keys</span><span class="p">:</span><span class="n">verify</span> <span class="n">Verify</span> <span class="k">if</span> <span class="n">the</span> <span class="n">stored</span> <span class="n">public</span> <span class="n">key</span> <span class="n">matches</span> <span class="n">the</span> <span class="n">stored</span> <span class="n">private</span> <span class="n">key</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">lastseen</span> <span class="n">shows</span> <span class="n">when</span> <span class="n">the</span> <span class="n">user</span> <span class="n">was</span> <span class="n">logged</span> <span class="ow">in</span> <span class="n">last</span> <span class="n">time</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="nb">list</span> <span class="n">shows</span> <span class="nb">list</span> <span class="n">of</span> <span class="nb">all</span> <span class="n">registered</span> <span class="n">users</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">report</span> <span class="n">shows</span> <span class="n">how</span> <span class="n">many</span> <span class="n">users</span> <span class="n">have</span> <span class="n">access</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">resetpassword</span> <span class="n">Resets</span> <span class="n">the</span> <span class="n">password</span> <span class="n">of</span> <span class="n">the</span> <span class="n">named</span> <span class="n">user</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">setting</span> <span class="n">Read</span> <span class="ow">and</span> <span class="n">modify</span> <span class="n">user</span> <span class="n">settings</span>
|
||
<span class="n">user</span><span class="p">:</span><span class="n">keys</span><span class="p">:</span><span class="n">verify</span> <span class="n">Verify</span> <span class="n">that</span> <span class="n">the</span> <span class="n">stored</span> <span class="n">public</span> <span class="n">key</span> <span class="n">matches</span>
|
||
<span class="n">the</span> <span class="n">stored</span> <span class="n">private</span> <span class="n">key</span>
|
||
</pre></div>
|
||
</div>
|
||
<section id="user-add">
|
||
<h3>user:add<a class="headerlink" href="#user-add" title="Link to this heading"></a></h3>
|
||
<p>You can create a new user with their display name, login name, and any group
|
||
memberships with the <code class="docutils literal notranslate"><span class="pre">user:add</span></code> command. The syntax is:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">user</span><span class="p">:</span><span class="n">add</span> <span class="p">[</span><span class="o">--</span><span class="n">password</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">env</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">generate</span><span class="o">-</span><span class="n">password</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">name</span><span class="p">[</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]]</span> <span class="p">[</span><span class="o">-</span><span class="n">g</span><span class="o">|--</span><span class="n">group</span><span class="p">[</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]]</span> <span class="p">[</span><span class="o">--</span><span class="n">email</span> <span class="n">EMAIL</span><span class="p">]</span>
|
||
<span class="n">uid</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">display-name</span></code> corresponds to the <strong>Full Name</strong> on the Users page in your
|
||
F7cloud Web UI, and the <code class="docutils literal notranslate"><span class="pre">uid</span></code> is their <strong>Username</strong>, which is their
|
||
login name. This example adds new user Layla Smith, and adds them to the
|
||
<strong>users</strong> and <strong>db-admins</strong> groups. Any groups that do not exist are created:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">add</span> <span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">name</span><span class="o">=</span><span class="s2">"Layla Smith"</span>
|
||
<span class="o">--</span><span class="n">group</span><span class="o">=</span><span class="s2">"users"</span> <span class="o">--</span><span class="n">group</span><span class="o">=</span><span class="s2">"db-admins"</span> <span class="n">layla</span>
|
||
<span class="n">Enter</span> <span class="n">password</span><span class="p">:</span>
|
||
<span class="n">Confirm</span> <span class="n">password</span><span class="p">:</span>
|
||
<span class="n">The</span> <span class="n">user</span> <span class="s2">"layla"</span> <span class="n">was</span> <span class="n">created</span> <span class="n">successfully</span>
|
||
<span class="n">Display</span> <span class="n">name</span> <span class="nb">set</span> <span class="n">to</span> <span class="s2">"Layla Smith"</span>
|
||
<span class="n">User</span> <span class="s2">"layla"</span> <span class="n">added</span> <span class="n">to</span> <span class="n">group</span> <span class="s2">"users"</span>
|
||
<span class="n">User</span> <span class="s2">"layla"</span> <span class="n">added</span> <span class="n">to</span> <span class="n">group</span> <span class="s2">"db-admins"</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Go to your Users page, and you will see your new user.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">password-from-env</span></code> allows you to set the user’s password from an environment
|
||
variable. This prevents the password from being exposed to all users via the
|
||
process list, and will only be visible in the history of the user (root)
|
||
running the command. This also permits creating scripts for adding multiple new
|
||
users.</p>
|
||
<p>To use <code class="docutils literal notranslate"><span class="pre">password-from-env</span></code> you must run as “real” root, rather than <code class="docutils literal notranslate"><span class="pre">sudo</span></code>,
|
||
because <code class="docutils literal notranslate"><span class="pre">sudo</span></code> strips environment variables. This example adds new user Fred
|
||
Jones:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">export</span> <span class="n">OC_PASS</span><span class="o">=</span><span class="n">newpassword</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">add</span> <span class="o">--</span><span class="n">password</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">env</span> <span class="o">--</span><span class="n">display</span><span class="o">-</span><span class="n">name</span><span class="o">=</span><span class="s2">"Fred Jones"</span> <span class="o">--</span><span class="n">group</span><span class="o">=</span><span class="s2">"users"</span> <span class="n">fred</span>
|
||
<span class="n">The</span> <span class="n">user</span> <span class="s2">"fred"</span> <span class="n">was</span> <span class="n">created</span> <span class="n">successfully</span>
|
||
<span class="n">Display</span> <span class="n">name</span> <span class="nb">set</span> <span class="n">to</span> <span class="s2">"Fred Jones"</span>
|
||
<span class="n">User</span> <span class="s2">"fred"</span> <span class="n">added</span> <span class="n">to</span> <span class="n">group</span> <span class="s2">"users"</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">generate-password</span></code> allows you to set a securely generated password for the user.
|
||
This is never shown in the output and can be used to create users with temporary
|
||
passwords. This can be used in conjunction with the <code class="docutils literal notranslate"><span class="pre">email</span></code> option to create
|
||
users with a temporary password and send a welcome email to the user’s email
|
||
address without user interaction:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">add</span> <span class="n">layla</span> <span class="o">--</span><span class="n">generate</span><span class="o">-</span><span class="n">password</span> <span class="o">--</span><span class="n">email</span> <span class="n">layla</span><span class="nd">@example</span><span class="o">.</span><span class="n">tld</span>
|
||
<span class="n">The</span> <span class="n">account</span> <span class="s2">"layla"</span> <span class="n">was</span> <span class="n">created</span> <span class="n">successfully</span>
|
||
<span class="n">Welcome</span> <span class="n">email</span> <span class="n">sent</span> <span class="n">to</span> <span class="n">layla</span><span class="nd">@example</span><span class="o">.</span><span class="n">tld</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">email</span></code> option allows you to set the user’s email address when creating
|
||
the user. A welcome email will be sent to the user’s email address if
|
||
<code class="docutils literal notranslate"><span class="pre">newUser.sendEmail</span></code> is set to <code class="docutils literal notranslate"><span class="pre">yes</span></code> in <code class="docutils literal notranslate"><span class="pre">core</span></code>’s app config or not set at all:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">add</span> <span class="n">layla</span> <span class="o">--</span><span class="n">email</span> <span class="n">layla</span><span class="nd">@example</span><span class="o">.</span><span class="n">tld</span>
|
||
<span class="n">Enter</span> <span class="n">password</span><span class="p">:</span>
|
||
<span class="n">Confirm</span> <span class="n">password</span><span class="p">:</span>
|
||
<span class="n">The</span> <span class="n">account</span> <span class="s2">"layla"</span> <span class="n">was</span> <span class="n">created</span> <span class="n">successfully</span>
|
||
<span class="n">Welcome</span> <span class="n">email</span> <span class="n">sent</span> <span class="n">to</span> <span class="n">layla</span><span class="nd">@example</span><span class="o">.</span><span class="n">tld</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="user-resetpassword">
|
||
<h3>user:resetpassword<a class="headerlink" href="#user-resetpassword" title="Link to this heading"></a></h3>
|
||
<p>You can reset any user’s password, including administrators (see
|
||
<a class="reference internal" href="configuration_user/reset_admin_password.html"><span class="doc">Resetting a lost admin password</span></a>):</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">resetpassword</span> <span class="n">layla</span>
|
||
<span class="n">Enter</span> <span class="n">a</span> <span class="n">new</span> <span class="n">password</span><span class="p">:</span>
|
||
<span class="n">Confirm</span> <span class="n">the</span> <span class="n">new</span> <span class="n">password</span><span class="p">:</span>
|
||
<span class="n">Successfully</span> <span class="n">reset</span> <span class="n">password</span> <span class="k">for</span> <span class="n">layla</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You may also use <code class="docutils literal notranslate"><span class="pre">password-from-env</span></code> to reset passwords:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">export</span> <span class="n">OC_PASS</span><span class="o">=</span><span class="n">newpassword</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">resetpassword</span> <span class="o">--</span><span class="n">password</span><span class="o">-</span><span class="n">from</span><span class="o">-</span><span class="n">env</span> <span class="n">layla</span>
|
||
<span class="n">Successfully</span> <span class="n">reset</span> <span class="n">password</span> <span class="k">for</span> <span class="n">layla</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="user-delete">
|
||
<h3>user:delete<a class="headerlink" href="#user-delete" title="Link to this heading"></a></h3>
|
||
<p>You can delete users:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">delete</span> <span class="n">fred</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="user-lastseen">
|
||
<h3>user:lastseen<a class="headerlink" href="#user-lastseen" title="Link to this heading"></a></h3>
|
||
<p>View a specific user’s most recent login:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">lastseen</span> <span class="n">layla</span>
|
||
<span class="n">layla</span><span class="s1">'s last login: 2024-03-20 17:18</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>View a list of all users’ most recent login:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">lastseen</span> <span class="o">--</span><span class="nb">all</span>
|
||
<span class="n">albert</span><span class="s1">'s last login: 2024-03-18 10:30</span>
|
||
<span class="n">bob</span> <span class="n">has</span> <span class="n">never</span> <span class="n">logged</span> <span class="ow">in</span><span class="o">.</span>
|
||
<span class="n">layla</span><span class="s1">'s last login: 2024-03-20 17:18</span>
|
||
<span class="n">stephanie</span><span class="s1">'s last login: 2024-01-11 13:26</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="user-profile">
|
||
<h3>user:profile<a class="headerlink" href="#user-profile" title="Link to this heading"></a></h3>
|
||
<p>Read user profile properties:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">profile</span> <span class="n">admin</span>
|
||
<span class="o">-</span> <span class="n">displayname</span><span class="p">:</span> <span class="n">admin</span>
|
||
<span class="o">-</span> <span class="n">address</span><span class="p">:</span> <span class="n">Berlin</span>
|
||
<span class="o">-</span> <span class="n">email</span><span class="p">:</span> <span class="n">admin</span><span class="nd">@example</span><span class="o">.</span><span class="n">net</span>
|
||
<span class="o">-</span> <span class="n">profile_enabled</span><span class="p">:</span> <span class="mi">1</span>
|
||
<span class="o">-</span> <span class="n">pronouns</span><span class="p">:</span> <span class="n">they</span><span class="o">/</span><span class="n">them</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Get a single profile property for a user:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">profile</span> <span class="n">address</span>
|
||
<span class="n">Berlin</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Set a profile property:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">profile</span> <span class="n">address</span> <span class="n">Stuttgart</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Delete a profile property:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">profile</span> <span class="n">address</span> <span class="o">--</span><span class="n">delete</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="user-setting">
|
||
<h3>user:setting<a class="headerlink" href="#user-setting" title="Link to this heading"></a></h3>
|
||
<p>Read user settings:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">setting</span> <span class="n">layla</span>
|
||
<span class="o">-</span> <span class="n">core</span><span class="p">:</span>
|
||
<span class="o">-</span> <span class="n">lang</span><span class="p">:</span> <span class="n">en</span>
|
||
<span class="o">-</span> <span class="n">login</span><span class="p">:</span>
|
||
<span class="o">-</span> <span class="n">lastLogin</span><span class="p">:</span> <span class="mi">1465910968</span>
|
||
<span class="o">-</span> <span class="n">settings</span><span class="p">:</span>
|
||
<span class="o">-</span> <span class="n">email</span><span class="p">:</span> <span class="n">layla</span><span class="nd">@example</span><span class="o">.</span><span class="n">tld</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Filter by app:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">setting</span> <span class="n">layla</span> <span class="n">core</span>
|
||
<span class="o">-</span> <span class="n">core</span><span class="p">:</span>
|
||
<span class="o">-</span> <span class="n">lang</span><span class="p">:</span> <span class="n">en</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Get a single setting:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">setting</span> <span class="n">layla</span> <span class="n">core</span> <span class="n">lang</span>
|
||
<span class="n">en</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Set a setting:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">setting</span> <span class="n">layla</span> <span class="n">settings</span> <span class="n">email</span> <span class="s2">"new-layla@example.tld"</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Delete a setting:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">setting</span> <span class="n">layla</span> <span class="n">settings</span> <span class="n">email</span> <span class="o">--</span><span class="n">delete</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="user-report">
|
||
<h3>user:report<a class="headerlink" href="#user-report" title="Link to this heading"></a></h3>
|
||
<p>Generate a simple report that counts all users, including users on external user
|
||
authentication servers such as LDAP:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">report</span>
|
||
<span class="o">+------------------+----+</span>
|
||
<span class="o">|</span> <span class="n">User</span> <span class="n">Report</span> <span class="o">|</span> <span class="o">|</span>
|
||
<span class="o">+------------------+----+</span>
|
||
<span class="o">|</span> <span class="n">Database</span> <span class="o">|</span> <span class="mi">12</span> <span class="o">|</span>
|
||
<span class="o">|</span> <span class="n">LDAP</span> <span class="o">|</span> <span class="mi">86</span> <span class="o">|</span>
|
||
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span>
|
||
<span class="o">|</span> <span class="n">total</span> <span class="n">users</span> <span class="o">|</span> <span class="mi">98</span> <span class="o">|</span>
|
||
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span>
|
||
<span class="o">|</span> <span class="n">user</span> <span class="n">directories</span> <span class="o">|</span> <span class="mi">2</span> <span class="o">|</span>
|
||
<span class="o">|</span> <span class="n">active</span> <span class="n">users</span> <span class="o">|</span> <span class="mi">15</span> <span class="o">|</span>
|
||
<span class="o">|</span> <span class="n">disabled</span> <span class="n">users</span> <span class="o">|</span> <span class="mi">0</span> <span class="o">|</span>
|
||
<span class="o">+------------------+----+</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><cite>active users</cite> shows the number of users which logged in at least once.
|
||
<cite>disabled users</cite> shows the number of users which are disabled.</p>
|
||
<p>There might be a discrepancy between the total number of users compared to the number of active users and the number of disabled users.
|
||
Users that have never logged in before are not counted as active or disabled users.
|
||
Some user backends also do not allow a count for the number of users.</p>
|
||
</section>
|
||
<section id="user-list">
|
||
<h3>user:list<a class="headerlink" href="#user-list" title="Link to this heading"></a></h3>
|
||
<p>You can use the command <code class="docutils literal notranslate"><span class="pre">user:list</span></code> to list users. By default it will limit the output to 500 users but you can override that with options <code class="docutils literal notranslate"><span class="pre">--limit</span></code> and <code class="docutils literal notranslate"><span class="pre">--offset</span></code>. Use <code class="docutils literal notranslate"><span class="pre">--disabled</span></code> to only list disabled users.</p>
|
||
</section>
|
||
<section id="user-info">
|
||
<h3>user:info<a class="headerlink" href="#user-info" title="Link to this heading"></a></h3>
|
||
<p>With the <code class="docutils literal notranslate"><span class="pre">user:info</span></code> command, you can access an account information such as: user id, display name, quota, groups, storage usage… and many more</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">user</span><span class="p">:</span><span class="n">info</span> <span class="n">admin</span>
|
||
<span class="o">-</span> <span class="n">user_id</span><span class="p">:</span> <span class="n">admin</span>
|
||
<span class="o">-</span> <span class="n">display_name</span><span class="p">:</span> <span class="n">admin</span>
|
||
<span class="o">-</span> <span class="n">email</span><span class="p">:</span> <span class="n">admin</span><span class="nd">@domain</span><span class="o">.</span><span class="n">com</span>
|
||
<span class="o">-</span> <span class="n">cloud_id</span><span class="p">:</span> <span class="n">admin</span><span class="nd">@cloud</span><span class="o">.</span><span class="n">domain</span><span class="o">.</span><span class="n">com</span>
|
||
<span class="o">-</span> <span class="n">enabled</span><span class="p">:</span> <span class="n">true</span>
|
||
<span class="o">-</span> <span class="n">groups</span><span class="p">:</span>
|
||
<span class="o">-</span> <span class="n">admin</span>
|
||
<span class="o">-</span> <span class="n">users</span>
|
||
<span class="o">-</span> <span class="n">quota</span><span class="p">:</span> <span class="n">none</span>
|
||
<span class="o">-</span> <span class="n">storage</span><span class="p">:</span>
|
||
<span class="o">-</span> <span class="n">free</span><span class="p">:</span> <span class="mi">162409623552</span>
|
||
<span class="o">-</span> <span class="n">used</span><span class="p">:</span> <span class="mi">1110</span>
|
||
<span class="o">-</span> <span class="n">total</span><span class="p">:</span> <span class="mi">162409624662</span>
|
||
<span class="o">-</span> <span class="n">relative</span><span class="p">:</span> <span class="mi">0</span>
|
||
<span class="o">-</span> <span class="n">quota</span><span class="p">:</span> <span class="o">-</span><span class="mi">3</span>
|
||
<span class="o">-</span> <span class="n">first_seen</span><span class="p">:</span> <span class="mi">2025</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">14</span><span class="n">T08</span><span class="p">:</span><span class="mi">44</span><span class="p">:</span><span class="mi">46</span><span class="o">+</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
|
||
<span class="o">-</span> <span class="n">last_seen</span><span class="p">:</span> <span class="mi">2025</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">25</span><span class="n">T20</span><span class="p">:</span><span class="mi">21</span><span class="p">:</span><span class="mi">13</span><span class="o">+</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
|
||
<span class="o">-</span> <span class="n">user_directory</span><span class="p">:</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">f7cloud</span><span class="o">/</span><span class="n">data</span><span class="o">/</span><span class="n">admin</span>
|
||
<span class="o">-</span> <span class="n">backend</span><span class="p">:</span> <span class="n">Database</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
<section id="group-commands">
|
||
<span id="group-commands-label"></span><h2>Group commands<a class="headerlink" href="#group-commands" title="Link to this heading"></a></h2>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">group</span></code> commands create and remove groups, add and remove users in
|
||
groups, display a list of all users in a group:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">group</span>
|
||
<span class="n">group</span><span class="p">:</span><span class="n">add</span> <span class="n">add</span> <span class="n">a</span> <span class="n">group</span>
|
||
<span class="n">group</span><span class="p">:</span><span class="n">delete</span> <span class="n">remove</span> <span class="n">a</span> <span class="n">group</span>
|
||
<span class="n">group</span><span class="p">:</span><span class="n">adduser</span> <span class="n">add</span> <span class="n">a</span> <span class="n">user</span> <span class="n">to</span> <span class="n">a</span> <span class="n">group</span>
|
||
<span class="n">group</span><span class="p">:</span><span class="n">removeuser</span> <span class="n">remove</span> <span class="n">a</span> <span class="n">user</span> <span class="kn">from</span><span class="w"> </span><span class="nn">a</span> <span class="n">group</span>
|
||
<span class="n">group</span><span class="p">:</span><span class="nb">list</span> <span class="nb">list</span> <span class="n">configured</span> <span class="n">groups</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You can create a new group with the <code class="docutils literal notranslate"><span class="pre">group:add</span></code> command. The syntax is:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">group</span><span class="p">:</span><span class="n">add</span> <span class="p">[</span><span class="n">gid</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">gid</span></code> corresponds to the group name you entering after clicking
|
||
“Add group” on the Users page in your F7cloud Web UI. This example adds new
|
||
group “beer”:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">group</span><span class="p">:</span><span class="n">add</span> <span class="n">beer</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Add an existing user to the specified group with the <code class="docutils literal notranslate"><span class="pre">group:adduser</span></code>
|
||
command. The syntax is:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">group</span><span class="p">:</span><span class="n">adduser</span> <span class="p">[</span><span class="n">gid</span><span class="p">]</span> <span class="p">[</span><span class="n">uid</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example adds the user “denis” to the existing group “beer”:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">group</span><span class="p">:</span><span class="n">adduser</span> <span class="n">beer</span> <span class="n">denis</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You can remove user from the group with the <code class="docutils literal notranslate"><span class="pre">group:removeuser</span></code> command.
|
||
This example removes the existing user “denis” from the existing
|
||
group “beer”:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">group</span><span class="p">:</span><span class="n">removeuser</span> <span class="n">beer</span> <span class="n">denis</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Remove a group with the <code class="docutils literal notranslate"><span class="pre">group:delete</span></code> command. Removing a group doesn’t
|
||
remove users in a group. You cannot remove the “admin” group. This example
|
||
removes the existing group “beer”:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">group</span><span class="p">:</span><span class="n">delete</span> <span class="n">beer</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>List configured groups via the <code class="docutils literal notranslate"><span class="pre">group:list</span></code> command. The syntax is:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">group</span><span class="p">:</span><span class="nb">list</span> <span class="p">[</span><span class="o">-</span><span class="n">l</span><span class="o">|--</span><span class="n">limit</span> <span class="p">[</span><span class="n">LIMIT</span><span class="p">]]</span> <span class="p">[</span><span class="o">-</span><span class="n">o</span><span class="o">|--</span><span class="n">offset</span> <span class="p">[</span><span class="n">OFFSET</span><span class="p">]]</span> <span class="p">[</span><span class="o">-</span><span class="n">i</span><span class="o">|--</span><span class="n">info</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">output</span> <span class="p">[</span><span class="n">OUTPUT</span><span class="p">]]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><code class="docutils literal notranslate"><span class="pre">limit</span></code> allows you to specify the number of groups to retrieve (default: <code class="docutils literal notranslate"><span class="pre">500</span></code>).</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">offset</span></code> is an offset for retrieving groups.</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">info</span></code> Show additional info (backend).</p>
|
||
<p><code class="docutils literal notranslate"><span class="pre">output</span></code> Output format: <code class="docutils literal notranslate"><span class="pre">plain</span></code>, <code class="docutils literal notranslate"><span class="pre">json</span></code> or <code class="docutils literal notranslate"><span class="pre">json_pretty</span></code> (default: <code class="docutils literal notranslate"><span class="pre">plain</span></code>).</p>
|
||
</section>
|
||
<section id="versions">
|
||
<span id="versions-label"></span><h2>Versions<a class="headerlink" href="#versions" title="Link to this heading"></a></h2>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>This command is only available when the “Versions” app (<code class="docutils literal notranslate"><span class="pre">files_versions</span></code>) is
|
||
enabled.</p>
|
||
</div>
|
||
<p>Use this command to delete file versions for specific users, or for all users
|
||
when none are specified:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">versions</span>
|
||
<span class="n">versions</span><span class="p">:</span><span class="n">cleanup</span> <span class="n">Delete</span> <span class="n">versions</span>
|
||
<span class="n">versions</span><span class="p">:</span><span class="n">expire</span> <span class="n">Expires</span> <span class="n">the</span> <span class="n">users</span> <span class="n">file</span> <span class="n">versions</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example deletes all versions for all users:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">versions</span><span class="p">:</span><span class="n">cleanup</span>
|
||
<span class="n">Delete</span> <span class="nb">all</span> <span class="n">versions</span>
|
||
<span class="n">Delete</span> <span class="n">versions</span> <span class="k">for</span> <span class="n">users</span> <span class="n">on</span> <span class="n">backend</span> <span class="n">Database</span>
|
||
<span class="n">freda</span>
|
||
<span class="n">molly</span>
|
||
<span class="n">stash</span>
|
||
<span class="n">rosa</span>
|
||
<span class="n">edward</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>You can delete versions for specific users in a space-delimited list:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">versions</span><span class="p">:</span><span class="n">cleanup</span> <span class="n">freda</span> <span class="n">molly</span>
|
||
<span class="n">Delete</span> <span class="n">versions</span> <span class="n">of</span> <span class="n">freda</span>
|
||
<span class="n">Delete</span> <span class="n">versions</span> <span class="n">of</span> <span class="n">molly</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="command-line-installation">
|
||
<span id="command-line-installation-label"></span><h2>Command line installation<a class="headerlink" href="#command-line-installation" title="Link to this heading"></a></h2>
|
||
<p>These commands are available only after you have downloaded and unpacked the
|
||
F7cloud archive, and taken no further installation steps.</p>
|
||
<p>You can install F7cloud entirely from the command line. After downloading the
|
||
tarball and copying F7cloud into the appropriate directories you can use <code class="docutils literal notranslate"><span class="pre">occ</span></code>
|
||
commands in place of running the graphical Installation Wizard.</p>
|
||
<p>Then choose your <code class="docutils literal notranslate"><span class="pre">occ</span></code> options. This lists your available options:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</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">f7cloud</span><span class="o">/</span><span class="n">occ</span>
|
||
<span class="n">F7cloud</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">installed</span> <span class="o">-</span> <span class="n">only</span> <span class="n">a</span> <span class="n">limited</span> <span class="n">number</span> <span class="n">of</span> <span class="n">commands</span> <span class="n">are</span> <span class="n">available</span>
|
||
<span class="n">F7cloud</span> <span class="n">version</span> <span class="mf">19.0.0</span>
|
||
|
||
<span class="n">Usage</span><span class="p">:</span>
|
||
<span class="p">[</span><span class="n">options</span><span class="p">]</span> <span class="n">command</span> <span class="p">[</span><span class="n">arguments</span><span class="p">]</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">--</span><span class="n">help</span> <span class="p">(</span><span class="o">-</span><span class="n">h</span><span class="p">)</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span>
|
||
<span class="o">--</span><span class="n">quiet</span> <span class="p">(</span><span class="o">-</span><span class="n">q</span><span class="p">)</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">output</span> <span class="nb">any</span> <span class="n">message</span>
|
||
<span class="o">--</span><span class="n">verbose</span> <span class="p">(</span><span class="o">-</span><span class="n">v</span><span class="o">|</span><span class="n">vv</span><span class="o">|</span><span class="n">vvv</span><span class="p">)</span> <span class="n">Increase</span> <span class="n">the</span> <span class="n">verbosity</span> <span class="n">of</span> <span class="n">messages</span><span class="p">:</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">normal</span>
|
||
<span class="n">output</span><span class="p">,</span> <span class="mi">2</span> <span class="k">for</span> <span class="n">more</span> <span class="n">verbose</span> <span class="n">output</span> <span class="ow">and</span> <span class="mi">3</span> <span class="k">for</span> <span class="n">debug</span>
|
||
<span class="o">--</span><span class="n">version</span> <span class="p">(</span><span class="o">-</span><span class="n">V</span><span class="p">)</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">application</span> <span class="n">version</span>
|
||
<span class="o">--</span><span class="n">ansi</span> <span class="n">Force</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">ansi</span> <span class="n">Disable</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">interaction</span> <span class="p">(</span><span class="o">-</span><span class="n">n</span><span class="p">)</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">ask</span> <span class="nb">any</span> <span class="n">interactive</span> <span class="n">question</span>
|
||
|
||
<span class="n">Available</span> <span class="n">commands</span><span class="p">:</span>
|
||
<span class="n">check</span> <span class="n">check</span> <span class="n">dependencies</span> <span class="n">of</span> <span class="n">the</span> <span class="n">server</span> <span class="n">environment</span>
|
||
<span class="n">help</span> <span class="n">Displays</span> <span class="n">help</span> <span class="k">for</span> <span class="n">a</span> <span class="n">command</span>
|
||
<span class="nb">list</span> <span class="n">Lists</span> <span class="n">commands</span>
|
||
<span class="n">status</span> <span class="n">show</span> <span class="n">some</span> <span class="n">status</span> <span class="n">information</span>
|
||
<span class="n">app</span>
|
||
<span class="n">l10n</span>
|
||
<span class="n">l10n</span><span class="p">:</span><span class="n">createjs</span> <span class="n">Create</span> <span class="n">javascript</span> <span class="n">translation</span> <span class="n">files</span> <span class="k">for</span> <span class="n">a</span> <span class="n">given</span> <span class="n">app</span>
|
||
<span class="n">maintenance</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">install</span> <span class="n">install</span> <span class="n">F7cloud</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Display your <code class="docutils literal notranslate"><span class="pre">maintenance:install</span></code> options:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">help</span> <span class="n">maintenance</span><span class="p">:</span><span class="n">install</span>
|
||
<span class="n">F7cloud</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">installed</span> <span class="o">-</span> <span class="n">only</span> <span class="n">a</span> <span class="n">limited</span> <span class="n">number</span> <span class="n">of</span> <span class="n">commands</span> <span class="n">are</span> <span class="n">available</span>
|
||
<span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">maintenance</span><span class="p">:</span><span class="n">install</span> <span class="p">[</span><span class="o">--</span><span class="n">database</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">name</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]</span>
|
||
<span class="p">[</span><span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">host</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">user</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="k">pass</span><span class="p">[</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]]</span>
|
||
<span class="p">[</span><span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">table</span><span class="o">-</span><span class="n">prefix</span><span class="p">[</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]]</span> <span class="p">[</span><span class="o">--</span><span class="n">admin</span><span class="o">-</span><span class="n">user</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">admin</span><span class="o">-</span><span class="k">pass</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]</span>
|
||
<span class="p">[</span><span class="o">--</span><span class="n">data</span><span class="o">-</span><span class="nb">dir</span><span class="o">=</span><span class="s2">"..."</span><span class="p">]</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">--</span><span class="n">database</span> <span class="n">Supported</span> <span class="n">database</span> <span class="nb">type</span> <span class="p">(</span><span class="n">default</span><span class="p">:</span> <span class="s2">"sqlite"</span><span class="p">)</span>
|
||
<span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">name</span> <span class="n">Name</span> <span class="n">of</span> <span class="n">the</span> <span class="n">database</span>
|
||
<span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">host</span> <span class="n">Hostname</span> <span class="n">of</span> <span class="n">the</span> <span class="n">database</span> <span class="p">(</span><span class="n">default</span><span class="p">:</span> <span class="s2">"localhost"</span><span class="p">)</span>
|
||
<span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">user</span> <span class="n">User</span> <span class="n">name</span> <span class="n">to</span> <span class="n">connect</span> <span class="n">to</span> <span class="n">the</span> <span class="n">database</span>
|
||
<span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="k">pass</span> <span class="n">Password</span> <span class="n">of</span> <span class="n">the</span> <span class="n">database</span> <span class="n">user</span>
|
||
<span class="o">--</span><span class="n">admin</span><span class="o">-</span><span class="n">user</span> <span class="n">User</span> <span class="n">name</span> <span class="n">of</span> <span class="n">the</span> <span class="n">admin</span> <span class="n">account</span> <span class="p">(</span><span class="n">default</span><span class="p">:</span> <span class="s2">"admin"</span><span class="p">)</span>
|
||
<span class="o">--</span><span class="n">admin</span><span class="o">-</span><span class="k">pass</span> <span class="n">Password</span> <span class="n">of</span> <span class="n">the</span> <span class="n">admin</span> <span class="n">account</span>
|
||
<span class="o">--</span><span class="n">data</span><span class="o">-</span><span class="nb">dir</span> <span class="n">Path</span> <span class="n">to</span> <span class="n">data</span> <span class="n">directory</span> <span class="p">(</span><span class="n">default</span><span class="p">:</span>
|
||
<span class="s2">"/var/www/f7cloud/data"</span><span class="p">)</span>
|
||
<span class="o">--</span><span class="n">help</span> <span class="p">(</span><span class="o">-</span><span class="n">h</span><span class="p">)</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span>
|
||
<span class="o">--</span><span class="n">quiet</span> <span class="p">(</span><span class="o">-</span><span class="n">q</span><span class="p">)</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">output</span> <span class="nb">any</span> <span class="n">message</span>
|
||
<span class="o">--</span><span class="n">verbose</span> <span class="p">(</span><span class="o">-</span><span class="n">v</span><span class="o">|</span><span class="n">vv</span><span class="o">|</span><span class="n">vvv</span><span class="p">)</span> <span class="n">Increase</span> <span class="n">the</span> <span class="n">verbosity</span> <span class="n">of</span> <span class="n">messages</span><span class="p">:</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">normal</span>
|
||
<span class="n">output</span><span class="p">,</span> <span class="mi">2</span> <span class="k">for</span> <span class="n">more</span> <span class="n">verbose</span> <span class="n">output</span> <span class="ow">and</span> <span class="mi">3</span> <span class="k">for</span> <span class="n">debug</span>
|
||
<span class="o">--</span><span class="n">version</span> <span class="p">(</span><span class="o">-</span><span class="n">V</span><span class="p">)</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">application</span> <span class="n">version</span>
|
||
<span class="o">--</span><span class="n">ansi</span> <span class="n">Force</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">ansi</span> <span class="n">Disable</span> <span class="n">ANSI</span> <span class="n">output</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">interaction</span> <span class="p">(</span><span class="o">-</span><span class="n">n</span><span class="p">)</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">ask</span> <span class="nb">any</span> <span class="n">interactive</span> <span class="n">question</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>This example completes the installation:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</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">f7cloud</span><span class="o">/</span>
|
||
<span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">maintenance</span><span class="p">:</span><span class="n">install</span> <span class="o">--</span><span class="n">database</span>
|
||
<span class="s2">"mysql"</span> <span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">name</span> <span class="s2">"f7cloud"</span> <span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="n">user</span> <span class="s2">"root"</span> <span class="o">--</span><span class="n">database</span><span class="o">-</span><span class="k">pass</span>
|
||
<span class="s2">"password"</span> <span class="o">--</span><span class="n">admin</span><span class="o">-</span><span class="n">user</span> <span class="s2">"admin"</span> <span class="o">--</span><span class="n">admin</span><span class="o">-</span><span class="k">pass</span> <span class="s2">"password"</span>
|
||
<span class="n">F7cloud</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">installed</span> <span class="o">-</span> <span class="n">only</span> <span class="n">a</span> <span class="n">limited</span> <span class="n">number</span> <span class="n">of</span> <span class="n">commands</span> <span class="n">are</span> <span class="n">available</span>
|
||
<span class="n">F7cloud</span> <span class="n">was</span> <span class="n">successfully</span> <span class="n">installed</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Supported databases are:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span> <span class="n">sqlite</span> <span class="p">(</span><span class="n">SQLite3</span> <span class="o">-</span> <span class="n">F7cloud</span> <span class="n">Community</span> <span class="n">edition</span> <span class="n">only</span><span class="p">)</span>
|
||
<span class="o">-</span> <span class="n">mysql</span> <span class="p">(</span><span class="n">MySQL</span><span class="o">/</span><span class="n">MariaDB</span><span class="p">)</span>
|
||
<span class="o">-</span> <span class="n">pgsql</span> <span class="p">(</span><span class="n">PostgreSQL</span><span class="p">)</span>
|
||
<span class="o">-</span> <span class="n">oci</span> <span class="p">(</span><span class="n">Oracle</span> <span class="o">-</span> <span class="n">F7cloud</span> <span class="n">Enterprise</span> <span class="n">edition</span> <span class="n">only</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="command-line-upgrade">
|
||
<span id="command-line-upgrade-label"></span><h2>Command line upgrade<a class="headerlink" href="#command-line-upgrade" title="Link to this heading"></a></h2>
|
||
<p>These commands are available only after you have downloaded upgraded packages or
|
||
tar archives, and before you complete the upgrade.</p>
|
||
<p>List all options:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">upgrade</span> <span class="o">-</span><span class="n">h</span>
|
||
<span class="n">Usage</span><span class="p">:</span>
|
||
<span class="n">upgrade</span> <span class="p">[</span><span class="o">--</span><span class="n">quiet</span><span class="p">]</span>
|
||
|
||
<span class="n">Options</span><span class="p">:</span>
|
||
<span class="o">--</span><span class="n">help</span> <span class="p">(</span><span class="o">-</span><span class="n">h</span><span class="p">)</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">help</span> <span class="n">message</span><span class="o">.</span>
|
||
<span class="o">--</span><span class="n">quiet</span> <span class="p">(</span><span class="o">-</span><span class="n">q</span><span class="p">)</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">output</span> <span class="nb">any</span> <span class="n">message</span><span class="o">.</span>
|
||
<span class="o">--</span><span class="n">verbose</span> <span class="p">(</span><span class="o">-</span><span class="n">v</span><span class="o">|</span><span class="n">vv</span><span class="o">|</span><span class="n">vvv</span><span class="p">)</span> <span class="n">Increase</span> <span class="n">the</span> <span class="n">verbosity</span> <span class="n">of</span> <span class="n">messages</span><span class="p">:</span> <span class="mi">1</span> <span class="k">for</span> <span class="n">normal</span> <span class="n">output</span><span class="p">,</span>
|
||
<span class="mi">2</span> <span class="k">for</span> <span class="n">more</span> <span class="n">verbose</span> <span class="n">output</span> <span class="ow">and</span> <span class="mi">3</span> <span class="k">for</span> <span class="n">debug</span><span class="o">.</span>
|
||
<span class="o">--</span><span class="n">version</span> <span class="p">(</span><span class="o">-</span><span class="n">V</span><span class="p">)</span> <span class="n">Display</span> <span class="n">this</span> <span class="n">application</span> <span class="n">version</span><span class="o">.</span>
|
||
<span class="o">--</span><span class="n">ansi</span> <span class="n">Force</span> <span class="n">ANSI</span> <span class="n">output</span><span class="o">.</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">ansi</span> <span class="n">Disable</span> <span class="n">ANSI</span> <span class="n">output</span><span class="o">.</span>
|
||
<span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">interaction</span> <span class="p">(</span><span class="o">-</span><span class="n">n</span><span class="p">)</span> <span class="n">Do</span> <span class="ow">not</span> <span class="n">ask</span> <span class="nb">any</span> <span class="n">interactive</span> <span class="n">question</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>When you are performing an update or upgrade on your F7cloud server (see the
|
||
Maintenance section of this manual), it is better to use <code class="docutils literal notranslate"><span class="pre">occ</span></code> to perform the
|
||
database upgrade step, rather than the Web GUI, in order to avoid timeouts. PHP
|
||
scripts invoked from the Web interface are limited to 3600 seconds. In larger
|
||
environments this may not be enough, leaving the system in an inconsistent
|
||
state. After performing all the preliminary steps (see
|
||
<a class="reference internal" href="maintenance/upgrade.html"><span class="doc">How to upgrade</span></a>) use this command to upgrade your databases,
|
||
like this example on CentOS Linux. Note how it details the steps:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">upgrade</span>
|
||
<span class="n">F7cloud</span> <span class="ow">or</span> <span class="n">one</span> <span class="n">of</span> <span class="n">the</span> <span class="n">apps</span> <span class="n">require</span> <span class="n">upgrade</span> <span class="o">-</span> <span class="n">only</span> <span class="n">a</span> <span class="n">limited</span> <span class="n">number</span> <span class="n">of</span>
|
||
<span class="n">commands</span> <span class="n">are</span> <span class="n">available</span>
|
||
<span class="n">Turned</span> <span class="n">on</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
<span class="n">Checked</span> <span class="n">database</span> <span class="n">schema</span> <span class="n">update</span>
|
||
<span class="n">Checked</span> <span class="n">database</span> <span class="n">schema</span> <span class="n">update</span> <span class="k">for</span> <span class="n">apps</span>
|
||
<span class="n">Updated</span> <span class="n">database</span>
|
||
<span class="n">Updating</span> <span class="o"><</span><span class="n">gallery</span><span class="o">></span> <span class="o">...</span>
|
||
<span class="n">Updated</span> <span class="o"><</span><span class="n">gallery</span><span class="o">></span> <span class="n">to</span> <span class="mf">0.6.1</span>
|
||
<span class="n">Updating</span> <span class="o"><</span><span class="n">activity</span><span class="o">></span> <span class="o">...</span>
|
||
<span class="n">Updated</span> <span class="o"><</span><span class="n">activity</span><span class="o">></span> <span class="n">to</span> <span class="mf">2.1.0</span>
|
||
<span class="n">Update</span> <span class="n">successful</span>
|
||
<span class="n">Turned</span> <span class="n">off</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Enabling verbosity displays timestamps:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">upgrade</span> <span class="o">-</span><span class="n">v</span>
|
||
<span class="n">F7cloud</span> <span class="ow">or</span> <span class="n">one</span> <span class="n">of</span> <span class="n">the</span> <span class="n">apps</span> <span class="n">require</span> <span class="n">upgrade</span> <span class="o">-</span> <span class="n">only</span> <span class="n">a</span> <span class="n">limited</span> <span class="n">number</span> <span class="n">of</span> <span class="n">commands</span> <span class="n">are</span> <span class="n">available</span>
|
||
<span class="mi">2015</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">23</span><span class="n">T09</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">15</span><span class="o">+</span><span class="mi">0000</span> <span class="n">Turned</span> <span class="n">on</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
<span class="mi">2015</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">23</span><span class="n">T09</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">15</span><span class="o">+</span><span class="mi">0000</span> <span class="n">Checked</span> <span class="n">database</span> <span class="n">schema</span> <span class="n">update</span>
|
||
<span class="mi">2015</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">23</span><span class="n">T09</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">15</span><span class="o">+</span><span class="mi">0000</span> <span class="n">Checked</span> <span class="n">database</span> <span class="n">schema</span> <span class="n">update</span> <span class="k">for</span> <span class="n">apps</span>
|
||
<span class="mi">2015</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">23</span><span class="n">T09</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">15</span><span class="o">+</span><span class="mi">0000</span> <span class="n">Updated</span> <span class="n">database</span>
|
||
<span class="mi">2015</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">23</span><span class="n">T09</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">15</span><span class="o">+</span><span class="mi">0000</span> <span class="n">Updated</span> <span class="o"><</span><span class="n">files_sharing</span><span class="o">></span> <span class="n">to</span> <span class="mf">0.6.6</span>
|
||
<span class="mi">2015</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">23</span><span class="n">T09</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">15</span><span class="o">+</span><span class="mi">0000</span> <span class="n">Update</span> <span class="n">successful</span>
|
||
<span class="mi">2015</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">23</span><span class="n">T09</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">15</span><span class="o">+</span><span class="mi">0000</span> <span class="n">Turned</span> <span class="n">off</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If there is an error it throws an exception, and the error is detailed in your
|
||
F7cloud logfile, so you can use the log output to figure out what went wrong,
|
||
or to use in a bug report:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Turned</span> <span class="n">on</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
<span class="n">Checked</span> <span class="n">database</span> <span class="n">schema</span> <span class="n">update</span>
|
||
<span class="n">Checked</span> <span class="n">database</span> <span class="n">schema</span> <span class="n">update</span> <span class="k">for</span> <span class="n">apps</span>
|
||
<span class="n">Updated</span> <span class="n">database</span>
|
||
<span class="n">Updating</span> <span class="o"><</span><span class="n">files_sharing</span><span class="o">></span> <span class="o">...</span>
|
||
<span class="ne">Exception</span>
|
||
<span class="n">ServerNotAvailableException</span><span class="p">:</span> <span class="n">LDAP</span> <span class="n">server</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">available</span>
|
||
<span class="n">Update</span> <span class="n">failed</span>
|
||
<span class="n">Turned</span> <span class="n">off</span> <span class="n">maintenance</span> <span class="n">mode</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="two-factor-authentication">
|
||
<span id="two-factor-auth-label"></span><h2>Two-factor authentication<a class="headerlink" href="#two-factor-authentication" title="Link to this heading"></a></h2>
|
||
<p>If a two-factor provider app is enabled, it is enabled for all users by default
|
||
(though the provider can decide whether or not the user has to pass the challenge).
|
||
In the case of a user losing access to the second factor (e.g. lost phone with
|
||
two-factor SMS verification), the admin can try to disable the two-factor
|
||
check for that user via the occ command:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">twofactorauth</span><span class="p">:</span><span class="n">disable</span> <span class="o"><</span><span class="n">uid</span><span class="o">></span> <span class="o"><</span><span class="n">provider_id</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>This is not supported by all providers.</p>
|
||
</div>
|
||
<p>To re-enable two-factor auth again use the following command:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">twofactorauth</span><span class="p">:</span><span class="n">enable</span> <span class="o"><</span><span class="n">uid</span><span class="o">></span> <span class="o"><</span><span class="n">provider_id</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>This is not supported by all providers.</p>
|
||
</div>
|
||
</section>
|
||
<section id="disable-users">
|
||
<span id="disable-user-label"></span><h2>Disable users<a class="headerlink" href="#disable-users" title="Link to this heading"></a></h2>
|
||
<p>Admins can disable users via the occ command too:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">disable</span> <span class="o"><</span><span class="n">username</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Use the following command to enable the user again:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">user</span><span class="p">:</span><span class="n">enable</span> <span class="o"><</span><span class="n">username</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Note that once users are disabled, their connected browsers will be disconnected.</p>
|
||
</section>
|
||
<section id="system-tags">
|
||
<span id="system-tags-commands-label"></span><h2>System Tags<a class="headerlink" href="#system-tags" title="Link to this heading"></a></h2>
|
||
<p>List tags:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">tag</span><span class="p">:</span><span class="nb">list</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Add a tag:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">tag</span><span class="p">:</span><span class="n">add</span> <span class="o"><</span><span class="n">name</span><span class="o">></span> <span class="o"><</span><span class="n">access</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Edit a tag:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">tag</span><span class="p">:</span><span class="n">edit</span> <span class="o">--</span><span class="n">name</span> <span class="o"><</span><span class="n">name</span><span class="o">></span> <span class="o">--</span><span class="n">access</span> <span class="o"><</span><span class="n">access</span><span class="o">></span> <span class="o"><</span><span class="nb">id</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p><cite>–name</cite> and <cite>–access</cite> are optional.</p>
|
||
<p>Delete a tag:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">tag</span><span class="p">:</span><span class="n">delete</span> <span class="o"><</span><span class="nb">id</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Access level</p>
|
||
<table class="docutils align-default">
|
||
<thead>
|
||
<tr class="row-odd"><th class="head"><p>Level</p></th>
|
||
<th class="head"><p>Visible¹</p></th>
|
||
<th class="head"><p>Assignable²</p></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr class="row-even"><td><p>public</p></td>
|
||
<td><p>Yes</p></td>
|
||
<td><p>Yes</p></td>
|
||
</tr>
|
||
<tr class="row-odd"><td><p>restricted</p></td>
|
||
<td><p>Yes</p></td>
|
||
<td><p>No</p></td>
|
||
</tr>
|
||
<tr class="row-even"><td><p>invisible</p></td>
|
||
<td><p>No</p></td>
|
||
<td><p>No</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="line-block">
|
||
<div class="line">¹ User can see the tag</div>
|
||
<div class="line">² User can assign the tag to a file</div>
|
||
</div>
|
||
</section>
|
||
<section id="antivirus">
|
||
<span id="antivirus-commands-label"></span><h2>Antivirus<a class="headerlink" href="#antivirus" title="Link to this heading"></a></h2>
|
||
<p>Get info about files in the scan queue:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files_antivirus</span><span class="p">:</span><span class="n">status</span> <span class="p">[</span><span class="o">-</span><span class="n">v</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Manually trigger the background scan:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files_antivirus</span><span class="p">:</span><span class="n">background</span><span class="o">-</span><span class="n">scan</span> <span class="p">[</span><span class="o">-</span><span class="n">v</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">m</span> <span class="n">MAX</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Manually scan a single file:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files_antivirus</span><span class="p">:</span><span class="n">scan</span> <span class="o"><</span><span class="n">path</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Mark a file as scanned or unscanned:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">files_antivirus</span><span class="p">:</span><span class="n">mark</span> <span class="o"><</span><span class="n">path</span><span class="o">></span> <span class="o"><</span><span class="n">scanned</span><span class="o">|</span><span class="n">unscanned</span><span class="o">></span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="setupchecks">
|
||
<span id="setupchecks-commands-label"></span><h2>Setupchecks<a class="headerlink" href="#setupchecks" title="Link to this heading"></a></h2>
|
||
<p>Run the setupchecks via occ:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="n">setupchecks</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Example output:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>dav:
|
||
✓ DAV system address book: No outstanding DAV system address book sync.
|
||
network:
|
||
✓ WebDAV endpoint: Your web server is properly set up to allow file synchronization over WebDAV.
|
||
✓ Data directory protected
|
||
✓ Internet connectivity
|
||
...
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="share-operations">
|
||
<span id="share-operations-label"></span><h2>Share operations<a class="headerlink" href="#share-operations" title="Link to this heading"></a></h2>
|
||
<p>Available <code class="docutils literal notranslate"><span class="pre">occ</span></code> commands for the <code class="docutils literal notranslate"><span class="pre">share</span></code> namespace:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">share</span><span class="p">:</span><span class="nb">list</span> <span class="nb">list</span> <span class="n">shares</span> <span class="n">on</span> <span class="n">the</span> <span class="n">system</span>
|
||
</pre></div>
|
||
</div>
|
||
<section id="list">
|
||
<span id="occ-share-list-label"></span><h3>List<a class="headerlink" href="#list" title="Link to this heading"></a></h3>
|
||
<p>The <code class="docutils literal notranslate"><span class="pre">share:list</span></code> command lists all shares created on the system, with optional filters for recipient,
|
||
sharee, shared file and more.</p>
|
||
</section>
|
||
</section>
|
||
<section id="debugging">
|
||
<span id="occ-debugging"></span><h2>Debugging<a class="headerlink" href="#debugging" title="Link to this heading"></a></h2>
|
||
<p>In certain situations it’s necessary to generate debugging information, e.g. before submitting a bug report. You can run <code class="docutils literal notranslate"><span class="pre">occ</span></code> with debug logging:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">NC_loglevel</span><span class="o">=</span><span class="mi">0</span> <span class="n">sudo</span> <span class="o">-</span><span class="n">E</span> <span class="o">-</span><span class="n">u</span> <span class="n">www</span><span class="o">-</span><span class="n">data</span> <span class="n">php</span> <span class="n">occ</span> <span class="o">-</span><span class="n">h</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||
<a href="configuration_server/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="reference/index.html" class="btn btn-neutral float-right" title="Reference management" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||
</div>
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<p>© Copyright 2016-2026 F7cloud GmbH and F7cloud contributors.</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">
|
||
☁️ latest
|
||
<span class="fa fa-caret-down"></span>
|
||
</span>
|
||
<div class="rst-other-versions">
|
||
<dl>
|
||
<dt>☁️ Versions</dt>
|
||
|
||
<dd style="width: 32%">
|
||
<a href="https://docs.f7cloud.com/server/latest/admin_manual"
|
||
|
||
style="color: var(--dark-link-color);"
|
||
|
||
>
|
||
latest
|
||
</a>
|
||
</dd>
|
||
|
||
<dd style="width: 32%">
|
||
<a href="https://docs.f7cloud.com/server/stable/admin_manual"
|
||
|
||
>
|
||
stable
|
||
</a>
|
||
</dd>
|
||
|
||
<dd style="width: 32%">
|
||
<a href="https://docs.f7cloud.com/server/31/admin_manual"
|
||
|
||
>
|
||
31
|
||
</a>
|
||
</dd>
|
||
|
||
<dd style="width: 32%">
|
||
<a href="https://docs.f7cloud.com/server/30/admin_manual"
|
||
|
||
>
|
||
30
|
||
</a>
|
||
</dd>
|
||
|
||
<dd style="width: 32%">
|
||
<a href="https://docs.f7cloud.com/server/29/admin_manual"
|
||
|
||
>
|
||
29
|
||
</a>
|
||
</dd>
|
||
|
||
</dl>
|
||
</div>
|
||
</div>
|
||
<script>
|
||
jQuery(function () {
|
||
SphinxRtdTheme.Navigation.enable(true);
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html> |