ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ! ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ
Π‘Π»ΠΎΠΆΠ½ΠΎ Π½Π΅Π΄ΠΎΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΠ½Π»Π°ΠΉΠ½ΠΎΠ²ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΡΠΈΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Google Docs ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ
Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡ Π² ΠΆΠΈΠ·Π½ΠΈ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π»ΡΠ΄Π΅ΠΉ (tech-oriented people). Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Microsoft, ΡΠΆΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΠΌΠΈΠ½ΠΈΡΡΡΡΠ°Ρ Π½Π° ΡΡΠ½ΠΊΠ΅ ΠΎΡΠΈΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ»Π°ΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Office 365 ΠΈ ΡΠ±Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². Π’Π΅Ρ
, ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΏΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ ΠΏΠΎΠ΄ ΠΊΠ°Ρ.
ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π·Π°Π΄ ΠΌΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΎΡΠΈΡΠ½ΡΡ
Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ΅ΡΡΡΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π±ΡΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠΈΠΊΡΠΎΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠΈ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ β ΡΡΠΎ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° Π±ΡΠΌΠ°ΠΆΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠΎΠ±ΠΎΡΠΎΡΠ° ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ, ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠ°ΠΊΡΠΈΠΊ, Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° ΠΌΠ°Π»ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΌΠΎΠ½Π΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π°ΡΠ΅Π½Π΄Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΌΠ΅Π½Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°, ΡΠ΅ΠΌ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π²Π°Ρ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΡΡΠ΅Π΄ΡΡΠ² Π°ΡΠ΄ΠΈΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΠΊΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ end-to-end ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ΅ΡΡΡΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΡΠΈΠ½ΡΠ² Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΡΠ΅ΡΡΡΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΡ Π½Π°ΡΠ»ΠΈ Π΄Π²Π° Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ Π² 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.
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 Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄Π»Ρ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΈ ΡΠ°ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π·Π΄Π΅ΡΡ
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» 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) ΠΈΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊΠ°), ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ΡΡ Π² Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (Settings) ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Ρ Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ, ΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ONLYOFFICE Π² Π»Π΅Π²ΠΎΠΌ ΠΌΠ΅Π½Ρ. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ. ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ js ΠΈ css Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΡΠΎ ΡΠΎ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΡΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ ONLYOFFICE ΡΠ΅ΡΠ΅Π· nginx). Π‘Π΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ»ΠΎΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Docker Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. Π’ΡΠ΅ΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ NextCloud Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ONLYOFFICE API, ΠΈ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΈΠΌΡ Ρ
ΠΎΡΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ· Docker. ΠΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΏΠΎΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ONLYOFFICE ΡΠΌΠΎΠ³ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊ NextCloud API, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ IP-Π°Π΄ΡΠ΅Ρ ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π°Π΄ΡΠ΅Ρ Docker, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ΅ΡΠΈ Docker, Π½ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. Π£Π΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΠ΅ΡΡ, ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°Π΅ΡΠ²ΠΎΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΈΠ΄Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, NextCloud ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π²Π΅ΡΠ½ΠΎ, ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠΈΡΠ°Π΅ΡΠ΅ Π½ΡΠΆΠ½ΡΠΌ.
ΠΠ°Π²Π΅ΡΡΠ°ΡΡΠΈΠΉ ΡΠ°Π³: Π³Π΄Π΅ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ
ΠΡΠ»ΠΈ Π²Ρ Π²Π΅ΡΠ½Π΅ΡΠ΅ΡΡ Π² ΠΏΠ°ΠΏΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΈ Π½Π°ΠΆΠΌΠ΅ΡΠ΅ Π½Π° β+β Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΡΠΎ Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Π½ΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ. Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΈ ΡΡΠ°Π·Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ONLYOFFICE.
ΠΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 1
ΠΠΎΠ»Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ docker-compose.yml ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ:
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com