mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-02 14:07:43 +00:00
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.
|