NextCloud + ONLYOFFICEን ከDocker ጋር በተመሳሳይ አገልጋይ ማዋቀር

ሃይ ሀብር! የጽሁፉን ትርጉም ለእርስዎ ትኩረት አቀርባለሁ። "NextCloud እና ONLYOFFICEን በአንድ አገልጋይ ላይ Docker ማዋቀር".

እንደ ጎግል ሰነዶች እና የደመና ማከማቻ በቴክ ተኮር ሰዎች ህይወት ውስጥ ያሉ የመስመር ላይ የቢሮ ስብስቦችን ዋጋ ማቃለል ከባድ ነው። ቴክኖሎጂ በጣም የተስፋፋ ከመሆኑ የተነሳ የቢሮ አፕሊኬሽን ገበያውን ለረጅም ጊዜ ሲቆጣጠር የነበረው ማይክሮሶፍት እንኳን በቅርቡ የ Office 365 ዌብ አፕሊኬሽን በማዘጋጀት እና ተጠቃሚዎች የራሳቸውን አገልግሎት ለመጠቀም ወደ የደንበኝነት ምዝገባ ሞዴል እንዲቀይሩ በማሳመን ላይ ትኩረት አድርጓል። በድመት ስር የራሳቸውን ማከማቻ በመጫን እና በማዋቀር ሂደት ላይ ፍላጎት ያላቸውን ሰዎች እንጋብዛለን።

ከጥቂት ጊዜ በፊት በጥቃቅን ኢንተርፕራይዝ ውስጥ ለመጠቀም በቀላሉ ሊሰማሩ የሚችሉ የደመና ማከማቻ መፍትሄዎችን እና ክፍት ምንጭ የድር ቢሮ ስብስቦችን ተመልክተናል። ሁሉንም ሰነዶች በመስመር ላይ ለማስቀመጥ ዋናው መነሳሳት ዝቅተኛ የግብይቶች ብዛት ቢኖርም የወረቀት ስራዎችን በትንሹ ለማቆየት እና ጥሩ የንግድ ልምዶችን ተግባራዊ ማድረግ ነው። የሳንቲሙ ጎን ለጎን ይህንን አገልግሎት ለመስጠት የደመና ሰርቨር መከራየት በድርጅቱ ቅጥር ግቢ ውስጥ በቀጥታ ከማከማቸት ያነሰ አስተማማኝነት ስላለው ሰርቨርዎን ወይም ትራፊክዎን አካላዊ ተደራሽነት የማጣራት ዘዴ ስለሌለዎት ነው። ስለዚህ ከጫፍ እስከ ጫፍ ምስጠራ እና ክፍት ምንጭ ሶፍትዌርም ያስፈልጋል።

ስለ ክፍት ምንጭ መፍትሄዎች ያሉትን ሁሉንም መረጃዎች ግምት ውስጥ በማስገባት፣ ለCloud ማከማቻ የተገነቡ ሁለት ንቁ ፕሮጀክቶችን (ያለፉት 12 ወራት በgit ማከማቻ ውስጥ ያሉ) ለዳመና ማከማቻ የተገነቡ፡ NextCloud እና OwnCloud፣ እና ብቸኛው ንቁ የONLYOFFICE ቢሮ ስብስብ አግኝተናል። ሁለቱም የደመና ማከማቻ መሳሪያዎች ተመሳሳይ ተግባር አላቸው፣ እና NextCloud ን ለመምረጥ የወሰኑት ከሶፍትዌሩ ጋር ምቹ የተጠቃሚ መስተጋብር እንዲኖር ከONLYOFFICE ጋር ሊጣመር እንደሚችል በማስረጃ መኖር ላይ የተመሰረተ ነው። ነገር ግን አገልግሎቶቹን ማሰማራት ስንጀምር ከላይ የተጠቀሱትን አገልግሎቶች በማዋሃድ ረገድ የመረጃ እጥረት ታይቷል። እንዴት እንደሚዋሃዱ 3 አጋዥ ቪዲዮዎች አግኝተናል፡-

ከሶስቱ ቪዲዮዎች ውስጥ አንዳቸውም የONLYOFFICE ሰነድ አገልግሎትን እንደ NextCloud በተጋራ nginx በተመሳሳይ አካላዊ አገልጋይ ላይ የመጫን ጥያቄን አልመለሱም። በምትኩ፣ ለሰነድ አገልግሎት ኤፒአይ የተለየ ወደቦችን መጠቀምን የመሳሰሉ የመለያ ዘዴዎችን ተጠቅመዋል። ሌላ የተጠቆመው አማራጭ የተለየ አገልጋይ ለሰነድ አገልግሎት ማሰማራት ሲሆን በሰነድ አገልግሎት ውስጥ የተሰራውን nginx ምሳሌን በእጅ በማዋቀር የመዳረሻ ቁልፍን (የመረጃ ደመናን የመድረስ መብትን የሚያረጋግጥ ቀድሞ የታወቀ የመዳረሻ ቁልፍ) እና የTLS ሰርተፊኬቶች። ከላይ ያሉት አካሄዶች ደህና እንዳልሆኑ እና በቂ ውጤታማ እንዳልሆኑ ተቆጥረዋል፣ስለዚህ NextCloudን፣ ONLYOFFICEን እና የተለመደ nginxን አዋህደናል፣ ይህም ጥያቄዎችን በጎራ ስሞች የሚለይ፣ docker-composeን በመጠቀም። እንዴት ማድረግ እንደሚቻል የደረጃ በደረጃ መረጃ እዚህ አለ።

ደረጃ 1: nginx መያዣ

ይህ በጣም ቀላል ቅንብር ነው፣ ግን ይህ እርምጃ የተገላቢጦሹን ተኪ አገልጋይ ለማዋቀር ከፍተኛውን ስራ ይፈልጋል። መጀመሪያ ለ nginx: የተረጋጋ ምስል የዶከር-አጻጻፍ ውቅር ፈጠርን.

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 ውስጥ እንመሰጥር። ይህ ቦታ የoffice.yourdomain.com እና Cloud.yourdomain.com ማህደሮች፣ በእያንዳንዱ ውስጥ fullchain1.pem እና privkey1.pem ፋይሎች ለእውቅና ማረጋገጫ ሰንሰለት እና የአገልጋይ የግል ቁልፍ በቅደም ተከተል መያዝ አለበት። በራስ የተፈረመ የምስክር ወረቀት እንዴት ማመንጨት እንደሚችሉ የበለጠ ማንበብ ይችላሉ። www.akadia.com/services/ssh_test_certificate.html (ቁልፍ እና .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 + ONLYOFFICEን ከDocker ጋር በተመሳሳይ አገልጋይ ማዋቀር

ደረጃ 4፡ NextCloud እና ONLYOFFICEን በማገናኘት ላይ

በዚህ ደረጃ፣ የONLYOFFICE ተግባርን የሚያገናኘውን የ NextCloud መተግበሪያን መጫን ያስፈልግዎታል። በምናሌው የላይኛው ቀኝ ጥግ ላይ ባለው የመተግበሪያ መቆጣጠሪያ ፓነል እንጀምር። የONLYOFFICE መተግበሪያን ያግኙ (በOffice እና text ወይም ፍለጋን በመጠቀም) ይጫኑት እና ያግብሩት።

ከዚያ በኋላ በላይኛው ቀኝ ጥግ ላይ ባለው ሜኑ በኩል ወደ ቅንጅቶች ይሂዱ እና በግራ ምናሌው ውስጥ የ ONLYOFFICE ንጥልን ማግኘት አለብዎት። ወደ ውስጥ ግባ። ከታች እንደተገለፀው አድራሻዎቹን መመዝገብ ያስፈልግዎታል.

የውህደት መተግበሪያ ቅንብሮችNextCloud + ONLYOFFICEን ከDocker ጋር በተመሳሳይ አገልጋይ ማዋቀር

የመጀመሪያው አድራሻ በአሳሹ ውስጥ ከሚሰራው መተግበሪያ በቀጥታ ወደ አንዳንድ js እና css ፋይሎች ለማገናኘት ይጠቅማል (ይህን ነው የONLYOFFICE አገልግሎትን በ nginx ለመክፈት የሚያስፈልገን)። የምስጢር ቁልፉ ስራ ላይ አይውልም ምክንያቱም ከቋሚ የማረጋገጫ ቁልፉ በላይ የዶከር ማግለል ንብርብርን ስለምንታመን ነው። ሶስተኛው አድራሻ ከONLYOFFICE ኤፒአይ ጋር ለመገናኘት በ NextCloud ኮንቴይነር ጥቅም ላይ ይውላል፣ እና ከDocker ነባሪ የውስጥ አስተናጋጅ ስም ይጠቀማል። ደህና፣ የመጨረሻው መስክ ጥቅም ላይ የሚውለው ONLYOFFICE የ Docker ኔትወርኮችን እየተጠቀሙ ከሆነ ውጫዊ የአይፒ አድራሻን ወይም የውስጥ Docker አድራሻን በመጠቀም ወደ NextCloud API ጥያቄዎችን እንዲያቀርብ ነው፣ ነገር ግን ይህ በእኛ ሁኔታ ጥቅም ላይ አይውልም። የፋየርዎል ቅንጅቶችዎ እነዚህን አይነት መስተጋብሮች መፍቀዳቸውን ያረጋግጡ።

ካስቀመጠ በኋላ NextCloud ግንኙነቱን ይፈትሻል እና ሁሉም ነገር ትክክል ከሆነ ከውህደቱ ጋር የተያያዙ ቅንብሮችን ያሳየዎታል - ለምሳሌ በዚህ ውህደት ምን አይነት ፋይሎች ሊስተካከል ይችላል። ልክ እንዳዩት ያብጁ።

የመጨረሻው ደረጃ: አርታዒውን የት እንደሚገኝ

ወደ የደመና ማከማቻ አቃፊዎችህ ከተመለስክ እና አዲስ ፋይል ለመፍጠር "+" ላይ ጠቅ ካደረግክ ሰነድ፣ የቀመር ሉህ ወይም አቀራረብ ለመፍጠር አዲስ አማራጭ ይኖርሃል። በእነሱ እርዳታ ONLYOFFICEን በመጠቀም እነዚህን የፋይል አይነቶች መፍጠር እና ወዲያውኑ ማረም ይችላሉ።

የፋይል መፍጠሪያ ምናሌNextCloud + ONLYOFFICEን ከDocker ጋር በተመሳሳይ አገልጋይ ማዋቀር

ማሟያ 1

የdocker-compose.yml ሙሉ ይዘት እዚህ ሊገኝ ይችላል፡- https://pastebin.com/z1Ti1fTZ

ምንጭ: hab.com

አስተያየት ያክሉ