α αα α! αααα»αααααΎαααααα αΆαααΌαα’αααααΌαααΆαααααααα’ααααα
ααΆαα·ααΆααααα»αααΆααααΆααααααΆαααααααααα»αααΆαα·ααΆαααααΆαα’ααΈαααΊαα·αααΌα
ααΆ Google Docs αα·αααΆααααα»αααΎααααααα»αααΈαα·αααααααα»αααααααααααααΎαα
αα
αααα·ααααΆα αα
αα
αααα·ααααΆααΆαααΈαααΆαααΆααααΆαααααΆαα αααααΌααααΈαααααα»αα αα»α Microsoft ααααααααααααααΈααααΆααααααα·ααΈααΆαα·ααΆαααααΌαααα αΎα ααααααΈααααααΆααααααααΎααΆααααααΎααααααα·ααΈααα ααααα 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 α αααααααα αααα»ααα αα·α αα½αααααΆαααααΎαα αα αααααααααα ααΌα ααΆααΆαααααΎα αααααΆα ααααα‘αααααααΆααααααΆα―αααΆα api α ααΆααααααααααααα½ααααααΊααααΌαααΆαααααααΆααααΆαααΈαααααΆα ααααα‘αααααααΆααααααΆααααα―αααΆα αααααααααα ααΆααααααααααααα» nginx ααααααααααΆααααααΎαα‘αΎααα αααα»αααααΆααααα―αααΆα ααΎααααΈααα‘αΎαααα αΌαααααΎαααΆα (ααα αΌαααααΎαααααααααΆααααΆαα»αααααααααΆααααΈαα·αααα·α αΌαααααΎααααα·αααααα) αα·ααα·ααααΆαααααα TLS α αα·ααΈααΆαααααααΆαααΎααααΌαααΆαα αΆαααα»αααΆαα·αααΆααα»ααααα·ααΆα αα·ααα·αααΆαααααα·αααααΆααααααααααΆαα ααΌα ααααααΎαααΆααα½ααααα αΌα NextCloud, ONLYOFFICE αα·α nginx ααΌαα ααααααααααααΎααααααααααααααααααΎ docker-compose α αααααΊααΆααααααΆαααΆααα αΆα α α’αααΈααααααααΎααΆα
ααα αΆαααΈ 1: αα»α nginx
αααααΊααΆααΆαααα‘αΎαααααΆαααααααα»α ααα»ααααααα αΆααααααΆαααΆαααΆαααΆαα αααΎααααα»αααΎααααΈααααααα ααΆαααααααααααΆαααΈαααααααΌααααΈαααα αααΆαα ααααΌαααΎααααααΎαααΆαααααααα ααΆαααααααα docker-compose αααααΆαα nginx:stable imageα
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 αα·ααααααα αΆααααααΆαααα·ααααΆαααααααααααΆααααααΎαααΆαα·ααααΆαααααααααα
α»αα αααααααΆααααααα½αα―α α¬ααααΎ Let's encrypt's certbot αα
αααα»α /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 & text α¬ααααΎααΆαααααααα) ααα‘αΎα αα·αααααΎαααΆαααΆα
αααααΆααααΈααααα ααΆααααΆααααααααΆαααααααΊαα»ααα αααα»αααΆαααααΆαααΆαααΎα αΎαα’ααααα½ααααααααααααΆαα» ONLYOFFICE αα αααα»ααααΊαα»αααΆααααααα α αΌααα αααα»αααΆα α’αααααΉαααααΌαα α»ααααααα’αΆααααααΆαααΌα ααΆαα ααα’α»ααααα αΆαααΆααααααα
ααΆαααααααααααα·ααΈαα½ααααα
αΌαααααΆ
α’αΆααααααΆαααΈαα½αααααΌαααΆαααααΎααΎααααΈααααΆαααα
α―αααΆα js αα·α css αα½αα
ααα½ααααααααΆααααΈαααααα·ααΈααααααα»αααααΎαααΆααα
αααα»ααααααα·ααΈαα»ααα (αααααΆα’αααΈαααααΎαααααΌαααΎαααΆαα
αΌαααααΎααααΆαααα ONLYOFFICE ααΆαααα nginx) α αααααααΆαααα·αααααΌαααΆαααααΎαα αααααΆαααΎαααΏααΆααααΎαααααΆααα―αα Docker α
αααΎαααΆαααααααααααααΆααααΆαααααΉαααααΌαααΆαααα αΌαα α’αΆααααααΆαααΈααΈααααΌαααΆαααααΎααααα»α NextCloud ααΎααααΈααααΆαααααααααΆαααα
ONLYOFFICE API α αΎαααΆααααΎααααααααΆαααΈαααΆααααα»αααααΆαααΎαααΈ Docker α ααΆααΆααααααΎαααΆαα ααΆαα
α»ααααααααααΌαααΆαααααΎααΎααααΈα±αα ONLYOFFICE α’αΆα
ααααΎααααΎαααα‘αααα
NextCloud API αααααααΎα’αΆααααααΆα IP ααΆααααα
α¬α’αΆααααααΆα Docker ααΆααααα»α ααααα·αααΎα’ααααααα»αααααΎαααααΆα Docker ααα»ααααααΆαα·αααααΌαααΆαααααΎαα
αααα»αααααΈααααααΎαααα ααααΌαααααΆααααΆααΆαααααααααααΆααααααΎαααααα’αααα’αα»ααααΆαα±ααααΆαα’ααααααααααααααααΆαααααα
αααααΆααααΈαααααΆαα»α NextCloud ααΉαααΆαααααααΆααααααΆαα α αΎαααααα·αααΎα’αααΈαααΆααα’ααααααΉαααααΌα ααΆααΉααααα αΆαα’αααααΌαααΆαααααααααααΆααααααΉαααΆααα½ααααα αΌα - α§ααΆα ααα ααΎααααααα―αααΆαα’αααΈααααα’αΆα ααααΌαααΆαααααααα½ααααααΆααα½ααααα αΌααααα ααααΌαααΆαααααααΆααααα’αααααΎαααα
ααα αΆαα α»ααααααα αααααααααααααΌαααα’ααααααααα½α
ααααα·αααΎα’ααααααααααα ααα―αααΆααααα»ααααααααα’ααα α αΎαα α»α ααΎ β+β ααΎααααΈαααααΎαα―αααΆαααααΈ αααα’αααααΉαααΆααααααΎαααααΈααΎααααΈαααααΎαα―αααΆα ααααα αααααΈ α¬αααααα αΆαα αααααΆααααα½ααααααα½ααα α’αααααΉααααααΎα α αΎαααααΆααα’αΆα ααααααα½αααααααα―αααΆαααΆααααααααααααΎ ONLYOFFICE α
αααΊαα»ααααααΎαα―αααΆα
ααααααααααΆα α’α α’α
ααααΉαααΆααααααααα docker-compose.yml α’αΆα
ααααΆααα
ααΈαααα
ααααα: www.habr.com