← All notes

Technical note · 02

Nextcloudを自宅で使う

入れることより、続けて使うこと

Nextcloudの構成、保存場所、バックアップ、更新を日常運用の視点でまとめた記録。

Published
2025.02.13
Updated
2026.09.02
Reading
20 min
01

作ろうと思った理由

PCごとにファイルを移す作業を減らし、スマートフォンからも同じデータへアクセスできる場所が欲しくてNextcloudを導入しました。クラウドを使う側だけでなく、保存と同期がどのように動くかを運用する側から知りたいという目的もありました。

導入して表示できた時点を完成にせず、更新、容量不足、故障から戻せる状態までを一つの仕組みとして考えます。

02

必要な役割を分ける

Nextcloudはアプリだけでは完結しません。Webの入口、PHPを動かす環境、データベース、実ファイルの保存場所が協力して動きます。役割を分けておくと、問題が起きた場所を絞りやすくなります。

  • ↳Nginx: ブラウザから届く通信の入口
  • ↳Nextcloud/PHP: 画面と同期処理
  • ↳データベース: ユーザーやファイル情報
  • ↳データ領域: 実際のファイル
  • ↳定期処理: スキャンや整理などのバックグラウンド処理
03

導入するときの順序

最初から外部公開まで進めず、宅内ネットワークで基本動作を確認してから接続範囲を広げます。段階を分けることで、アプリの問題とネットワークの問題を混ぜずに済みます。

  • ↳保存容量とバックアップ先を決める
  • ↳専用のVMまたはコンテナを用意する
  • ↳Nextcloudとデータベースを起動する
  • ↳宅内からログイン・アップロード・同期を試す
  • ↳NginxとHTTPSを設定する
  • ↳必要ならTailscale経由で外出先から確認する
04

ProxmoxにUbuntu VMを作る

以前はUbuntu Japanese Teamの22.04 Desktop RemixをKDDIミラーから取得して使いました。再構築する場合は、サーバー用途にGUIを必要としないため、現在サポートされているUbuntu Server LTSを公式サイトから取得する方が軽量で管理しやすいです。2026年9月時点の公式ページでは24.04.4 LTSが案内されています。

Proxmoxの対象ストレージでISO Imagesを開き、UploadまたはDownload from URLからISOを登録します。登録したISOをCD/DVDに選んでVMを作成し、メモリ、CPU、システムディスク、固定アドレスを用途に合わせて決めます。

EXAMPLE# 以前使用した22.04 Japanese Remixの記録
https://ftp.kddilabs.jp/Linux/packages/ubuntu-jp/release-cd/releases/jammy/ubuntu-ja-22.04-desktop-amd64.iso

# Proxmoxで入力したファイル名
ubuntu-ja-22.04-desktop-amd64.iso
  • ↳ProxmoxのストレージがISO imageを保存できる設定か確認
  • ↳Ubuntu公式のISOとチェックサムを使う
  • ↳VM作成後にUbuntuをインストール
  • ↳Nextcloud用データを置くディスクとバックアップ先を先に決める
  • ↳古い記録: ubuntu-ja-22.04-desktop-amd64.isoをKDDIミラーから取得
05

Nextcloud snapを導入する

Ubuntuへログインし、まず更新を適用してからNextcloud snapを導入します。初期管理者はブラウザから作成できます。コマンドで作成する場合は、パスワードがシェル履歴などへ残らないよう扱いに注意します。

IP確認コマンドは『ip adds -a』ではなく『ip addr show』です。宅内IP、MagicDNS名、公開に使う.ts.net名は別の値なので、trusted_domainsへ必要な名前だけを追加します。

EXAMPLEsudo apt update
sudo apt upgrade
sudo snap install nextcloud

# ブラウザ初期設定を使わない場合のみ
sudo nextcloud.manual-install <管理者名> '<強いパスワード>'

ip addr show
hostname -I

sudo nextcloud.occ config:system:set trusted_domains 1 --value="<宅内IPまたはホスト名>"
sudo nextcloud.occ config:system:set trusted_domains 2 --value="<Nextcloudの.ts.net名>"
06

新しいドメインとプロキシを登録する

URLを追加しただけで表示が安定しない場合は、trusted_domainsに加えてリバースプロキシのIP、外部から見えるホスト名とHTTPSを明示します。値は構成ごとに異なるため、例をそのまま貼らず置き換えます。

EXAMPLEsudo nextcloud.occ config:system:set trusted_domains 2 --value="nextcloud.example.ts.net"
sudo nextcloud.occ config:system:set trusted_proxies 0 --value="<NginxのIP>"
sudo nextcloud.occ config:system:set overwritehost --value="nextcloud.example.ts.net"
sudo nextcloud.occ config:system:set overwriteprotocol --value="https"
sudo nextcloud.occ config:system:set overwrite.cli.url --value="https://nextcloud.example.ts.net"

sudo nextcloud.occ config:system:set log_type --value="syslog"
sudo nextcloud.occ config:system:set syslog_tag --value="Nextcloud"
sudo nextcloud.occ config:system:set loglevel --value=3
07

Windows同期で文字化け・同期失敗が出る場合

最初にNextcloud Desktop Clientの更新、同期対象パス、使用できない文字、サーバーログを確認します。それでも日本語ファイル名などで同期エラーが続く場合、WindowsのUTF-8システムロケールが改善につながることがあります。

Windowsの設定から『時刻と言語』→『言語と地域』→『管理用の言語の設定』→『管理』タブ→『システム ロケールの変更』へ進み、『ベータ: ワールドワイド言語サポートでUnicode UTF-8を使用』を有効にして再起動します。

08

multipathの警告が出る場合だけ確認する

multipath.confはNextcloudの通常設定ではありません。Proxmoxで新規作成したUbuntu VMへ、VMwareのVirtual diskを除外する設定をそのまま入れても一致しない可能性があります。まずログとsudo multipath -llで対象デバイスのvendor・productを確認します。

以下は以前のVMware仮想ディスク向けメモです。実際に表示された識別子と一致する場合だけ、元ファイルをバックアップしてから使用します。再起動コマンドは古いinit.d形式ではなくsystemctlを使います。

EXAMPLEsudo cp /etc/multipath.conf /etc/multipath.conf.bak 2>/dev/null || true
sudo nano /etc/multipath.conf

defaults {
    user_friendly_names yes
}

blacklist {
    device {
        vendor "VMware"
        product "Virtual disk"
    }
}

sudo systemctl restart multipathd
sudo systemctl status multipathd --no-pager
09

Google Driveのデータを取り込む

NextcloudのGoogle Integrationは、Google DriveなどのデータをNextcloudへ取り込む機能です。公式リポジトリでは継続的な双方向同期ではなく、一回のインポートと説明されています。バックアップ用途でも、取り込み後にNextcloud側のバックアップが別途必要です。

Nextcloudのアプリ管理でGoogle Integrationを有効にし、管理画面に表示されるリダイレクトURIをコピーします。Google Cloudでプロジェクトを作成し、必要なAPIだけを有効化します。OAuth同意画面は個人利用ならExternalとテストユーザーを設定し、OAuthクライアントはWeb applicationを選びます。

  • ↳アプリ名: Nextcloud Integrationなど識別できる名前
  • ↳ユーザーサポート・開発者メール: 自分が管理できるアドレス
  • ↳テストユーザー: 実際に取り込むGoogleアカウント
  • ↳Redirect URI: Nextcloud画面に表示された値を完全一致で登録
  • ↳例: https://<Nextcloudドメイン>/index.php/apps/integration_google/oauth-redirect
  • ↳作成したClient IDとClient SecretをNextcloud管理画面へ入力
  • ↳Client SecretはGitHub、記事、スクリーンショットへ掲載しない
10

バックアップするもの

ファイルだけをコピーしても、共有設定やユーザー情報まで同じ状態には戻せません。データ領域、データベース、設定ファイルを同じ時点として保存する必要があります。

スナップショットは変更前へ戻るのに便利ですが、同じディスクが故障すると一緒に失われます。別の保存媒体へ複製し、実際に復元できるかを確認します。

  • ↳ユーザーファイルのデータ領域
  • ↳データベースのダンプ
  • ↳設定ファイル
  • ↳導入バージョンと復元手順
  • ↳バックアップの作成日時と保存世代
11

日常の運用メモ

長く使うために、毎日見る必要があるものと、更新前に確認するものを分けています。問題が起きてから容量やバックアップを調べるのではなく、定期的に確認できる項目へします。

  • ↳ディスク残量と同期エラー
  • ↳OS・Nextcloud・追加アプリの更新
  • ↳バックアップの成功と保存世代
  • ↳管理者ログインと不要アカウント
  • ↳証明書の期限と外部接続範囲
NEXT NOTE

Network / Nginx / Tailscale

リバースプロキシとTailscale Funnel

→