Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
342 changes: 312 additions & 30 deletions .github/workflows/sphinxbuild.yml

Large diffs are not rendered by default.

8 changes: 3 additions & 5 deletions admin_manual/configuration_database/mysql_4byte_support.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ installation needs to be tweaked a bit.

.. warning::

This manual only covers MySQL 8 or newer and MariaDB 10.2 or newer.
If you use MariaDB 10.2, please check
`this older version <https://docs.nextcloud.com/server/20/admin_manual/configuration_database/mysql_4byte_support.html#mariadb-10-2-or-earlier>`_
of the documentation. If you use an older version of MySQL or MariaDB, please note that they are no longer supported
by the current Nextcloud version.
This guide applies only to MySQL 8 or newer and MariaDB 10.6 or newer.
For a list of supported MySQL and MariaDB versions, see our
:doc:`system requirements documentation <../installation/system_requirements>`.

1. Make sure the following InnoDB settings are set on your MySQL server::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,5 +172,5 @@ enough for PHP, webservers or any load balancers involved.
Federated Cloud Sharing
-----------------------

If you are using `Federated Cloud Sharing <https://docs.nextcloud.com/server/32/admin_manual/configuration_files/federated_cloud_sharing_configuration.html>`_ and want to share large files, you can increase the timeout values for requests to the federated servers.
If you are using :doc:`Federated Cloud Sharing <federated_cloud_sharing_configuration>` and want to share large files, you can increase the timeout values for requests to the federated servers.
Therefore, you can set ``davstorage.request_timeout`` in your ``config.php``. The default value is 30 seconds.
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,6 @@ Further Reading
- :ref:`occ Command Reference: Encryption <encryption_label>`
- `How Nextcloud uses encryption to protect your data <https://nextcloud.com/blog/encryption-in-nextcloud/>`_
- `Technical impact of Authenticated Encryption <https://hackerone.com/reports/108082>`_
- `Nextcloud SSE Implementation Details <encryption_details.html>`_
- :doc:`Nextcloud SSE Implementation Details <encryption_details>`
- `Nextcloud Encryption (SSE & E2EE) Recovery Tools <https://github.com/nextcloud/encryption-recovery-tools>`_
- `Nextcloud E2EE Server API App (required for E2EE usage) <https://github.com/nextcloud/end_to_end_encryption/>`_
2 changes: 1 addition & 1 deletion admin_manual/configuration_files/encryption_details.rst
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ Sources
-------

- `encryption-recovery-tools repository on GitHub <https://github.com/nextcloud/encryption-recovery-tools>`_
- `Nextcloud Encryption Configuration documentation <https://docs.nextcloud.com/server/32/admin_manual/configuration_files/encryption_configuration.html>`_
- :doc:`Nextcloud Encryption Configuration documentation <encryption_configuration>`
- `Nextcloud Help response concerning the usage of version information <https://help.nextcloud.com/t/allow-file-decryption-with-only-the-files-keys-and-passwords/436/12>`_
- `Sourcecode: Creation of the Message Authentication Code <https://github.com/nextcloud/server/blob/a374d8837d6de459500e619cf608e0721ea14574/apps/encryption/lib/Crypto/Crypt.php#L504>`_
- `Sourcecode: Derivation of the Encryption Key <https://github.com/nextcloud/server/blob/a374d8837d6de459500e619cf608e0721ea14574/apps/encryption/lib/Crypto/Crypt.php#L346>`_
Expand Down
4 changes: 2 additions & 2 deletions admin_manual/configuration_files/external_storage/webdav.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ You need the following information:
* Folder name: The name of your local mountpoint.
* The URL of the WebDAV or Nextcloud server.
* Username and password for the remote server
* Secure https://: We always recommend https:// for security, though you can
leave this unchecked for http://.
* Secure ``https://``: We always recommend ``https://`` for security, though you can
leave this unchecked for ``http://``.

Optionally, a ``Remote Subfolder`` can be specified to change the destination
directory. The default is to use the whole root.
Expand Down
2 changes: 1 addition & 1 deletion admin_manual/installation/example_ubuntu.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ following commands in a terminal::

* This installs the packages for the Nextcloud core system.
If you are planning on running additional apps, keep in mind that they might
require additional packages. See `Prerequisites for manual installation <https://docs.nextcloud.com/server/32/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation>`_ for details.
require additional packages. See :ref:`Prerequisites for manual installation <prerequisites_label>` for details.

Now you need to create a database user and the database itself by using the
MySQL command line interface. The database tables will be created by Nextcloud
Expand Down
2 changes: 1 addition & 1 deletion admin_manual/office/configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Nextcloud Office App Settings
Collabora Online Server
***********************

URL (and port) of the Collabora Online server that provides the editing functionality as a WOPI client. Collabora Online should use the same protocol (http:// or https://) as the server installation. Naturally, https:// is recommended.
URL (and port) of the Collabora Online server that provides the editing functionality as a WOPI client. Collabora Online should use the same protocol (``http://`` or ``https://``) as the server installation. Naturally, ``https://`` is recommended.

Restrict usage to specific groups
*********************************
Expand Down
2 changes: 1 addition & 1 deletion developer_manual/app_publishing_maintenance/publishing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Be technically sound
Respect the users
^^^^^^^^^^^^^^^^^

* Apps have to follow design and `HTML/CSS layout guidelines <../html_css_design/css.html>`_.
* Apps have to follow design and :doc:`HTML/CSS layout guidelines <../html_css_design/css>`.
* Apps correctly clean up after themselves on uninstall and correctly handle up- and downgrades.
* Apps clearly communicate their intended purpose and active features, including features introduced through updates.
* Apps respect the users' choices and do not make unexpected changes, or limit users' ability to revert them. For example, they do not remove other apps or disable settings.
Expand Down
2 changes: 1 addition & 1 deletion developer_manual/basics/controllers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -816,7 +816,7 @@ To turn off checks the following *Attributes* can be added before the controller
* ``#[NoAdminRequired]``: Also users that are not admins can access the page
* ``#[PublicPage]``: Everyone can access the page without having to log in
* ``#[NoTwoFactorRequired]``: A user can access the page before the two-factor challenge has been passed (use this wisely and only in two-factor auth apps, e.g. to allow setup during login)
* ``#[NoCSRFRequired]``: Don't check the CSRF token (use this wisely since you might create a security hole; to understand what it does see `CSRF in the security section <../prologue/security.html#cross-site-request-forgery>`__)
* ``#[NoCSRFRequired]``: Don't check the CSRF token (use this wisely since you might create a security hole; to understand what it does see :ref:`CSRF in the security section <csrf_introduction>`)

.. note::

Expand Down
2 changes: 1 addition & 1 deletion developer_manual/basics/storage/filesystem.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Nextcloud filesystem API

High level guide to using the Nextcloud filesystem API.

Because users can choose their storage backend, the filesystem should be accessed by using the appropriate filesystem classes. For a simplified filesystem for app specific data see `IAppData <appdata.html>`_
Because users can choose their storage backend, the filesystem should be accessed by using the appropriate filesystem classes. For a simplified filesystem for app specific data see :doc:`IAppData <appdata>`

Node API
^^^^^^^^
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ General
You describe what you want to do, ask feedback on the direction you take it and take it from there.
* When you are finished, use the merge request function on GitHub to create a pull request.
The other developers will look at it and give you feedback. You can signify that your PR is ready for review by adding the label "3. to review" to it.
See `the code review page for more information <../prologue/bugtracker/codereviews.html>`_
See :doc:`the code review page for more information <../../prologue/bugtracker/codereviews>`
* It is key to keep changes separate and small. The bigger and more hairy a PR grows, the harder it is to get it in.
So split things up where you can in smaller changes - if you need a small improvement like a API addition for a big feature addition, get it in first rather than adding it to the big piece of work!
* Decisions are made by consensus. We strive for making the best technical decisions and as nobody can know everything, we collaborate.
Expand Down
2 changes: 2 additions & 0 deletions developer_manual/prologue/security.rst
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,8 @@ Sensitive data exposure

Always store user data or configuration files in safe locations, e.g. **nextcloud/data/** and not in the webroot where they can be accessed by anyone using a web browser.

.. _csrf_introduction:

Cross site request forgery
--------------------------

Expand Down
262 changes: 71 additions & 191 deletions user_manual/_templates/versions.html
Original file line number Diff line number Diff line change
@@ -1,187 +1,83 @@
{% if READTHEDOCS %}
{# Add rst-badge after rst-versions for small badge style. #}
{# Add rst-badge after rst-versions for small badge style. #}
<!-- Here go the languages -->
{% set available_languages = available_languages|sort %}

{# Language code to name mapping #}
{% set language_names = {
'af': 'Afrikaans',
'ar': 'Arabic',
'br': 'Breton',
'ca': 'Catalan',
'cs': 'Czech',
'da': 'Danish',
'de': 'German',
'el': 'Greek',
'eo': 'Esperanto',
'es': 'Spanish',
'en': 'English',
'eu': 'Basque',
'fi_FI': 'Finnish',
'fr': 'French',
'hr': 'Croatian',
'hu_HU': 'Hungarian',
'ga': 'Irish',
'gl': 'Galician',
'id': 'Indonesian',
'it': 'Italian',
'ja_JP': 'Japanese',
'ko': 'Korean',
'mn': 'Mongolian',
'nb_NO': 'Norwegian (NB)',
'nl': 'Dutch',
'nn': 'Norwegian (NN)',
'pl': 'Polish',
'pt_PT': 'Portuguese',
'pt_BR': 'Portuguese (BR)',
'ro': 'Romanian',
'ru': 'Russian',
'si': 'Sinhala',
'sk_SK': 'Slovakian',
'sq': 'Albanian',
'sr': 'Slovenian',
'sv': 'Swedish',
'ta': 'Tamil',
'tr': 'Turkish',
'uk_UA': 'Ukrainian',
'uz': 'Uzbek',
'vi': 'Vietnamese',
'zh_CN': 'Chinese',
'zh_HK': 'Chinese (HK)',
'zh_TW': 'Chinese (TW)'
} %}

{# Build list of {code, name} pairs for available languages #}
{% set language_tuples = [] %}
{% for code in available_languages %}
{% set _ = language_tuples.append({'code': code, 'name': language_names.get(code, code)}) %}
{% endfor %}
{% set sorted_languages = language_tuples | sort(attribute='name') %}

<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
<span class="rst-current-version" data-toggle="rst-current-version">
🌐
{% set language_code = language %}
{% if language_code == 'cs' %}
Czech
{% elif language_code == 'da' %}
Danish
{% elif language_code == 'de' %}
German
{% elif language_code == 'el' %}
Greek
{% elif language_code == 'es' %}
Spanish
{% elif language_code == 'en' %}
English
{% elif language_code == 'fi_FI' %}
Finnish
{% elif language_code == 'fr' %}
French
{% elif language_code == 'hr' %}
Croatian
{% elif language_code == 'hu_HU' %}
Hungarian
{% elif language_code == 'id' %}
Indonesian
{% elif language_code == 'it' %}
Italian
{% elif language_code == 'ja_JP' %}
Japanese
{% elif language_code == 'ko' %}
Korean
{% elif language_code == 'mn' %}
Mongolian
{% elif language_code == 'nb_NO' %}
Norwegian
{% elif language_code == 'nl' %}
Dutch
{% elif language_code == 'pl' %}
Polish
{% elif language_code == 'pt_PT' %}
Portuguese
{% elif language_code == 'pt_BR' %}
Portuguese (BR)
{% elif language_code == 'ro' %}
Romanian
{% elif language_code == 'ru' %}
Russian
{% elif language_code == 'sk_SK' %}
Slovakian
{% elif language_code == 'sq' %}
Albanian
{% elif language_code == 'sr' %}
Slovenian
{% elif language_code == 'sv' %}
Swedish
{% elif language_code == 'tr' %}
Turkish
{% elif language_code == 'uk' %}
Ukrainian
{% elif language_code == 'uz' %}
Uzbek
{% elif language_code == 'vi' %}
Vietnamese
{% elif language_code == 'zh_CN' %}
Chinese
{% elif language_code == 'zh_HK' %}
Chinese (HK)
{% elif language_code == 'zh_TW' %}
Chinese (TW)
{% else %}
{{ language_code }}
{% endif %}
🌐 {{ language_names.get(language, language) }}
<span class="fa fa-caret-down"></span>

 ☁️ {{ current_version }}
☁️ {{ current_version }}
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>🌐 {{ _('Languages') }}</dt>
{% for language_code in available_languages %}
<dd style="width: 32%; vertical-align: top;">
<a href="/server/latest/user_manual/{{ language_code }}/"
{% if language_code == language %}
style="color: var(--dark-link-color);"
{% endif %}
>
{% if language_code == 'af' %}
Afrikaans
{% elif language_code == 'ar' %}
Arabic
{% elif language_code == 'br' %}
Breton
{% elif language_code == 'ca' %}
Catalan
{% elif language_code == 'cs' %}
Czech
{% elif language_code == 'da' %}
Danish
{% elif language_code == 'de' %}
German
{% elif language_code == 'el' %}
Greek
{% elif language_code == 'eo' %}
Esperanto
{% elif language_code == 'es' %}
Spanish
{% elif language_code == 'en' %}
English
{% elif language_code == 'fi_FI' %}
Finnish
{% elif language_code == 'fr' %}
French
{% elif language_code == 'hr' %}
Croatian
{% elif language_code == 'hu_HU' %}
Hungarian
{% elif language_code == 'ga' %}
Irish
{% elif language_code == 'gl' %}
Glacian
{% elif language_code == 'id' %}
Indonesian
{% elif language_code == 'it' %}
Italian
{% elif language_code == 'ja_JP' %}
Japanese
{% elif language_code == 'ko' %}
Korean
{% elif language_code == 'mn' %}
Mongolian
{% elif language_code == 'nb_NO' %}
Norwegian (NB)
{% elif language_code == 'nl' %}
Dutch
{% elif language_code == 'nn' %}
Norwegian (NN)
{% elif language_code == 'pl' %}
Polish
{% elif language_code == 'pt_PT' %}
Portuguese
{% elif language_code == 'pt_BR' %}
Portuguese (BR)
{% elif language_code == 'ro' %}
Romanian
{% elif language_code == 'ru' %}
Russian
{% elif language_code == 'si' %}
Sinhala
{% elif language_code == 'sk_SK' %}
Slovakian
{% elif language_code == 'sq' %}
Albanian
{% elif language_code == 'sr' %}
Slovenian
{% elif language_code == 'sv' %}
Swedish
{% elif language_code == 'ta' %}
Tamil
{% elif language_code == 'tr' %}
Turkish
{% elif language_code == 'uk' %}
Ukrainian
{% elif language_code == 'uz' %}
Uzbek
{% elif language_code == 'vi' %}
Vietnamese
{% elif language_code == 'zh_CN' %}
Chinese
{% elif language_code == 'zh_HK' %}
Chinese (HK)
{% elif language_code == 'zh_TW' %}
Chinese (TW)
{% else %}
{{ language_code }}
{% endif %}
</a>
</dd>
{% endfor %}
{% for lang in sorted_languages %}
<dd style="width: 32%; vertical-align: top;">
<a href="/server/latest/user_manual/{{ lang.code }}/"
{% if lang.code == language %}
style="color: var(--dark-link-color);"
{% endif %}
>
{{ lang.name }}
</a>
</dd>
{% endfor %}
</dl>
</div>
<div class="rst-other-versions">
Expand All @@ -199,22 +95,6 @@
</dd>
{% endfor %}
</dl>
<dl>
<dt>{{ _('Downloads') }}</dt>
{% for type, url in downloads %}
<dd><a href="{{ url }}">{{ type }}</a></dd>
{% endfor %}
</dl>
<dl>
{# Translators: The phrase "Read the Docs" is not translated #}
<dt>{{ _('On Read the Docs') }}</dt>
<dd>
<a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">{{ _('Project Home') }}</a>
</dd>
<dd>
<a href="//{{ PRODUCTION_DOMAIN }}/builds/{{ slug }}/?fromdocs={{ slug }}">{{ _('Builds') }}</a>
</dd>
</dl>
</div>
</div>
{% endif %}
{% endif %}
Loading
Loading