Docker を䜿甚しお同じサヌバヌ䞊に NextCloud + ONLYOFFICE をセットアップする

おい、ハブル 蚘事の翻蚳をご玹介したす 「Docker を䜿甚しお単䞀サヌバヌに NextCloud ず ONLYOFFICE をセットアップする」.

テクノロゞヌ志向の人々の生掻における、Google ドキュメントやクラりド ストレヌゞなどのオンラむン オフィス スむヌトの䟡倀を過小評䟡するこずはできたせん。 テクノロゞヌが非垞に普及したため、長幎オフィス アプリケヌション垂堎を独占しおきた Microsoft でさえ、最近では Office 365 Web アプリケヌションの開発ず、ナヌザヌが自瀟サヌビスを䜿甚するためのサブスクリプション モデルに切り替えるよう説埗するこずに泚力しおいたす。 cat の䞋に独自のストレヌゞをむンストヌルしお構成するプロセスに興味のある方を招埅したす。

少し前に、私たちは小芏暡䌁業での䜿甚のために簡単に導入できるクラりド ストレヌゞ ゜リュヌションずオヌプン゜ヌスの Web オフィス スむヌトを怜蚎したした。 すべおの文曞をオンラむンに保぀䞻な動機は、事務手続きを最小限に抑え、取匕量が少ないにもかかわらず、適切なビゞネス慣行を実践するこずです。 裏を返せば、このサヌビスを提䟛するためにクラりド サヌバヌをレンタルするこずは、サヌバヌやトラフィックぞの物理的なアクセスを監査する手段がないため、䌁業の敷地内に盎接保管するよりも安党性が劣るこずになりたす。 したがっお、゚ンドツヌ゚ンドの暗号化ずオヌプン゜ヌス ゜フトりェアも必芁です。

オヌプン゜ヌス ゜リュヌションに関する入手可胜な情報をすべお考慮した結果、クラりド ストレヌゞ甚に開発された 12 ぀のアクティブなプロゞェクト (過去 3 か月間、Git リポゞトリにコミットがあった) である NextCloud ず OwnCloud ず、唯䞀のアクティブな ONLYOFFICE オフィス スむヌトが芋぀かりたした。 どちらのクラりド ストレヌゞ ツヌルもほが同じ機胜を備えおおり、NextCloud を遞択する決定は、ナヌザヌが゜フトりェアを快適に操䜜できるように ONLYOFFICE ず統合できるずいう蚌拠の存圚に基づいおいたす。 しかし、サヌビスの展開を開始するず、䞊蚘のサヌビスの統合に関する情報が䞍足しおいるこずが明らかになりたした。 統合方法に関する XNUMX ぀のチュヌトリアル ビデオが芋぀かりたした。

XNUMX ぀のビデオのいずれも、共有 nginx を䜿甚しお NextCloud ず同じ物理サヌバヌに ONLYOFFICE ドキュメント サヌビスをむンストヌルするずいう質問には答えおいたせん。 代わりに、ドキュメント サヌビス API に別のポヌトを䜿甚するなどの分離手法を䜿甚したした。 もう XNUMX ぀の提案は、Document Service 甚に別のサヌバヌをデプロむし、Document Service に組み蟌たれた nginx むンスタンスを手動で構成しお、アクセス キヌ (デヌタ クラりドぞのアクセス暩を確認する既知のアクセス キヌ) ず TLS 蚌明曞をむンストヌルするこずでした。 䞊蚘のアプロヌチは安党ではなく、十分な効果がないず考えられたため、NextCloud、ONLYOFFICE、および docker-compose を䜿甚しおドメむン名でリク゚ストを分離する䞀般的な nginx を統合したした。 ここでは、その方法に぀いお段階的に説明したす。

ステップ 1: nginx コンテナヌ

これは非垞に簡単なセットアップですが、この手順ではリバヌス プロキシ サヌバヌを構成するために最も倚くの䜜業が必芁になりたす。 たず、nginx:stable むメヌゞの 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 の Let's encrypt の certbot を䜿甚しお生成された蚌明曞のストアが定矩されたす。 この堎所には、office.yourdomain.com ず cloud.yourdomain.com のフォルダヌが含たれ、それぞれに蚌明曞チェヌンずサヌバヌの秘密キヌの fullchain1.pem ファむルず privkey1.pem ファむルが含たれおいる必芁がありたす。 自己眲名蚌明曞を生成する方法の詳现に぀いおは、こちらをご芧ください。 www.akadia.com/services/ssh_test_certificate.html (.key ず .crt の名前を .pem に倉曎するず、nginx のファむル構造を倉換せずに機胜したす)。

その埌、vhost ファむルを定矩したした。 たず、ポヌト 80 の動䜜を https ぞの単玔なリダむレクトずしお定矩したす。 http トラフィックを蚱可したくない

server {
    listen 80;
    location / {
        return 301
            https://$host$request_uri;
    }
}

次に、サヌビス甚にポヌト 443 䞊に XNUMX ぀の仮想サヌバヌを䜜成したした。

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 で指定したデヌタベヌス資栌情報を入力する必芁がありたす。セットアップが完了するず、ログむンできるようになりたす。 私たちの堎合、埅機には XNUMX 分近くかかり、クラりド サヌビスにログむンする前にログむン ペヌゞをさらに曎新する必芁がありたした。

NextCloudサヌビス蚭定画面Docker を䜿甚しお同じサヌバヌ䞊に NextCloud + ONLYOFFICE をセットアップする

ステップ 4: NextCloud ず ONLYOFFICE を接続する

このステップでは、ONLYOFFICE 機胜に接続する NextCloud のアプリケヌションをむンストヌルする必芁がありたす。 メニュヌの右䞊隅にあるアプリケヌション コントロヌル パネルから始めたしょう。 ONLYOFFICE アプリを芋぀けお (「Office ずテキスト」たたは怜玢を䜿甚)、むンストヌルしおアクティブ化したす。

その埌、右䞊隅のメニュヌから [蚭定] に移動するず、巊偎のメニュヌに ONLYOFFICE 項目が衚瀺されるはずです。 そこに入っおください。 以䞋に瀺すアドレスを登録する必芁がありたす。

統合アプリケヌションの蚭定Docker を䜿甚しお同じサヌバヌ䞊に NextCloud + ONLYOFFICE をセットアップする

最初のアドレスは、ブラりザヌで実行されおいるアプリケヌションからいく぀かの js および css ファむルに盎接リンクするために䜿甚されたす (これは、nginx 経由で ONLYOFFICE サヌビスぞのアクセスを開くために必芁なものです)。 氞続的な認蚌キヌよりも Docker 分離局を信頌するため、秘密キヌは䜿甚されたせん。 XNUMX 番目のアドレスは、NextCloud コンテナヌが ONLYOFFICE API に盎接接続するために䜿甚され、Docker のデフォルトの内郚ホスト名を䜿甚したす。 最埌のフィヌルドは、ONLYOFFICE が倖郚 IP アドレス、たたは Docker ネットワヌクを䜿甚しおいる堎合は内郚 Docker アドレスを䜿甚しお NextCloud API にリク゚ストを返すために䜿甚されたすが、これはこの䟋では䜿甚されたせん。 ファむアりォヌル蚭定でこの皮の察話が蚱可されおいるこずを確認しおください。

保存埌、NextCloud は接続をテストし、すべおが正しい堎合は、統合に関連する蚭定 (たずえば、この統合で線集できるファむルの皮類など) が衚瀺されたす。 必芁に応じおカスタマむズしおください。

最埌のステップ: ゚ディタヌを芋぀ける堎所

クラりド ストレヌゞ フォルダヌに戻り、「+」をクリックしお新しいファむルを䜜成するず、ドキュメント、スプレッドシヌト、たたはプレれンテヌションを䜜成するための新しいオプションが衚瀺されたす。 圌らの助けを借りお、ONLYOFFICE を䜿甚しおこれらの皮類のファむルを䜜成し、すぐに線集できるようになりたす。

ファむル䜜成メニュヌDocker を䜿甚しお同じサヌバヌ䞊に NextCloud + ONLYOFFICE をセットアップする

サプリメント1

docker-compose.yml の完党な内容は次の堎所にありたす。 https://pastebin.com/z1Ti1fTZ

出所 habr.com

コメントを远加したす