CINXE.COM
Nextcloud developer documentation — Nextcloud latest Developer Manual latest documentation
<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Nextcloud developer documentation — Nextcloud latest Developer Manual latest documentation</title> <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=03e43079" /> <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=bad88653" /> <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> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="Prologue" href="prologue/index.html" /> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search" > <a href="#"> <img src="_static/logo-white.png" class="logo" alt="Logo"/> </a> <div role="search"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> <ul> <li class="toctree-l1"><a class="reference internal" href="prologue/index.html">Prologue</a></li> <li class="toctree-l1"><a class="reference internal" href="getting_started/index.html">Getting started</a></li> <li class="toctree-l1"><a class="reference internal" href="basics/index.html">Basic concepts</a></li> <li class="toctree-l1"><a class="reference internal" href="app_development/index.html">App development</a></li> <li class="toctree-l1"><a class="reference internal" href="exapp_development/index.html">ExApp development</a></li> <li class="toctree-l1"><a class="reference internal" href="server/index.html">Server development</a></li> <li class="toctree-l1"><a class="reference internal" href="digging_deeper/index.html">Digging deeper</a></li> <li class="toctree-l1"><a class="reference internal" href="app_publishing_maintenance/index.html">App publishing and maintenance</a></li> <li class="toctree-l1"><a class="reference internal" href="design/index.html">Interface & interaction design</a></li> <li class="toctree-l1"><a class="reference internal" href="html_css_design/index.html">HTML/CSS guidelines</a></li> <li class="toctree-l1"><a class="reference internal" href="client_apis/index.html">Clients and Client APIs</a></li> <li class="toctree-l1"><a class="reference internal" href="desktop/index.html">Desktop Clients</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="#">Nextcloud latest Developer 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="#" class="icon icon-home" aria-label="Home"></a></li> <li class="breadcrumb-item active">Nextcloud developer documentation</li> <li class="wy-breadcrumbs-aside"> <a href="https://github.com/nextcloud/documentation/edit/master/developer_manual/index.rst" class="fa fa-github"> Edit on GitHub</a> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <section id="nextcloud-developer-documentation"> <span id="contents"></span><h1>Nextcloud developer documentation<a class="headerlink" href="#nextcloud-developer-documentation" title="Link to this heading"></a></h1> <section id="table-of-contents"> <h2>Table of contents<a class="headerlink" href="#table-of-contents" title="Link to this heading"></a></h2> <div class="toctree-wrapper compound"> <ul> <li class="toctree-l1"><a class="reference internal" href="prologue/index.html">Prologue</a><ul> <li class="toctree-l2"><a class="reference internal" href="prologue/code-of-conduct.html">Code of conduct</a></li> <li class="toctree-l2"><a class="reference internal" href="prologue/help_communication.html">Help and communication</a></li> <li class="toctree-l2"><a class="reference internal" href="prologue/bugtracker/index.html">Bugtracker</a></li> <li class="toctree-l2"><a class="reference internal" href="prologue/security.html">Security guidelines</a></li> <li class="toctree-l2"><a class="reference internal" href="prologue/compatibility_app_ecosystem.html">Compatibility with the app ecosystem</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="getting_started/index.html">Getting started</a><ul> <li class="toctree-l2"><a class="reference internal" href="getting_started/development_process.html">Development process</a></li> <li class="toctree-l2"><a class="reference internal" href="getting_started/devenv.html">Development environment</a></li> <li class="toctree-l2"><a class="reference internal" href="getting_started/coding_standards/index.html">Coding style & general guidelines</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="basics/index.html">Basic concepts</a><ul> <li class="toctree-l2"><a class="reference internal" href="basics/request_lifecycle.html">Request lifecycle</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/routing.html">Routing</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/dependency_injection.html">Dependency injection</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/controllers.html">Controllers</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/middlewares.html">Middlewares</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/events.html">Events</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/front-end/index.html">Front-end</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/backgroundjobs.html">Background jobs (Cron)</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/caching.html">Caching</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/logging.html">Logging</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/setting.html">Settings</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/storage/index.html">Storage and database</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/public_share_template.html">Public share template</a></li> <li class="toctree-l2"><a class="reference internal" href="basics/testing.html">Testing</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="app_development/index.html">App development</a><ul> <li class="toctree-l2"><a class="reference internal" href="app_development/intro.html">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="app_development/tutorial.html">Tutorial</a></li> <li class="toctree-l2"><a class="reference internal" href="app_development/bootstrap.html">Bootstrapping</a></li> <li class="toctree-l2"><a class="reference internal" href="app_development/info.html">App metadata</a></li> <li class="toctree-l2"><a class="reference internal" href="app_development/init.html">Navigation and pre-app configuration</a></li> <li class="toctree-l2"><a class="reference internal" href="app_development/dependency_management.html">Dependency management</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="exapp_development/index.html">ExApp development</a><ul> <li class="toctree-l2"><a class="reference internal" href="exapp_development/Introduction.html">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="exapp_development/DevSetup.html">Setting up dev environment</a></li> <li class="toctree-l2"><a class="reference internal" href="exapp_development/development_overview/index.html">Development overview</a></li> <li class="toctree-l2"><a class="reference internal" href="exapp_development/tech_details/index.html">Technical details</a></li> <li class="toctree-l2"><a class="reference internal" href="exapp_development/faq/index.html">Frequently Asked Questions</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="server/index.html">Server development</a><ul> <li class="toctree-l2"><a class="reference internal" href="server/code-front-end.html">Front-end code</a></li> <li class="toctree-l2"><a class="reference internal" href="server/code-back-end.html">Back-end code</a></li> <li class="toctree-l2"><a class="reference internal" href="server/static-analysis.html">Static analysis</a></li> <li class="toctree-l2"><a class="reference internal" href="server/unit-testing.html">Unit-Testing</a></li> <li class="toctree-l2"><a class="reference internal" href="server/externalapi.html">External API</a></li> <li class="toctree-l2"><a class="reference internal" href="server/architecture/index.html">Nextcloud architecture</a></li> <li class="toctree-l2"><a class="reference internal" href="how_to/index.html">How to test …</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="digging_deeper/index.html">Digging deeper</a><ul> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/api.html">API reference</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/config/index.html">Config & Preferences</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/classloader.html">Classloader</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/continuous_integration.html">Continuous Integration</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/dashboard.html">Dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/deadlock.html">Deadlocks</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/debugging.html">Debugging</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/email.html">Email</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/files-metadata.html">Files Metadata</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/groupware/index.html">Groupware integration</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/http_client.html">HTTP Client</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/javascript-apis.html">JavaScript APIs</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/translation.html">Machine Translation</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/flow.html">Nextcloud Flow</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/npm.html">NPM</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/notifications.html">Notifications</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/out_of_office.html">Out-of-office periods</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/performance.html">Performance considerations</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/phonenumberutil.html">Phone number util</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/psr.html">PSR</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/profile.html">Profile</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/profiler.html">Profiler</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/projects.html">Projects</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/publicpage.html">Public Pages</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/reference.html">Reference providers</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/repair.html">Repair steps</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/rest_apis.html">REST APIs</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/search.html">Search</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/security.html">Security</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/settings.html">Settings</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/setup_checks.html">Setup checks</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/speech-to-text.html">Speech-To-Text</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/talk.html">Talk Integration</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/task_processing.html">Task Processing</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/text_processing.html">Text Processing</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/text2image.html">Text-To-Image</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/two-factor-provider.html">Two-factor providers</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/status.html">User Status</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/user_migration.html">User migration</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/users.html">User management</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/web_host_metadata.html">Web Host Metadata</a></li> <li class="toctree-l2"><a class="reference internal" href="digging_deeper/time.html">Working with time</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="app_publishing_maintenance/index.html">App publishing and maintenance</a><ul> <li class="toctree-l2"><a class="reference internal" href="app_publishing_maintenance/maintainer.html">Maintainers</a></li> <li class="toctree-l2"><a class="reference internal" href="app_publishing_maintenance/release_process.html">Release process</a></li> <li class="toctree-l2"><a class="reference external" href="https://nextcloudappstore.readthedocs.io/en/latest/developer.html">Publishing App on the App Store</a></li> <li class="toctree-l2"><a class="reference internal" href="app_publishing_maintenance/monetizing.html">Monetizing your app</a></li> <li class="toctree-l2"><a class="reference internal" href="app_publishing_maintenance/publishing.html">The Nextcloud app store rules</a></li> <li class="toctree-l2"><a class="reference internal" href="app_publishing_maintenance/code_signing.html">Code signing</a></li> <li class="toctree-l2"><a class="reference internal" href="app_publishing_maintenance/release_automation.html">Release Automation</a></li> <li class="toctree-l2"><a class="reference internal" href="app_publishing_maintenance/app_upgrade_guide/index.html">App upgrade guide</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="design/index.html">Interface & interaction design</a><ul> <li class="toctree-l2"><a class="reference internal" href="design/introduction.html">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="design/foundations.html">Foundations</a></li> <li class="toctree-l2"><a class="reference internal" href="design/layout.html">Layout</a></li> <li class="toctree-l2"><a class="reference internal" href="design/layoutcomponents.html">Layout components</a></li> <li class="toctree-l2"><a class="reference internal" href="design/atomiccomponents.html">Atomic components</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="html_css_design/index.html">HTML/CSS guidelines</a><ul> <li class="toctree-l2"><a class="reference internal" href="html_css_design/navigation.html">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/navigation.html#new-button">New button</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/navigation.html#app-navigation-menu">App navigation menu</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/navigation.html#settings">Settings</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/content.html">Main content</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/list.html">Content list</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/popovermenu.html">Popover menu</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/html.html">HTML elements</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/css.html">CSS</a></li> <li class="toctree-l2"><a class="reference internal" href="html_css_design/icons.html">Icons</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="client_apis/index.html">Clients and Client APIs</a><ul> <li class="toctree-l2"><a class="reference internal" href="client_apis/general.html">General</a></li> <li class="toctree-l2"><a class="reference internal" href="client_apis/activity-api.html">Activity</a></li> <li class="toctree-l2"><a class="reference internal" href="client_apis/android_library/index.html">Android</a></li> <li class="toctree-l2"><a class="reference internal" href="client_apis/files.html">Files</a></li> <li class="toctree-l2"><a class="reference internal" href="client_apis/LoginFlow/index.html">Login Flow</a></li> <li class="toctree-l2"><a class="reference internal" href="client_apis/OCS/index.html">OCS API</a></li> <li class="toctree-l2"><a class="reference internal" href="client_apis/RemoteWipe/index.html">Remote wipe</a></li> <li class="toctree-l2"><a class="reference internal" href="client_apis/WebDAV/index.html">Webdav</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="desktop/index.html">Desktop Clients</a><ul> <li class="toctree-l2"><a class="reference internal" href="desktop/building.html">Building the Client</a></li> </ul> </li> </ul> </div> </section> </section> </div> </div> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> <a href="prologue/index.html" class="btn btn-neutral float-right" title="Prologue" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> </div> <hr/> <div role="contentinfo"> <p>© Copyright 2025 Nextcloud GmbH.</p> </div> </footer> </div> </div> </section> </div> <script> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>