mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
A new document detailing the configuration steps for enabling Collabora in development has been added. This includes setting up ngrok and configuring both the Collabora and Symfony servers. Furthermore, a new class, NullProofValidator, has been created for validation during the development process. This class always returns true, making it useful for debugging purposes.
126 lines
4.5 KiB
ReStructuredText
126 lines
4.5 KiB
ReStructuredText
|
|
Enable CODE for development
|
|
===========================
|
|
|
|
For editing a document, there must be a way to communicate between the collabora server and the symfony server, in
|
|
both direction. The domain name should also be the same for collabora server and for the browser which access to the
|
|
online editor.
|
|
|
|
Using ngrok (or other http tunnel)
|
|
----------------------------------
|
|
|
|
One can configure a tunnel server to expose your local install to the web, and access to your local server using the
|
|
tunnel url.
|
|
|
|
Start ngrok
|
|
^^^^^^^^^^^
|
|
|
|
This can be achieve using `ngrok <https://ngrok.com/>`_.
|
|
|
|
.. note::
|
|
|
|
The configuration of ngrok is outside of the scope of this document. Refers to the ngrok's documentation.
|
|
|
|
.. code-block:: bash
|
|
|
|
# ensuring that your server is running through http and port 8000
|
|
ngrok http 8000
|
|
# then open the link given by the ngrok utility and you should reach your app
|
|
|
|
At this step, ensure that you can reach your local app using the ngrok url.
|
|
|
|
Configure Collabora
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
The collabora server must be executed online and configure to access to your ngrok installation. Ensure that the aliasgroup
|
|
exists for your ngrok application (`See the CODE documentation: <https://sdk.collaboraonline.com/docs/installation/Configuration.html#multihost-configuration>`_).
|
|
|
|
Configure your app
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
Set the :code:`EDITOR_SERVER` variable to point to your collabora server, this should be done in your :code:`.env.local` file.
|
|
|
|
At this point, everything must be fine. In case of errors, watch the log from your collabora server, use the `profiler <https://symfony.com/doc/current/profiler.html>`_
|
|
to debug the requests.
|
|
|
|
.. note::
|
|
|
|
In case of error while validating proof (you'll see those message in the collabora's logs), you can temporarily disable
|
|
the proof validation adding this code snippet in `config/services.yaml`:
|
|
|
|
.. code-block:: yaml
|
|
|
|
when@dev:
|
|
# add only in dev environment, to avoid security problems
|
|
services:
|
|
ChampsLibres\WopiLib\Contract\Service\ProofValidatorInterface:
|
|
# this class will always validate proof
|
|
alias: Chill\WopiBundle\Service\Wopi\NullProofValidator
|
|
|
|
With a local CODE image
|
|
-----------------------
|
|
|
|
.. warning::
|
|
|
|
This configuration is not sure, and must be refined. The documentation does not seems to be entirely valid.
|
|
|
|
Use a local domain name and https for your app
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Use the proxy feature from embedded symfony server to run your app. `See the dedicated doc <https://symfony.com/doc/current/setup/symfony_server.html#local-domain-names>`
|
|
|
|
Configure also the `https certificate <https://symfony.com/doc/current/setup/symfony_server.html#enabling-tls>`_
|
|
|
|
In this example, your local domain name will be :code:`my-domain` and the url will be :code:`https://my-domain.wip`.
|
|
|
|
Ensure that the proxy is running.
|
|
|
|
Create a certificate database for collabora
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Collabora must validate your certificate generated by symfony console. For that, you need `to create a NSS database <https://sdk.collaboraonline.com/docs/installation/Configuration.html#validating-digital-signatures>`
|
|
and configure collabora to use it.
|
|
|
|
At first, export the certificate for symfony development. Use the graphical interface from your browser to get the
|
|
certificate as a PEM file.
|
|
|
|
.. code-block:: bash
|
|
|
|
# create your database in a custom directory
|
|
mkdir /path/to/your/directory
|
|
certutil -N -d /path/to/your/directory
|
|
cat /path/to/your/ca.crt | certutil -d . -A symfony -t -t C,P,C,u,w -a
|
|
|
|
Launch CODE properly configured
|
|
|
|
.. code-block:: yaml
|
|
|
|
collabora:
|
|
image: collabora/code:latest
|
|
environment:
|
|
- SLEEPFORDEBUGGER=0
|
|
- DONT_GEN_SSL_CERT="True"
|
|
# add path to the database
|
|
- extra_params=--o:ssl.enable=false --o:ssl.termination=false --o:logging.level=7 -o:certificates.database_path=/etc/custom-certificates/nss-database
|
|
- username=admin
|
|
- password=admin
|
|
- dictionaries=en_US
|
|
- aliasgroup1=https://my-domain.wip
|
|
ports:
|
|
- "127.0.0.1:9980:9980"
|
|
volumes:
|
|
- "/path/to/your/directory/nss-database:/etc/custom-certificates/nss-database"
|
|
extra_hosts:
|
|
- "my-domain.wip:host-gateway"
|
|
|
|
Configure your app
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
Into your :code:`.env.local` file:
|
|
|
|
.. code-block:: env
|
|
|
|
EDITOR_SERVER=http://${COLLABORA_HOST}:${COLLABORA_PORT}
|
|
|
|
At this step, you should be able to edit a document through collabora.
|