Skip to content

Commit ef6d887

Browse files
committed
docs: update desktop configuration branch from master
Signed-off-by: Rello <github@scherello.de> Assisted-by: Codex:GPT-5
2 parents 58f0ac4 + c0c6112 commit ef6d887

18 files changed

Lines changed: 405 additions & 74 deletions
Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
1-
=====================================
2-
Enabling MySQL/MariaDB 4-byte support
3-
=====================================
1+
===========================================
2+
Enabling MySQL/MariaDB full Unicode support
3+
===========================================
44

55
.. note::
66

7-
Be sure to backup your database before performing this database upgrade.
7+
Be sure to back up your database before performing this database upgrade.
88

9-
In order to use Emojis (textbased smilies) on your Nextcloud server with a MySQL database, the
10-
installation needs to be tweaked a bit.
9+
To store the full range of Unicode characters in Nextcloud, including emoji,
10+
less-common writing systems, historic scripts, and specialized symbols, a
11+
MySQL or MariaDB database must use the ``utf8mb4`` character set. The older
12+
three-byte ``utf8`` character set cannot store characters outside `Unicode's
13+
Basic Multilingual Plane <https://en.wikipedia.org/wiki/Plane_(Unicode)>`_.
1114

1215
.. warning::
1316

1417
This guide applies only to MySQL 8 or newer and MariaDB 10.6 or newer.
1518
For a list of supported MySQL and MariaDB versions, see our
1619
:doc:`system requirements documentation <../installation/system_requirements>`.
1720

18-
1. Make sure the following InnoDB settings are set on your MySQL server::
21+
1. Make sure the following InnoDB setting is enabled on your database server::
1922

2023
[mysqld]
2124
innodb_file_per_table=1
2225

23-
2. Restart the MySQL server in case you changed the configuration in step 1.
26+
2. Restart the database server if you changed the configuration in step 1.
2427

2528
You can then verify that the change worked:
2629

@@ -38,35 +41,50 @@ The result should look like this::
3841
+-----------------------+-------+
3942
1 row in set (0.00 sec)
4043

41-
3. Open a shell, change dir (adjust ``/var/www/nextcloud`` to your nextcloud location if needed), and put your nextcloud instance in maintenance mode, if it isn't already::
44+
3. Open a shell, change to the Nextcloud installation directory (adjust
45+
``/var/www/nextcloud`` as needed), and enable maintenance mode if it is not
46+
already enabled::
4247

4348
$ cd /var/www/nextcloud
4449
$ sudo -E -u www-data php occ maintenance:mode --on
4550

46-
4. Change your databases character set and collation:
51+
4. Change the database character set to ``utf8mb4`` and set its default
52+
collation:
4753

4854
.. code-block:: sql
4955
5056
ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
5157
52-
5. Set the ``mysql.utf8mb4`` config to true in your config.php::
58+
.. note::
59+
60+
The character set determines which characters can be stored. The collation
61+
determines how text is compared and sorted.
62+
63+
5. Enable ``utf8mb4`` support in the Nextcloud system configuration::
5364

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

56-
6. Convert all existing tables to the new collation by running the repair step::
67+
6. Run the repair command to convert the existing tables to the ``utf8mb4``
68+
character set and collation::
5769

5870
$ sudo -E -u www-data php occ maintenance:repair
5971

6072
.. note::
6173

62-
This will also change the `ROW_FORMAT` to `DYNAMIC` for your tables.
74+
This also changes the ``ROW_FORMAT`` of all tables to ``DYNAMIC``.
6375

6476
7. Disable maintenance mode::
6577

6678
$ sudo -E -u www-data php occ maintenance:mode --off
6779

6880
Now you should be able to use Emojis in your file names, calendar events, comments and many more.
81+
Nextcloud can now use the full range of Unicode characters - such as emojis - in file names,
82+
calendar events, and comments.
6983

7084
.. note::
7185

72-
Also make sure your backup strategy still work. If you use ``mysqldump`` make sure to add the ``--default-character-set=utf8mb4`` option. Otherwise your backups are broken and restoring them will result in ``?`` instead of the emojis, making files inaccessible.
86+
Make sure your backup strategy supports ``utf8mb4``. If you use
87+
``mysqldump``, add the ``--default-character-set=utf8mb4`` option.
88+
Otherwise, four-byte Unicode characters may not be preserved correctly
89+
when the backup is restored. (A common symptom of this problem is the
90+
appearance of ``?`` instead of emojis in text and file names).

‎admin_manual/configuration_files/previews_configuration.rst‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,19 @@ and ``OC\Preview\MSOfficeDoc`` require LibreOffice. Image formats handled
3131
through ImageMagick, such as ``OC\Preview\Illustrator``, ``OC\Preview\SVG``
3232
and ``OC\Preview\TIFF``, require the corresponding ImageMagick support.
3333

34+
Installing the ``imagick`` PHP extension is not on its own enough for those providers.
35+
ImageMagick also has to carry the delegate for the format, which is a separate build
36+
option and often a separate distribution package: ``OC\Preview\JP2`` needs the OpenJPEG
37+
delegate, and ``OC\Preview\HEIC`` and ``OC\Preview\AVIFImagick`` need an HEIF one,
38+
usually libheif. A provider whose delegate is missing is never registered, so those
39+
files keep their mimetype icon rather than producing a broken preview.
40+
41+
``OC\Preview\AVIF`` is the one enabled-by-default provider with a build dependency of
42+
its own. It decodes with GD, which handles AVIF only if PHP was built against a libgd
43+
that supports it. Where it was not, enable ``OC\Preview\AVIFImagick`` alongside it:
44+
both answer for AVIF, GD is asked first, and ImageMagick is asked after it if GD
45+
returns nothing.
46+
3447
Parameters
3548
----------
3649

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
==================
2+
Budibase workflows
3+
==================
4+
5+
6+
Budibase can easily be connected to Nextcloud and start automations reacting to Nextcloud events.
7+
8+
9+
Using a Nextcloud webhook as automation trigger
10+
-----------------------------------------------
11+
12+
When creating a new automation in Budibase, you can choose "Webhook" as trigger.
13+
14+
.. image:: images/new_automation.png
15+
:alt: Budibase for creating a new automation, with highlighted "Webhook" button
16+
17+
Budibase shows a schema request URL you can use to send the expected payload schema in advance.
18+
19+
The easiest way to to this is to go to the Orchestration Gateway admin settings and click "Register new Budibase webhook":
20+
21+
.. image:: images/new_budibase.png
22+
:alt: Orchestration Gateway dialog for registering a Budibase webhook
23+
24+
Here you can fill in the event you want your automation to be started by and the schema URL, and then send the schema. Budibase will show 4 detected bindings upon successful sending. You can then fill in the trigger URL provided by Budibase, all needed filters and the authentication tokens that should be included in the callback, and save.
25+
As soon as you have your automation deployed, it will now be triggered every time your chosen event happens in Nextcloud.
26+
27+
28+
29+
Use payload information in bindings
30+
-----------------------------------
31+
32+
For every event, there are 4 bindings registered in Budibase:
33+
34+
* ``user``: the user that triggered the Nextcloud event
35+
* ``time``: a timestamp for the triggering
36+
* ``event``: an array containing additional information about the event (see the :ref:`list of webhook events<webhook_events>` for details)
37+
* ``authentication``: the requested authentication tokens
38+
39+
These bindings can be used in any step of your automation to use the information given by the callback.
194 KB
Loading
48.3 KB
Loading
114 KB
Loading
110 KB
Loading

‎admin_manual/webhook_listeners/index.rst‎

Lines changed: 122 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,33 @@ Enable the ``webhook_listeners`` app that comes bundled with Nextcloud - e.g.
3636
3737
occ app:enable webhook_listeners
3838
39-
Listening to events
40-
-------------------
39+
Managing webhooks
40+
-----------------
4141

42-
You can use the OCS API to add webhooks for specific events. See:
42+
You can either use the OCS API to manage your webhooks or install the additional ``orchestration_gateway`` app to have a graphical user interface for adding, changing and deleting webhooks.
43+
44+
the Orchestration Gateway adds an administration settings page listing your registered webhooks and making it easy to configure them.
45+
46+
.. image:: images/list_webhooks.png
47+
:alt: Orchestration Gateway settings showing a list of registered webhooks
48+
49+
To add a new one, you can choose between a generic new webhook or a Budibase-specific one.
50+
51+
52+
.. image:: images/new_webhook.png
53+
:alt: Orchestration Gateway dialog for adding a new webhook
54+
55+
56+
If you want to use the OCS API to add webhooks for specific events, see:
4357
`Register a new webhook <https://docs.nextcloud.com/server/latest/developer_manual/_static/openapi.html#/operations/webhook_listeners-webhooks-index>`_.
4458

45-
Note: When authenticating with the OCS API to register webhooks, the account you
46-
use must have administrator rights or delegated administrator rights.
59+
.. note::
4760

48-
Listing registered webhooks
49-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
61+
When authenticating with the OCS API to register webhooks, the account you use must have administrator rights or delegated administrator rights. To delegate the webhook registration to non-admin users, they have to be in a group that gets administration privileges for "Webhooks" granted. To use the Orchestration Gateway UI, they need *additional* privileges for "Orchestration Gateway".
62+
63+
64+
Listing registered webhooks via occ
65+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5066

5167
You can list all currently registered webhook listeners from the command line:
5268

@@ -203,6 +219,8 @@ The complete logs of the workers can be checked with (replace 1 with the worker
203219
204220
It is recommended to restart this worker at least once a day to make sure code changes are effective and avoid memory leaks, in this example the service restarts every 60 seconds.
205221

222+
.. _webhook_events:
223+
206224
Nextcloud Webhook Events
207225
------------------------
208226

@@ -577,7 +595,104 @@ When the optional ``tables`` app is installed:
577595
"time": 1700054321,
578596
}
579597
598+
599+
Mail App Events
600+
~~~~~~~~~~~~~~~~~
601+
Mail events use different distinct payload formats, depending on the event.
602+
When the optional ``mail`` app is installed:
603+
604+
- ``NewMessageReceivedEvent``
605+
606+
.. code-block:: json
607+
608+
{
609+
"event": {
610+
"class": "OCA\\Mail\\Event\\NewMessageReceivedEvent",
611+
"accountId": 34,
612+
"inReplyToRfcMessageId": "5888857",
613+
"mailboxId": 10,
614+
"messageId": 108778,
615+
"messageUri": "89789789",
616+
"RfcMessageId": "897789",
617+
"sentAt": "1787826765",
618+
"subject": "Important data changes",
619+
"threadRootId": "9947988"
620+
},
621+
"user": {
622+
"uid": "carol",
623+
"displayName": "Carol"
624+
},
625+
"time": 1787826832,
626+
}
627+
628+
629+
- ``MessageSentEvent``
630+
631+
.. code-block:: json
632+
633+
{
634+
"event": {
635+
"class": "OCA\\Mail\\Event\\MessageSentEvent",
636+
"accountId": 34,
637+
"inReplyToRfcMessageId": "5888857",
638+
"sendAt": "1787826765",
639+
"subject": "Important data changes"
640+
},
641+
"user": {
642+
"uid": "carol",
643+
"displayName": "Carol"
644+
},
645+
"time": 1787826832,
646+
}
647+
648+
649+
- ``MessageFlaggedEvent``
650+
651+
.. code-block:: json
652+
653+
{
654+
"event": {
655+
"class": "OCA\\Mail\\Event\\MessageFlaggedEvent",
656+
"accountId": 34,
657+
"flag": "Spam",
658+
"mailboxId": 10,
659+
"messageId": 108778,
660+
"set": true,
661+
"uid": 897789
662+
},
663+
"user": {
664+
"uid": "carol",
665+
"displayName": "Carol"
666+
},
667+
"time": 1787826832,
668+
}
669+
670+
671+
- ``MessageDeletedEvent``
672+
673+
.. code-block:: json
674+
675+
{
676+
"event": {
677+
"class": "OCA\\Mail\\Event\\MessageDeletedEvent",
678+
"accountId": 34,
679+
"mailboxId": 10,
680+
"uid": 108778
681+
},
682+
"user": {
683+
"uid": "carol",
684+
"displayName": "Carol"
685+
},
686+
"time": 1787826832,
687+
}
688+
580689
.. note::
581690

582691
For filtering or automation, always check the actual payload you receive, as it matches
583692
the JSON examples above, not PHPDoc or internal PHP array type style.
693+
694+
695+
.. toctree::
696+
:maxdepth: 2
697+
698+
budibase_workflows

0 commit comments

Comments
 (0)