NextCloudを導入後に実施した設定についてまとめます。
我が家ではNextCloudはDockerで動かしているので、Dockerコンテナでの設定を前提としています。
NextCloudをDockerで実行する方法は下記を参考にしてください。
Androidのアプリからアクセスする
AndroidのアプリからNextCloudにログインするためには、管理者画面上の下記の警告を修正する必要があります。
リバースプロキシヘッダーの構成が正しくないか、信頼できるプロキシからNextcloudにアクセスしています。そうでない場合、これはセキュリティに問題があり、攻撃者がNextcloudを表示できるようにIPアドレスを偽装することができます。詳細については、ドキュメント↗をご覧ください。
下記をconfig/config.phpに追加します。(デフォルトで、/var/www/html以下)
'overwriteprotocol' => 'https'
追加したらコンテナを再起動します。
Docker Composeを利用した特定のサービスの停止・起動方法は下記を参考にしてください。
Memoriesのインストールと初期設定
写真のViewerアプリであるMemoriesを、アプリストアからインストールします。
Memoriesで利用される位置情報であるGeometryを利用するためには、再イデックスが必要になります。Memoriesを導入したら最初におこないましょう。
公式ドキュメント:https://memories.gallery/config/
Geometry Tableの作成
我が家ではNextCloudはDockerで動いているので、起動済みのDockerコンテナに入ります。下記のapp
はdocker-compose
ファイルのアプリケーション名を指定してください。
docker compose exec app bash
コマンド実行します。写真の量によっては時間がかかります。
./occ memories:places-setup
./occ memories:index
ffmpegのインストール
動画を表示するためには、ffmpeg
パッケージが必要です。自分はDockerイメージにインストールしていますが、手動でインストールする場合は下記を実行します。
sudo apt-get install -y --no-install-recommends \
ffmpeg \
ghostscript \
libmagickcore-6.q16-6-extra \
procps \
smbclient \
画像ファイル等を手動で追加後のインデックス処理
NextCloudでデータを保存しているファイルシステムに直接画像ファイルや動画ファイルをコピーした時にはインデックスを作成する必要があります。下記コマンドでインデックスを計算します。
./occ files:scan --all
# memoriesを利用している場合
./occ memories index
日本語ファイルでエラー
インデックスを作成中、日本語の濁点が原因でエラーが発生することがあります。
will not be accessible due to incompatible encoding
convmvというパッケージを導入することで、修正が可能です。
sudo apt install convmv
# 返還対象をリストアップ。実際には変換されない
convmv -r -f utf8 --nfd -t utf8 --nfc *
# --notestオプションで、実際に実行される
convmv -r -f utf8 --nfd -t utf8 --nfc * --notest
ログイン制限の解決方法
NextCloudでは、ログインに連続で失敗するとログイン制限がかかってしまいます。ログイン制限にかかった時に無理やり突破する方法です。
まず、DBにアクセスします。下記では、dockerコンテナに入って、PostgreSQLにログインしています。
docker compose exec db bash
psql -U nextcloud
DB内にあるログから、ログイン制限にかかっているIPアドレスを特定します。
select * from oc_bruteforce_attempts limit 100;
IPアドレスを特定したら、NextCloud本体が動いているコンテナ上で下記のコマンドを実行します。下記の例では、一度app
サービスにログインしています。
docker compose exec app bash
./occ security:bruteforce:reset {ipaddress}