Docker සමඟ එකම සේවාදායකයේ NextCloud + ONLYOFFICE පිහිටුවීම

හේ හබ්ර්! ලිපියේ පරිවර්තනය මම ඔබේ අවධානයට ඉදිරිපත් කරමි "Docker සමඟ තනි සේවාදායකයක් මත NextCloud සහ ONLYOFFICE පිහිටුවීම".

Google Docs සහ Cloud Storage වැනි ඔන්ලයින් ඔෆිස් සූට් වල වටිනාකම තාක්‍ෂණය-නැඹුරු මිනිසුන්ගේ ජීවිත තුළ අවතක්සේරු කිරීම අපහසුය. තාක්‍ෂණය කෙතරම් පුළුල් වී ඇත්ද යත්, කාර්යාල යෙදුම් වෙළඳපොලේ දිගු කලක් ආධිපත්‍යය දැරූ මයික්‍රොසොෆ්ට් පවා මෑතකදී Office 365 වෙබ් යෙදුම සංවර්ධනය කිරීමට සහ ඔවුන්ගේම සේවාවන් භාවිතා කිරීම සඳහා දායකත්ව ආකෘතියකට මාරු වීමට පරිශීලකයින් පොළඹවා ගැනීමට අවධානය යොමු කර ඇත. cat යටතේ තමන්ගේම ගබඩාව ස්ථාපනය කර වින්‍යාස කිරීමේ ක්‍රියාවලියට උනන්දුවක් දක්වන අයට අපි ආරාධනා කරමු.

කලකට පෙර අපි Cloud Storage විසඳුම් සහ ක්ෂුද්‍ර ව්‍යවසායක භාවිතය සඳහා පහසුවෙන් යෙදවිය හැකි විවෘත මූලාශ්‍ර වෙබ් කාර්යාල කට්ටල දෙස බැලුවෙමු. සියලුම ලියකියවිලි මාර්ගගතව තබා ගැනීමේ ප්‍රධාන අභිප්‍රේරණය වන්නේ ලේඛන කටයුතු අවම මට්ටමක තබා ගැනීම සහ අඩු ගනුදෙනු පරිමාවක් තිබියදීත් හොඳ ව්‍යාපාරික භාවිතයන් ක්‍රියාත්මක කිරීමයි. කාසියේ අනෙක් පැත්ත නම්, මෙම සේවාව සැපයීම සඳහා වලාකුළු සේවාදායකයක් කුලියට ගැනීම ව්‍යවසාය පරිශ්‍රයේ එය සෘජුවම ගබඩා කිරීමට වඩා අඩු ආරක්‍ෂිත බවකි, මන්ද ඔබට ඔබේ සේවාදායකයට හෝ ගමනාගමනයට භෞතික ප්‍රවේශය විගණනය කිරීමට කිසිදු ක්‍රමයක් නොමැති බැවිනි. එබැවින්, අන්තයේ සිට අගට සංකේතනය කිරීම සහ විවෘත කේත මෘදුකාංග ද අවශ්‍ය වේ.

විවෘත මූලාශ්‍ර විසඳුම් පිළිබඳ පවතින සියලුම තොරතුරු සැලකිල්ලට ගනිමින්, Cloud ගබඩාව සඳහා සංවර්ධනය කරන ලද (පසුගිය මාස 12 සඳහා git ගබඩාවේ කැපවීම් සහිත) ක්‍රියාකාරී ව්‍යාපෘති දෙකක් අපට හමු විය: NextCloud සහ OwnCloud, සහ එකම ක්‍රියාකාරී ONLYOFFICE කාර්යාල කට්ටලය. Cloud Storage මෙවලම් දෙකම දළ වශයෙන් එකම ක්‍රියාකාරීත්වයක් ඇති අතර, NextCloud තෝරාගැනීමේ තීරණය පදනම් වූයේ මෘදුකාංගය සමඟ පහසු පරිශීලක අන්තර්ක්‍රියා සඳහා ONLYOFFICE සමඟ ඒකාබද්ධ කළ හැකි බවට සාක්ෂි පැවතීම මතය. කෙසේ වෙතත්, අපි සේවාවන් යෙදවීමට පටන් ගත් විට, ඉහත සේවාවන් ඒකාබද්ධ කිරීම පිළිබඳ තොරතුරු නොමැතිකම පෙනෙන්නට තිබුණි. ඒකාබද්ධ කරන්නේ කෙසේද යන්න පිළිබඳ නිබන්ධන වීඩියෝ 3ක් අපට හමු විය:

බෙදාගත් nginx සමඟ NextCloud ලෙස එකම භෞතික සේවාදායකයේ ONLYOFFICE ලේඛන සේවාව ස්ථාපනය කිරීමේ ප්‍රශ්නයට වීඩියෝ තුනෙන් කිසිවක් පිළිතුරු දුන්නේ නැත. ඒ වෙනුවට, ඔවුන් ලේඛන සේවා api සඳහා වෙනම වරායන් භාවිතා කිරීම වැනි වෙන් කිරීමේ ශිල්පීය ක්‍රම භාවිතා කළහ. තවත් යෝජනාවක් වූයේ ප්‍රවේශ යතුරක් (දත්ත වලාකුළට ප්‍රවේශ වීමේ අයිතිය තහවුරු කරන පෙර දන්නා ප්‍රවේශ යතුරක්) සහ TLS සහතික ස්ථාපනය කිරීම සඳහා ලේඛන සේවාවට ගොඩනගා ඇති nginx අවස්ථාව අතින් වින්‍යාස කිරීම, ලේඛන සේවාව සඳහා වෙනම සේවාදායකයක් යෙදවීමයි. ඉහත ප්‍රවේශයන් ආරක්ෂිත නොවන සහ ප්‍රමාණවත් තරම් ඵලදායී නොවන බව සලකන ලදී, එබැවින් අපි NextCloud, ONLYOFFICE සහ docker-compose භාවිතයෙන් ඩොමේන් නාමවලින් ඉල්ලීම් වෙන් කරන පොදු nginx ඒකාබද්ධ කළෙමු. එය කරන්නේ කෙසේද යන්න පිළිබඳ පියවරෙන් පියවර තොරතුරු මෙන්න.

පියවර 1: nginx බහාලුම

මෙය ඉතා සරල සැකසුමකි, නමුත් මෙම පියවරට ප්‍රතිලෝම ප්‍රොක්සි සේවාදායකය වින්‍යාස කිරීමට වැඩිම කාර්යයක් අවශ්‍ය වේ. අපි මුලින්ම nginx:stable image සඳහා docker-compose වින්‍යාසය නිර්මාණය කළෙමු.

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 තුළ අපි සංකේතනය කරමු certbot භාවිතා කරයි. මෙම ස්ථානයේ පිළිවෙළින් සහතික දාමය සහ සේවාදායක පුද්ගලික යතුර සඳහා සම්පූර්ණ chain1.pem සහ privkey1.pem ගොනු සහිත, office.yourdomain.com සහ cloud.yourdomain.com සඳහා ෆෝල්ඩර අඩංගු විය යුතුය. ස්වයං-අත්සන් කළ සහතිකයක් උත්පාදනය කරන්නේ කෙසේද යන්න පිළිබඳ වැඩිදුර කියවිය හැකිය. www.akadia.com/services/ssh_test_certificate.html (nginx සඳහා ගොනු ව්‍යුහය පරිවර්තනය නොකර .key සහ .crt නැවත නම් කිරීම .pem ක්‍රියා කරයි).

ඊට පස්සේ, අපි vhost ගොනුව නිර්වචනය කළා. අපි මුලින්ම port 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 සේවා සැකසුම් කවුළුවDocker සමඟ එකම සේවාදායකයේ NextCloud + ONLYOFFICE පිහිටුවීම

පියවර 4: NextCloud සහ ONLYOFFICE සම්බන්ධ කිරීම

මෙම පියවරේදී, ඔබට ONLYOFFICE ක්‍රියාකාරීත්වය සම්බන්ධ කරන NextCloud සඳහා යෙදුම ස්ථාපනය කිරීමට අවශ්‍ය වනු ඇත. මෙනුවේ ඉහළ දකුණු කෙළවරේ යෙදුම් පාලන පැනලය සමඟ ආරම්භ කරමු. ONLYOFFICE යෙදුම සොයා ගන්න (Office සහ text යටතේ හෝ සෙවීම භාවිතා කරන්න), එය ස්ථාපනය කර සක්‍රිය කරන්න.

ඊට පසු ඉහළ දකුණු කෙළවරේ ඇති මෙනුව හරහා සැකසීම් වෙත යන්න, වම් මෙනුවේ ඔබට ONLYOFFICE අයිතමය සොයාගත යුතුය. ඒක ඇතුලට යන්න. ඔබ පහත සඳහන් පරිදි ලිපිනයන් ලියාපදිංචි කිරීමට අවශ්ය වනු ඇත.

ඒකාබද්ධ යෙදුම් සැකසුම්Docker සමඟ එකම සේවාදායකයේ NextCloud + ONLYOFFICE පිහිටුවීම

පළමු ලිපිනය බ්‍රවුසරයේ ක්‍රියාත්මක වන යෙදුමෙන් කෙලින්ම සමහර js සහ css ගොනු වෙත සම්බන්ධ කිරීමට භාවිතා කරයි (මෙය nginx හරහා ONLYOFFICE සේවාව වෙත ප්‍රවේශය විවෘත කිරීමට අවශ්‍ය වේ). අපි ස්ථීර සත්‍යාපන යතුරට වඩා Docker හුදකලා ස්ථරය විශ්වාස කරන නිසා රහස් යතුර භාවිතා නොවේ. ONLYOFFICE API වෙත සෘජුවම සම්බන්ධ වීමට NextCloud කන්ටේනරය විසින් තෙවන ලිපිනය භාවිතා කරන අතර එය Docker වෙතින් පෙරනිමි අභ්‍යන්තර සත්කාරක නාමය භාවිතා කරයි. හොඳයි, ඔබ Docker ජාල භාවිතා කරන්නේ නම්, බාහිර IP ලිපිනයක් හෝ අභ්‍යන්තර Docker ලිපිනයක් භාවිතා කරමින් ONLYOFFICE හට NextCloud API වෙත නැවත ඉල්ලීම් කිරීමට හැකි වන පරිදි අවසාන ක්ෂේත්‍රය භාවිතා වේ, නමුත් මෙය අපගේ නඩුවේදී භාවිතා නොවේ. ඔබගේ ෆයර්වෝල් සැකසීම් මෙවැනි අන්තර්ක්‍රියා වලට ඉඩ දෙන බවට වග බලා ගන්න.

සුරැකීමෙන් පසු, NextCloud සම්බන්ධතාවය පරීක්ෂා කරනු ඇති අතර, සියල්ල නිවැරදි නම්, ඔබට ඒකාබද්ධ කිරීමට අදාළ සැකසුම් පෙන්වනු ඇත - උදාහරණයක් ලෙස, මෙම ඒකාබද්ධ කිරීම මගින් සංස්කරණය කළ හැකි ගොනු වර්ග. ඔබට සුදුසු යැයි පෙනෙන පරිදි අභිරුචිකරණය කරන්න.

අවසාන පියවර: සංස්කාරකය සොයා ගත හැකි ස්ථානය

ඔබ ඔබේ වලාකුළු ගබඩා ෆෝල්ඩර වෙත ආපසු ගොස් නව ගොනුවක් සෑදීමට "+" මත ක්ලික් කළහොත්, ඔබට ලේඛනයක්, පැතුරුම්පතක් හෝ ඉදිරිපත් කිරීමක් සෑදීමට නව විකල්පයක් ඇත. ඔවුන්ගේ සහය ඇතිව, ඔබට ONLYOFFICE භාවිතයෙන් මෙම වර්ගයේ ගොනු නිර්මාණය කර වහාම සංස්කරණය කිරීමට හැකි වනු ඇත.

ගොනු නිර්මාණය කිරීමේ මෙනුවDocker සමඟ එකම සේවාදායකයේ NextCloud + ONLYOFFICE පිහිටුවීම

අතිරේකය 1

docker-compose.yml හි සම්පූර්ණ අන්තර්ගතය මෙතැනින් සොයා ගත හැක: https://pastebin.com/z1Ti1fTZ

මූලාශ්රය: www.habr.com

DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත අඩවි සඳහා විශ්වාසදායක සත්කාරකත්වය මිලදී ගන්න 🔥 DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත විශ්වාසදායක වෙබ් අඩවි සත්කාරකත්වය මිලදී ගන්න | ProHoster