ืืื ืืืจ! ืื ื ืืฆืื ืืชืฉืืืช ืืื ืืช ืืชืจืืื ืฉื ืืืืืจ
ืงืฉื ืืืืขืื ืืขืจืื ืฉื ืืืืืืช ืืฉืจื ืืงืืื ืืช ืืื Google Docs ืืืืกืื ืืขื ื ืืืืืื ืฉื ืื ืฉืื ืืขืื ืืืจืืื ืืฆืื ืืื ืืืืืืช. ืืืื ืืืืืื ืืคืื ืื ืคืืฆื ืื ืื ืฉืืคืืื ืืืงืจืืกืืคื, ืฉืฉืืืืช ืื ืืืืจ ืืฉืืง ืืืฉืืื ืืืฉืจื, ืืชืืงืื ืืืืจืื ื ืืคืืชืื ืืคืืืงืฆืืืช ืืืื ืืจื ื Office 365 ืืืฉืื ืืข ืืฉืชืืฉืื ืืขืืืจ ืืืืื ืื ืื ืืฉืืืืฉ ืืฉืืจืืชืื ืฉืืื. ืื ื ืืืืื ืื ืืช ืืืขืื ืืื ืื ืืชืืืื ืืชืงื ื ืืืืืจืช ืืืกืื ืืฉืืื ืืชืืช ืืืชืื.
ืืคื ื ืืื ืื ืืืงื ื ืคืชืจืื ืืช ืืืกืื ืืขื ื ืืืืืืืช ืงืื ืคืชืื ืืืฉืจืื ืืื ืืจื ื ืฉื ืืชื ืืคืจืืก ืืงืืืช ืืฉืืืืฉ ืืืืงืจื-ืืืื. ืืื ืืข ืืขืืงืจื ืืฉืืืจืช ืื ืืชืืขืื ืืืื ืืจื ื ืืื ืืฆืืฆื ืืช ืื ืืืจืช ืืืื ืืืื ืืืืืฉื ืฉืืืืช ืขืกืงืืืช ืืืืืช ืืืจืืช ื ืคื ืืขืกืงืืืช ืื ืืื. ืืฆื ืืฉื ื ืฉื ืืืืืข ืืื ืฉืืฉืืจืช ืฉืจืช ืขื ื ืืื ืืกืคืง ืฉืืจืืช ืื ืคืืืช ืืืืืืืช ืืืฉืจ ืืืกืื ื ืืฉืืจืืช ืืืฆืจืื ืฉื ืืืจืืื, ืืืืืื ืฉืืื ืื ืฉืื ืืืฆืขื ืืืงืจืช ืืืฉื ืคืืืืช ืืฉืจืช ืื ืืชืขืืืจื ืฉืื. ืืื ื ืืจืฉืืช ืื ืืฆืคื ื ืืงืฆื ืืงืฆื ืืชืืื ืช ืงืื ืคืชืื.
ืืืชืืฉื ืืื ืืืืืข ืืืืื ืขื ืคืชืจืื ืืช ืงืื ืคืชืื, ืืฆืื ื ืฉื ื ืคืจืืืงืืื ืคืขืืืื (ืขื ืืชืืืืืืืืช ืืืืืจ git ื-12 ืืืืืฉืื ืืืืจืื ืื) ืฉืคืืชืื ืขืืืจ ืืืกืื ืืขื ื: NextCloud ื- OwnCloud, ืืืืืืช ืืืฉืจื ืืคืขืืื ืืืืืื ืฉื ONLYOFFICE. ืืฉื ื ืืื ืืืืกืื ืืขื ื ืืฉ ืืขืจื ืืืชื ืคืื ืงืฆืืื ืืืืช, ืืืืืืื ืืืืืจ ื-NextCloud ืืชืืกืกื ืขื ืงืืืื ืฉื ืจืืืืช ืืื ืฉื ืืชื ืืฉืื ืืืชื ืขื ONLYOFFICE ืืืื ืืจืืงืฆืื ื ืืื ืฉื ืืืฉืชืืฉ ืขื ืืชืืื ื. ืขื ืืืช, ืืฉืืชืืื ื ืืคืจืืก ืืช ืืฉืืจืืชืื, ืืชืืจืจ ืืืกืจ ืืืืืข ืขื ืฉืืืื ืืฉืืจืืชืื ืื "ื. ืืฆืื ื 3 ืกืจืืื ื ืืืจืื ืืืฆื ืืฉืื:
www.youtube.com/watch?v=GAd-x_sP6ng www.youtube.com/watch?v=ceOld6P16wI www.youtube.com/watch?v=DvTXyl-OOZA
ืืฃ ืืื ืืฉืืืฉืช ืืกืจืืื ืื ืื ืขื ื ืขื ืืฉืืื ืฉื ืืชืงื ืช ืฉืืจืืช ืืืกืืืื 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 ืืื ืืื ืขืืืจ ืฉืจืฉืจืช ืืืืฉืืจืื ืืืืคืชื ืืคืจืื ืฉื ืืฉืจืช, ืืืชืืื. ืชืืื ืืงืจืื ืขืื ืขื ืืื ืืืฆืืจ ืชืขืืื ืืืชืืื ืขืฆืืืช ืืื.
ืืืืจ ืืื, ืืืืจื ื ืืช ืงืืืฅ 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
ืฉืื 4: ืืืืืจ NextCloud ื-ONLYOFFICE
ืืฉืื ืื, ืชืฆืืจื ืืืชืงืื ืืช ืืืคืืืงืฆืื ืขืืืจ NextCloud, ืืืืืจืช ืืช ืืคืื ืงืฆืืื ืืืืช ืฉื ONLYOFFICE. ื ืชืืื ืขื ืืื ืืืงืจื ืฉื ืืืคืืืงืฆืื ืืคืื ื ืืฉืืืืืช ืืขืืืื ื ืฉื ืืชืคืจืื. ืืฆื ืืช ืืคืืืงืฆืืืช ONLYOFFICE (ืชืืช Office ืืืงืกื ืื ืืืืฆืขืืช ืืืคืืฉ), ืืชืงื ืืืคืขื ืืืชื.
ืืืืจ ืืื ืขืืืจ ืืืืืจืืช ืืจื ืืชืคืจืื ืืคืื ื ืืฉืืืืืช ืืขืืืื ื ืืืชื ืืืืจ ืืืฆืื ืืช ืืคืจืื ONLYOFFICE ืืชืคืจืื ืืฉืืืื. ืชืืื ืก ืืื. ืืืื ืขืืื ืืจืฉืื ืืช ืืืชืืืืช ืืคื ืฉืืฆืืื ืืืื.
ืืืืจืืช ืืืฉืื ืืื ืืืจืฆืื
ืืืชืืืช ืืจืืฉืื ื ืืฉืืฉืช ืืงืืฉืืจ ืืืื ืงืืฆื js ื-css ืืฉืืจืืช ืืืืคืืืงืฆืื ืืคืืขืืช ืืืคืืคื (ืื ืื ืฉืื ืื ื ืฆืจืืืื ืืื ืืคืชืื ืืืฉื ืืฉืืจืืช ONLYOFFICE ืืจื nginx). ืืืคืชื ืืกืืื ืืื ื ืืฉืืืืฉ ืืืืืื ืฉืื ื ืกืืืืื ืขื ืฉืืืช ืืืืืื ืฉื Docker ืืืชืจ ืืืฉืจ ืขื ืืคืชื ืืืืืืช ืืืชืืื. ืืืชืืืช ืืฉืืืฉืืช ืืฉืืฉืช ืืช ืืืื NextCloud ืืื ืืืชืืืจ ืืฉืืจืืช ื-ONLYOFFICE API, ืืืื ืืฉืชืืฉืช ืืฉื ืืืืจื ืืคื ืืื ืืืืืืจ ืืืจืืจืช ืืืื ื- Docker. ืืืื, ืืฉืื ืืืืจืื ืืฉืืฉ ืื ืฉ-ONLYOFFICE ืืืื ืืืืืืจ ืืงืฉืืช ื-NextCloud API ืืืืฆืขืืช ืืชืืืช IP ืืืฆืื ืืช ืื ืืชืืืช Docker ืคื ืืืืช ืื ืืชื ืืฉืชืืฉ ืืจืฉืชืืช Docker, ืืื ืื ืื ืืฉืืฉ ืืืงืจื ืฉืื ื. ืืื ืฉืืืืจืืช ืืืืช ืืืฉ ืฉืื ืืืคืฉืจืืช ืืื ืืจืืงืฆืืืช ืืกืื ืื.
ืืืืจ ืืฉืืืจื, NextCloud ืืืืืง ืืช ืืืืืืจ ืืื ืืื ืชืงืื, ืืจืื ืืื ืืืืจืืช ืืงืฉืืจืืช ืืืื ืืืจืฆืื โ ืืืฉื ืืืื ืกืืื ืงืืฆืื ื ืืชื ืืขืจืื ืขื ืืื ืืื ืืืจืฆืื ืื. ืืชืื ืืืฉืืช ืืจืืืช ืขืื ืื.
ืืฉืื ืืืืจืื: ืืืื ืืืฆืื ืืช ืืขืืจื
ืื ืชืืืืจ ืืชืืงืืืช ืืืกืื ืืขื ื ืฉืื ืืชืืืฅ ืขื ื-"+" ืืื ืืืฆืืจ ืงืืืฅ ืืืฉ, ืชืืื ืื ืืคืฉืจืืช ืืืฉื ืืืฆืืจ ืืกืื, ืืืืืื ืืืงืืจืื ื ืื ืืฆืืช. ืืขืืจืชื, ืชืืืื ืืืฆืืจ ืืืื ืืขืจืื ืงืืฆืื ืืกืื ืื ืืืืฆืขืืช ONLYOFFICE.
ืชืคืจืื ืืฆืืจืช ืงืืฆืื
ืืืกืฃ 1
ืืช ืืชืืื ืืืื ืฉื docker-compose.yml ื ืืชื ืืืฆืื ืืื:
ืืงืืจ: www.habr.com