目的と範囲
このガイドは、onlyoffice-alfresco スクリプトを利用して Alfresco Share 上のドキュメントを ONLYOFFICE Online Editors で共同編集できるようにする手順を説明します。Alfresco Share は Alfresco の ECM リポジトリを基盤としたコラボレーティブなコンテンツ管理機能を提供します。ここではサーバーセットアップ、依存関係のビルド、プラグイン導入、最終確認までを扱います。
前提条件
- ONLYOFFICE Document Server(別サーバー推奨)
- Java 7 以上(Oracle Java 8 を推奨)
- Gradle
- Alfresco インストール済み(対応バージョンは導入環境に依存します)
重要: 本ガイドは一般的な手順を示します。実際の運用環境ではファイアウォール、リバースプロキシ、SSL 設定、Alfresco のバージョン互換性を確認してください。
構成手順
ステップ 1. ONLYOFFICE Document Server を準備する
ONLYOFFICE Document Server をインストールするか、依存関係を避けるために Docker イメージを利用します。推奨は Docker を使った分離された環境構築です。
- Docker 利用例(参考):
docker run -i -t -d -p 80:80 onlyoffice/documentserver
ステップ 2. Gradle をインストールする
Gradle のリポジトリを追加して、パッケージ情報を更新し、Gradle をインストールします。
sudo add-apt-repository ppa:cwchien/gradle
sudo apt-get update
sudo apt-get install gradle
既に Gradle がある場合は、まず削除してください。
sudo apt-get remove gradle
ステップ 3. Oracle Java 8 をインストールする
最新の安定版 Oracle Java 8 を導入するには次のコマンドを実行します。
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
注意: Oracle ライセンスやリポジトリの可用性は時間とともに変わるため、代替として OpenJDK の利用を検討してください。ただし、一部プラグインで Oracle Java を要求する場合があります。
ステップ 4. alternatives を切り替える
複数 Java 実装がある場合は、update-alternatives で Oracle Java を優先に設定します。
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
ステップ 5. 必要な依存をビルドする
Git から Alfresco 用プラグインを取得してビルドします。
git clone https://github.com/yeyan/alfresco-amp-plugin.git
cd amp-plugin
gradle publish
この手順で依存モジュールや AMP(Alfresco Module Package)が生成されます。
ステップ 6. onlyoffice-alfresco プラグインを取得する
onlyoffice-alfresco プラグインのソースをクローンします。
cd ..
git clone https://github.com/cetra3/onlyoffice-alfresco.git
ステップ 7. share と repo ディレクトリで gradle amp を実行する
share と repo の各ディレクトリに移動して gradle タスクを実行し、AMP パッケージをビルドします。プロジェクト構成によりコマンドが異なることがあります。ビルド後は ./build/amp に AMP ファイルができます。
ステップ 8. onlyoffice.url を alfresco-global.properties に追加する
Alfresco の設定ファイル(alfresco-global.properties)に ONLYOFFICE の URL を追加します。例:
onlyoffice.url=http://your-onlyoffice-server.example.com
- URL はプロキシや SSL を通す場合は https を使い、ポート設定も含めて正しく指定してください。
ステップ 9. 作成された AMP パッケージを Alfresco の amps/ と amps_share/ に配置する
ビルドした AMP ファイルを Alfresco インストールディレクトリの以下にコピーします:
- amps/
- amps_share/
例:
cp ./build/amp/*.amp /opt/alfresco/amps/
cp ./build/amp/*.amp /opt/alfresco/amps_share/
ステップ 10. bin/apply_amps.sh を実行する
Alfresco インストールディレクトリで apply_amps.sh を実行します。2 つのモジュールがインストールされるメッセージが表示され、Enter を押して処理を完了します。
cd /opt/alfresco
sudo bin/apply_amps.sh
インストール後、ドキュメントライブラリのオフィスドキュメントに「Edit in Onlyoffice(Onlyoffice で編集)」アクションが追加されます。
管理者・開発者・利用者向けチェックリスト
管理者:
- ONLYOFFICE Document Server の稼働確認(HTTP/HTTPS、CORS、ファイアウォール)
- Alfresco のバックアップ取得
- alfresco-global.properties のバックアップ
開発者/運用担当:
- Java と Gradle のバージョン確認
- AMP のビルドログでエラーがないか確認
- apply_amps.sh 実行後の Alfresco 起動ログを確認
利用者(エンドユーザー):
- ドキュメントを開いて「Edit in Onlyoffice」が表示されるか確認
- 同時編集で保存と衝突解決が正常に動作するかテスト
受け入れ条件
- Alfresco のドキュメントライブラリに「Edit in Onlyoffice」アクションが表示される
- ドキュメントを開くと ONLYOFFICE エディタが起動し、保存できる
- 2 人以上で同時編集してもバージョンや保存に重大な競合が発生しない
トラブルシューティング
ONLYOFFICE エディタが起動しない:
- onlyoffice.url が正しいか確認(スキーム、ホスト名、ポート)
- ブラウザのコンソールで CORS や Mixed Content(HTTP/HTTPS 混在)エラーを確認
- Document Server が稼働しているか、ログを確認
AMP のビルドエラー:
- Gradle と Java の互換性を確認
- 依存ライブラリが取得できているかネットワーク設定を確認
Alfresco 再起動後に変更が反映されない:
- apply_amps.sh 実行時の出力を再確認
- キャッシュやブラウザのリロードを試す
代替アプローチと注意点
- Docker を使って Alfresco と ONLYOFFICE を同一ホスト上にコンテナで構築すると依存関係管理が楽になります。ただしリソース分離とパフォーマンスに注意してください。
- OpenJDK を使う場合、プラグインやカスタムコードの互換性を事前に検証してください。
役割別運用ワンポイント
- セキュリティ: Document Server と Alfresco 間は TLS(HTTPS)で保護する。必要に応じてクライアント証明書を導入する。
- パフォーマンス: 同時編集が多い場合、Document Server の CPU/メモリを増強する。
- 監視: Document Server と Alfresco のヘルスチェックを導入し、アラートを設定する。
参考リンク
- Alfresco official website: https://www.alfresco.com/
- ONLYOFFICE official website: http://www.onlyoffice.com/
- onlyoffice-alfresco plugin on GitHub: https://github.com/cetra3/onlyoffice-alfresco
まとめ
Alfresco Share と ONLYOFFICE の統合は、Document Server の用意、Java/Gradle のセットアップ、onlyoffice-alfresco プラグインのビルドと AMP 適用を順に行うことで実現できます。導入後は「Edit in Onlyoffice」アクションでドキュメントの共同編集が可能となり、チームのコラボレーションが向上します。
重要: 本番環境へ導入する前にステージング環境で必ず検証を行ってください。