もっと詳しく

すべてのファイルを一元化するためのドキュメントとファイルの管理をお探しですか? さて、もう探す必要はありません! とのドキュメント管理 Nextcloud Dockerを使用すると、Googleドライブ、Dropbox、またはなどのストレージサービスの代替として可能になります Mega.nz

Nextcloudは、ローカルサーバーにインストールできる最も人気のあるセルフホスティングドキュメントとファイル管理の1つです。 このチュートリアルでは、NextcloudDockerを使用してドキュメント管理をターボチャージする方法を学習します。

いつでもどこからでもドキュメントを読み、管理を開始できます。

前提条件

このチュートリアルは、実践的なデモンストレーションになります。 フォローするには、次のものがあることを確認してください。

  • Linuxサーバー–この例では、Ubuntu20.04サーバーを使用しています。
  • Dockerコンテナを実行および実行できるroot以外のユーザー。
  • Nextcloudユーザーアクセスのドメイン名。

プロジェクトディレクトリの設定

Nextcloudは、ファイルを保存してどこからでもアクセスできるようにするセルフホスティングWebアプリケーションです。 Nextcloudは、従来の方法でデプロイすることも、このチュートリアルで使用するDockerなどの最新のコンテナーテクノロジーを使用してデプロイすることもできます。

Dockerを使用すると、管理者はアプリケーションのインストールとインストールを簡単に管理できます。 したがって、Nextcloudをインストールする前に、サーバーにDockerとdocker-composeがインストールされていることを確認してから、Nextcloud用の新しいプロジェクトディレクトリを作成します。

1.サーバーにログインし、以下のコマンドを実行します。このコマンドは出力を提供しませんが、root以外のユーザーにログインします。 このデモでは、ユーザーaliceを使用してNextcloudやその他のコンテナーを実行しているため、ユーザー名aliceを必ず変更してください。

2.次に、以下のdockerコマンドを実行して、ユーザー(alice)がDockerコンテナーを実行できることを確認します。 このコマンドは、Dockerイメージhello-worldに基づいて新しいコンテナーを実行し、コンテナーが完了すると終了します。

ターミナル画面の「hello-world」メッセージの下に表示されます。 この出力は、ユーザーaliceがDockerコンテナーを実行できることを示しています。

3.最後に、以下のコマンドを実行します。これらのコマンドは出力を提供しませんが、新しいプロジェクトディレクトリ(nextcloud)と構成ファイル(docker-compose.yml)を作成します。

# Create a directory called nextcloud
mkdir -p ~/nextcloud; cd nextcloud

# create docker-compose.yml
touch docker-compose.yml

DockerComposeを使用したコンテナサービスの定義

これで、Nextcloudプロジェクトディレクトリと docker-compose.yml ファイル。これは、アプリを構成するサービスを定義するものです。 しかし今、 docker-compose.yml ファイルが空です。

Nextcloudのコンテナサービスとボリュームを自分で定義する必要があります docker-compose.yml ファイル。 構成には、3つのコンテナーサービスが含まれます。 MariaDB データベースとしてのサービス、 Redis セッション管理として、そしてNextcloudアプリとして。

構成は小さなセクションで記述しますが、このセクションの最後に完全な構成が表示されます。

1.を編集します docker-compose.yml お好みのエディタを使用してファイルします。

2. Docker Composeスクリプトのバージョンを3に定義して、DockerComposeスクリプトが新しいDockerエンジンでサポートされていることを確認します。

YAMLはインデントに依存するため、各コードをそのままコピーして貼り付けます。

3.次に、コンテナ用に2つのボリュームを定義します。 Nextcloudコンテナ用にnextcloudボリュームを作成し、MariaDBデータベースコンテナ用にdbを作成します。

NextcloudおよびMariaDBコンテナーのすべての重要なデータは、ホストマシンのDockerボリュームに保存され、Dockerホスト/マシンでデータを永続化します。

4.次の行を追加して、DockerでのNextcloudデプロイメント用の3つのサービス(MariaDB、Redis、およびNextcloud)を定義します。

5.次に、次の構成を追加して、MariaDBサービスを定義します。 この構成では、mariadbDockerイメージに基づいてdbという新しいサービスコンテナーが作成されます。

環境下で独自のクレデンシャル/情報を使用してMariaDBデータベースの詳細を変更することを忘れないでください。

  db:
    # Creates a service container based on the MariaDB Docker image
    image: mariadb
    # Restart the container until its removal
    restart: always
    # Starts the container
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    # Mounts the docker volume db to the data directory /var/lib/mysql
    volumes:
      - db:/var/lib/mysql
    # Defines the environment variable for MariaDB database details.
    environment:
      - MYSQL_ROOT_PASSWORD=somerootpassword
      - MYSQL_PASSWORD=somemysqlpassword
      - MYSQL_DATABASE=db
      - MYSQL_USER=mysqluser

6. MariaDBをサービスとして定義した後、次の構成を追加して、redisDockerイメージに基づいてRedisサービスを定義します。

NextcloudのRedisサービスは、スタンドアロンのセッション管理として使用されます。 この設定により、特に大規模な展開の場合、Nextcloudが高速になります。

必ずsomeredispasswordをランダムなシークレット/パスワードに変更してください。

  redis:
    # Defines the Redis service based on the Redis Docker image.
    image: redis
    # Restart the container until its removal
    restart: always
    # Define the random secret/password for accessing the Redis server
    command: redis-server --requirepass someredispassword

7.最後に、次の構成を追加して、Nextcloudサービス自体を定義します。

この構成は、nextcloud Dockerイメージに基づいてappという名前のサービスを定義し、Dockerホストのポート8080を公開します。

  app:
    # Defines the nextcloud service based on the nextcloud Docker image.
    image: nextcloud
    # Restart the container until its removal.
    restart: always
    # Exposes port 8080 on the Docker host.
    ports:
      - 8080:80
    # Connects the Nextcloud container service to the db and redis services.
    links:
      - db
      - redis
    # Mounts the volume (nextcloud) to the container directory /var/www/html.
    volumes:
      - nextcloud:/var/www/html
    # Defines the same environment variable as the MariaDB database configuration
    environment:
      - MYSQL_PASSWORD=somemysqlpassword
      - MYSQL_DATABASE=db
      - MYSQL_USER=mysqluser
      - MYSQL_HOST=db
      - REDIS_HOST_PASSWORD=someredispassword
    # The Nextcloud container service always runs after the db and redis services.
    depends_on:
      - db
      - redis

前の手順に従って、以下のNextclouddocker-compos.ymlファイルの完全な構成を取得します。

version: '3'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=somerootpassword
      - MYSQL_PASSWORD=somemysqlpassword
      - MYSQL_DATABASE=db
      - MYSQL_USER=mysqluser

  redis:
    image: redis
    restart: always
    command: redis-server --requirepass someredispassword

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
      - redis
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=somemysqlpassword
      - MYSQL_DATABASE=db
      - MYSQL_USER=mysqluser
      - MYSQL_HOST=db
      - REDIS_HOST_PASSWORD=someredispassword
    depends_on:
      - db
      - redis

Nextcloudの構築

あなたの完了後 docker-compose.yml 構成したら、定義したコンテナーサービス(MariaDB、Redis、Nextcloud)をビルドして実行します。 どのように? docker-composeコマンドを使用して、に対してコンテナサービスを構築します。 docker-compose.yml 構成ファイル。

1.以下のdocker-composeコマンドを実行します。 〜/ nextcloud Nextcloudをインストールしてデプロイするディレクトリ。

ターミナル画面に、Dockerがボリュームとネットワークを作成し、Nextcloudのデプロイに必要なすべてのイメージをダウンロードしていることがわかります。

Nextcloudコンテナの構築
Nextcloudコンテナの構築

すべてが完了すると、次の出力が表示されます。

Nextcloudコンテナが開始されました
Nextcloudコンテナが開始されました

2.次に、次のコマンドを実行して、Nextcloudデプロイメントのステータスを確認します。

以下の出力は、MariaDBサービス(db)、redis、およびNextcloudサービス(app)が実行されていることを示しています。 Nextcloudコンテナ(アプリ)がホストのポート8080を公開していることに注意してください。

Nextcloudコンテナのデプロイを確認する
Nextcloudコンテナのデプロイを確認する

3.最後に、以下の各コマンドを実行して、使用可能なDockerボリュームのリストを確認し、詳細なボリュームを調べます。

# Checking Docker volumes
docker volume ls

# Checking Docker volume nextcloud_db and nextcloud_nextcloud
docker volume inspect nextcloud_db
docker volume inspect nextcloud_nextcloud

以下のスクリーンショットは、2つのDockerボリュームを示しています。 MariaDBコンテナの場合はnextcloud_db、Nextcloudコンテナの場合はnextcloud_appで、タイプはローカルに設定されています。

以下は、各コンテナがインストールされている場所です。

  • MariaDBコンテナのデータは、 / var / lib / docker / bytes / nextcloud_db Dockerホスト上。
  • Nextcloudのインストールデータはに保存されています / var / lib / docker / bytes / nextcloud_nextcloud Dockerホストマシン上。
利用可能なDockerボリュームのチェックリスト
利用可能なDockerボリュームのチェックリスト

NGINXをリバースプロキシとして設定する

Nextcloudコンテナは実行されていますが、ユーザーアクセスの準備がまだできていません。 Nextcloudコンテナ用にNGINXリバースプロキシを設定し、ユーザーがNextcloudにアクセスできるようにします。

1.1。 SSLLetsEncryptを生成する

2.次に、 aptインストール 以下のコマンドを使用して、NGINXWebサーバーをインストールします。 このサーバーは、ユーザーアクセスのためにネットワークの外にNextcloudコンテナを公開するために使用されます。

sudo apt install nginx -y
NGINXWebサーバーのインストール
NGINXWebサーバーのインストール

3.という新しい構成ファイルを作成します /etc/nginx/sites-available/nextcloud.conf お好みのエディターを使用します。 次の構成をに入力します nextcloud.conf ファイルを作成し、変更を保存して、エディターを終了します。

この構成では、NGINXWebサーバーをNextcloudコンテナのリバースプロキシとして設定します。 nextcloud.example.ioドメイン名とドメインのSSL証明書パスのすべての出現箇所を必ず変更してください。

# server block for HTTP and
# automatically redirect to HTTPS
server {
    if ($host = nextcloud.example.io) {
        return 301 https://$host$request_uri;
    }
        listen 80;
        listen [::]:80;

        server_name nextcloud.example.io;
    return 404;
}

# server block for HTTPS secure connections
server {
    listen [::]:443 ssl http2;
    listen 443 ssl http2;

    # path of SSL certificates
    ssl_certificate /etc/letsencrypt/live/nextcloud.example.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/nextcloud.example.io/privkey.pem;

    server_name nextcloud.example.io;
    root /var/www/html;

    index index.html;

    # reverse proxy settings for
    # nextcloud running on port 8080
    location / {
        proxy_pass http://localhost:8080/;
        proxy_set_header Host $host;
        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;

        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
        client_max_body_size 0;

        access_log /var/log/nginx/nextcloud.access.log;
        error_log /var/log/nginx/nextcloud.error.log;
    }

    # define URL settings for carddav and caldav
    location /.well-known/carddav {
      return 301 $scheme://$host/remote.php/dav;
    }

    location /.well-known/caldav {
      return 301 $scheme://$host/remote.php/dav;
    }
}

4.次に、次のコマンドを実行して、nextcloud.confファイルのサーバーブロック構成をアクティブ化し、グローバルNGINX構成を確認します。 そうすることで、NGINX構成がエラーなしで正しいことが保証されます。

# Activate NGINX configuration
sudo ln -s /etc/nginx/sites-available/nextcloud.conf /etc/nginx/sites-enabled/

# Verify NGINX configuration
sudo nginx -t

以下の出力は、NGINX構成がエラーなしで正しいことを示しています。

nextcloud.confをアクティブにしてNGINX構成を確認する
nextcloud.confをアクティブにしてNGINX構成を確認する

5.最後に、次のコマンドを実行します。このコマンドは出力を提供しませんが、NGINX構成を再起動し、NGINX設定に新しい変更を適用します。

sudo systemctl restart nginx

Nextcloudアプリケーションのインストール

これでNextcloudはNGINXリバースプロキシで実行され、Nextcloud管理者ユーザーを構成してNextcloudアプリケーションのインストールを開始します。

管理者ユーザーがNextcloudのインストールを管理し、Nextcloudアプリケーションはアプリケーションを追加することでNextcloudの機能を拡張します。

1.お気に入りのWebブラウザーを開き、ドメイン名またはNextcloud URLインストールにアクセスします(つまり、 https://nextcloud.example.io)。 そして、すべてがうまくいけば、以下に示すように、Nextcloudのインストールページが表示されます。

新しい管理者ユーザーとパスワードを入力し、[インストール]をクリックします。 このユーザーはNextcloudの管理に使用できるため、必ず強力なパスワードを使用してください。

Nextcloud管理者ユーザーを設定してインストールを開始する
Nextcloud管理者ユーザーを設定してインストールを開始する

2.次に、[推奨アプリのインストール]ボタンをクリックして、以下にリストされているNextcloudアプリケーションのいくつかをインストールします。 これらのアプリケーションは、ユーザーのためにNextcloud機能を拡張します。

Nextcloud追加アプリケーションのインストール
Nextcloud追加アプリケーションのインストール

Nextcloudアプリケーションをインストールすると、以下にデフォルトのNextcloudユーザーダッシュボードが表示されます。

Nextcloudダッシュボードの表示
Nextcloudダッシュボードの表示

3.最後に、上部のファイルアイコンをクリックすると、以下に示すように、Nextcloudドキュメントとファイルの管理が表示されます。

これで、いつでもどこからでもドキュメントを管理できるようになります。

Nextcloudドキュメントとファイル管理へのアクセス
Nextcloudドキュメントとファイル管理へのアクセス

結論

このチュートリアルを通して、UbuntuLinuxシステムにNextcloudをDockerコンテナとしてインストールして構成する方法を学びました。 DockerアプリケーションNextcloudのリバースプロキシとしての基本的なNGINX構成に触れました。

そしてこの時点で、サーバー上にNextcloudを搭載した効率的なドキュメント管理システムができました。

しかし、おそらくあなたはNextcloud機能を拡張することに興味がありますか? 次のような別のアプリケーションに統合を追加してみてください Collabora、オフィスのような機能を提供します。 または追加 Jitsi また 展開する ビデオ会議用。

The post NextcloudDockerを使用したターボチャージドキュメント管理 appeared first on Gamingsym Japan.