クラウドストレージを使用すると、データを保存できるだけでなく、NASでデータをコラボレーションできます。
可能な解決策
クラウドサービスには、NextCloud、Seafile、Pydioなどのいくつかのオプションがあります...
それらのいくつかを以下で検討します。
Owncloud
PHP / Javascriptで実装されています。
機能:
- クラウドリポジトリからアプリケーションをインストールすることにより、機能を拡張することができます。
- CollaboraオフィスおよびOnlyOfficeとの統合があります。
- FTP、Swift、S3、Dropboxなどの既存のリポジトリを使用できます。
それらとローカルクラウド間でデータを共有します。 - クライアントでの暗号化。
- 電子メールで外部ユーザーにファイルを提供する機能。
- ファイルを使用した操作の自動化があります(たとえば、タグの自動追加)。
- LDAP
- オーディオプレーヤー、音楽コレクション、PDFリーダープラグインギャラリーがあります。
- Zimbraとの統合。
- カレンダー、タスクリスト、テキストエディターなどがあります。
- ウイルス対策とランサムウェアからの保護。
- 二要素認証。
- 別のユーザーになりすます機能(デバッグ目的)。
NextCloud
OwnCloudをフォークします。 PHP / Javascriptで実装されています。
機能:
- 通常のディレクトリ構造またはWebDAVを使用したファイルストレージ。
- NextCloud Talkがあり、これを介してビデオ通話やビデオ会議を行うことができます。
- Windows(Windows XP、Vista、7、および8)、Mac OS X(10.6以降)、またはLinuxを実行しているクライアント間の同期。
- モバイルデバイスと同期します。
- カレンダー(CalDAVなど)。
- タスクスケジューラ。
- アドレス帳(CardDAVと同じ)。
- ストリーミングメディア(Ampacheで使用)。
- LDAP、OpenID、Shibbolethなどのさまざまな承認プロバイダーをサポートしています。
- 二要素認証。
- グループ間でコンテンツを共有するか、パブリックURLを使用します。 ルールを微調整します。
- 構文の強調表示と折りたたみ機能を備えたオンラインテキストエディター。 LibreOfficeエディターのオンラインバージョンのサポートが発表されました。
- しおり
- URL短縮メカニズム。
- フォトギャラリー
- PDFビューアー(PDF.jsを使用)
- CollaboraおよびOnlyOfficeとの統合。
- ロギングモジュール。
- (PicoCMSで)独自のWebサイトを作成する機能。
- OutlookおよびThunderbirdとの統合。
- Gnomeの顧客統合。
- 外部ストレージを使用する機能。
- 全文検索。
- ウイルス対策との統合。
スパークルシェア
C#で実装されています。
機能:
- バージョニング
- クライアントでの暗号化。
- 複数のユーザー間の透過的な同期:リモートの変更は、SparkleShare専用のローカルディレクトリに表示されます。
機能:
- バックエンドとしてgitを使用します。
シーファイル
C / Javascriptで実装されています。
機能:
- ファイルは、デバイス間で同期できるライブラリに整理できます。
- クラウドにマッピングされたローカル「ディスク」を作成できるクライアントがあります。
- 組み込みの暗号化。 すべてのファイルはクライアントによって暗号化され、暗号化されたクラウドに保存されます。
- モバイルデバイスのサポート。
- HTTS / TLS暗号化。
- LDAPがあります。
- 微調整権。
- バージョン管理ファイル。
- ディレクトリスナップショットを作成し、それを返すことができます。
- 重複排除。
- ファイルのロックをサポートします。
- オンラインでファイルを共同編集します。
- アンチウイルス。
- 微調整権。
- rsyncによる定期的なバックアップ。
- WebDAV。
- REST API
- Collaboraと統合する機能。
機能:
- リソースに対する高速で要求の厳しい。
- 信頼できると考えられています。
- サブディレクトリへの権限の設定は、有料のProバージョンでのみサポートされています。
- アンチウイルスとの統合-Proバージョンのみ。
- 監査-Proバージョンのみ。
- 全文検索-Proバージョンのみ。
- S3およびCephとの統合-Proバージョンのみ。
- Doc / PPT / Excelのオンライン表示-Proバージョンのみ。
ピディオ
PHP / Javascriptで実装されています。
機能:
- ユーザー間だけでなく、Pydioの複数のインスタンス間でのファイル共有。
- SSL / TLS暗号化。
- WebDAV。
- 複数のワークスペースを作成する機能。
- 微調整共有(たとえば、直接リンク、パスワードなど)を使用した外部ユーザーとのファイル共有。
- ビルトインCollaboraオフィス。
- 画像のプレビューと編集。
- 組み込みのオーディオおよびビデオプレーヤーがあります。
Projectend
PHP / Javascriptで実装されています。
機能:
- 特定のユーザー間およびグループ間でファイルを共有できます。
- ファイル操作に関する完全なレポート。
- 外部ユーザーがファイルをアップロードする機能(たとえば、バグレポートを適用するための共有のため)。
スパイダーオーク
機能:
- (ファイル全体を上書きするのではなく)既存のファイルを重複排除して変更することにより、ストレージスペースとファイルのアップロード時間を節約します。
- カスタマイズ可能なマルチプラットフォーム同期。
同期用のDropBoxは、同期されたすべてのファイルを配置する必要がある特別なフォルダーを作成します。 SpiderOakはどのディレクトリでも動作します。 - ファイルと削除されたファイルのすべての履歴バージョンを保存します
- パスワードを設定するいわゆるShareRoomsを使用してフォルダを共有します。
ローカルコンピューターで更新されたファイルは、リポジトリで自動的に更新されます。 ユーザーには、RSS経由で変更が通知されます。 - インターネットに接続されているデバイスからファイルを受信します。
- 「ゼロ知識」の原理に基づく完全なデータ暗号化。
- 無制限の数のデバイスのサポート。
- クライアント側のデータ暗号化。
- 二要素認証。
機能:
閉じた独自システム。
このソフトウェアは有償で一部閉鎖されているため、その使用は除外されます。
NextCloudをインストールする
当初、Seafileを使用したいという要望がありました。サーバー部分はCで実装されており、効率的で安定しています。 しかし、すべてが無料版にあるわけではないことが判明しました。
したがって、Nextcloudを試してみて満足しました。 より多くの機能を提供し、完全に無料です。
クラウドストレージとシステム間の一般的なインターフェイスは次のとおりです。
-
/tank0/apps/cloud/nextcloud
クラウドサービスストレージ。 -
/tank0/apps/onlyoffice
オフィスデータ。 -
https://cloud.NAS.cloudns.cc
クラウドサービスのWEBインターフェイス。
なぜなら NextCloudの構成は非常に膨大で、いくつかのファイルで構成されています。ここではそれらをリストしません。
SeaFileの設定もここで利用できます。
最初にNextCloudをインストールして起動します。
これを行うには、構成を/tank0/docker/services/nextcloud
にコピーして、次を実行します。
# docker-compose up -d
Nextcloud 13.0.7に基づいて新しいイメージが構築されます。 ベースイメージのバージョンを変更する場合は、 app/Dockerfile
ます。 バージョン15を使用していますが、ocDownloaderローダーやノートなどの多くのプラグインがこのバージョンでは動作せず、OnlyOfficeの機能をまだ復元していないことに注意してください。
私は、基本的な違いや強力なパフォーマンスの改善に気付きませんでした。
以下では、バージョン13以降を使用していると考えています。
次に、NextCloudに移動して、右上のメニューで[アプリケーション]を選択し、必要なプラグインのインストールを完了します。
必須:
- LDAPユーザーおよびグループバックエンド -LDAPとのペアリング。
- 外部ストレージのサポート - 外部ストレージのサポート 。 NextCloudと共有ファイルの統合、および外部クラウドストレージとのペアリングを目標に、さらに必要になります。 外部ストレージの設定については、別の記事で説明します。
- ocDownloader-ファイルダウンローダー。 クラウドの機能を拡張します。 Dockerイメージは、動作するように特別に再構築されます。
- ONLYOFFICE-オフィス統合。 このアプリケーションがないと、ドキュメントファイルはクラウドで開きません。
- エンドツーエンド暗号化 -クライアントでのエンドツーエンド暗号化。 複数のユーザーがクラウドを使用する場合、ファイルのセキュリティを簡単に確保するためにプラグインが必要です。
望ましいアプリケーション:
- ブルートフォース設定 -資格情報の選択に対する保護。 NextCloudはインターネットを閲覧しているため、インストールすることをお勧めします。
- 偽装 -管理者は他のユーザーでログインできます。 デバッグとトラブルシューティングに役立ちます。
- トーク -ビデオチャット。
- カレンダー -自明であり、カレンダーをクラウドに保持できます。
- ファイルアクセス制御 -ユーザーは、タグとルールに基づいてファイルとディレクトリへのアクセスを禁止できます。
- チェックサム -ファイルのチェックサムを計算して表示できます。
- 外部サイト -上部のパネルに任意のサイトへのリンクを作成します。
コンテナ機能:
- Aria2ブートローダーがインストールされました。
- Youtube-DLブートローダーがインストールされています。
- inotify-toolsをインストールしました。
- PHPのメモリ制限が増加しました。
- Webサーバーは、LDAPでより適切に動作するように構成されています。
バージョン13以降をインストールしてからバージョン15にアップグレードすることにした場合、 occユーティリティを使用してこれを行うことができます。
LDAP
LDAPの構成は簡単ではありません。詳細を説明します。
「設定-> LDAP / ADとの統合」に進みます。
ポート389でサーバー172.21.0.1を追加します。
ログイン: cn=admin,dc=nas,dc=nas
NextCloudはLDAPデータベースのユーザーを管理できます。そのためには管理者が必要です。
「DN構成の確認」ボタンを押し、確認インジケータが緑色の場合は「次へ」ボタンを押します。
各ユーザーにはinetOrgPerson
属性があり、 users_cloud
グループのメンバーです。
フィルターは次のようになります。
(&(|(objectclass=inetOrgPerson))(|(memberof=cn=users_cloud,ou=groups,dc=nas,dc=nas)))
[設定データベースを確認してユーザーを再カウント]をクリックします。すべてが正しい場合は、ユーザー数が表示されます。 次へをクリックします。
次のページで、NextCloudが検索するユーザーフィルターが構成されます。
フィルター:
(&(objectclass=inetOrgPerson)(uid=%uid))
このページで、ユーザーのログインを入力し、「設定の確認」をクリックする必要があります。
前回は「次へ」。
次に、「詳細設定」をクリックして、「グループツリーベース」フィールドが「ユーザーツリーベース」フィールドと等しく、値がdc=nas,dc=nas
ます。
グループに戻り、 groupOfUniqueNames
横にある[これらのgroupOfUniqueNames
クラスのみ]ボックスをオンにしgroupOfUniqueNames
。
最後のフィルターは次のとおりです。
(&(|(objectclass=groupOfUniqueNames)))
「これらのグループからのみ」フィールドを設定しませんでした、なぜなら NextCloudインターフェースですべてのユーザーを表示したいのですusers_cloud
グループのusers_cloud
はないユーザーは、前の段階でフィルターによってusers_cloud
されます。
Onlyoffice
OnlyOfficeは、MS Officeドキュメントをサポートする優れたクロスプラットフォームオフィススイートです。 LibreOfficeと同様に無料でオープンであり、サーバーとしても機能します。
しかし同時に、元の形式のサポートは、MSの元のオフィスとほぼ同じように、より安定して実装され、より思いやりのあるインターフェイスを備えています。
また、すぐにNextCloudと統合できます。
ちなみに、Linuxを含むOnlyOfficeのデスクトップバージョンがあります。 一般に、重くて不安定なCollabora(これはLibreOfficeです)で自分自身を苦しめたため、OnlyOfficeを選択しましたが、これまでのところ非常に満足しています。
OnlyOffice構成は、Githubおよびそれ以降のスポイラーで利用できます 。
GithubにはCollaboraの構成もあります 。
version: '2' # https://helpcenter.onlyoffice.com/ru/server/docker/document/docker-installation.aspx networks: onlyoffice: driver: 'bridge' docker0: external: name: docker0 services: onlyoffice-redis: container_name: onlyoffice-redis image: redis restart: always networks: - onlyoffice expose: - '6379' onlyoffice-rabbitmq: container_name: onlyoffice-rabbitmq image: rabbitmq restart: always networks: - onlyoffice expose: - '5672' onlyoffice-postgresql: container_name: onlyoffice-postgresql image: postgres environment: - POSTGRES_DB=onlyoffice - POSTGRES_USER=onlyoffice networks: - onlyoffice restart: always expose: - '5432' volumes: - /tank0/apps/onlyoffice/postgresql_data:/var/lib/postgresql onlyoffice-documentserver-data: container_name: onlyoffice-documentserver-data image: onlyoffice/documentserver:latest environment: - ONLYOFFICE_DATA_CONTAINER=true - POSTGRESQL_SERVER_HOST=onlyoffice-postgresql - POSTGRESQL_SERVER_PORT=5432 - POSTGRESQL_SERVER_DB_NAME=onlyoffice - POSTGRESQL_SERVER_USER=onlyoffice - RABBITMQ_SERVER_URL=amqp://guest:guest@onlyoffice-rabbitmq - REDIS_SERVER_HOST=onlyoffice-redis - REDIS_SERVER_PORT=6379 stdin_open: true restart: always networks: - onlyoffice volumes: - /tank0/apps/onlyoffice/document-server-data/data:/var/www/onlyoffice/Data - /tank0/apps/onlyoffice/document-server-data/logs:/var/log/onlyoffice - /tank0/apps/onlyoffice/document-server-data/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files - /tank0/apps/onlyoffice/document-server-data/files:/var/www/onlyoffice/documentserver-example/public/files - /usr/share/fonts onlyoffice-documentserver: image: onlyoffice/documentserver:latest depends_on: - onlyoffice-postgresql - onlyoffice-redis - onlyoffice-rabbitmq - onlyoffice-documentserver-data environment: - ONLYOFFICE_DATA_CONTAINER_HOST=onlyoffice-documentserver-data - BALANCE=uri depth 3 - EXCLUDE_PORTS=443 - HTTP_CHECK=GET /healthcheck - EXTRA_SETTINGS=http-check expect string true - JWT_ENABLED=true - JWT_SECRET=<JWT_SECRET_TOKEN> # Uncomment the string below to redirect HTTP request to HTTPS request. #- FORCE_SSL=true - VIRTUAL_HOST=office.* - VIRTUAL_PORT=80 - VIRTUAL_PROTO=http - CERT_NAME=NAS.cloudns.cc stdin_open: true restart: always networks: - onlyoffice - docker0 expose: - '80' volumes: - /tank0/apps/onlyoffice/document-server/logs:/var/log/onlyoffice - /tank0/apps/onlyoffice/document-server/data:/var/www/onlyoffice/Data - /tank0/apps/onlyoffice/document-server/lib:/var/lib/onlyoffice - /tank0/apps/onlyoffice/document-server/db:/var/lib/postgresql volumes_from: - onlyoffice-documentserver-data
いくつかのポイントを説明します。
- <JWT_SECRET_TOKEN>を独自のものに変更し、NASをDNSゾーンの名前に変更する必要があります。
- ここではHTTPSを含める必要はありません。オフィスは外部から見えますが、オフィスとのやり取りはリバースプロキシを介して行われ、リバースプロキシはHTTPSを介してのみユーザーと連携します。 これが、NASアーキテクチャの構築方法です。
次に、オフィスを上げる必要があります。
docker-compose up -d
そして、すべてが機能する場合、次のページはoffice.NAS.cloudns.ccにあります。
次に、NextCloud設定で、「管理-> ONLYOFFICE」項目を選択し、最初の2つのフィールドにドキュメントサーバーのアドレスを入力する必要があります: https://office.NAS.cloudns.cc/
://office.NAS.cloudns.cc/およびJWTトークン。
3番目のフィールドに、クラウドアドレスを入力します。
たとえば、 ここで JWTトークンを生成することができます 。
サーバーが正しく構成されている場合、クラウドドキュメント作成メニューにオフィスドキュメントの追加項目が表示され、オフィスで.docx
ファイルが開きます。
結論
クラウドストレージは、ユーザーと他のサービスとの間のユーザーインタラクションの中心的なリンクです。
この役割では、NextCloudは非常に便利で、幅広い機能を備えています。
バージョン間で更新するプロセスには独自のものがありますが、一般的には、このリポジトリを推奨できます。