Skip to main content

Mettre en place OnlyOffice Docker avec Nextcloud

Prérequis :
  • Avoir un nom de domaine 
    • Dans notre cas nous utiliserons le nom de domaine : miraceti.net
  • Avoir une configuration de Nextcloud Docker fonctionnel 


Il est conseillé de rajouter les configurations suivantes (docker-compose.yml et .env)  directement dans les fichiers correspondants à la configuration Nextcloud. 
Mais il est aussi possible de séparer la configuration Nextcloud et la configuration Onlyoffice. Cependant il faudra mettre le conteneur Nextcloud dans un même network que le conteneur Onlyoffice.

Préparation des fichiers de configuration

PréparationSe placer dans le dossier contenant les fichiers docker-compose.yml et .env de la configuration Nextcloud Docker.

Edition du fichier docker-compose.yml :

 ...(services nextcloud)...

  postgres-onlyoffice:
    image: ${ONLYOFFICE_DOCUMENT_POSTGRES_IMAGE_TAG}
    container_name: postgres-onlyoffice
    volumes:
      - onlyoffice-document-postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: ${ONLYOFFICE_DOCUMENT_DB_NAME}
      POSTGRES_USER: ${ONLYOFFICE_DOCUMENT_DB_USER}
      POSTGRES_HOST_AUTH_METHOD: trust
    networks:
      - onlyoffice-network
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 60s
    restart: unless-stopped

  redis-onlyoffice:
    image: ${ONLYOFFICE_DOCUMENT_REDIS_IMAGE_TAG}
    container_name: redis-onlyoffice
    volumes:
      - redis-onlyoffice-document-data:/data
    networks:
      - onlyoffice-network
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 60s
    restart: unless-stopped

  rabbitmq-onlyoffice:
    image: ${ONLYOFFICE_DOCUMENT_RABBITMQ_IMAGE_TAG}
    container_name: rabbitmq-onlyoffice
    volumes:
      - rabbitmq-onlyoffice-document-data:/bitnami/rabbitmq/mnesia
    environment:
      RABBITMQ_USERNAME: ${ONLYOFFICE_DOCUMENT_RABBITMQ_USER}
      RABBITMQ_PASSWORD: ${ONLYOFFICE_DOCUMENT_RABBITMQ_PASSWORD}
      POSTGRES_PASSWORD: ${ONLYOFFICE_DOCUMENT_DB_PASSWORD}
      RABBITMQ_MANAGEMENT_ALLOW_WEB_ACCESS: true
    networks:
      - onlyoffice-network
    healthcheck:
      test: rabbitmq-diagnostics -q ping
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 90s
    restart: unless-stopped

  onlyoffice-document:
    image: ${ONLYOFFICE_DOCUMENT_IMAGE_TAG}
    container_name: onlyoffice
    volumes:
      - onlyoffice-document-data:/var/www/onlyoffice/Data
      - onlyoffice-document-log:/var/log/onlyoffice
      - onlyoffice-document-cache-files:/var/lib/onlyoffice/documentserver/App_Data/cache/files
      - onlyoffice-document-public-files:/var/www/onlyoffice/documentserver-example/public/files
      - onlyoffice-document-fonts:/usr/share/fonts
    environment:
      DB_TYPE: postgres
      DB_HOST: postgres-onlyoffice-document
      DB_PORT: 5432
      DB_NAME: ${ONLYOFFICE_DOCUMENT_DB_NAME}
      DB_USER: ${ONLYOFFICE_DOCUMENT_DB_USER}
      DB_PWD: ${ONLYOFFICE_DOCUMENT_DB_PASSWORD}
      AMQP_URI: amqp://${ONLYOFFICE_DOCUMENT_RABBITMQ_USER}:${ONLYOFFICE_DOCUMENT_RABBITMQ_PASSWORD}@rabbitmq-onlyoffice-document
      REDIS_SERVER_HOST: redis-onlyoffice-document
      REDIS_SERVER_PORT: 6379
      JWT_ENABLED: true
      JWT_SECRET: ${ONLYOFFICE_DOCUMENT_JWT_SECRET}
      JWT_HEADER: Authorization
      JWT_IN_BODY: 'true'
    networks:
      - onlyoffice-network
      - bddnetwork
    restart: unless-stopped
    depends_on:
      postgres-onlyoffice:
        condition: service_healthy
      rabbitmq-onlyoffice:
        condition: service_healthy
#      nextcloud:
#        condition: service_healthy

Création et éditionEdition du fichier .env

...(Nextcloud Variables)..

# OnlyOffice Variables
ONLYOFFICE_DOCUMENT_POSTGRES_IMAGE_TAG=postgres:15
ONLYOFFICE_DOCUMENT_REDIS_IMAGE_TAG=redis:7.2
ONLYOFFICE_DOCUMENT_RABBITMQ_IMAGE_TAG=bitnami/rabbitmq:3.13.4
ONLYOFFICE_DOCUMENT_IMAGE_TAG=onlyoffice/documentserver:8.1
ONLYOFFICE_DOCUMENT_HOSTNAME=office.miraceti.net
ONLYOFFICE_DOCUMENT_DB_NAME=onlyoffice
ONLYOFFICE_DOCUMENT_DB_USER=onlyofficedbuser
ONLYOFFICE_DOCUMENT_DB_PASSWORD=yVNyHP2keUeD5wD3vkrb
ONLYOFFICE_DOCUMENT_JWT_SECRET=7bukHBGUEzvCjHrYKuT8
ONLYOFFICE_DOCUMENT_RABBITMQ_USER=rabbitmqdb
ONLYOFFICE_DOCUMENT_RABBITMQ_PASSWORD=FX7zuRA7y2wVUNkYwtwH

Création du network pour OnlyOffice

Nous allons créer un network "officenetwork" pour lier les conteneurs/services suivants entre eux : 

  • postgres-onlyoffice
  • redis-onlyoffice
  • rabbitmq-onlyoffice
  • onlyoffice