ื”ื’ื“ืจืช NextCloud + ONLYOFFICE ื‘ืื•ืชื• ืฉืจืช ืขื Docker

ื”ื™ื™ ื”ื‘ืจ! ืื ื™ ืžืฆื™ื’ ืœืชืฉื•ืžืช ืœื‘ืš ืืช ื”ืชืจื’ื•ื ืฉืœ ื”ืžืืžืจ "ื”ื’ื“ืจืช NextCloud ื•-ONLYOFFICE ื‘ืฉืจืช ื™ื—ื™ื“ ืขื Docker".

ืงืฉื” ืœื”ืžืขื™ื˜ ื‘ืขืจื›ื ืฉืœ ื—ื‘ื™ืœื•ืช ืžืฉืจื“ ืžืงื•ื•ื ื•ืช ื›ืžื• Google Docs ื•ืื—ืกื•ืŸ ื‘ืขื ืŸ ื‘ื—ื™ื™ื”ื ืฉืœ ืื ืฉื™ื ื‘ืขืœื™ ืื•ืจื™ื™ื ื˜ืฆื™ื” ื˜ื›ื ื•ืœื•ื’ื™ืช. ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ื”ืคื›ื” ืœื ืคื•ืฆื” ื›ืœ ื›ืš ืฉืืคื™ืœื• ืžื™ืงืจื•ืกื•ืคื˜, ืฉืฉื•ืœื˜ืช ื–ื” ืžื›ื‘ืจ ื‘ืฉื•ืง ื™ื™ืฉื•ืžื™ ื”ืžืฉืจื“, ื”ืชืžืงื“ื” ืœืื—ืจื•ื ื” ื‘ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื™ืช ื”ืื™ื ื˜ืจื ื˜ Office 365 ื•ื‘ืฉื›ื ื•ืข ืžืฉืชืžืฉื™ื ืœืขื‘ื•ืจ ืœืžื•ื“ืœ ืžื ื•ื™ ืœืฉื™ืžื•ืฉ ื‘ืฉื™ืจื•ืชื™ื ืฉืœื”ื. ืื ื• ืžื–ืžื™ื ื™ื ืืช ื”ืžืขื•ื ื™ื™ื ื™ื ื‘ืชื”ืœื™ืš ื”ืชืงื ื” ื•ื”ื’ื“ืจืช ืื—ืกื•ืŸ ืžืฉืœื”ื ืžืชื—ืช ืœื—ืชื•ืœ.

ืœืคื ื™ ื–ืžืŸ ืžื” ื‘ื“ืงื ื• ืคืชืจื•ื ื•ืช ืื—ืกื•ืŸ ื‘ืขื ืŸ ื•ื—ื‘ื™ืœื•ืช ืงื•ื“ ืคืชื•ื— ืœืžืฉืจื“ื™ ืื™ื ื˜ืจื ื˜ ืฉื ื™ืชืŸ ืœืคืจื•ืก ื‘ืงืœื•ืช ืœืฉื™ืžื•ืฉ ื‘ืžื™ืงืจื•-ืžื™ื–ื. ื”ืžื ื™ืข ื”ืขื™ืงืจื™ ืœืฉืžื™ืจืช ื›ืœ ื”ืชื™ืขื•ื“ ื‘ืื™ื ื˜ืจื ื˜ ื”ื•ื ืœืฆืžืฆื ืืช ื”ื ื™ื™ืจืช ืœืžื™ื ื™ืžื•ื ื•ืœื™ื™ืฉื ืฉื™ื˜ื•ืช ืขืกืงื™ื•ืช ื˜ื•ื‘ื•ืช ืœืžืจื•ืช ื ืคื— ื”ืขืกืงืื•ืช ื”ื ืžื•ืš. ื”ืฆื“ ื”ืฉื ื™ ืฉืœ ื”ืžื˜ื‘ืข ื”ื•ื ืฉื”ืฉื›ืจืช ืฉืจืช ืขื ืŸ ื›ื“ื™ ืœืกืคืง ืฉื™ืจื•ืช ื–ื” ืคื—ื•ืช ืžืื•ื‘ื˜ื—ืช ืžืืฉืจ ืื—ืกื•ื ื• ื™ืฉื™ืจื•ืช ื‘ื—ืฆืจื™ื ืฉืœ ื”ืืจื’ื•ืŸ, ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ืœืš ืฉื•ื ืืžืฆืขื™ ืœื‘ืงืจืช ื’ื™ืฉื” ืคื™ื–ื™ืช ืœืฉืจืช ืื• ืœืชืขื‘ื•ืจื” ืฉืœืš. ืœื›ืŸ ื ื“ืจืฉื•ืช ื’ื ื”ืฆืคื ื” ืžืงืฆื” ืœืงืฆื” ื•ืชื•ื›ื ืช ืงื•ื“ ืคืชื•ื—.

ื‘ื”ืชื—ืฉื‘ ื‘ื›ืœ ื”ืžื™ื“ืข ื”ื–ืžื™ืŸ ืขืœ ืคืชืจื•ื ื•ืช ืงื•ื“ ืคืชื•ื—, ืžืฆืื ื• ืฉื ื™ ืคืจื•ื™ืงื˜ื™ื ืคืขื™ืœื™ื (ืขื ื”ืชื—ื™ื™ื‘ื•ื™ื•ืช ื‘ืžืื’ืจ git ื‘-12 ื”ื—ื•ื“ืฉื™ื ื”ืื—ืจื•ื ื™ื) ืฉืคื•ืชื—ื• ืขื‘ื•ืจ ืื—ืกื•ืŸ ื‘ืขื ืŸ: NextCloud ื•- OwnCloud, ื•ื—ื‘ื™ืœืช ื”ืžืฉืจื“ ื”ืคืขื™ืœื” ื”ื™ื—ื™ื“ื” ืฉืœ ONLYOFFICE. ืœืฉื ื™ ื›ืœื™ ื”ืื—ืกื•ืŸ ื‘ืขื ืŸ ื™ืฉ ื‘ืขืจืš ืื•ืชื” ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช, ื•ื”ื”ื—ืœื˜ื” ืœื‘ื—ื•ืจ ื‘-NextCloud ื”ืชื‘ืกืกื” ืขืœ ืงื™ื•ืžืŸ ืฉืœ ืจืื™ื•ืช ืœื›ืš ืฉื ื™ืชืŸ ืœืฉืœื‘ ืื•ืชื• ืขื ONLYOFFICE ืœืื™ื ื˜ืจืืงืฆื™ื” ื ื•ื—ื” ืฉืœ ื”ืžืฉืชืžืฉ ืขื ื”ืชื•ื›ื ื”. ืขื ื–ืืช, ื›ืฉื”ืชื—ืœื ื• ืœืคืจื•ืก ืืช ื”ืฉื™ืจื•ืชื™ื, ื”ืชื‘ืจืจ ื—ื•ืกืจ ื”ืžื™ื“ืข ืขืœ ืฉื™ืœื•ื‘ ื”ืฉื™ืจื•ืชื™ื ื”ื "ืœ. ืžืฆืื ื• 3 ืกืจื˜ื•ื ื™ ื”ื“ืจื›ื” ื›ื™ืฆื“ ืœืฉืœื‘:

ืืฃ ืื—ื“ ืžืฉืœื•ืฉืช ื”ืกืจื˜ื•ื ื™ื ืœื ืขื ื” ืขืœ ื”ืฉืืœื” ืฉืœ ื”ืชืงื ืช ืฉื™ืจื•ืช ื”ืžืกืžื›ื™ื ONLYOFFICE ื‘ืื•ืชื• ืฉืจืช ืคื™ื–ื™ ื›ืžื• NextCloud ืขื nginx ืžืฉื•ืชืฃ. ื‘ืžืงื•ื ื–ืืช, ื”ื ื”ืฉืชืžืฉื• ื‘ื˜ื›ื ื™ืงื•ืช ื”ืคืจื“ื” ื›ื’ื•ืŸ ืฉื™ืžื•ืฉ ื‘ื™ืฆื™ืื•ืช ื ืคืจื“ื•ืช ืขื‘ื•ืจ ืžืžืฉืง ื”-Document Service API. ืืคืฉืจื•ืช ื ื•ืกืคืช ืฉื”ื•ืฆืขื” ื”ื™ื™ืชื” ืœืคืจื•ืก ืฉืจืช ื ืคืจื“ ืขื‘ื•ืจ Document Service, ื”ื’ื“ืจื” ื™ื“ื ื™ืช ืฉืœ ืžื•ืคืข nginx ื”ืžื•ื‘ื ื” ื‘-Document Service ื›ื“ื™ ืœื”ืชืงื™ืŸ ืžืคืชื— ื’ื™ืฉื” (ืžืคืชื— ื’ื™ืฉื” ื™ื“ื•ืข ืžืจืืฉ ืฉืžืืฉืจ ืืช ื”ื–ื›ื•ืช ืœื’ืฉืช ืœืขื ืŸ ื”ื ืชื•ื ื™ื) ื•ืชืขื•ื“ื•ืช TLS. ื”ื’ื™ืฉื•ืช ื”ื "ืœ ื ื—ืฉื‘ื• ืœื ื‘ื˜ื•ื—ื•ืช ื•ืœื ื™ืขื™ืœื•ืช ืžืกืคื™ืง, ืื– ืฉื™ืœื‘ื ื• ืืช NextCloud, ONLYOFFICE ื•-nginx ื ืคื•ืฅ, ืฉืžืคืจื™ื“ ื‘ืงืฉื•ืช ืœืคื™ ืฉืžื•ืช ื“ื•ืžื™ื™ืŸ, ื‘ืืžืฆืขื•ืช docker-compose. ื”ื ื” ืžื™ื“ืข ืฆืขื“ ืื—ืจ ืฆืขื“ ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช.

ืฉืœื‘ 1: ืžื™ื›ืœ nginx

ื–ื•ื”ื™ ื”ื’ื“ืจื” ืคืฉื•ื˜ื” ืžืื•ื“, ืืš ืฉืœื‘ ื–ื” ื“ื•ืจืฉ ืืช ืžื™ืจื‘ ื”ืขื‘ื•ื“ื” ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืืช ืฉืจืช ื”-proxy ื”ื”ืคื•ืš. ื™ืฆืจื ื• ืชื—ื™ืœื” ืืช ืชืฆื•ืจืช 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, ื•ืžื’ื“ื™ืจ ื—ื ื•ืช ืœืื™ืฉื•ืจื™ื ืฉื ื•ืฆืจื• ื›ืื™ืฉื•ืจื™ื ื‘ื—ืชื™ืžื” ืขืฆืžื™ืช ืื• ื‘ืืžืฆืขื•ืช ืฉื™ืžื•ืฉ ื‘-certbot ืฉืœ 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 ื•ื˜ืงืกื˜ ืื• ื‘ืืžืฆืขื•ืช ื—ื™ืคื•ืฉ), ื”ืชืงืŸ ื•ื”ืคืขืœ ืื•ืชื”.

ืœืื—ืจ ืžื›ืŸ ืขื‘ื•ืจ ืœื”ื’ื“ืจื•ืช ื“ืจืš ื”ืชืคืจื™ื˜ ื‘ืคื™ื ื” ื”ืฉืžืืœื™ืช ื”ืขืœื™ื•ื ื” ื•ืืชื” ืืžื•ืจ ืœืžืฆื•ื ืืช ื”ืคืจื™ื˜ 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

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”