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 


Préparation des fichiers de configuration

Préparation du fichier docker-compose.yml :


  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 édition du fichier .env

# 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