Only Office
Photo by Patrick Fore on Unsplash
Toujours dans la serie self-hosting et pour compléter l’article sur NextCloud, rien de tel que l’installation d’une suite office collaborative….
Quand on parle de suite office collaborative, on pense naturellement à Collabora et à Only Office. Personnellement, j’ai retenu la 2nd qui consomme moins de ressource coté serveur (mon VPS n’est pas un foudre de guerre et Collabora y ferait tourner LibreOffice…). Dans sa version communautaire, Only Office permet 20 accès simultanés largement suffisants pour mes besoins personnels.
Comme d’habitude sur cette serie d’articles, je pars de l’infra déjà en place:
- un serveur VPS ( entrée de gamme chez OVH ) avec une installation Docker standard
- Traefik en reverse proxy avec les certifcats TLS fournis par Let’s Encrypt
- NextCloud en solution Drive
Configuration
On commence par récupérer le docker-compose fournit par le projet.
On effectue quelques modifications:
- suppression du build au profit de l’image disponible sur le Docker Hub (ici avec le tag 6.2)
- suppression des commentaires pour la mise en place de l’authentification JWT entre NextCloud et Only Office
- suppression de l’exposition des ports 80 et 443 de la machine hôte (utilisés par Traefik)
- ajouts de la conf réseau et des labels propre à ma conf Traefik
- ajout d’un header middleware
X-Forwarded-Proto
pour permettre le fonctionnement d’OnlyOffice derrière un reverse proxy
1version: '2'
2services:
3 onlyoffice-documentserver:
4 image: onlyoffice/documentserver:6.2.0
5 container_name: onlyoffice-documentserver
6 depends_on:
7 - onlyoffice-postgresql
8 - onlyoffice-rabbitmq
9 environment:
10 - DB_TYPE=postgres
11 - DB_HOST=onlyoffice-postgresql
12 - DB_PORT=5432
13 - DB_NAME=onlyoffice
14 - DB_USER=onlyoffice
15 - AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq
16 - JWT_ENABLED=true
17 - JWT_SECRET=zke+lagbHi+zfVFWTsU5n5u+cnzTY6A9MpqkZj/HTzY= # à renseigner dans la conf Nextcloud
18 - JWT_HEADER=Authorization
19 - JWT_IN_BODY=true
20 networks:
21 - "traefik_lan"
22 - "lan"
23 expose:
24 - 80
25 stdin_open: true
26 restart: unless-stopped
27 stop_grace_period: 60s
28 volumes:
29 - /var/www/onlyoffice/Data
30 - /var/log/onlyoffice
31 - /var/lib/onlyoffice/documentserver/App_Data/cache/files
32 - /var/www/onlyoffice/documentserver-example/public/files
33 - /usr/share/fonts
34 labels:
35 - "traefik.enable=true"
36 - "traefik.docker.network=traefik_lan"
37 - "traefik.http.routers.onlyofficenotls.rule=Host(`office.exemple.com`)"
38 - "traefik.http.routers.onlyofficenotls.entrypoints=webinsecure"
39 - "traefik.http.routers.onlyofficenotls.middlewares=tlsredir@file"
40 - "traefik.http.routers.onlyoffice.rule=Host(`office.exemple.com`)"
41 - "traefik.http.middlewares.secure-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
42 - "traefik.http.middlewares.cors-headers.headers.accessControlAllowOrigin=*"
43 - "traefik.http.routers.onlyoffice.middlewares=secure-headers,cors-headers"
44 - "traefik.http.routers.onlyoffice.entrypoints=websecure"
45 - "traefik.http.routers.onlyoffice.tls.certresolver=letsencrypt"
46 - "traefik.http.routers.onlyoffice.tls=true"
47
48 onlyoffice-rabbitmq:
49 container_name: onlyoffice-rabbitmq
50 image: rabbitmq
51 restart: unless-stopped
52 networks:
53 - "lan"
54 expose:
55 - '5672'
56
57 onlyoffice-postgresql:
58 container_name: onlyoffice-postgresql
59 image: postgres:9.5
60 environment:
61 - POSTGRES_DB=onlyoffice
62 - POSTGRES_USER=onlyoffice
63 - POSTGRES_HOST_AUTH_METHOD=trust
64 restart: unless-stopped
65 networks:
66 - "lan"
67 expose:
68 - '5432'
69 volumes:
70 - "postgresql_data:/var/lib/postgresql"
71
72networks:
73 traefik_lan:
74 external: true
75 lan:
76
77volumes:
78 postgresql_data:
On lance la stack avec un $ docker-compose up -d
et on vérifie que tout est Ok (https://office.example.com)
Intégration Nextcloud
L’intégration OnlyOffice dans Nextcloud se limite à installer l’application OnlyOffice
:
- clic sur votre icône en haut à droite ->
+ Apps
-> recherche surONLYOFFICE
->Download and Enable
Il reste simplement à configurer l’application OnlyOffice dans Nextcloud:
- clic sur votre icône en haut à droite ->
Settings
->ONLYOFFICE
Je vous recommande de décocher la case: Open file in the same tab
qui me semble un fonctionnement plus naturel.
Si tout se passe bien vous devez obtenir l’affichage d’un message: Settings have been successfully updated (version 6.2.0.123)
Vous pouvez maintenant utiliser OnlyOffice !
Enjoy !