డాకర్‌తో ఒకే సర్వర్‌లో NextCloud + ONLYOFFICEని సెటప్ చేస్తోంది

హే హబ్ర్! వ్యాసం యొక్క అనువాదాన్ని నేను మీ దృష్టికి అందిస్తున్నాను "Dockerతో ఒకే సర్వర్‌లో NextCloud మరియు ONLYOFFICEని సెటప్ చేస్తోంది".

సాంకేతిక ఆధారిత వ్యక్తుల జీవితాల్లో Google డాక్స్ మరియు క్లౌడ్ నిల్వ వంటి ఆన్‌లైన్ ఆఫీస్ సూట్‌ల విలువను తక్కువగా అంచనా వేయడం కష్టం. ఆఫీస్ అప్లికేషన్స్ మార్కెట్‌లో చాలా కాలంగా ఆధిపత్యం చెలాయించిన మైక్రోసాఫ్ట్ కూడా ఇటీవల ఆఫీస్ 365 వెబ్ అప్లికేషన్‌ను అభివృద్ధి చేయడంపై దృష్టి సారించింది మరియు వినియోగదారులను వారి స్వంత సేవలను ఉపయోగించడం కోసం సబ్‌స్క్రిప్షన్ మోడల్‌కు మారేలా చేయడంపై సాంకేతికత ఎంత విస్తృతంగా వ్యాపించింది. పిల్లి కింద వారి స్వంత నిల్వను ఇన్‌స్టాల్ చేసే మరియు కాన్ఫిగర్ చేసే ప్రక్రియలో ఆసక్తి ఉన్న వారిని మేము ఆహ్వానిస్తున్నాము.

కొంతకాలం క్రితం మేము క్లౌడ్ స్టోరేజ్ సొల్యూషన్స్ మరియు ఓపెన్ సోర్స్ వెబ్ ఆఫీస్ సూట్‌లను పరిశీలించాము, వీటిని మైక్రో-ఎంటర్‌ప్రైజ్‌లో సులభంగా ఉపయోగించుకోవచ్చు. అన్ని డాక్యుమెంటేషన్‌లను ఆన్‌లైన్‌లో ఉంచడానికి ప్రధాన ప్రేరణ ఏమిటంటే, కాగితపు పనిని కనిష్టంగా ఉంచడం మరియు లావాదేవీల పరిమాణం తక్కువగా ఉన్నప్పటికీ మంచి వ్యాపార పద్ధతులను అమలు చేయడం. మీ సర్వర్ లేదా ట్రాఫిక్‌కు భౌతిక ప్రాప్యతను ఆడిట్ చేయడానికి మీకు ఎలాంటి మార్గాలు లేనందున, ఈ సేవను అందించడానికి క్లౌడ్ సర్వర్‌ను అద్దెకు తీసుకోవడం అనేది నేరుగా ఎంటర్‌ప్రైజ్ ప్రాంగణంలో నిల్వ చేయడం కంటే తక్కువ సురక్షితమైనది అని నాణేనికి ఎదురుగా ఉంటుంది. అందువల్ల, ఎండ్-టు-ఎండ్ ఎన్‌క్రిప్షన్ మరియు ఓపెన్ సోర్స్ సాఫ్ట్‌వేర్ కూడా అవసరం.

ఓపెన్ సోర్స్ సొల్యూషన్‌ల గురించి అందుబాటులో ఉన్న మొత్తం సమాచారాన్ని పరిగణనలోకి తీసుకుంటే, క్లౌడ్ స్టోరేజ్ కోసం డెవలప్ చేసిన రెండు యాక్టివ్ ప్రాజెక్ట్‌లను (గత 12 నెలలుగా git రిపోజిటరీలో కమిట్‌లతో) మేము కనుగొన్నాము: NextCloud మరియు OwnCloud మరియు యాక్టివ్ ONLYOFFICE ఆఫీస్ సూట్ మాత్రమే. రెండు క్లౌడ్ స్టోరేజ్ సాధనాలు దాదాపు ఒకే విధమైన కార్యాచరణను కలిగి ఉంటాయి మరియు సాఫ్ట్‌వేర్‌తో సౌకర్యవంతమైన వినియోగదారు పరస్పర చర్య కోసం ONLYOFFICEతో ఏకీకృతం చేయబడుతుందనే సాక్ష్యం ఆధారంగా నెక్స్ట్‌క్లౌడ్‌ను ఎంచుకునే నిర్ణయం తీసుకోబడింది. అయితే, మేము సేవలను అమలు చేయడం ప్రారంభించినప్పుడు, పై సేవలను ఏకీకృతం చేయడంపై సమాచారం లేకపోవడం స్పష్టంగా కనిపించింది. ఎలా ఇంటిగ్రేట్ చేయాలనే దానిపై మేము 3 ట్యుటోరియల్ వీడియోలను కనుగొన్నాము:

భాగస్వామ్య nginxతో NextCloud వలె అదే భౌతిక సర్వర్‌లో ONLYOFFICE డాక్యుమెంట్ సేవను ఇన్‌స్టాల్ చేసే ప్రశ్నకు మూడు వీడియోలలో ఏదీ సమాధానం ఇవ్వలేదు. బదులుగా, వారు డాక్యుమెంట్ సర్వీస్ api కోసం ప్రత్యేక పోర్ట్‌లను ఉపయోగించడం వంటి విభజన పద్ధతులను ఉపయోగించారు. డాక్యుమెంట్ సేవ కోసం ప్రత్యేక సర్వర్‌ని అమలు చేయడం, యాక్సెస్ కీ (డేటా క్లౌడ్‌ను యాక్సెస్ చేసే హక్కును నిర్ధారించే ముందుగా తెలిసిన యాక్సెస్ కీ) మరియు TLS సర్టిఫికేట్‌లను ఇన్‌స్టాల్ చేయడానికి డాక్యుమెంట్ సర్వీస్‌లో నిర్మించిన nginx ఉదాహరణను మాన్యువల్‌గా కాన్ఫిగర్ చేయడం మరొక సూచించబడిన ఎంపిక. పై విధానాలు సురక్షితంగా లేవు మరియు తగినంత ప్రభావవంతంగా లేవు, కాబట్టి మేము NextCloud, ONLYOFFICE మరియు డాకర్-కంపోజ్ ఉపయోగించి అభ్యర్థనలను డొమైన్ పేర్ల ద్వారా వేరు చేసే సాధారణ nginxని ఏకీకృతం చేసాము. దీన్ని ఎలా చేయాలో దశల వారీ సమాచారం ఇక్కడ ఉంది.

దశ 1: nginx కంటైనర్

ఇది చాలా సులభమైన సెటప్, కానీ ఈ దశకు రివర్స్ ప్రాక్సీ సర్వర్‌ను కాన్ఫిగర్ చేయడానికి చాలా పని అవసరం. మేము మొదట 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 కు మ్యాప్ చేస్తుంది మరియు స్వీయ సంతకం చేసిన సర్టిఫికేట్‌లుగా రూపొందించబడిన సర్టిఫికేట్‌ల కోసం స్టోర్‌ను నిర్వచిస్తుంది లేదా /nginx/certificatesలో లెట్స్ ఎన్‌క్రిప్ట్ సర్టిఫికేట్‌ను ఉపయోగిస్తుంది. ఈ స్థానం ఆఫీస్.yourdomain.com మరియు cloud.yourdomain.com కోసం ఫోల్డర్‌లను కలిగి ఉండాలి, సర్టిఫికేట్ చైన్ మరియు సర్వర్ ప్రైవేట్ కీ కోసం ఒక్కొక్క దానిలో fullchain1.pem మరియు privkey1.pem ఫైల్‌లు ఉంటాయి. స్వీయ సంతకం చేసిన సర్టిఫికేట్‌ను ఎలా రూపొందించాలనే దాని గురించి మీరు ఇక్కడ మరింత చదవవచ్చు. www.akadia.com/services/ssh_test_certificate.html (nginx కోసం ఫైల్ నిర్మాణాన్ని మార్చకుండా .key మరియు .crt పేరు మార్చడం .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 సర్వీస్ సెట్టింగ్‌ల విండోడాకర్‌తో ఒకే సర్వర్‌లో NextCloud + ONLYOFFICEని సెటప్ చేస్తోంది

దశ 4: NextCloud మరియు ONLYOFFICEని కనెక్ట్ చేస్తోంది

ఈ దశలో, మీరు ONLYOFFICE ఫంక్షనాలిటీని కనెక్ట్ చేసే NextCloud కోసం అప్లికేషన్‌ను ఇన్‌స్టాల్ చేయాలి. మెను యొక్క కుడి ఎగువ మూలలో అప్లికేషన్ నియంత్రణ ప్యానెల్‌తో ప్రారంభిద్దాం. ONLYOFFICE యాప్‌ను కనుగొనండి (ఆఫీస్ & టెక్స్ట్ కింద లేదా శోధనను ఉపయోగించడం), దాన్ని ఇన్‌స్టాల్ చేసి, యాక్టివేట్ చేయండి.

ఆ తర్వాత ఎగువ కుడి మూలలో ఉన్న మెను ద్వారా సెట్టింగ్‌లకు వెళ్లండి మరియు మీరు ఎడమ మెనులో ONLYOFFICE ఐటెమ్‌ను కనుగొనాలి. అందులోకి వెళ్ళు. దిగువ సూచించిన విధంగా మీరు చిరునామాలను నమోదు చేసుకోవాలి.

ఇంటిగ్రేషన్ అప్లికేషన్ సెట్టింగ్‌లుడాకర్‌తో ఒకే సర్వర్‌లో NextCloud + ONLYOFFICEని సెటప్ చేస్తోంది

బ్రౌజర్‌లో నడుస్తున్న అప్లికేషన్ నుండి నేరుగా కొన్ని js మరియు css ఫైల్‌లకు లింక్ చేయడానికి మొదటి చిరునామా ఉపయోగించబడుతుంది (ఇదే మనం nginx ద్వారా ONLYOFFICE సేవకు ప్రాప్యతను తెరవాలి). మేము నిరంతర ప్రామాణీకరణ కీ కంటే డాకర్ ఐసోలేషన్ లేయర్‌ని ఎక్కువగా విశ్వసిస్తున్నందున రహస్య కీ ఉపయోగించబడదు. మూడవ చిరునామా నేరుగా ONLYOFFICE APIకి కనెక్ట్ చేయడానికి NextCloud కంటైనర్ ద్వారా ఉపయోగించబడుతుంది మరియు ఇది డాకర్ నుండి డిఫాల్ట్ అంతర్గత హోస్ట్ పేరును ఉపయోగిస్తుంది. సరే, మీరు డాకర్ నెట్‌వర్క్‌లను ఉపయోగిస్తుంటే ONLYOFFICE బాహ్య IP చిరునామా లేదా అంతర్గత డాకర్ చిరునామాను ఉపయోగించి NextCloud APIకి తిరిగి అభ్యర్థనలను చేయడానికి చివరి ఫీల్డ్ ఉపయోగించబడుతుంది, కానీ ఇది మా విషయంలో ఉపయోగించబడదు. మీ ఫైర్‌వాల్ సెట్టింగ్‌లు ఈ రకమైన పరస్పర చర్యలను అనుమతిస్తున్నాయని నిర్ధారించుకోండి.

సేవ్ చేసిన తర్వాత, నెక్స్ట్‌క్లౌడ్ కనెక్షన్‌ని పరీక్షిస్తుంది మరియు ప్రతిదీ సరిగ్గా ఉంటే, ఇంటిగ్రేషన్‌కు సంబంధించిన సెట్టింగ్‌లను మీకు చూపుతుంది - ఉదాహరణకు, ఈ ఇంటిగ్రేషన్ ద్వారా ఏ రకమైన ఫైల్‌లను సవరించవచ్చు. మీకు సరిపోయే విధంగా అనుకూలీకరించండి.

చివరి దశ: ఎడిటర్‌ను ఎక్కడ కనుగొనాలి

మీరు మీ క్లౌడ్ స్టోరేజ్ ఫోల్డర్‌లకు తిరిగి వెళ్లి, కొత్త ఫైల్‌ను సృష్టించడానికి “+”పై క్లిక్ చేస్తే, మీకు పత్రం, స్ప్రెడ్‌షీట్ లేదా ప్రెజెంటేషన్‌ని సృష్టించడానికి కొత్త ఎంపిక ఉంటుంది. వారి సహాయంతో, మీరు ONLYOFFICEని ఉపయోగించి ఈ రకమైన ఫైల్‌లను సృష్టించి, వెంటనే సవరించగలరు.

ఫైల్ సృష్టి మెనుడాకర్‌తో ఒకే సర్వర్‌లో NextCloud + ONLYOFFICEని సెటప్ చేస్తోంది

అనుబంధం 1

docker-compose.yml యొక్క పూర్తి కంటెంట్ ఇక్కడ చూడవచ్చు: https://pastebin.com/z1Ti1fTZ

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి