Merge branch 'master' into tofuSCHNITZEL-patch-1
51
.github/workflows/command-rebase.yml
vendored
@@ -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"
|
||||
2
.github/workflows/fixup.yml
vendored
@@ -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 }}
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
6
.github/workflows/sphinxbuild.yml
vendored
@@ -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"
|
||||
|
||||
@@ -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>`)
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
------------
|
||||
|
||||
|
||||
@@ -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
|
||||
------------
|
||||
|
||||
|
||||
137
admin_manual/ai/app_summary_bot.rst
Normal 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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
--------------------------
|
||||
|
||||
@@ -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>`_
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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>`_
|
||||
@@ -6,7 +6,6 @@ Digging deeper
|
||||
:maxdepth: 3
|
||||
|
||||
api
|
||||
changelog
|
||||
config/index
|
||||
debugging
|
||||
classloader
|
||||
|
||||
@@ -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``
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 417 KiB After Width: | Height: | Size: 401 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 239 KiB After Width: | Height: | Size: 255 KiB |
|
Before Width: | Height: | Size: 298 KiB After Width: | Height: | Size: 155 KiB |
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 17 KiB |
BIN
user_manual/talk/images/guest-call-menu.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 289 KiB After Width: | Height: | Size: 349 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 358 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 394 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 459 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 537 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 484 KiB |
|
Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 368 KiB After Width: | Height: | Size: 60 KiB |
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||