Настройка NextCloud + ONLYOFFICE Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Setting up NextCloud and ONLYOFFICE on a single server with DockerΒ».

Π‘Π»ΠΎΠΆΠ½ΠΎ Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΠ½Π»Π°ΠΉΠ½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² офисных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Google Docs ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π² ΠΆΠΈΠ·Π½ΠΈ тСхничСски ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… людСй (tech-oriented people). Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ компания Microsoft, ΡƒΠΆΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ офисных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² послСднСС врСмя ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠ»Π°ΡΡŒ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Π΅Π±-прилоТСния Office 365 ΠΈ ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ½ΡƒΡŽ модСль использования собствСнных сСрвисов. Π’Π΅Ρ…, ΠΊΠΎΠ³ΠΎ интСрСсуСт процСсс установки ΠΈ настройки собствСнного Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

НСкотороС врСмя Π½Π°Π·Π°Π΄ ΠΌΡ‹ ознакомились с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ для ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ хранСния ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ офисных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ рСсурсным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ достаточно Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π½Π΅Π΄Ρ€Π΅Π½Ρ‹ для использования Π² микропрСдприятии. Основная мотивация хранСния всСй Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ β€” это свСдСниС объСма Π±ΡƒΠΌΠ°ΠΆΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΎΠ±ΠΎΡ€ΠΎΡ‚Π° ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ, ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… бизнСс-ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ, Π½Π΅ смотря Π½Π° ΠΌΠ°Π»Ρ‹ΠΉ объСм ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ сторона ΠΌΠΎΠ½Π΅Ρ‚Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π°Ρ€Π΅Π½Π΄Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ сСрвСра для прСдоставлСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСрвиса ΠΌΠ΅Π½Π΅Π΅ бСзопасна, Ρ‡Π΅ΠΌ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ нСпосрСдствСнно Π½Π° Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈ прСдприятия, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ вас Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… срСдств Π°ΡƒΠ΄ΠΈΡ‚Π° физичСского доступа ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сСрвСру ΠΈΠ»ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡƒ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ трСбуСтся ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ end-to-end ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ рСсурсным ΠΊΠΎΠ΄ΠΎΠΌ.

ΠŸΡ€ΠΈΠ½ΡΠ² Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ всю Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ рСсурсным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΡ‹ нашли Π΄Π²Π° Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ Π² git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π·Π° ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ 12 мСсяцСв), Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… для ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ хранСния: NextCloud ΠΈ OwnCloud, ΠΈ СдинствСнный Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ офисных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ONLYOFFICE. Π£ ΠΎΠ±ΠΎΠΈΡ… срСдств для ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ хранСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ², ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ NextCloud Π±Ρ‹Π»ΠΎ основано Π½Π° сущСствовании Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π², Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ с ONLYOFFICE для ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠ³ΠΎ взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ПО. Однако, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ сСрвисов, Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… сСрвисов стал ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ. ΠœΡ‹ нашли 3 ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ произвСсти ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ:

Ни ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π²ΠΈΠ΄Π΅ΠΎ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΎ Π½Π° вопрос установки сСрвиса Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ONLYOFFICE Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ физичСском сСрвСрС, Ρ‡Ρ‚ΠΎ ΠΈ NextCloud с ΠΎΠ±Ρ‰ΠΈΠΌ nginx. ВмСсто этого, ΠΎΠ½ΠΈ использовали Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ раздСлСния, ΠΊΠ°ΠΊ использованиС Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ€Ρ‚ΠΎΠ² для api сСрвиса Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сСрвСра для сСрвиса Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с Ρ€ΡƒΡ‡Π½ΠΎΠΉ настройкой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ встроСнного Π² сСрвис Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² инстанса nginx для установки ΠΊΠ»ΡŽΡ‡Π° доступа (ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ извСстный ΠΊΠ»ΡŽΡ‡ доступа, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²ΠΎ доступа ΠΊ ΠΎΠ±Π»Π°ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ сСртификатов TLS. Π’Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π½Ρ‹ Π½Π΅ бСзопасными ΠΈ Π½Π΅ достаточно эффСктивными, поэтому ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π»ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ NextCloud, ONLYOFFICE ΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ nginx, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ раздСляСт запросы ΠΏΠΎ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ docker-compose. Π—Π΄Π΅ΡΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° пошаговая информация ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π¨Π°Π³ 1: ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ nginx

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ простая установка, Π½ΠΎ этот шаг Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ самого большого количСства Ρ€Π°Π±ΠΎΡ‚Ρ‹, для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси сСрвСра. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ создали ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ docker-compose для ΠΎΠ±Ρ€Π°Π·Π° nginx:stable.

version: '2'
services:
  nginx:
    image : nginx:stable
    restart: always
    volumes:
      - ./nginx/nginx-vhost.conf:/etc/nginx/conf.d/default.conf:ro
      - ./nginx/certificates:/mycerts 
    ports:
      - 443:443
      - 80:80

Π­Ρ‚ΠΎ создаСт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ 80 ΠΈ 443, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ доступа, Π΄Π΅Π»Π°Π΅Ρ‚ мэппинг ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° nginx/nginx-vhost.conf ΠΈ опрСдСляСт Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для сСртификатов, сгСнСрированных ΠΊΠ°ΠΊ самоподписанныС сСртификаты ΠΈΠ»ΠΈ с использованиСм Π‘ertbot ΠΎΡ‚ Let’s encrypt Π² /nginx/certificates. Π’ этом мСстС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠ°ΠΏΠΊΠΈ для office.yourdomain.com ΠΈ cloud.yourdomain.com с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ fullchain1.pem ΠΈ privkey1.pem Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ для Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ сСртификатов ΠΈ частного ΠΊΠ»ΡŽΡ‡Π° сСрвСра соотвСтствСнно. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ самоподписанный сСртификат здСсь www.akadia.com/services/ssh_test_certificate.html (ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ .key ΠΈ .crt Π² .pem Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структуры для nginx).

ПослС этого ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» vhost. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ опрСдСляСм ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ€Ρ‚Π° 80 ΠΊΠ°ΠΊ простоС ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° https, Ρ‚.ΠΊ. ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ http Ρ‚Ρ€Π°Ρ„ΠΈΠΊ

server {
    listen 80;
    location / {
        return 301
            https://$host$request_uri;
    }
}

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали Π΄Π²Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… сСрвСра Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 443 для Π½Π°ΡˆΠΈΡ… сСрвисов:

server {
    listen 443 ssl;
    server_name cloud.yourdomain.com ;
    root /var/www/html;

    ssl_certificate     /mycerts/cloud.yourdomain.com/fullchain1.pem;
    ssl_certificate_key /mycerts/cloud.yourdomain.com/privkey1.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app:80;
    }
}
server {
    listen 443 ssl;
    server_name office.yourdomain.com;
    root /var/www/html;

    ssl_certificate     /mycerts/office.yourdomain.com/fullchain1.pem;
    ssl_certificate_key /mycerts/office.yourdomain.com/privkey1.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://onlyoffice:80;
    }
}

Π¨Π°Π³ 2: сСрвис Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ сСрвиса Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² наш docker-compose.yml. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ здСсь особо Π½Π΅Ρ‡Π΅Π³ΠΎ.

services:
...
  onlyoffice:
    image: onlyoffice/documentserver
    restart: always

Но Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ nginx с сСрвисом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

services:
...
  nginx:
    ...
    depends_on:
      - onlyoffice

Π¨Π°Π³ 3: NextCloud

Π‘Π½Π°Ρ‡Π°Π»Π° добавляСм Π½ΠΎΠ²Ρ‹Π΅ сСрвисы:

services:
...
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /data/nextcloud_db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=#put some password here
      - MYSQL_PASSWORD=#put some other password here
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
  app:
    image: nextcloud
    depends_on:
      - db
      - onlyoffice
    restart: always

ΠΈ добавляСм ссылку Π½Π° nginx:

services:
...
  nginx:
    ...
    depends_on:
      - app 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ€Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹.

docker-compose up -d  

Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, nginx Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ вас Π½Π° внСшний интСрфСйс NextCloud, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся станицСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ввСсти имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для вашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² docker-compose.yml ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ настройка ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½Π°, Π²Ρ‹ смоТСтС Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΡ‚ΡŒΡΡ. Π’ нашСм случаС ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ заняло ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ обновлСния страницы Π²Ρ…ΠΎΠ΄Π°, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ смогли Π·Π°ΠΉΡ‚ΠΈ Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ сСрвис.

Окно настроСк сСрвиса NextCloudНастройка NextCloud + ONLYOFFICE Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker

Шаг 4: соСдинСниС NextCloud и ONLYOFFICE

На этом шагС Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для NextCloud, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ONLYOFFICE. НачнСм с ΠΏΠ°Π½Π΅Π»ΠΈ управлСния прилоТСниями Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ мСню. НайдитС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ONLYOFFICE (Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ β€œΠžΡ„ΠΈΡ ΠΈ тСкст” (Office & text) ΠΈΠ»ΠΈ с использованиСм поиска), установитС ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ.

ПослС этого Π½Π°ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ΡΡŒ Π² Установки (Settings) Ρ‡Π΅Ρ€Π΅Π· мСню Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ элСмСнт ONLYOFFICE Π² Π»Π΅Π²ΠΎΠΌ мСню. Π—Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ. Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ адрСса, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Настройки ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСнияНастройка NextCloud + ONLYOFFICE Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ адрСс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ссылки Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ js ΠΈ css Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ прилоТСния (это Ρ‚ΠΎ, для Ρ‡Π΅Π³ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ доступ ΠΊ сСрвису ONLYOFFICE Ρ‡Π΅Ρ€Π΅Π· nginx). Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ довСряСм слою изоляции Docker большС, Ρ‡Π΅ΠΌ постоянному ΠΊΠ»ΡŽΡ‡Ρƒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π’Ρ€Π΅Ρ‚ΠΈΠΉ адрСс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ NextCloud для прямого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ONLYOFFICE API, ΠΈ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ имя хоста ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· Docker. Ну ΠΈ послСднСС ΠΏΠΎΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ONLYOFFICE смог Π΄Π΅Π»Π°Ρ‚ΡŒ запросы ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ NextCloud API, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ внСшний IP-адрСс ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ адрСс Docker, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сСти Docker, Π½ΠΎ Π² нашСм случаС это Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π£Π΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ настройки вашСго Ρ„Π°Π΅Ρ€Π²ΠΎΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ взаимодСйствий.

ПослС сохранСния, NextCloud протСстируСт соСдинСниС ΠΈ, Ссли всС Π²Π΅Ρ€Π½ΠΎ, ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ настройки, связанныС с ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. НастройтС Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ считаСтС Π½ΡƒΠΆΠ½Ρ‹ΠΌ.

Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ шаг: Π³Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€

Если Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ Π² ΠΏΠ°ΠΏΠΊΠΈ вашСго ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Π½Π° β€œ+” для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ доступна новая опция создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π‘ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ создадитС ΠΈ сразу смоТСтС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ONLYOFFICE.

МСню создания файловНастройка NextCloud + ONLYOFFICE Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker

Π”ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 1

ПолноС содСрТимоС docker-compose.yml ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://pastebin.com/z1Ti1fTZ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com