Merge branch 'master' into tofuSCHNITZEL-patch-1

This commit is contained in:
Tobias Perschon
2024-09-13 11:43:30 +02:00
committed by GitHub
101 changed files with 1149 additions and 956 deletions

View File

@@ -1,51 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Rebase command
on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/rebase`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "-1"

View File

@@ -28,6 +28,6 @@ jobs:
steps:
- name: Run check
uses: skjnldsv/block-fixup-merge-action@42d26e1b536ce61e5cf467d65fb76caf4aa85acf # v1
uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -20,7 +20,7 @@ jobs:
pre-build-command: pip install -r requirements.txt
build-command: make gettext
- uses: peter-evans/create-pull-request@v6
- uses: peter-evans/create-pull-request@v7
id: cpr
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -23,7 +23,7 @@ jobs:
shell: bash
run: tar czf /tmp/documentation.tar.gz -C user_manual/_build/html .
- name: Upload static documentation
uses: actions/upload-artifact@v4.3.6
uses: actions/upload-artifact@v4.4.0
with:
name: User manual.zip
path: "/tmp/documentation.tar.gz"
@@ -55,7 +55,7 @@ jobs:
shell: bash
run: tar czf /tmp/documentation.tar.gz -C developer_manual/_build/html/com .
- name: Upload static documentation
uses: actions/upload-artifact@v4.3.6
uses: actions/upload-artifact@v4.4.0
with:
name: Developer manual.zip
path: "/tmp/documentation.tar.gz"
@@ -75,7 +75,7 @@ jobs:
shell: bash
run: tar czf /tmp/documentation.tar.gz -C admin_manual/_build/html/com .
- name: Upload static documentation
uses: actions/upload-artifact@v4.3.6
uses: actions/upload-artifact@v4.4.0
with:
name: Administration manual.zip
path: "/tmp/documentation.tar.gz"

View File

@@ -43,10 +43,8 @@ Machine translation
In order to make use of machine translation features in the assistant, you will need an app that provides a translation backend:
* :ref:`translate<ai-app-translate>` - Runs open source AI translation models locally on your own server hardware (Customer support available upon request)
* :ref:`translate2 (ExApp)<ai-app-translate2>` - Runs open source AI translation models locally on your own server hardware (Customer support available upon request)
* *integration_deepl* - Integrates with the deepl API to provide translation functionality from Deepl.com servers (Only community supported)
* *integration_libretranslate* - Integrates with the open source LibreTranslate API to provide translation functionality hosted commercially or on your own hardware (Only community supported)
Speech-To-Text
~~~~~~~~~~~~~~
@@ -69,7 +67,7 @@ Text-To-Image
In order to make use of Text-To-Image features, you will need an app that provides an image generation backend:
* text2image_stablediffusion2 (Customer support available upon request)
* text2image_stablediffusion (Customer support available upon request)
* *integration_openai* - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
* *integration_replicate* - Integrates with the replicate API to provide AI functionality from replicate servers (see :ref:`AI as a Service<ai-ai_as_a_service>`)

View File

@@ -13,7 +13,7 @@ Together they provide the ContextChat text processing tasks accessible via the :
The *context_chat* and *context_chat_backend* apps will use the Free text to text task processing providers like OpenAI integration, LLM2, etc. and such a provider is required on a fresh install, or it can be configured to run open source models entirely on-premises. Nextcloud can provide customer support upon request, please talk to your account manager for the possibilities.
This app supports input and output in languages other than English if the language model supports the language.
This app supports input and output mainly in English, other languages may work if the language model supports the language, but are currently not guaranteed to produce good results.
Requirements
------------
@@ -100,6 +100,7 @@ Known Limitations
-----------------
* Language models are likely to generate false information and should thus only be used in situations that are not critical. It's recommended to only use AI at the beginning of a creation process and not at the end, so that outputs of AI serve as a draft for example and not as final product. Always check the output of language models before using it.
* Context Chat is not integrated into the Chat UI of assistant app, at the moment, but has it's own interface in the assistant modal
* Make sure to test this app for whether it meets your use-case's quality requirements
* 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)
* Nextcloud usernames can be only 56 characters long. This is a limitation of the vector database we use (Chroma DB) and will be fixed soon.

View File

@@ -11,8 +11,22 @@ This app uses `ctransformers <https://github.com/marella/ctransformers>`_ under
* `Llama3 8b Instruct <https://huggingface.co/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF>`_ (reasonable quality; fast; good acclaim; multilingual output may not be optimal)
* `Llama3 70B Instruct <https://huggingface.co/QuantFactory/Meta-Llama-3-70B-Instruct-GGUF>`_ (good quality; good acclaim; good multilingual output)
Multilinguality
---------------
This app supports input and output in languages other than English if the underlying model supports the language.
Llama 3.1 `supports the following languages: <https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct#multilingual-benchmarks>`_
* English
* Portuguese
* Spanish
* Italian
* German
* French
* Hindi
* Thai
Requirements
------------

View File

@@ -13,6 +13,8 @@ This app uses `faster-whisper <https://github.com/SYSTRAN/faster-whisper>`_ unde
* OpenAI Whisper large-v2 or v3 (multilingual)
* OpenAI Whisper medium.en (English only)
Whisper large v3 supports about ~100 languages and shows outstanding performance in ~10 of them. For more details see the `OpenAI Whisper paper <https://cdn.openai.com/papers/whisper.pdf>`_
Requirements
------------

View File

@@ -0,0 +1,137 @@
==========================================
App: Summary Bot (Talk chat summarize bot)
==========================================
.. _ai-app-summary-bot:
The *Summary Bot* app utilizes Large Language Model (LLM) providers in Nextcloud and can be added to a conversation in `Nextcloud Talk` to generate summaries from the chat messages of that room either on-demand or following a schedule.
It can run on only open source or proprietary models either on-premises or in the cloud leveraging apps like `Local large language model app <https://apps.nextcloud.com/apps/llm2>`_ or `OpenAI and LocalAI integration app <https://apps.nextcloud.com/apps/integration_openai>`_.
Nextcloud can provide customer support upon request, please talk to your account manager for the possibilities.
The app currently supports the following languages:
* English (en)
The quality of summaries depends directly on the quality of the underlying model. It is recommended to test the model for the desired use-case before applying it.
Requirements
------------
* Minimal Nextcloud version: 30
* Docker
* AppAPI >= 3.0.0
* Talk
* Task Processing Provider like Local large language model app (llm2) or OpenAI and LocalAI integration app (integration_openai)
Space usage
~~~~~~~~~~~
* ~100MB
Installation
------------
0. Make sure the following apps are installed:
- `Nextcloud AppAPI app <https://apps.nextcloud.com/apps/app_api>`_
- `Nextcloud Talk app (Spreed) <https://apps.nextcloud.com/apps/spreed>`_
- One of the following AI model providers:
- `Nextcloud Local large language model app <https://apps.nextcloud.com/apps/llm2>`_
- `Nextcloud OpenAI and LocalAI integration app <https://apps.nextcloud.com/apps/integration_openai>`_
Setup (via App Store)
~~~~~~~~~~~~~~~~~~~~~
1. Install the *Summary Bot* app via the "External Apps" page in Nextcloud
2. Enable the *Summary Bot* Bot for the selected Chatroom via the three dots menu of the Chatroom (The Bots settings are located inside the *Bots* section)
Setup (Manual)
~~~~~~~~~~~~~~
After cloning this app *manually* (cloned via git to your apps directory) you will need to execute the following steps:
1. Change to the folder you have cloned the source to:
.. code-block::
cd /path/to/your/nextcloud/webroot/apps/summarai/
2. Build the docker image:
.. code-block::
docker build --no-cache -f Dockerfile -t local_summarai .
3. Run the docker image:
*Info:*
- APP_VERSION environment variable should be equal to the version of the *Summary Bot* you are using
- NEXTCLOUD_URL environment variable must be set to your Nextcloud instance's URL, ensuring it's reachable by the docker image.
.. code-block::
sudo docker run -ti -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -e APP_ID=summarai -e APP_DISPLAY_NAME="Summary Bot" -e APP_HOST=0.0.0.0 -e APP_PORT=9031 -e APP_SECRET=12345 -e APP_VERSION=1.0.0 -e NEXTCLOUD_URL='<YOUR_NEXTCLOUD_URL_REACHABLE_FROM_INSIDE_DOCKER>' -p 9031:9031 local_summarai
4. Un-register the Summary Bot if its already installed
.. code-block::
sudo -u <the_user_the_webserver_is_running_as> php /path/to/your/nextcloud/webroot/occ app_api:app:unregister summarai
5. Register the Summary Bot so that your Nextcloud instance is aware of it
*Info:* Adjust the host value in the following example to the IP address of the docker container (for added security)
.. code-block::
sudo -u <the_user_the_webserver_is_running_as> php ./occ app_api:app:register summarai manual_install --json-info '{ "id": "summarai", "name": "Summary Bot", "daemon_config_name": "manual_install", "version": "1.0.0", "secret": "12345", "host": "0.0.0.0", "port": 9031, "scopes": ["AI_PROVIDERS", "TALK", "TALK_BOT"], "protocol": "http"}' --force-scopes --wait-finish
6. Enable the *Summary Bot* for the selected Chatroom via the three dots menu of the Chatroom (The Bots settings are located inside the *Bots* section)
Usage
-----
After enabling the *Summary Bot* in a Chatroom, you can test its functionality by simply sending the message below:
"@summary" or "@summary help"
App store
---------
You can also find the app in our app store, where you can write a review: `<https://apps.nextcloud.com/apps/summarai>`_
Repository
----------
You can find the app's code repository on GitHub where you can report bugs and contribute fixes and features: `<https://github.com/nextcloud/sumupbot>`_
Nextcloud customers should file bugs directly with our Customer Support.
Ethical AI Rating
-----------------
The ethical rating of the *SummarAI 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/>`.
Known Limitations
-----------------
* The Summary Bot cannot access previous conversations, it only recognizes messages from the moment it was enabled in the chatroom.
* Summary of maximum 40000 characters is supported. This assumes the underlying model can handle this amount of text (which should be close to 16000 context length).
* Languages other than English are not supported. The underlying model may still be able to understand other languages.
* AI models may occasionally produce inaccurate information. Therefore, they should be employed with caution in non-critical scenarios. It's essential to verify the accuracy of the bot's output before application.
* Be aware that AI models can consume a significant amount of energy. It's advisable to consider this factor in the planning and operation of AI systems if hosted on-premises or sustainability is a concern.
* AI models can exhibit extended processing times when run on CPUs. For enhanced efficiency, utilizing GPU support is recommended to expedite request handling.
* Customer support is available upon request, however we can't solve false or problematic output (hallucinations), most performance issues, or other problems caused by the underlying models. Support is thus limited only to bugs directly caused by the implementation of the app (connectors, API, front-end, AppAPI)

View File

@@ -1,105 +0,0 @@
==========================================
App: Local Machine translation (translate)
==========================================
.. _ai-app-translate:
The *translate* app is one of the apps that provide machine translation functionality in Nextcloud and act as a translation backend for the :ref:`Nextcloud Assistant app<ai-app-assistant>`, the *text* app and :ref:`other apps making use of the core Translation API<mt-consumer-apps>`. The *translate* app specifically runs only open source models and does so entirely on-premises. Nextcloud can provide customer support upon request, please talk to your account manager for the possibilities.
The app currently supports the following languages:
* English (en)
* German (de)
* French (fr)
* Spanish (es)
* Chinese (zh)
As the models are entirely open source, the quality of translations may not be comparable to commercially available machine translation services.
Requirements
------------
* Minimal Nextcloud version: 26
* x86 CPU with 4-8 cores for the app to use (The more cores the faster it will be)
* 2GB of RAM for the app should be enough
* GNU lib C (musl is not supported)
* This app does not support using GPU for processing and may thus not be performing ideally for long texts
* The workload will run on the web server workers
(*Note*: Nextcloud AIO is currently not supported due to it using musl)
Space usage
~~~~~~~~~~~
* ~1GB per language pair
* ~10GB in total
Installation
------------
0. Make sure the :ref:`Nextcloud Assistant app<ai-app-assistant>` is installed
1. Install the *translate* app via the "Apps" page in Nextcloud, or by executing
occ app:enable translate
Setup
~~~~~
After installing this app you will need to run:
.. code-block::
occ translate:download-models
You may also download only specific languages by using the following command:
.. code-block::
occ translate:download-models <languages>
For example
.. code-block::
occ translate:download-models de en
will download both en->de and de->en.
.. code-block::
occ translate:download-models de en es
will download en->de, de->en, en->es, es->en, es->de, de->es
App store
---------
You can also find the app in our app store, where you can write a review: `<https://apps.nextcloud.com/apps/translate>`_
Repository
----------
You can find the app's code repository on GitHub where you can report bugs and contribute fixes and features: `<https://github.com/nextcloud/translate>`_
Nextcloud customers should file bugs directly with our Customer Support.
Ethical AI Rating
-----------------
Rating: 🟢
~~~~~~~~~~
Positive:
* the software for training and inference of this model is open source
* the trained model is freely available, and thus can be run on-premises
* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.
Learn more about the Nextcloud Ethical AI Rating `in our blog <https://nextcloud.com/blog/nextcloud-ethical-ai-rating/>_`.
Known Limitations
-----------------
* Language models are likely to generate false information and should thus only be used in situations that are not critical. It's recommended to only use AI at the beginning of a creation process and not at the end, so that outputs of AI serve as a draft for example and not as final product. Always check the output of language models before using it.
* Make sure to test the translation model you are using it for whether it meets the use-case's quality requirements
* Language models notoriously have a high energy consumption
* 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 models. Support is thus limited only to bugs directly caused by the implementation of the app (connectors, API, front-end, AppAPI)

View File

@@ -7,11 +7,11 @@ Artificial Intelligence
overview
app_assistant
app_translate
app_translate2
app_llm2
app_stt_whisper2
app_recognize
app_context_chat
app_summary_bot
app_api_and_external_apps
ai_as_a_service

View File

@@ -22,13 +22,14 @@ Nextcloud uses modularity to separate raw AI functionality from the Graphical Us
"Suspicious login detection","`Suspicious Login <https://apps.nextcloud.com/apps/suspicious_login>`_","Green","Yes","Yes","Yes","Yes"
"Related resources","`Related Resources <https://apps.nextcloud.com/apps/related_resources>`_","Green","Yes","Yes","Yes","Yes"
"Recommended files","recommended_files","Green","Yes","Yes","Yes","Yes"
"Machine translation","`Translate <https://apps.nextcloud.com/apps/translate>`_","Green","Yes","Yes - Opus models by University Helsinki","Yes","Yes"
"","`Local Machine Translation 2 (ExApp) <https://apps.nextcloud.com/apps/translate2>`_","Green","Yes","Yes - MADLAD models by Google","Yes","Yes"
"","`LibreTranslate integration <https://apps.nextcloud.com/apps/integration_libretranslate>`_","Green","Yes","Yes - OpenNMT models","Yes","Yes"
"Text processing using LLMs","`llm2 (ExApp) <https://apps.nextcloud.com/apps/llm2>`_","Green","Yes","Yes - Llama 3.1 model by Meta","Yes","Yes"
"","`OpenAI and LocalAI integration (via OpenAI API) <https://apps.nextcloud.com/apps/integration_openai>`_","Red","No","No","No","No"
"","`OpenAI and LocalAI integration (via LocalAI) <https://apps.nextcloud.com/apps/integration_openai>`_","Yellow","Yes","Yes - e.g. Llama models by Meta", "No","Yes"
"Machine translation","`Local Machine Translation 2 (ExApp) <https://apps.nextcloud.com/apps/translate2>`_","Green","Yes","Yes - MADLAD models by Google","Yes","Yes"
"","`DeepL integration <https://apps.nextcloud.com/apps/integration_deepl>`_","Red","No","No","No","No"
"","`OpenAI and LocalAI integration (via OpenAI API) <https://apps.nextcloud.com/apps/integration_openai>`_","Red","No","No","No","No"
"","`OpenAI and LocalAI integration (via LocalAI) <https://apps.nextcloud.com/apps/integration_openai>`_","Green","Yes","Yes","Yes","Yes"
"","`Local Whisper Speech-To-Text 2 (ExApp) <https://apps.nextcloud.com/apps/stt_whisper2>`_","Yellow","Yes","Yes - Whisper models by OpenAI","No","Yes"
"Speech to Text","`Local Whisper Speech-To-Text 2 (ExApp) <https://apps.nextcloud.com/apps/stt_whisper2>`_","Yellow","Yes","Yes - Whisper models by OpenAI","No","Yes"
"","`OpenAI and LocalAI integration <https://apps.nextcloud.com/apps/integration_openai>`_","Yellow","Yes","Yes - Whisper models by OpenAI","No","No"
"","`Replicate integration <https://apps.nextcloud.com/apps/integration_replicate>`_","Yellow","Yes","Yes - Whisper models by OpenAI","No","No"
"Image generation","`Local Stable Diffusion <https://apps.nextcloud.com/apps/text2image_stablediffusion>`_","Yellow","Yes","Yes - StableDiffusion XL model by StabilityAI","No","Yes"
@@ -67,6 +68,30 @@ Features used by other apps
Some of our AI features are realized as generic APIs that any app can use and any app can provide an implementation for by registering a provider. So far, these are
Machine translation, Speech-To-Text, Image generation, Text processing and Context Chat.
Text processing
^^^^^^^^^^^^^^^
.. _tp-consumer-apps:
As you can see in the table above we have multiple apps offering text processing using Large language models.
In downstream apps like Context Chat and assistant, users can use the text processing functionality regardless of which app implements it behind the scenes.
Frontend apps
~~~~~~~~~~~~~
* *Text* for offering an inline graphical UI for the various tasks
* `Assistant <https://apps.nextcloud.com/apps/assistant>`_ for offering a graphical UI for the various tasks and a smart picker
* `Mail <https://apps.nextcloud.com/apps/mail>`_ for summarizing mail threads (see :ref:`the Nextcloud Mail docs<mail_thread_summary>` for how to enable this)
* `Summary Bot <https://apps.nextcloud.com/apps/summarai>`_ for summarizing chat histories in `Talk <https://apps.nextcloud.com/apps/spreed>`_
Backend apps
~~~~~~~~~~~~
* :ref:`llm2<ai-app-llm2>` - Runs open source AI LLM models on your own server hardware (Customer support available upon request)
* `OpenAI and LocalAI integration (via OpenAI API) <https://apps.nextcloud.com/apps/integration_openai>`_ - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
Machine translation
^^^^^^^^^^^^^^^^^^^
@@ -85,10 +110,8 @@ Frontend apps
Backend apps
~~~~~~~~~~~~
* :ref:`translate<ai-app-translate>` - Runs open source AI translation models locally on your own server hardware (Customer support available upon request)
* :ref:`translate2 (ExApp)<ai-app-translate2>` - Runs open source AI translation models locally on your own server hardware (Customer support available upon request)
* *integration_deepl* - Integrates with the deepl API to provide translation functionality from Deepl.com servers (Only community supported)
* *integration_libretranslate* - Integrates with the open source LibreTranslate API to provide translation functionality hosted commercially or on your own hardware (Only community supported)
Speech-To-Text
^^^^^^^^^^^^^^
@@ -101,37 +124,15 @@ Frontend apps
~~~~~~~~~~~~~
* `Assistant <https://apps.nextcloud.com/apps/assistant>`_ offering a graphical translation UI and a smart picker
* `Speech-to-Text Helper <https://apps.nextcloud.com/apps/stt_helper>`_ for providing a Speech-To-Text smart picker (deprecated; was merged into assistant)
* `Talk <https://apps.nextcloud.com/apps/spreed>`_ for transcribing calls (see `Nextcloud Talk docs <https://nextcloud-talk.readthedocs.io/en/latest/settings/#app-configuration>`_ for how to enable this)
Backend apps
~~~~~~~~~~~~
* :ref:`stt_whisper2<ai-app-stt_whisper2>` - Runs open source AI Speech-To-Text models on your own server hardware (Customer support available upon request)
* *integration_openai* - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
* `OpenAI and LocalAI integration (via OpenAI API) <https://apps.nextcloud.com/apps/integration_openai>`_ - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
Text processing
^^^^^^^^^^^^^^^
.. _tp-consumer-apps:
As you can see in the table above we have multiple apps offering Text processing capabilities. In downstream apps like the Nextcloud Assistant app, users can use the text processing functionality regardless of which app implements it behind the scenes.
Frontend apps
~~~~~~~~~~~~~
* `Assistant <https://apps.nextcloud.com/apps/assistant>`_ for offering a graphical UI for the various tasks and a smart picker
* `GPTFreePrompt <https://apps.nextcloud.com/apps/gptfreeprompt>`_ for providing an llm smart picker (deprecated; was merged into assistant)
* `Mail <https://apps.nextcloud.com/apps/mail>`_ for summarizing mail threads (see :ref:`the Nextcloud Mail docs<mail_thread_summary>` for how to enable this)
* `SummarAI <https://apps.nextcloud.com/apps/summarai>`_ for summarizing chat histories in `Talk <https://apps.nextcloud.com/apps/spreed>`_
Backend apps
~~~~~~~~~~~~
* :ref:`llm2<ai-app-llm2>` - Runs open source AI language models locally on your own server hardware (Customer support available upon request)
* *integration_openai* - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
Image generation
^^^^^^^^^^^^^^^^
@@ -143,18 +144,17 @@ Frontend apps
~~~~~~~~~~~~~
* `Assistant <https://apps.nextcloud.com/apps/assistant>`_ for offering a graphical UI and a smart picker
* `Text-to-Image Helper <https://apps.nextcloud.com/apps/stt_helper>`_ for providing a Text-to-Image smart picker (deprecated; was merged into assistant)
Backend apps
~~~~~~~~~~~~
* text2image_stablediffusion2 (Customer support available upon request)
* *integration_openai* - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
* text2image_stablediffusion (Customer support available upon request)
* `OpenAI and LocalAI integration (via OpenAI API) <https://apps.nextcloud.com/apps/integration_openai>`_ - Integrates with the OpenAI API to provide AI functionality from OpenAI servers (Customer support available upon request; see :ref:`AI as a Service<ai-ai_as_a_service>`)
* *integration_replicate* - Integrates with the replicate API to provide AI functionality from replicate servers (see :ref:`AI as a Service<ai-ai_as_a_service>`)
Context Chat (Tech preview)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Context Chat
^^^^^^^^^^^^
Our Context Chat feature was introduced in Nextcloud Hub 7 (v28). It allows asking questions to the assistant related to your documents in Nextcloud. You will need to install both the context_chat app as well as the context_chat_backend External App. Be prepared that things might break or be a little rough around the edges. We look forward to your feedback!
Frontend apps
@@ -167,6 +167,13 @@ Backend apps
* :ref:`context_chat + context_chat_backend<ai-app-context_chat>` - (Customer support available upon request)
Provider apps
~~~~~~~~~~~~~
Apps can integrate their content with Context Chat to make it available for querying using Context Chat. The following apps have implemented this integration so far:
* *files*
* `Analytics <https://apps.nextcloud.com/apps/analytics>`_
Frequently Asked Questions
--------------------------

View File

@@ -345,7 +345,7 @@ Each block is (by default) AES-256-CTR decrypted with the ``$iv[$position]`` and
Sources
-------
- `nextcloud-tools repository on GitHub <https://github.com/syseleven/nextcloud-tools>`_
- `encryption-recovery-tools repository on GitHub <https://github.com/nextcloud/encryption-recovery-tools>`_
- `Nextcloud Encryption Configuration documentation <https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/encryption_configuration.html>`_
- `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>`_

View File

@@ -5,6 +5,12 @@ Deleted Items (trash bin)
If the trash bin app is enabled (default), this setting defines the policy
for when files and folders in the trash bin will be permanently deleted.
.. note::
If the user quota limit is exceeded due to deleted files in the trash bin,
retention settings will be ignored and files will be cleaned up until
the quota requirements are met.
The app allows for two settings, a minimum time for trash bin retention,
and a maximum time for trash bin retention.
Minimum time is the number of days a file will be kept, after which it
@@ -15,7 +21,7 @@ file and folder deletion. For migration purposes, this setting is installed
initially set to "auto", which is equivalent to the default setting in
Nextcloud.
You may alter the default pattern in ``config.php``. The default setting is
You may alter the default pattern in ``config.php``. The default setting is
``auto``, which sets the default pattern::
'trashbin_retention_obligation' => 'auto',
@@ -41,11 +47,11 @@ Available values:
Background job
--------------
To permanently delete files a background jobs runs every 30 minutes.
To permanently delete files a background jobs runs every 30 minutes.
It's possible to deactivate the background job and setup a (system) cron to expire the versions via occ.
Deactivate background job: ``occ config:app:set --value=no files_trashbin background_job_expire_trash``
Activate background job: ``occ config:app:delete files_trashbin background_job_expire_trash``
Expire versions: ``occ trashbin:expire`` or ``occ trashbin:expire --quiet`` (without the progress bar)
Expire versions: ``occ trashbin:expire`` or ``occ trashbin:expire --quiet`` (without the progress bar)

View File

@@ -1166,6 +1166,10 @@ trashbin_retention_obligation
If the trash bin app is enabled (default), this setting defines the policy
for when files and folders in the trash bin will be permanently deleted.
If the user quota limit is exceeded due to deleted files in the trash bin,
retention settings will be ignored and files will be cleaned up until
the quota requirements are met.
The app allows for two settings, a minimum time for trash bin retention,
and a maximum time for trash bin retention.
@@ -1743,9 +1747,10 @@ defaultapp
'defaultapp' => 'dashboard,files',
Set the default app to open on login. Use the app names as they appear in the
URL after clicking them in the Apps menu, such as documents, calendar, and
gallery. You can use a comma-separated list of app names, so if the first
Set the default app to open on login. The entry IDs can be retrieved from
the Navigations OCS API endpoint: https://docs.nextcloud.com/server/latest/develper_manual/_static/openapi.html#/operations/core-navigation-get-apps-navigation.
You can use a comma-separated list of app names, so if the first
app is not enabled for a user then Nextcloud will try the second one, and so
on. If no enabled apps are found it defaults to the dashboard app.

View File

@@ -45,6 +45,7 @@ occ command Directory
* :ref:`disable_user_label`
* :ref:`system_tags_commands_label`
* :ref:`antivirus_commands_label`
* :ref:`setupchecks_commands_label`
* `Debugging`_
.. _http_user_label:
@@ -1361,7 +1362,7 @@ report showing how many users you have, and when a user was last logged in::
You can create a new user with their display name, login name, and any group
memberships with the ``user:add`` command. The syntax is::
user:add [--password-from-env] [--display-name[="..."]] [-g|--group[="..."]]
user:add [--password-from-env] [--generate-password] [--display-name[="..."]] [-g|--group[="..."]] [--email EMAIL]
uid
The ``display-name`` corresponds to the **Full Name** on the Users page in your
@@ -1412,6 +1413,26 @@ You may also use ``password-from-env`` to reset passwords::
layla'
Successfully reset password for layla
``generate-password`` 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 ``email`` option to create
users with a temporary password and send a welcome email to the user's email
address without user interaction::
sudo -u www-data php occ user:add layla --generate-password --email layla@example.tld
The account "layla" was created successfully
Welcome email sent to layla@example.tld
The ``email`` 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
``newUser.sendEmail`` is set to ``yes`` in ``core``'s app config or not set at all::
sudo -u www-data php occ user:add layla --email layla@example.tld
Enter password:
Confirm password:
The account "layla" was created successfully
Welcome email sent to layla@example.tld
You can delete users::
sudo -u www-data php occ user:delete fred
@@ -1827,6 +1848,25 @@ Mark a file as scanned or unscanned::
sudo -u www php occ files_antivirus:mark <path> <scanned|unscanned>
.. _setupchecks_commands_label:
Setupchecks
-----------
Run the setupchecks via occ::
sudo -u www php occ setupchecks
Example output::
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
...
.. _occ_debugging:
Debugging

View File

@@ -49,3 +49,22 @@ Shared items
.. versionadded:: 5.5.0
For this feature, the shipped `related resources app <https://apps.nextcloud.com/apps/related_resources>`_ needs to be enabled.
Rate limits
-----------
Nextcloud rate limits the creation of address books and how many can be created in a short period of time. The default is 10 address books per hour. This can be customized as follows::
# Set limit to 15 items per 30 minutes
php occ config:app:set dav rateLimitAddressBookCreation --type=integer --value=15
php occ config:app:set dav rateLimitPeriodAddressBookCreation --type=integer --value=1800
Additionally, the maximum number of address books a user may create is limited to 10 items. This can be customized too::
# Allow users to create 50 addressbooks
php occ config:app:set dav maximumAdressbooks --type=integer --value=50
or::
# Allow users to create address books without restriction
php occ config:app:set dav maximumAdressbooks --type=integer --value=-1

View File

@@ -188,7 +188,7 @@ This can be achieved with this kind of setting, usually using private IP ranges:
'127.0.0.1/8',
'192.168.0.0/16',
'fd00::/8',
]
],
All requests originating from IP addresses outside of these ranges will not be able to execute admin actions.

View File

@@ -22,8 +22,12 @@ server {
}
server {
listen 443 ssl http2;
listen 443 ssl http2;
listen [::]:443 ssl http2;
# With NGinx >= 1.25.1 you should use this instead:
# listen 443 ssl;
# listen [::]:443 ssl;
# http2 on;
server_name cloud.example.com;
# Path to the root of your installation

View File

@@ -26,6 +26,10 @@ server {
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# With NGinx >= 1.25.1 you should use this instead:
# listen 443 ssl;
# listen [::]:443 ssl;
# http2 on;
server_name cloud.example.com;
# Path to the root of the domain

View File

@@ -11,6 +11,7 @@ These sub pages will cover the most important changes in Nextcloud, as well as s
.. toctree::
:maxdepth: 1
upgrade_to_31.rst
upgrade_to_30.rst
upgrade_to_29.rst
upgrade_to_28.rst

View File

@@ -31,9 +31,12 @@ Capabilities
Front-end changes
-----------------
The overall design was changed to be less round and more compact,
as a part of this some CSS variables were added and other deprecated with Nextcloud 30, see :ref:`cssvars`.
Clickable area
^^^^^^^^^^^^^^
The size of the CSS variable ``--clickable-area`` variable has shrunk from ``44px`` to ``34px``.
The size of the CSS variable ``--clickable-area`` variable has shrunk from ``44px`` to ``34px``.
This will result in several regressions and paper-cuts in your app that will need to be manually fixed.
It's recommended to:
@@ -46,8 +49,8 @@ It's recommended to:
Line height
^^^^^^^^^^^
The ``--default-line-height`` variable has changed from ``24px``` to ``1.5`` for the ``--default-font-size`` this
means that the actual value in pixel will go from 24 to 22.5. Although this is a slight change, it's recommended
The ``--default-line-height`` variable has changed from ``24px``` to ``1.5`` for the ``--default-font-size`` this
means that the actual value in pixel will go from 24 to 22.5. Although this is a slight change, it's recommended
to check for visual regressions in your app.
@@ -100,19 +103,6 @@ When using Webpack:
+ import { getCSPNonce } from '@nextcloud/auth'
+ __webpack_nonce__ = getCSPNonce()
Added APIs
^^^^^^^^^^
Changed APIs
^^^^^^^^^^^^
Removed APIs
^^^^^^^^^^^^
Removed globals
^^^^^^^^^^^^^^^
Deprecated APIs
^^^^^^^^^^^^^^^
@@ -194,6 +184,7 @@ Added APIs
- ``OCP\AppFramework\Bootstrap\IRegistrationContext::registerTaskProcessingTaskType()`` was added to allow registering task processing task types
- ``OCP\Files\IRootFolder::getAppDataDirectoryName()`` was added to allow getting the name of the app data directory
- ``OCP\Security\IHasher::validate()`` should return true if the passed string is a valid hash generated by ``OCP\Security\IHasher::hash()``
- ``OCP\AppFramework\Http\JSONResponse()`` constructor now supports passing additional ``json_encode`` flags, see https://www.php.net/manual/en/function.json-encode.php for details
Changed APIs
^^^^^^^^^^^^
@@ -292,6 +283,3 @@ Removed APIs
- ``OCP\Util::isValidFileName`` was deprecated in 8.1.0 and is now removed, use either ``OCP\Files\Storage\IStorage::verifyPath`` or the new ``OCP\Files\IFilenameValidator``.
- ``OCP\Util::getForbiddenFileNameChars`` was removed, use either ``OCP\Files\Storage\IStorage::verifyPath`` or the new ``OCP\Files\IFilenameValidator`` for filename validation.
Removed events
^^^^^^^^^^^^^^

View File

@@ -0,0 +1,86 @@
=======================
Upgrade to Nextcloud 31
=======================
General
-------
- TBD
Front-end changes
-----------------
Logical position CSS rules
^^^^^^^^^^^^^^^^^^^^^^^^^^
With Nextcloud 31 all server provided styles are migrated to use `logical positioning <https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_logical_properties_and_values>`_
instead of physical, this allows the front-end layout to adjust to different language directions (right-to-left).
App developers are strongly encouraged to migrate their apps to logical positioning too.
Examples for logical vs physical positioning:
- ``margin-inline-start: 4px;`` instead of ``margin-left: 4px;``
- ``inset-inline-end: 8px;`` instead of ``right: 8px``
Files and Files sharing
^^^^^^^^^^^^^^^^^^^^^^^
With Nextcloud 28 the Files app front-end was migrated to Vue and the private API ( ``OCA.Files`` ) was removed,
but for public shares the legacy frontend-end was still used. With Nextcloud 31 public shares also use the new Vue front-end.
This means accessing the legacy private API in ``OCA.Files`` is no longer possible, all existing apps should migrate to the :ref:`public API<js-library_nextcloud-files>`.
To make migration easier utility functions are provided in the ``@nextcloud/sharing`` :ref:`package<js-library_nextcloud-sharing>`
to check whether the current Files app instance is a public share or not, and if so to fetch the share token.
.. code-block:: JavaScript
import { isPublicShare, getSharingToken } from '@nextcloud/sharing/public'
if (isPublicShare()) {
console.info('This is a public share with the sharing token: ', getSharingToken())
}
Added APIs
^^^^^^^^^^
- TBD
Changed APIs
^^^^^^^^^^^^
- TBD
Deprecated APIs
^^^^^^^^^^^^^^^
- TBD
Removed APIs
^^^^^^^^^^^^
- ``OCA.FilesSharingDrop`` removed as part of the Vue migration. Use the Files app API provided by the :ref:`package<js-library_nextcloud-files>` .
Back-end changes
----------------
Added APIs
^^^^^^^^^^
- TBD
Changed APIs
^^^^^^^^^^^^
- TBD
Deprecated APIs
^^^^^^^^^^^^^^^
- TBD
Removed APIs
^^^^^^^^^^^^
- TBD

File diff suppressed because it is too large Load Diff

View File

@@ -258,7 +258,7 @@ texinfo_documents = [
epub_title = u'Nextcloud Developer Manual'
epub_author = u'The Nextcloud developers'
epub_publisher = u'The Nextcloud developers'
epub_copyright = u'2012-2017, The Nextcloud developers'
epub_copyright = u'2012-2024, The Nextcloud developers'
# The language of the text. It defaults to the language option
# or en if the language is not set.
@@ -318,10 +318,13 @@ highlight_options = {
# Redirect old URLs
# https://documatt.gitlab.io/sphinx-reredirects/usage.html
redirects = {
# Removed 2023
"core/index": "../server",
"core/code-back-end": "../server/code-back-end.html",
"core/code-front-end": "../server/code-front-end.html",
"core/externalapi": "../server/externalapi.html",
"core/static-analysis": "../server/static-analysis.html",
"core/unit-testing": "../server/unit-testing.html"
"core/unit-testing": "../server/unit-testing.html",
# Removed 2024-09
"digging_deeper/changelog": "../app_publishing_maintenance/app_upgrade_guide/index.html"
}

View File

@@ -1,80 +0,0 @@
=========
Changelog
=========
.. sectionauthor:: Bernhard Posselt <dev@bernhard-posselt.com>
Deprecations
------------
Deprecations are now documented by Nextcloud major release, not time. See :ref:`app-upgrade-guide`.
Below is the old deprecation roadmap which lists older deprecations by year.
.. note:: Deprecations on interfaces also affect the implementing classes!
2018
^^^^
* **OCP\\App::setActiveNavigationEntry** has been deprecated in favour of **\\OCP\\INavigationManager**
* **OCP\\BackgroundJob::registerJob** has been deprecated in favour of **OCP\\BackgroundJob\\IJobList**
* **OCP\\Contacts** functions has been deprecated in favour of **\\OCP\\Contacts\\IManager**
* **OCP\\DB** functions have been deprecated in favour of the ones in **\\OCP\\IDBConnection**
* **OCP\\Files::tmpFile** has been deprecated in favour of **\\OCP\\ITempManager::getTemporaryFile**
* **OCP\\Files::tmpFolder** has been deprecated in favour of **\\OCP\\ITempManager::getTemporaryFolder**
* **\\OCP\\IServerContainer::getDb** has been deprecated in favour of **\\OCP\\IServerContainer::getDatabaseConnection**
* **\\OCP\\IServerContainer::getHTTPHelper** has been deprecated in favour of **\\OCP\\Http\\Client\\IClientService**
* Legacy applications not using the AppFramework are now likely to use the deprecated **OCP\\JSON** and **OCP\\Response** code:
* **\\OCP\\JSON** has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy **OCP\\JSON** code. This allows testable controllers and is highly encouraged.
* **\\OCP\\Response** has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy **OCP\\JSON** code. This allows testable controllers and is highly encouraged.
* Diverse **OCP\\Users** function got deprecated in favour of **OCP\\IUserManager**:
* **OCP\\Users::getUsers** has been deprecated in favour of **OCP\\IUserManager::search**
* **OCP\\Users::getDisplayName** has been deprecated in favour of **OCP\\IUserManager::getDisplayName**
* **OCP\\Users::getDisplayNames** has been deprecated in favour of **OCP\\IUserManager::searchDisplayName**
* **OCP\\Users::userExists** has been deprecated in favour of **OCP\\IUserManager::userExists**
* Various static **OCP\\Util** functions have been deprecated:
* **OCP\\Util::linkToRoute** has been deprecated in favour of **\\OCP\\IURLGenerator::linkToRoute**
* **OCP\\Util::linkTo** has been deprecated in favour of **\\OCP\\IURLGenerator::linkTo**
* **OCP\\Util::imagePath** has been deprecated in favour of **\\OCP\\IURLGenerator::imagePath**
* **OCP\\Util::isValidPath** has been deprecated in favour of **\\OCP\\IURLGenerator::imagePath**
* `OCP\\AppFramework\\IAppContainer <https://github.com/nextcloud/server/blob/stable9/lib/public/appframework/iappcontainer.php>`_: methods **getCoreApi** and **log**
* `OCP\\AppFramework\\IApi <https://github.com/nextcloud/server/blob/stable9/lib/public/appframework/iapi.php>`_: full class
2017
^^^^
* **OCP\\IDb**: This interface and the implementing classes will be removed in favor of **OCP\\IDbConnection**. Various layers in between have also been removed to be consistent with the PDO classes. This leads to the following changes:
* Replace all calls on the db using **getInsertId** with **lastInsertId**
* Replace all calls on the db using **prepareQuery** with **prepare**
* The **__construct** method of **OCP\\AppFramework\\Db\\Mapper** no longer requires an instance of **OCP\\IDb** but an instance of **OCP\\IDbConnection**
* The **execute** method on **OCP\\AppFramework\\Db\\Mapper** no longer returns an instance of **OC_DB_StatementWrapper** but an instance of **PDOStatement**
2016
^^^^
* The following methods have been moved into the **OCP\\Template::<method>** class instead of being namespaced directly:
* **OCP\\image_path**
* **OCP\\mimetype_icon**
* **OCP\\preview_icon**
* **OCP\\publicPreview_icon**
* **OCP\\human_file_size**
* **OCP\\relative_modified_date**
* **OCP\\html_select_options**
* **OCP\\simple_file_size** has been deprecated in favour of **OCP\\Template::human_file_size**
* The **OCP\\PERMISSION_<permission>** and **OCP\\FILENAME_INVALID_CHARS** have been moved to **OCP\\Constants::<old name>**
* The **OC_GROUP_BACKEND_<method>** and **OC_USER_BACKEND_<method>** have been moved to **OC_Group_Backend::<method>** and **OC_User_Backend::<method>** respectively
* `OCP\\AppFramework\\Controller <https://github.com/nextcloud/server/blob/stable9/lib/public/appframework/controller.php>`_: methods **params**, **getParams**, **method**, **getUploadedFile**, **env**, **cookie**, **render**
2015
^^^^
* `\\OC\\Preferences <https://github.com/nextcloud/server/commit/909a53e087b7815ba9cd814eb6c22845ef5b48c7>`_ and `\\OC_Preferences <https://github.com/nextcloud/server/commit/4df7c0a1ed52ed1922116686cb5ad8da2544c997>`_

View File

@@ -6,7 +6,6 @@ Digging deeper
:maxdepth: 3
api
changelog
config/index
debugging
classloader

View File

@@ -67,10 +67,13 @@ This package provides a simple event bus implementation that integrates with ser
This package provides access to UI dialogs in Nextcloud. Documentation: https://nextcloud-libraries.github.io/nextcloud-dialogs/
.. _js-library_nextcloud-files:
``@nextcloud/files``
^^^^^^^^^^^^^^^^^^^^
This package provides helper functions around the Files app. Documentation: https://nextcloud-libraries.github.io/nextcloud-files/
This package provides methods to access the public API of the Files app, helper functions to access Nextcloud files using WebDAV,
and utility functions to work with files and folders. Documentation: https://nextcloud-libraries.github.io/nextcloud-files/
``@nextcloud/initial-state``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -107,6 +110,14 @@ This package provides various helpers for file and folder paths. Documentation:
This package provides helpers to generate URLs, e.g. to access assets and REST APIs of your app or the Nextcloud server. Documentation: https://nextcloud-libraries.github.io/nextcloud-router/
.. _js-library_nextcloud-sharing:
``@nextcloud/sharing``
^^^^^^^^^^^^^^^^^^^^^^
This package provides helpers interact with the Files sharing app, e.g. to detect if the current page is a public share and retrieving the sharing token.
Documentation: https://nextcloud-libraries.github.io/nextcloud-sharing/
``@nextcloud/vue``
^^^^^^^^^^^^^^^^^^

View File

@@ -1,35 +1,35 @@
alabaster==0.7.16
Babel==2.15.0
certifi==2024.7.4
Babel==2.16.0
certifi==2024.8.30
charset-normalizer==3.3.2
docutils==0.20.1
idna==3.7
idna==3.8
imagesize==1.4.1
importlib-metadata==8.0.0
importlib-metadata==8.4.0
Jinja2==3.1.4
MarkupSafe==2.1.5
packaging==24.1
Pillow==10.4.0
Pygments==2.18.0
PyYAML==6.0.1
PyYAML==6.0.2
reportlab==4.2.2
requests==2.32.3
rst2pdf==0.102
smartypants==2.0.1
snowballstemmer==2.2.0
Sphinx==7.2.6
Sphinx==7.4.7
sphinx-copybutton==0.5.2
sphinx-rtd-theme==2.0.0
sphinx-rtd-dark-mode==1.3.0
sphinxcontrib-applehelp==1.0.8
sphinxcontrib-devhelp==1.0.6
sphinxcontrib-htmlhelp==2.0.5
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-phpdomain==0.11.1
sphinxcontrib-qthelp==1.0.7
sphinxcontrib-serializinghtml==1.1.10
sphinx-toolbox==3.5.0
sphinxcontrib-phpdomain==0.12.0
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
sphinx-toolbox==3.8.0
sphinx-reredirects==0.1.5
urllib3==2.2.2
zipp==3.20.0
zipp==3.20.1

View File

@@ -308,6 +308,8 @@ The mail app supports summarizing message threads that contain 3 or more message
.. note:: Please note that the feature has to be enabled by the administrator
.. note:: Please note that this feature only works well with integration_openai. Local LLMs take too long to respond and the summary request is likely to time out and still create significant system load.
Filtering and autoresponder
---------------------------
@@ -333,3 +335,38 @@ When clicking on such an email a button will be shown to quickly follow up with
It is also possible to disable follow-up reminders for a sent email.
.. note:: Please note that the feature has to be enabled by the administrator.
Security
--------
Phishing detection
~~~~~~~~~~~~~~~~~~
.. versionadded:: 4.0
The Mail app will check for potential phishing attempts and will display a warning to the user.
The checks are the following:
* The sender address saved in the addressbook is not the same as the one in the mail account
* The sender is using a custom email address that doesn't match the from address
* The sent date is set in the future
* Links in the message body are not pointing to the displayed text
* The reply-to address is not the same as the sender address
.. note:: Please note that the warning does not mean that the message is a phishing attempt. It only means that the Mail app detected a potential phishing attempt.
Internal addresses
~~~~~~~~~~~~~~~~~~
.. versionadded:: 4.0
The Mail app allows adding internal addresses and domains, and will warn the user if the address is not in the list, when sending and upon receiving a message.
To add an internal address:
1. Open the mail settings
2. Navigate to Privacy and security section
3. Enable the internal addresses by ckicjin on the checkbox
4. Click the Add internal address button
5. Enter the address or domain and click Add

View File

@@ -11,6 +11,7 @@ Matterbridge integration in Nextcloud Talk makes it possible to create 'bridges'
A moderator can add a Matterbridge connection in the chat conversation settings.
.. image:: images/matterbridge-settings.png
:width: 700px
Each of the bridges has its own need in terms of configuration. Information for most is available on the Matterbridge wiki and can be accessed behind ``more information`` menu in the ``...`` menu. You can also `access the wiki directly. <https://github.com/42wim/matterbridge/wiki>`_
@@ -20,6 +21,7 @@ Lobby
The lobby feature allows you to show guests a waiting screen until the call starts. This is ideal for webinars with external participants, for example.
.. image:: images/lobby-in-talk.png
:width: 600px
You can choose to let the participants join the call at a specific time, or when you dismiss the lobby manually.
@@ -35,6 +37,7 @@ Administrators can configure, enable and disable commands. Users can use the ``h
``/help``
.. image:: images/command-help.png
:width: 600px
Find more information in the `administrative documentation for Talk. <https://nextcloud-talk.readthedocs.io/en/stable/commands/>`_
@@ -44,16 +47,22 @@ Talk from Files
In the Files app, you can chat about files in the sidebar, and even have a call while editing it. You first have to join the chat.
.. image:: images/join-chat.png
:width: 500px
|
.. image:: images/sidebar-chat.png
:width: 500px
You can then chat or have a call with other participants, even when you start editing the file.
.. image:: images/text-and-talk.png
:width: 700px
In Talk, a conversation will be created for the file. You can chat from there, or go back to the file using the ``...`` menu in the top-right.
.. image:: images/file-room.png
:width: 400px
Create tasks from chat or share tasks in chat
---------------------------------------------
@@ -61,14 +70,22 @@ Create tasks from chat or share tasks in chat
If Deck is installed, you can use the ``...`` menu of a chat message and turn the message into a Deck task.
.. image:: images/deck-talk-create-card-menu.png
:width: 500px
|
.. image:: images/deck-talk-create-card-dialog.png
:width: 400px
From within Deck, you can share tasks into chat conversations.
.. image:: images/deck-talk-share-card-to-chat-menu.png
:width: 400px
|
.. image:: images/deck-talk-share-card-to-chat-in-talk.png
:width: 600px
Breakout rooms
--------------
@@ -82,6 +99,7 @@ To create breakout rooms, you need to be a moderator in a group conversation. Cl
"Setup breakout rooms".
.. image:: images/talk-breakout-rooms-setup.png
:width: 400px
A dialog will open where you can specify the number of rooms you want to create and the participants assignment method.
Here you'll be presented with 3 options:
@@ -91,6 +109,7 @@ Here you'll be presented with 3 options:
- **Allow participants choose**: Participants will be able to join breakout rooms themselves.
.. image:: images/talk-breakout-rooms-setup-dialog.png
:width: 500px
Manage breakout rooms
^^^^^^^^^^^^^^^^^^^^^
@@ -98,6 +117,7 @@ Manage breakout rooms
Once the breakout rooms are created, you will be able to see them in the sidebar.
.. image:: images/talk-breakout-rooms-sidebar.png
:width: 500px
From the sidebar header
@@ -106,11 +126,13 @@ From the sidebar header
- **Make changes to the assigned participants**: this will open the participants editor where you can change which participants are assigned to which breakout room. From this dialog it's also possible to delete the breakout rooms.
.. image:: images/talk-breakout-rooms-sidebar-header.png
:width: 400px
From the breakout room element in the sidebar, you can also join a particular breakout room or send a message to a
specific room.
.. image:: images/talk-breakout-rooms-sidebar-item.png
:width: 400px
Call recording
--------------
@@ -131,16 +153,27 @@ The moderator of the conversation can start a recording together with a call sta
- **During the call**: click on the top-bar menu, then click "Start recording".
.. image:: images/start-recording-before-call.png
:width: 400px
|
.. image:: images/start-recording-in-call.png
:width: 300px
The recording will start shortly, and you will see a red indicator next to the call time. You can stop the recording at any time while the call is still ongoing by clicking on that indicator and selecting "Stop recording", or by using the same action in the top-bar menu. If you do not manually stop the recording, it will end automatically when the call ends.
.. image:: images/stop-recording.png
:width: 500px
After stopping a recording, the server will take some time to prepare and save the recorded file. The moderator, who started the recording, receives a notification when the file is uploaded. From there, it can be shared in the chat.
.. image:: images/share-recording-notification.png
:width: 300px
|
.. image:: images/shared-recordings.png
:width: 400px
Recording consent
^^^^^^^^^^^^^^^^^
@@ -152,12 +185,18 @@ For compliance reasons with various privacy rights, it is possible to ask partic
- Allow moderators to configure this option on a conversation level. In such cases, moderators can access the conversation settings to configure this option accordingly:
.. image:: images/enable-recording-consent.png
:width: 500px
If recording consent is enabled, every participant, including moderators, will see a highlighted section in the "Media settings" before joining a call.
This section informs participants that the call may be recorded. To give explicit consent for recording, participants must check the box. If they do not give consent, they will not be allowed to join the call.
.. image:: images/give-recording-consent.png
:width: 500px
|
.. image:: images/give-recording-consent-checked.png
:width: 500px
Federated conversation
----------------------
@@ -173,18 +212,19 @@ Send and accept invites
The moderator of the conversation can send an invite to participant on a different server:
.. image:: images/federation-invite-send.png
:width: 400px
When receiving a notification, user will see a counter of pending invites above the conversations list.
.. image:: images/federation-invite-pending.png
:width: 450px
:width: 400px
Upon clicking it, more information will be provided about inviting party, and user can either accept or decline the invitation.
.. image:: images/federation-invite-dialog.png
:width: 450px
:width: 500px
By accepting the invite, conversation will appear in the list as any other one.
.. image:: images/federation-conversations-list.png
:width: 450px
:width: 400px

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 KiB

After

Width:  |  Height:  |  Size: 401 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 KiB

After

Width:  |  Height:  |  Size: 349 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -12,14 +12,17 @@ Joining a chat
If you received a link to a chat conversation, you can open it in your browser to join the chat. Here, you will be prompted to enter your name before joining.
.. image:: images/guest-view.png
:width: 400px
You can also change your name later by clicking the ``Edit`` button, located top-right.
.. image:: images/change-name.png
:width: 400px
Your camera and microphone settings can be found in the ``Settings`` menu. There you can also find a list of shortcuts you can use.
.. image:: images/guest-settings.png
:width: 600px
Joining a call
--------------
@@ -27,15 +30,17 @@ Joining a call
You can start a call any time with the ``Start call`` button. Other participants will get notified and can join the call. If somebody else has started a call already, the button will change in a green ``Join call`` button.
.. image:: images/join-call.png
:width: 600px
Before actually joining the call you will see a device check, where you can pick the right camera and microphone, enable background blur or even join with any devices.
.. image:: images/device-settings-before-call.png
:width: 300px
:width: 400px
During a call, you can find the Camera and Microphone settings in the ``...`` menu in the top bar.
.. image:: images/call-menu.png
.. image:: images/guest-call-menu.png
:width: 300px
During a call, you can mute your microphone and disable your video with the buttons in the top-right, or using the shortcuts ``M`` to mute audio and ``V`` to disable video. You can also use the ``space bar`` to toggle mute. When you are muted, pressing space will unmute you so you can speak until you let go of the space bar. If you are unmuted, pressing space will mute you until you let go.
@@ -52,3 +57,4 @@ More settings
In the conversation menu you can choose to go full-screen. You can also do this by using the ``F`` key on your keyboard. In the conversation settings, you can find notification options and the full conversation description.
.. image:: images/guest-room-menu.png
:width: 500px

View File

@@ -22,7 +22,7 @@ You can create a direct, one-on-one chat by searching for the name of a user, a
If you want to create a custom group conversation, click the button next to the search field and filters button and then on ``Create a new conversation``.
.. image:: images/create-new-conversation.png
:width: 300px
:width: 400px
You can then pick a name for the conversation, put a description, and set up an avatar for it (with uploaded photo or emoji), and select if the conversation should be open to external users and if other users on the server can see and join the conversation.
@@ -37,6 +37,7 @@ In the second step, you get to add participants and finalize the creation of the
After confirmation you will be redirected to the new conversation and can start communicating right away.
.. image:: images/new-room.png
:width: 700px
View all open conversations
---------------------------
@@ -44,7 +45,7 @@ View all open conversations
You can view all the conversations that you can join by clicking the button next to the search field and filters button and then on ``Join open conversations.``
.. image:: images/join-open-conversations.png
:width: 500px
:width: 400px
Filter your conversations
-------------------------
@@ -54,12 +55,12 @@ You can filter your conversations using the filter button located next to the se
2. Filter unread messages: This option allows you to view all unread messages in all joined conversations.
.. image:: images/filters-menu.png
:width: 250px
:width: 400px
You can then clear the filter from the filters menu.
.. image:: images/clear-filter.png
:width: 250px
:width: 400px
Sharing files in a chat
-----------------------
@@ -69,6 +70,7 @@ You can share files in a chat in 3 ways.
First, you can simply drag'n'drop them on the chat.
.. image:: images/drag-and-drop.png
:width: 600px
Second, you can select a file from your Nextcloud Files or a file manager by choosing the little paperclip and selecting where you'd like to pick the file from.
@@ -76,7 +78,7 @@ Second, you can select a file from your Nextcloud Files or a file manager by cho
:width: 500px
.. image:: images/share-files-in-chat-selection.png
:width: 450px
:width: 600px
You can add more files until you are done and decide to share the files. You can also add a text caption to your shared files, providing a brief description or context.
@@ -86,6 +88,7 @@ You can add more files until you are done and decide to share the files. You can
All users will be able to click the files to view, edit or download them, irrespective of them having a user account. Users with an account will have the file automatically shared with them while external guest users will get them shared as a public link.
.. image:: images/editing-document-in-chat-room.png
:width: 600px
Inserting emoji
---------------
@@ -93,7 +96,7 @@ Inserting emoji
You can add emoji using the picker on the left of the text input field.
.. image:: images/emoji-picker.png
:width: 450px
:width: 400px
Editing messages
----------------
@@ -101,7 +104,7 @@ Editing messages
You can edit messages and captions to file shares up to 6 hours after sending.
.. image:: images/message-editing.png
:width: 450px
:width: 600px
Using Markdown
---------------
@@ -177,12 +180,12 @@ Setting reminder on messages
You can set reminders on specific messages. If there's an important message you want to be notified about later, simply hover over it and click on the reminder icon.
.. image:: images/set-message-reminder.png
:width: 450px
:width: 400px
In the submenu, you can select an appropriate time to receive a notification later.
.. image:: images/configure-message-reminder.png
:width: 450px
:width: 400px
Replying to messages and more
-----------------------------
@@ -190,12 +193,12 @@ Replying to messages and more
You can reply to a message using the arrow that appears when you hover a message.
.. image:: images/reply.png
:width: 450px
:width: 600px
In the ``...`` menu you can also choose to reply privately. This will open a one-on-one chat.
.. image:: images/chat-message-menu.png
:width: 450px
:width: 600px
Here you can also create a direct link to the message or mark it unread so you will scroll back there next time you enter the chat. When it is a file, you can view the file in Files.
@@ -206,7 +209,7 @@ If you don't want to disturb anyone in the middle of the night, there is a silen
While it is enabled, other participants will not receive notifications from your messages.
.. image:: images/message-silent.png
:width: 450px
:width: 600px
Managing a conversation
-----------------------
@@ -216,16 +219,17 @@ You are always moderator in your new conversation. In the participant list you c
Changing permissions of a user that joined a public conversation will also permanently add them to the conversation.
.. image:: images/participant-menu.png
:width: 400px
Moderators can configure the conversation. Select ``Conversation settings`` from the ``...`` menu of the conversation on the top to access the settings.
.. image:: images/open-settings.png
:width: 300px
:width: 400px
Here you can configure the description, guest access, if the conversation is visible to others on the server and more.
.. image:: images/conversation-settings-dialog.png
:width: 450px
:width: 600px
Messages expiration
-------------------
@@ -234,6 +238,7 @@ A moderator can configure message expiration under the ``Conversation settings``
The available expiration durations are 1 hour, 8 hours, 1 day, 1 week, 4 weeks, or never (which is the default setting).
.. image:: images/messages-expiration.png
:width: 500px
Starting a call
@@ -242,11 +247,12 @@ Starting a call
When you're in a conversation, you can start a call any time with the ``Start call`` button. Other participants will get notified and can join the call.
.. image:: images/device-settings-before-call.png
:width: 300px
:width: 400px
If somebody else has started a call already, the button will change in a green ``Join call`` button.
.. image:: images/join-call.png
:width: 600px
During a call, you can mute your microphone and disable your video with the buttons on the right side of the top bar, or using the shortcuts ``M`` to mute audio and ``V`` to disable video. You can also use the space bar to toggle mute. When you are muted, pressing space will unmute you so you can speak until you let go of the space bar. If you are unmuted, pressing space will mute you until you let go.
@@ -260,11 +266,12 @@ You can access your settings and choose a different webcam, microphone and other
From media settings dialog, you can also change the background of your video.
.. image:: images/background-settings-in-call.png
:width: 300px
:width: 400px
You can change other settings in the ``Talk settings`` dialog.
.. image:: images/talk-settings.png
:width: 600px
Starting a screen share
-----------------------
@@ -273,6 +280,7 @@ You can click the monitor icon on your video stream to share your screen. Depend
If video from your camera is also available, other participants will see it in a small presenter view next to the screen share.
.. image:: images/share-screen-with-camera.png
:width: 700px
Changing view in a call
-----------------------
@@ -280,11 +288,12 @@ Changing view in a call
You can switch the view in a call with the little four-block icon in the top-right between promoted-view and grid view. The grid view will show everyone equally big and if the people do not fit on the screen, buttons will appear on the left and right that let you navigate.
.. image:: images/talk-grid-view.png
:width: 700px
The promoted view shows the speaker large and others in a row below. If the people do not fit on the screen, buttons will appear on the left and right that let you navigate.
.. image:: images/talk-promoted-view.png
:width: 700px

View File

@@ -33,6 +33,7 @@ include the following:
* :doc:`user_2fa`
* :doc:`userpreferences`
* Choose the language for your Nextcloud interface
* Choose your preferred first day of the week
* Links to desktop and mobile apps
* Manage your Activity stream and notifications
* Default folder to save new documents to

Some files were not shown because too many files have changed in this diff Show More