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
15 changes: 15 additions & 0 deletions .github/problem-matchers/sphinx-lint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"problemMatcher": [
{
"owner": "sphinx-lint",
"pattern": [
{
"regexp": "^([^:]+\\.(?:rst|py)):(\\d+): (.+)$",
"file": 1,
"line": 2,
"message": 3
}
]
}
]
}
42 changes: 42 additions & 0 deletions .github/workflows/sphinx-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: 'Sphinx Lint'

on:
pull_request:
push:
branches:
- master
- stable*

permissions:
contents: read

jobs:
sphinx-lint:
name: Lint RST files
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.13"
cache: "pip"

# The workflow pins sphinx-lint directly (not via requirements.txt) to keep
# this job lightweight — requirements.txt pulls in the full Sphinx build
# stack (Pillow, rst2pdf, reportlab, …) which is not needed for linting.
# sphinx-lint is also listed in requirements.txt so local dev environments
# get the same version when running `pip install -r requirements.txt`.
- name: Install sphinx-lint
run: pip install sphinx-lint==1.0.2

- name: Register sphinx-lint problem matcher
run: echo "::add-matcher::.github/problem-matchers/sphinx-lint.json"

- name: Run sphinx-lint
run: sphinx-lint admin_manual developer_manual user_manual
6 changes: 3 additions & 3 deletions admin_manual/ai/app_context_agent.rst
Original file line number Diff line number Diff line change
Expand Up @@ -442,8 +442,8 @@ Known Limitations
-----------------
* Make sure to test the language model you are using in concert with this app for whether they meet the use-case's quality requirements
* Most models have difficulties with languages other than English. Some models sometimes answer in a different language than the one used by the user.
* Customer support is available upon request, however we can't solve false or problematic output, most performance issues, or other problems caused by the underlying model.
Support is thus limited only to bugs directly caused by the implementation of the app (connectors, API, front-end, AppAPI). We still try to optimize this as far as possible, so if you encounter any false or problematic output, you can report it `in a dedicated Github issue <https://github.com/nextcloud/context_agent/issues/51>`_ to help us improve this app.
* Customer support is available upon request, however we can't solve false or problematic output, most performance issues, or other problems caused by the underlying model.
Support is thus limited only to bugs directly caused by the implementation of the app (connectors, API, front-end, AppAPI). We still try to optimize this as far as possible, so if you encounter any false or problematic output, you can report it `in a dedicated Github issue <https://github.com/nextcloud/context_agent/issues/51>`_ to help us improve this app.
* When multiple MCP services are configured that have tools with the same name undefined behavior will occur.
* Only remote MCP services are supported (streamable_http transport).
* MCP services that require different access tokens for each user are not currently supported.
* MCP services that require different access tokens for each user are not currently supported.
4 changes: 2 additions & 2 deletions admin_manual/ai/app_summary_bot.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ After cloning this app *manually* (cloned via git to your apps directory) you wi
.. code-block::

sudo -E -u www-data php occ app_api:app:unregister summary_bot


5. Register the Summary Bot so that your Nextcloud instance is aware of it

Expand Down Expand Up @@ -125,7 +125,7 @@ Ethical AI Rating

The ethical rating of the *Summary Bot*, which utilizes a model for text processing through the Nextcloud Assistant app, is significantly influenced by the choice and implementation of the underlying model.

Learn more about the Nextcloud Ethical AI Rating `in our blog<https://nextcloud.com/blog/nextcloud-ethical-ai-rating/>`.
Learn more about the Nextcloud Ethical AI Rating `in our blog <https://nextcloud.com/blog/nextcloud-ethical-ai-rating/>`_.

Known Limitations
-----------------
Expand Down
2 changes: 1 addition & 1 deletion admin_manual/ai/eu_ai_act.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@ Additional requirements when using large AI models

Nextcloud's AI products are designed to be used with smaller AI models that can also run on-premise. Nextcloud's AI Act compliance efforts thus assume you are using models that were trained using less than 10^25 floating point operations.
However, Nextcloud's AI products are designed (in accordance with the AI act) to be interoperable and therefore it is technically possible to use larger models.
If you decide to use larger models, this qualifies as a significant modification of the system and additional legal requirements for systemic-risk General purpose AI systems apply. Please refer to a lawyer and to `the EU AI Act <https://artificialintelligenceact.eu/gpai-guidelines-overview/comes>`_.
If you decide to use larger models, this qualifies as a significant modification of the system and additional legal requirements for systemic-risk General purpose AI systems apply. Please refer to a lawyer and to `the EU AI Act <https://artificialintelligenceact.eu/gpai-guidelines-overview/comes>`_.
2 changes: 1 addition & 1 deletion admin_manual/ai/insight_and_debugging.rst
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,4 @@ For example
{
...
}
]
]
2 changes: 1 addition & 1 deletion admin_manual/apps_management.rst
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ For example, to enable the "files" app, run:
To enable the app for specific groups, use the `--groups` option:

::

occ app:enable files --groups=admin


Expand Down
4 changes: 2 additions & 2 deletions admin_manual/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# https://www.sphinx-doc.org/en/master/usage/configuration.html
#
## Note that additional configuration elements shared by all Nextcloud docs
## are loaded from `../conf.py`.
## are loaded from `../conf.py`.

# -- Path setup --------------------------------------------------------------

Expand Down Expand Up @@ -119,7 +119,7 @@
'Nextcloud',
'The Nextcloud Server Administration Manual.',
'Miscellaneous',
),
),
]

# -- Options for todo extension ----------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions admin_manual/configuration_database/bigint_identifiers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ BigInt (64bit) identifiers
==========================

Nextcloud uses big integers to store identifiers and auto-increment keys in the database.
Because changing columns on huge tables can take quite a while (up to hours or days)
depending on the number of files in the Nextcloud instance, this migration on the filecache
Because changing columns on huge tables can take quite a while (up to hours or days)
depending on the number of files in the Nextcloud instance, this migration on the filecache
and activity table has to be triggered manually by a console command.

The command can safely be executed. It will show a success message when there is nothing to do::
Expand Down
10 changes: 5 additions & 5 deletions admin_manual/configuration_database/db_conversion.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Conversion consists of two steps:
Establishing the target database
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

First create up the target (new) database (along with its associated username and password) by following the manual database configuration instructions for your chosen target database type:
First create up the target (new) database (along with its associated username and password) by following the manual database configuration instructions for your chosen target database type:

* :ref:`db-config-mysql-label`
* :ref:`db-config-postgresql-label`
Expand All @@ -36,7 +36,7 @@ The ``occ db:convert-type`` command handles all the tasks of the conversion. The

sudo -E -u www-data php occ db:convert-type [options] type username hostname database

``type`` should be the target database type. The same values are available here as for the ``config.php`` ``dbtype`` parameter. It should be one of: ``mysql`` for MariaDB/MySQL,
``type`` should be the target database type. The same values are available here as for the ``config.php`` ``dbtype`` parameter. It should be one of: ``mysql`` for MariaDB/MySQL,
``pgsql`` for PostgreSQL, or ``oci`` for Oracle.

The options:
Expand All @@ -57,8 +57,8 @@ Let's convert our existing (functioning) sqlite3 installation to be MariaDB/MySQ

sudo -E -u www-data php occ db:convert-type --password="<password>" --port="3306" --all-apps mysql <username> <hostname> nextcloud

.. note:: It was unnecessary to specify the port in this example because ``3306`` is already the default. We did so
merely for demonstration purposes and completeness in case the reader is using a non-standard port on their target
.. note:: It was unnecessary to specify the port in this example because ``3306`` is already the default. We did so
merely for demonstration purposes and completeness in case the reader is using a non-standard port on their target
database server.

On success the converter will automatically configure the new database in your
Expand All @@ -70,7 +70,7 @@ If you are converting to a MySQL/MariaDB database, you will also want to set ``m

sudo -E -u www-data php occ config:system:set mysql.utf8mb4 --type boolean --value="true"

If you like, you can view the changes that were made by looking for the ``db*`` parameters in your ``config.php`` (you could also use this command before
If you like, you can view the changes that were made by looking for the ``db*`` parameters in your ``config.php`` (you could also use this command before
doing the conversion to compare your configuration before/after):

::
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Adjust the paths to the pem files for your environment.
PostgreSQL database
^^^^^^^^^^^^^^^^^^^

In order to run Nextcloud securely on PostgreSQL, it is assumed that only
In order to run Nextcloud securely on PostgreSQL, it is assumed that only
Nextcloud uses this database and thus only one user accesses the database.
For further services and users, we recommend to create a separate
database or PostgreSQL instance.
Expand Down
2 changes: 1 addition & 1 deletion admin_manual/configuration_database/replication.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Nextcloud can natively split read and write operations on a database query level

::

'dbreplica' => [
'dbreplica' => [
['user' => 'nextcloud', 'password' => 'password1', 'host' => '10.0.3.1', 'dbname' => 'nextcloud'],
['user' => 'nextcloud', 'password' => 'password2', 'host' => '10.0.3.2', 'dbname' => 'nextcloud'],
],
8 changes: 4 additions & 4 deletions admin_manual/configuration_files/encryption_configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ Definitions
- **User Keys:** Each user has their own key, protected by their password, to encrypt
their files.
- **Recovery Key:** An admin-defined key to recover files if users lose their passwords.
- **Disk/Block Device Encryption:** A method of securing all data stored on a physical
storage device by encrypting it at the hardware or filesystem level - typically using
tools such as LUKS on Linux - so that data is only accessible after the device is
- **Disk/Block Device Encryption:** A method of securing all data stored on a physical
storage device by encrypting it at the hardware or filesystem level - typically using
tools such as LUKS on Linux - so that data is only accessible after the device is
unlocked with the correct key or password.

Encryption Method Comparison
Expand Down Expand Up @@ -136,7 +136,7 @@ Key Management Modes
- If you need to prevent admins from accessing files, use E2EE.
- User key mode offers some protection against malicious server administrators, but has limitations.

**To select user key mode:**
**To select user key mode:**

Run:

Expand Down
18 changes: 9 additions & 9 deletions admin_manual/configuration_files/external_storage/amazons3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,24 @@ In the **Access key** field enter your *S3 access key ID*.

In the **Secret key** field enter your *S3 access key*.

**If you are using Amazon S3:** the :code:`Region` parameter is required unless you're happy with
the default of :code:`eu-west-1` (which will be used if you don't specify anything). There is no
need to override the :code:`Hostname` or :code:`Port`. And :code:`Storage Class` only needs to be
modified if you're using a different configuration at AWS. Lastly, :code:`Enable Path Style` is
rarely required with Amazon, but some legacy Amazon datacenters may require it. Leave
**If you are using Amazon S3:** the :code:`Region` parameter is required unless you're happy with
the default of :code:`eu-west-1` (which will be used if you don't specify anything). There is no
need to override the :code:`Hostname` or :code:`Port`. And :code:`Storage Class` only needs to be
modified if you're using a different configuration at AWS. Lastly, :code:`Enable Path Style` is
rarely required with Amazon, but some legacy Amazon datacenters may require it. Leave
:code:`Legacy (v2) authentication` unselected.

**If you using a non-Amazon hosted S3 store:** you will need to set the :code:`Hostname`
parameter (and can ignore the :code:`Region` parameter). You may need to enable :code:`Enable Path Style`
**If you using a non-Amazon hosted S3 store:** you will need to set the :code:`Hostname`
parameter (and can ignore the :code:`Region` parameter). You may need to enable :code:`Enable Path Style`
if your non-Amazon S3 store does *not* support requests like :code:`https://bucket.hostname.domain/`.
Setting :code:`Enable Path Style` to true configures the S3 client to make requests like
Setting :code:`Enable Path Style` to true configures the S3 client to make requests like
:code:`https://hostname.domain/bucket` instead. It's rare to need :code:`Legacy (v2) authentication`, but
enable it if your in-house object store or service provider requires it over the default (v4) authentication.

In the **Available for** field enter the users or groups who you want to give
give access to your S3 mount.

The ``Enable SSL`` checkbox enables HTTPS connections and generally preferred. It is the default unless
The ``Enable SSL`` checkbox enables HTTPS connections and generally preferred. It is the default unless
you disable it here.

Optionally, a 32-byte base64 encoded SSE-C key can be provided for server side encryption. See :doc:`../primary_storage` and the `SSE-C AWS documentation <https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html>`_ for more information how to generate a key.
Expand Down
26 changes: 13 additions & 13 deletions admin_manual/configuration_files/external_storage/ftp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,32 @@ FTP/FTPS

To connect to an FTP server, you will need:

* A folder name for your local mountpoint; the folder will be created if it
* A folder name for your local mountpoint; the folder will be created if it
does not exist
* The URL of the FTP server
* Port number (default: 21)
* FTP server username and password
* Remote Subfolder, the FTP directory to mount in Nextcloud. Nextcloud defaults
to the root directory. If you specify a subfolder you must leave
* Remote Subfolder, the FTP directory to mount in Nextcloud. Nextcloud defaults
to the root directory. If you specify a subfolder you must leave
off the leading slash. For example, ``public_html/images``

Your new mountpoint is available to all users by default, and you may restrict
access by entering specific users or groups in the **Available for** field.

Optionally, Nextcloud can use FTPS (FTP over SSL) by checking **Secure ftps://**.
This requires additional configuration with your root certificate if the FTP
Your new mountpoint is available to all users by default, and you may restrict
access by entering specific users or groups in the **Available for** field.

Optionally, Nextcloud can use FTPS (FTP over SSL) by checking **Secure ftps://**.
This requires additional configuration with your root certificate if the FTP
server uses a self-signed certificate.

.. figure:: images/ftp.png
:alt: Nextcloud GUI FTP configuration.
:alt: Nextcloud GUI FTP configuration.

.. note:: The external storage ``FTP/FTPS`` needs the ``allow_url_fopen`` PHP
setting to be set to ``1``. When having connection problems make sure that it
is not set to ``0`` in your ``php.ini``. See :ref:`label-phpinfo` to learn
setting to be set to ``1``. When having connection problems make sure that it
is not set to ``0`` in your ``php.ini``. See :ref:`label-phpinfo` to learn
how to find the right ``php.ini`` file to edit.

See :doc:`../external_storage_configuration_gui` for additional mount
See :doc:`../external_storage_configuration_gui` for additional mount
options and information.

FTP uses the password authentication scheme; see :doc:`auth_mechanisms` for
FTP uses the password authentication scheme; see :doc:`auth_mechanisms` for
more information on authentication schemes.
18 changes: 9 additions & 9 deletions admin_manual/configuration_files/external_storage/local.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ Local

Local storages provide access to any directory on the Nextcloud server. Since
this is a significant security risk, Local storage can only be configured in
the Nextcloud admin settings. Non-admin users cannot create Local storage
mounts.
the Nextcloud admin settings. Non-admin users cannot create Local storage
mounts.

Use this to mount any directory on your Nextcloud server that is outside
of your Nextcloud ``data/`` directory. This directory must be readable and
writable by your HTTP server user. These ownership and permission examples
Use this to mount any directory on your Nextcloud server that is outside
of your Nextcloud ``data/`` directory. This directory must be readable and
writable by your HTTP server user. These ownership and permission examples
are on Ubuntu Linux::

sudo chown -R www-data:www-data /path/to/localdir
Expand All @@ -21,18 +21,18 @@ Important: If you use consecutive commands, make sure, you are user ``www-data``
cd /path/to/localdir
mkdir data

In the **Folder name** field enter the folder name that you want to appear on
In the **Folder name** field enter the folder name that you want to appear on
your Nextcloud Files page.

In the **Configuration** field enter the full filepath of the directory you
In the **Configuration** field enter the full filepath of the directory you
want to mount.

In the **Available for** field enter the users or groups who have permission to
In the **Available for** field enter the users or groups who have permission to
access the mount. By default all users have access.

.. figure:: images/local.png

See :doc:`../external_storage_configuration_gui` for additional mount
See :doc:`../external_storage_configuration_gui` for additional mount
options and information.

See :doc:`auth_mechanisms` for more information on authentication schemes.
Loading
Loading