ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ NextCloud + ONLYOFFICE ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืกืขืจื•ื•ืขืจ ืžื™ื˜ ื“ืึธืงืงืขืจ

ื”ืขืœื, ื”ืื‘ืจ! ืื™ืš ืคืึธืจืฉื˜ืขืœืŸ ืฆื• ื“ื™ื™ืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜ ื“ื™ ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ "ืกืขื˜ื˜ื™ื ื’ NextCloud ืื•ืŸ ONLYOFFICE ืื•ื™ืฃ ืึท ืื™ื™ืŸ ืกืขืจื•ื•ืขืจ ืžื™ื˜ ื“ืึธืงืงืขืจ".

ืขืก ืื™ื– ืฉื•ื•ืขืจ ืฆื• ืึทื ื“ืขืจืขืกื˜ืึทืžืึทื˜ ื“ื™ ื‘ืขื ืขืคื™ืฅ ืคื•ืŸ ืึธื ืœื™ื™ืŸ ืึธืคื™ืก ืกื•ื•ื™ืฅ ื•ื•ื™ Google ื“ืึธืงืก ืื•ืŸ ื•ื•ืึธืœืงืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื™ืŸ ื“ื™ ืœืขื‘ืŸ ืคื•ืŸ ื˜ืขืง-ืึธืจื™ืขื ื˜ื™ื“ ืžืขื ื˜ืฉืŸ. ื˜ืขื˜ืฉื ืึธืœืึธื’ื™ืขืก ื”ืึธื‘ืŸ ื•ื•ืขืจืŸ ืึทื–ื•ื™ ื•ื•ื™ื™ื“ืกืคึผืจืขื“ ืึทื– ืืคื™ืœื• ืžื™ื™ืงืจืึธืกืึธืคึฟื˜, ื•ื•ืึธืก ื”ืื˜ ืœืึทื ื’ ื“ืึทืžืึทื ื™ื™ื˜ืึทื“ ื“ื™ ืึธืคื™ืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืžืึทืจืง, ื”ืื˜ ืœืขืฆื˜ื ืก ืคืึธื•ืงื™ืกื˜ ืื•ื™ืฃ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ื“ื™ ืึธืคืคื™ืกืข 365 ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ืงืึทื ื•ื•ื™ื ืกื™ื ื’ ื™ื•ื–ืขืจื– ืฆื• ื‘ืึทืฉื˜ื™ืžืขืŸ ืฆื• ืึท ืึทื‘ืึธื ืขืžืขื ื˜ ืžืึธื“ืขืœ ืคึฟืึทืจ ื ื™ืฆืŸ ื–ื™ื™ึทืŸ ืื™ื™ื’ืขื ืข ื‘ืึทื“ื™ื ื•ื ื’ืก. ืžื™ืจ ืœืึทื“ืŸ ื“ื™ ื•ื•ืืก ื–ืขื ืขืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ื™ื ืกื˜ืึธืœื™ื ื’ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ื–ื™ื™ืขืจ ืื™ื™ื’ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ื ื˜ืขืจ ืงืึทืฅ.

ืขื˜ืœืขื›ืข ืžืึธืœ ืฆื•ืจื™ืง, ืžื™ืจ ื’ืขื•ื•ืืจืŸ ื‘ืึทืงืึทื ื˜ ืžื™ื˜ ื•ื•ืึธืœืงืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืกืึทืœื•ืฉืึทื ื– ืื•ืŸ ืึธืคึฟืŸ ืžืงื•ืจ ืึธืคื™ืก ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื– ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ื’ืึทื ืฅ ืœื™ื™ื›ื˜ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึฟืึทืจ ื ื•ืฆืŸ ืื™ืŸ ืึท ืžื™ืงืจืึธ-ืขื ื˜ืขืจืคึผืจื™ื™ื–. ื“ื™ ื”ื•ื™ืคึผื˜ ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืกื˜ืึธืจื™ื ื’ ืึทืœืข ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืึธื ืœื™ื™ืŸ ืื™ื– ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื‘ืึทื ื“ ืคื•ืŸ ืคึผื™ื™ืคึผืขืจื•ื•ืขืจืง ืฆื• ืึท ืžื™ื ื™ืžื•ื, ืื•ืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ positive ื’ืขืฉืขืคื˜ ืคึผืจืึทืงื˜ื™ืกื™ื–, ื˜ืจืึธืฅ ื“ืขื ืงืœื™ื™ืŸ ื‘ืึทื ื“ ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–. ื“ื™ ืคืœื™ืคึผ ื–ื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืžืึทื˜ื‘ื™ื™ืข ืื™ื– ืึทื– ืจืขื ื˜ื™ื ื’ ืึท ื•ื•ืึธืœืงืŸ ืกืขืจื•ื•ืขืจ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ื“ืขื ื“ื™ื ืกื˜ ืื™ื– ื•ื•ื™ื™ื ื™ืงืขืจ ื–ื™ื›ืขืจ ื•ื•ื™ ืกื˜ืึธืจื™ื ื’ ืขืก ื’ืœื™ื™ืš ืื™ืŸ ื“ื™ ืœืึธืงืึทืœ ืคื•ืŸ ื“ื™ ืคืึทืจื ืขืžื•ื ื’, ื•ื•ื™ื™ึทืœ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืงื™ื™ืŸ ืžื™ื˜ืœ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืคื™ื–ื™ืฉ ืึทืงืกืขืก ืฆื• ื“ื™ื™ืŸ ืกืขืจื•ื•ืขืจ ืึธื“ืขืจ ืคืึทืจืงืขืจ. ื“ืขืจื™ื‘ืขืจ, ืกื•ืฃ-ืฆื•-ืกื•ืฃ ืขื ืงืจื™ืคึผืฉืึทืŸ ืื•ืŸ ืึธืคึฟืŸ ืžืงื•ืจ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื–ืขื ืขืŸ ืื•ื™ืš ืคืืจืœืื ื’ื˜.

ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ืึทืœืข ื‘ื ื™ืžืฆื ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึธืคึฟืŸ ืžื™ื˜ืœ ืกืึทืœื•ืฉืึทื ื–, ืžื™ืจ ื’ืขืคึฟื•ื ืขืŸ ืฆื•ื•ื™ื™ ืึทืงื˜ื™ื•ื• ืคึผืจืึทื“ื–ืฉืขืงืก (ืžื™ื˜ ืงืึทืžื™ืฅ ืื™ืŸ ื“ื™ ื’ื™ื˜ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื™ืŸ ื“ื™ ืœืขืฆื˜ืข 12 ื—ื“ืฉื™ื) ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืคึฟืึทืจ ื•ื•ืึธืœืงืŸ ืกื˜ืึธืจื™ื“ื–ืฉ: NextCloud ืื•ืŸ OwnCloud, ืื•ืŸ ื“ื™ ื‘ืœื•ื™ื– ืึทืงื˜ื™ื•ื• ืึธืคื™ืก ืกื•ื•ื™ื˜ ONLYOFFICE. ื‘ื™ื™ื“ืข ื•ื•ืึธืœืงืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืžื›ืฉื™ืจื™ื ื”ืึธื‘ืŸ ื‘ืขืขืจืขืš ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™, ืื•ืŸ ื“ืขืจ ื‘ืึทืฉืœื•ืก ืฆื• ืงืœื™ื™ึทื‘ืŸ NextCloud ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื–ืึธื’ืŸ ืึทื– ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืžื™ื˜ ONLYOFFICE ืคึฟืึทืจ ืึท ื‘ืึทืงื•ื•ืขื ื‘ืึทื ื™ืฆืขืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ื“ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’. ืึธื‘ืขืจ, ื•ื•ืขืŸ ืžื™ืจ ืื ื’ืขื”ื•ื™ื‘ืŸ ื“ื™ืคึผืœื•ื™ื™ื ื’ ื“ื™ ืกืขืจื•ื•ื™ืกืขืก, ืึท ืคืขืœืŸ ืคื•ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืฃ ื™ื ื˜ืึทื’ืจื™ื™ื˜ื™ื ื’ ื“ื™ ืื•ื™ื‘ืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื™ื– ื’ืขื•ื•ืขืŸ ืงืœืึธืจ. ืžื™ืจ ื’ืขืคึฟื•ื ืขืŸ 3 ื˜ืจื™ื™ื ื™ื ื’ ื•ื•ื™ื“ื™ืืก ืื•ื™ืฃ ื•ื•ื™ ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ:

ืงื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื“ืจื™ื™ ื•ื•ื™ื“ื™ืืก ื”ืื˜ ื ื™ืฉื˜ ื’ืขืขื ื˜ืคืขืจื˜ ื“ื™ ืงืฉื™ื ืคื•ืŸ ื™ื ืกื˜ืึธืœื™ื ื’ ื“ื™ ONLYOFFICE ื“ืึธืงื•ืžืขื ื˜ ื“ื™ื ืกื˜ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื’ืฉืžื™ื•ืช ืกืขืจื•ื•ืขืจ ื•ื•ื™ NextCloud ืžื™ื˜ ืึท ืฉืขืจื“ ื ื’ื™ื ืงืก. ืึทื ืฉื˜ืึธื˜, ื–ื™ื™ ื’ืขื•ื•ื™ื™ื ื˜ ืฆืขืฉื™ื™ื“ื•ื ื’ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ืึทื–ืึท ื•ื•ื™ ื ื™ืฆืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืคึผืึธืจืฅ ืคึฟืึทืจ ื“ื™ ื“ืึธืงื•ืžืขื ื˜ ืกืขืจื•ื•ื™ืก ืึทืคึผื™. ืืŸ ืื ื“ืขืจ ืคืืจื’ืขืœื™ื™ื’ื˜ ืึธืคึผืฆื™ืข ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืกืขืจื•ื•ืขืจ ืคึฟืึทืจ ื“ื™ ื“ืึธืงื•ืžืขื ื˜ ื“ื™ื ืกื˜ ืžื™ื˜ ืžืึทื ื•ืึทืœ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ nginx ื‘ื™ื™ึทืฉืคึผื™ืœ ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื“ื™ ื“ืึธืงื•ืžืขื ื˜ ื“ื™ื ืกื˜ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึท ืึทืงืกืขืก ืฉืœื™ืกืœ (ืึท ืคืึทืจ-ื‘ืืงืื ื˜ ืึทืงืกืขืก ืฉืœื™ืกืœ ื•ื•ืึธืก ืงืึทื ืคืขืจืžื– ื“ื™ ืจืขื›ื˜ ืฆื• ืึทืงืกืขืก ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืึธืœืงืŸ) ืื•ืŸ TLS ืกืขืจื˜ื™ืคื™ืงืึทืฅ. . ื“ื™ ืื•ื™ื‘ืŸ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ื–ืขื ืขืŸ ื’ืขื”ืืœื˜ืŸ ืึทื ืกื™ื™ืฃ ืื•ืŸ ื ื™ืฉื˜ ืขืคืขืงื˜ื™ื•ื• ื’ืขื ื•ื’, ืึทื–ื•ื™ ืžื™ืจ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ NextCloud, ONLYOFFICE ืื•ืŸ ื“ืขืจ ืคึผืจืึธืกื˜ nginx, ื•ื•ืึธืก ืกืขืคึผืขืจื™ื™ืฅ ืจื™ืงื•ื•ืขืก ื“ื•ืจืš ืคืขืœื“ ื ืขืžืขืŸ, ื ื™ืฆืŸ ื“ืึธืงืขืจ-ืงืึธืžืคึผืึธืกืข. ื“ืึธ ืก ืฉืจื™ื˜-ืคึฟืึทืจ-ืฉืจื™ื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืฃ ื•ื•ื™ ืฆื• ื˜ืึธืŸ ื“ืึธืก.

ืฉืจื™ื˜ 1: nginx ืงืึทื ื˜ื™ื™ื ืขืจ

ื“ืึธืก ืื™ื– ืึท ื–ื™ื™ืขืจ ืคึผืฉื•ื˜ ืกืขื˜ืึทืคึผ, ืึธื‘ืขืจ ื“ืขื ืฉืจื™ื˜ ืจื™ืงื•ื•ื™ื™ืขืจื– ื“ื™ ืžืขืจืกื˜ ืึทืจื‘ืขื˜ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื“ื™ ืคืึทืจืงืขืจื˜ ืคึผืจืึทืงืกื™ ืกืขืจื•ื•ืขืจ. ืขืจืฉื˜ืขืจ, ืžื™ืจ ื‘ืืฉืืคืŸ ืึท ื“ืึธืงืงืขืจ-ืงืึธืžืคึผืึธืกืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื“ื™ nginx: ืกื˜ืึทื‘ื™ืœ ื‘ื™ืœื“.

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 ืื•ืŸ ื“ื™ืคื™ื™ื ื– ืึท ืงืจืึธื ืคึฟืึทืจ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื•ื•ื™ ื–ื™ืš-ื’ืขื—ืชืžืขื˜ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืึธื“ืขืจ ื ื™ืฆืŸ ื–ืืœ ืก ืขื ืงืจื™ืคึผื˜ ืกืขืจื˜ื‘ืึธื˜ ืื™ืŸ /nginx/certificates. ื“ืขื ืึธืจื˜ ื–ืึธืœ ืึทื ื˜ื”ืึทืœื˜ืŸ ืคืึธืœื“ืขืจืก ืคึฟืึทืจ office.yourdomain.com ืื•ืŸ cloud.yourdomain.com ืžื™ื˜ ื˜ืขืงืขืก fullchain1.pem ืื•ืŸ privkey1.pem ืื™ืŸ ื™ืขื“ืขืจ ืคึฟืึทืจ ื“ื™ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืงื™ื™ื˜ ืื•ืŸ ืกืขืจื•ื•ืขืจ ืคึผืจื™ื•ื•ืึทื˜ ืฉืœื™ืกืœ ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™. ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึท ื–ื™ืš-ื’ืขื—ืชืžืขื˜ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ื“ืึธ www.akadia.com/services/ssh_test_certificate.html (ืจื™ื ื™ื™ืžื™ื ื’ .ืงื™ื™ ืื•ืŸ .ืงืจื˜ ืฆื• .ืคึผืขื ืึทืจื‘ืขื˜ ืึธืŸ ืงืึทื ื•ื•ืขืจื˜ื™ื ื’ ื“ื™ ื˜ืขืงืข ืกื˜ืจื•ืงื˜ื•ืจ ืคึฟืึทืจ ื ื’ื™ื ืงืก).

ื ืึธืš ื“ืขื, ืžื™ืจ ื“ื™ืคื™ื™ื ื“ ื“ื™ vhost ื˜ืขืงืข. ืขืจืฉื˜ืขืจ ืžื™ืจ ื“ืขืคื™ื ื™ืจืŸ ื“ื™ ื ืึทื˜ื•ืจ ืคื•ืŸ ืคึผืึธืจื˜ 80 ื•ื•ื™ ืึท ืคึผืฉื•ื˜ ืจื™ื“ืขืจืขืงื˜ ืฆื• https, ื•ื•ื™ื™ึทืœ ืžื™ืจ ื•ื•ื™ืœืŸ ื ื™ืฉื˜ ืœืึธื–ืŸ ืงื™ื™ืŸ ื”ื˜ื˜ืคึผ ืคืึทืจืงืขืจ

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 ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืกืขืจื•ื•ืขืจ ืžื™ื˜ ื“ืึธืงืงืขืจ

ืฉืจื™ื˜ 4: ืงืึธื ื ืขืงื˜ NextCloud ืื•ืŸ ONLYOFFICE

ืื™ืŸ ื“ืขื ืฉืจื™ื˜, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึฟืึทืจ NextCloud, ื•ื•ืึธืก ืงืึทื ืขืงืฅ ื“ื™ ONLYOFFICE ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™. ืœืึธืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึธื ื˜ืจืึธืœ ื˜ืึทืคืœื™ืข ืื™ืŸ ื“ื™ ืฉืคึผื™ืฅ ืจืขื›ื˜ ื•ื•ื™ื ืงืœ ืคื•ืŸ ื“ื™ ืžืขื ื™ื•. ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ONLYOFFICE ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ (ืื™ืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’ "ืึธืคื™ืก & ื˜ืขืงืกื˜" ืึธื“ืขืจ ื ื™ืฆืŸ ื–ื•ื›ืŸ), ื™ื ืกื˜ืึทืœื™ืจืŸ ืื•ืŸ ืึทืงื˜ืึทื•ื•ื™ื™ื˜ ืขืก.

ื ืึธืš ื“ืขื, ื’ื™ื™ืŸ ืฆื• ืกืขื˜ื˜ื™ื ื’ืก ื“ื•ืจืš ื“ื™ ืžืขื ื™ื• ืื™ืŸ ื“ื™ ืฉืคึผื™ืฅ ืจืขื›ื˜ ื•ื•ื™ื ืงืœ ืื•ืŸ ืื™ืจ ื–ืึธืœ ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ONLYOFFICE ื ื•ืžืขืจ ืื™ืŸ ื“ื™ ืœื™ื ืงืก ืžืขื ื™ื•. ืึทืจื™ื™ึทืŸ ืขืก. ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืึทืจื™ื™ึทืŸ ื“ื™ ืึทื“ืจืขืกืขืก ื•ื•ื™ ื’ืขื•ื•ื™ื–ืŸ ืื•ื ื˜ืŸ.

ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืกืขื˜ื˜ื™ื ื’ืกื‘ืึทืฉื˜ืขื˜ื™ืงืŸ NextCloud + ONLYOFFICE ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืกืขืจื•ื•ืขืจ ืžื™ื˜ ื“ืึธืงืงืขืจ

ื“ืขืจ ืขืจืฉื˜ืขืจ ืึทื“ืจืขืก ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืฆื• ืขื˜ืœืขื›ืข js ืื•ืŸ css ื˜ืขืงืขืก ื’ืœื™ื™ึทืš ืคึฟื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืœื™ืกื ื“ื™ืง ืื™ืŸ ื“ืขื ื‘ืœืขื˜ืขืจืขืจ (ื“ืึธืก ืื™ื– ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืขืคึฟืขื ืขืŸ ืึทืงืกืขืก ืฆื• ื“ื™ ONLYOFFICE ืกืขืจื•ื•ื™ืก ื“ื•ืจืš nginx). ื“ืขืจ ืกื•ื“ ืฉืœื™ืกืœ ืื™ื– ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜ ื•ื•ื™ื™ึทืœ ืžื™ืจ ืฆื•ื˜ืจื•ื™ ื“ื™ ื“ืึธืงืงืขืจ ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืฉื™ื›ื˜ืข ืžืขืจ ื•ื•ื™ ื“ื™ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืฉืœื™ืกืœ. ื“ื™ ื“ืจื™ื˜ ืึทื“ืจืขืก ืื™ื– ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ื“ื™ NextCloud ืงืึทื ื˜ื™ื™ื ืขืจ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ื’ืœื™ื™ืš ืฆื• ื“ื™ ONLYOFFICE API, ืื•ืŸ ืขืก ื ื™ืฆื˜ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื™ื ืขืจืœืขืš ื”ืึธืกื˜ื ืึทืžืข ืคึฟื•ืŸ ื“ืึธืงืขืจ. ื ื•, ื“ื™ ืœืขืฆื˜ืข ืคืขืœื“ ืื™ื– ื’ืขื ื™ืฆื˜ ืึทื–ื•ื™ ืึทื– ONLYOFFICE ืงืขื ืขืŸ ืžืึทื›ืŸ ืจื™ืงื•ื•ืขืก ืฆื•ืจื™ืง ืฆื• ื“ื™ NextCloud API ื ื™ืฆืŸ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง IP ืึทื“ืจืขืก ืึธื“ืขืจ ืึทืŸ ื™ื ืขืจืœืขืš ื“ืึธืงืงืขืจ ืึทื“ืจืขืก ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ื“ืึธืงืขืจ ื ืขื˜ื•ื•ืึธืจืงืก, ืึธื‘ืขืจ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื’ืขื ื™ืฆื˜. ืžืึทื›ืŸ ื–ื™ื›ืขืจ ื“ื™ื™ืŸ ืคื™ื™ืจื•ื•ืึทืœ ืกืขื˜ื˜ื™ื ื’ืก ืœืึธื–ืŸ ื“ื™ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื™ื ื˜ืขืจืึทืงืฉืึทื ื–.

ืึทืžืึธืœ ื’ืขืจืื˜ืขื•ื•ืขื˜, NextCloud ื•ื•ืขื˜ ืคึผืจื•ื‘ื™ืจืŸ ื“ื™ ืงืฉืจ ืื•ืŸ, ืื•ื™ื‘ ืึทืœืฅ ืื™ื– ืจื™ื›ื˜ื™ืง, ื•ื•ื™ื™ึทื–ืŸ ืื™ืจ ืกืขื˜ื˜ื™ื ื’ืก ืฉื™ื™ึทื›ื•ืช ืฆื• ื“ื™ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ - ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืึธืก ื˜ื™ื™ืคึผืก ืคื•ืŸ ื˜ืขืงืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืขื“ื™ื˜ื™ื“ ื“ื•ืจืš ื“ืขื ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ. ืงืึทื ืคื™ื’ื™ืขืจ ื•ื•ื™ ืื™ืจ ื•ื•ื™ืœื˜.

ื“ื™ ืœืขืฆื˜ ืฉืจื™ื˜: ื•ื•ื• ืฆื• ืงื•ืงืŸ ืคึฟืึทืจ ื“ื™ ืจืขื“ืึทืงื˜ืึธืจ

ืื•ื™ื‘ ืื™ืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื“ื™ื™ืŸ ื•ื•ืึธืœืงืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืคืึธืœื“ืขืจืก ืื•ืŸ ื’ื™ื˜ ื“ื™ "+" ืฆื• ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ื˜ืขืงืข, ืื™ืจ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืึท ื ื™ื™ึทืข ืึธืคึผืฆื™ืข ืฆื• ืฉืึทืคึฟืŸ ืึท ื“ืึธืงื•ืžืขื ื˜, ืกืคึผืจืขื“ืฉื™ื˜ ืึธื“ืขืจ ืคึผืจืขื–ืขื ื˜ื™ืจื•ื ื’. ืžื™ื˜ ื–ื™ื™ืขืจ ื”ื™ืœืฃ, ืื™ืจ ื•ื•ืขื˜ ืฉืึทืคึฟืŸ ืื•ืŸ ื’ืœื™ื™ืš ืงืขื ืขืŸ ืจืขื“ืึทื’ื™ืจืŸ ื“ื™ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื˜ืขืงืขืก ืžื™ื˜ ONLYOFFICE.

ื˜ืขืงืข ืฉืึทืคื•ื ื’ ืžืขื ื™ื•ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ NextCloud + ONLYOFFICE ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืกืขืจื•ื•ืขืจ ืžื™ื˜ ื“ืึธืงืงืขืจ

ื”ืขืกืึธืคืข 1

ื“ื™ ืคื•ืœ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ docker-compose.yml ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ื“ืึธ: https://pastebin.com/z1Ti1fTZ

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’