SSD Nodes Learn Hosting plans →
ガイド Matt Connor著者 Matt Connor ・更新日 2026-08-26

セルフホスト型Dropbox代替4サービスを比較

Nextcloud、Seafile、Syncthing、オブジェクトストレージを、同期トポロジーと小規模VPSの実費で比較します。同期はバックアップではない理由も解説します。

運用するセルフホスト型Dropbox代替サービスはどれですか?

時間をかけて検討する価値があるセルフホスト型Dropbox代替サービスは、Nextcloud、Seafile、Syncthing、そしてクライアントを組み合わせて使うオブジェクトストレージの4つです。これらは互換的に使えるものではありません。ほかの人がファイルを受け取る必要がある家庭や小規模チームには、Nextcloudが適しています。非常に多くの小さなファイルを同期し、ディスク上でのデータの見え方より同期速度を重視する個人やチームには、Seafileが適しています。自分のデバイス間で同期し、外部の人にリンクを渡す必要がない個人には、Syncthingが適しています。ほとんど開かないデータを安価に保存するアーカイブには、オブジェクトストレージが適しています。

機能を比較する前に、同期の仕組みを基準に選んでください。機能一覧はどれも同じように見えます。どのマシンが、ほかのすべてのマシンで合意されたコピーを保持するのかというトポロジーが、6か月後も満足して使えているかどうかを決めます。

同期トポロジ: 基準サーバー、またはサーバーを持たないピア構成

2 つの設計を選択肢として検討します。以降の多くは、どちらを選ぶかで決まります。

基準サーバー。 Nextcloud、Seafile、オブジェクトストレージはすべてこの方式です。通常は VPS (virtual private server) である 1 台のマシンが、正本を保持します。すべてのデバイスがそのマシンと通信します。ノート PC を 1 か月間オフラインにしても、復帰後に自動で追いつけます。空き容量が 6 GB のスマートフォンには一部だけを保持し、サーバーにはすべてを保持できます。ブラウザーからファイルにアクセスできるため、共有リンクも利用できます。

サーバーを持たないピア構成。 Syncthing はこの方式です。デバイス同士が検出し合い、暗号化接続を介してファイル一覧を直接交換します。正本となるコピーはありません。ファイルは、そのファイルを保持するデバイス上にだけ存在します。変更を相互に反映するには、2 台のデバイスが同時にオンラインである必要があります。ページを配信するマシンがないため、誰かに渡す URL もありません。

次の 4 つの点が結果として生じます。実際に問題になるのは、これらの点です。

  • ソフトウェアをインストールしない相手にファイルを送るには、基準サーバーが必要です。リンクは URL であり、URL にはポートで待ち受けるプロセスが必要です。
  • 管理権限のないマシン、たとえば職場のノート PC からファイルにアクセスするには、基準サーバーが必要です。
  • 数週間オフラインだったデバイスは、起動するとサーバーから追いつけます。ピア構成では、そのデータを保持する別のデバイスもオンラインの間にだけ追いつけます。そのため、多くの Syncthing ユーザーは VPS 上でインスタンスを 1 つ実行し、常時オンラインのピアとして利用します。
  • ストレージの使用量も異なります。基準サーバーは完全なコピーを 1 つ保持し、各デバイスがローカルに保持する分が追加されます。1 つのフォルダーを共有する 4 台のピアでは、各ピアがフォルダー全体を保持するため、完全なコピーが 4 つ存在します。

Nextcloud: ユーザー、グループ、公開リンク

Nextcloud は PHP Web アプリケーションです。データディレクトリ内に通常のファイルとしてファイルを保存し、データベースで管理します。フォルダーは、ユーザー、グループ、またはパスワードと有効期限を設定した公開リンクとして共有できます。バージョン履歴はデフォルトで有効で、削除したファイルはまずごみ箱に移動します。デスクトップクライアントは Linux、macOS、Windows に対応し、iOS と Android には公式アプリがあります。Dropbox をやめる理由が、他の人にファイルを受け取ってもらう必要があることなら、これが率直な答えです。

代わりに、複数のコンポーネントを運用する必要があります。通常のインストールでは、Web サーバー、PHP-FPM(PHP プロセスマネージャー)、MariaDB や PostgreSQL などのデータベース、ファイルロック用の Redis を動かします。バックグラウンドジョブは、cron または systemd timer から 5 分ごとに実行します。1 GB VPS でも起動しますが、大きなアップロードや長時間の occ メンテナンスコマンドを実行すると、out-of-memory killer によってプロセスが終了することがあります。少数のユーザーでも 2 GB を最低容量と考え、アプリを追加すると 4 GB が必要になると見込んでください。もう 1 つの負担はアップグレードです。app-store アプリは特定の core リリース向けに作られているため、アップグレードする前に、依存するアプリが次のメジャーバージョンをサポートしているか確認してください。

1 つのアカウントに数十万個の小さなファイルがあると、Nextcloud は遅くなります。各ファイルが file cache テーブルの 1 行であり、ディスク上の実ファイルでもあるためです。デスクトップクライアントもファイルを 1 つずつ走査します。家庭内で使う規模なら、この問題はまず発生しません。容量設計、TLS(transport layer security)、バックアップについては TLS とバックアップを設定した Docker ベースの Nextcloud インストール で説明しています。導入を決めた後は、そこを参照してください。

対象範囲について、1 つ注意があります。Nextcloud ではカレンダー、連絡先、メモ、写真ライブラリも運用できます。しかし、有効にするアプリごとにバックグラウンド処理が増え、アップグレードを妨げる要因も 1 つ増えます。実際の課題が写真なら、専用ツールのほうが適しています。セルフホスト型の Google Photos 代替としての Immich を参照してください。実際の課題がドキュメントや wiki なら、ファイルサーバーにアプリを重ねるのではなく、セルフホスト型 Notion 代替サービスを検討してください。これらのドキュメントをブラウザーで編集するには、Nextcloud アプリではなく別のサーバーが必要です。そのため、2 GB の最低容量で足りると判断する前に、OnlyOffice と Collabora の比較を確認してください。

Seafile: 非常に多数の小さなファイル向けに設計

Seafile は各ファイルをブロックに分割し、git がオブジェクトに使用する仕組みと同じく、コンテンツハッシュでアドレス指定する内部オブジェクトストアに保存します。同期と共有の単位はフォルダーツリーではなくライブラリです。クライアントはファイルごとに 1 回リクエストするのではなく、ブロックと 1 回のコミットをアップロードするため、100,000 個の小さなファイルがあるディレクトリの同期は、ファイル単位のプロトコルよりもはるかに速く完了します。同一のブロックは 1 回だけ保存されるため、大きなファイルの 2 つ目のコピーに必要な容量はほとんどありません。

その代わり、サーバー上のファイルは通常のファイルではなくなります。ストレージディレクトリを開くと、16 進数の名前を持つオブジェクトファイルが見つかります。データを取り出すには、Seafile クライアント、または Seafile 固有の export と fsck ツールが必要です。これらのオブジェクトは通常のファイルなので、バックアップは引き続き機能します。ただし、cp を使って 1 つのスプレッドシートだけを復元することはできません。これは後から後悔しやすい特性なので、許容できるかどうかを今のうちに判断してください。

Seafile には community edition と有料の professional edition があり、両者の機能分担はリリースごとに変わるため、特定の機能を前提にチームの構成を計画する前に、公式サイトで現在の利用条件を確認してください。公式のデスクトップクライアントとモバイルクライアントがあります。暗号化ライブラリはクライアント側で暗号化されるため、サーバーには読み取れない暗号文が保存されます。パスフレーズを失うと、そのライブラリは自分でも読み取れなくなります。ブラウザーで暗号化ライブラリを開く場合、そのパスフレーズを Web セッションに渡すことになります。そのため、この保証が最も強く成立するのはデスクトップクライアントとモバイルクライアントです。

必要なリソースは Nextcloud に近い水準です。データベース、メモリーキャッシュ、2 つのアプリケーションプロセスを実行するため、ここでも 2 GB が現実的な下限です。

Syncthing: ログインする必要がない

Syncthing は単一の Go バイナリです。フォルダーを監視し、discovery server または relay 経由でピアを見つけ、デバイス間で直接同期します。同期相手用のアカウントやログインページはありません。ID で 2 台のデバイスをペアリングし、それぞれの側でフォルダーを受け入れます。実行に必要な作業は、ここで扱うものの中で最も少なくなります。実行するもの自体がほとんどないためです。

その代わり、共有機能はすべて失われます。その項目は Device pairing only, no links です。クライアント、会計担当者、親族にリンクを渡すことはできません。もう 1 つの不足はモバイル対応です。Android app, no official iOS。プロジェクト独自の FAQ でも、次のように明記されています。「現在の Syncthing チームには、当面の間 iOS を公式にサポートする計画はありません」。iOS はバックグラウンド処理を厳しく制限しているため、信頼性の高い同期が難しいためです。iOS ユーザーはサードパーティ製アプリを利用することになります。

リソース使用量は少なく、1 点だけ知っておくべきことがあります。Syncthing は同期するすべてのファイルについてインデックス項目を保持するため、メモリ使用量と初回スキャン時間は合計サイズではなくファイル数に応じて増加します。初回に大きなフォルダーのハッシュを計算すると、しばらく CPU を使用します。その後は落ち着きます。最小構成の VPS プランでも快適に動作します。

競合が発生した場合は、両方の側を保持して処理します。2 台のデバイスが互いを認識できない間に同じファイルを変更すると、Syncthing は一方のコピーの名前を変更し、もう一方のコピーの隣に保持します。そのため、notes.sync-conflict-20260802-141530-K7MB3QT.md のようなファイルが作成されます。データは失われません。ただし、統合も行われないため、手動で解決します。

クライアントでオブジェクトストレージを使う: 安価なデータ保管領域であり、同期フォルダーではありません

オブジェクトストレージとは、S3 (simple storage service) 互換のバケットです。MinIO を使って自己ホストすることも、プロバイダーから借りることもできます。コマンドラインの rclone などのツールでアクセスします。バケットをドライブとして表示するデスクトップクライアントもあります。シェルではなく Web ページからバケットを参照したい場合は、自己ホスト型ファイルマネージャーの比較にあるツールの一部が、バックエンドとして S3 バケットを利用し、その上に独自の共有リンクを追加します。共有には presigned URL を使います。これは、有効期限を自身に含めて生成するリンクです。バージョン管理はバケットの設定です。Bucket versioning, off by default そのため、バケットの作成時に有効にしてください。作成前にアップロードしたオブジェクトには適用されません。

バケットを同期フォルダーとして扱うと、問題が起きます。デフォルトでは Documents ディレクトリを監視するものはありません。rclone bisync は双方向同期に対応していますが、rclone の公式ドキュメントも、慎重な運用が必要だと明記しています。オブジェクトストレージが特に適しているのは、下位のストレージとして使う構成です。バックアップ先や、アプリケーションの背後に置くストレージ層として利用できます。サーバー側については、MinIO を使った自己ホスト型 S3 互換オブジェクトストレージで説明しています。

ここでのリソースコストは独特です。MinIO は 1 つのバイナリで動作し、アイドル時の消費も少なくなります。実際に支払うコストはディスクです。VPS では、1 GB 単位で借りるブロックボリュームの料金に加え、オブジェクトの送受信に使う帯域幅の料金がかかります。これらは free -h には表示されないため、アーカイブ容量を決める前にVPS の実際の月額コストを確認してください。

共有、モバイルクライアント、バージョン管理の比較

ChartSharing, mobile clients and versioning, by tool
The data behind this chart
[
  {
    "tool": "Nextcloud",
    "sharing": "Public links, users and groups",
    "mobile": "Official iOS and Android apps",
    "versioning": "On by default, plus trash"
  },
  {
    "tool": "Seafile",
    "sharing": "Public links with password and expiry",
    "mobile": "Official iOS and Android apps",
    "versioning": "Library history and snapshots"
  },
  {
    "tool": "Syncthing",
    "sharing": "Device pairing only, no links",
    "mobile": "Android app, no official iOS",
    "versioning": "Optional per folder, off by default"
  },
  {
    "tool": "Object storage",
    "sharing": "Presigned URLs you generate",
    "mobile": "Third party clients only",
    "versioning": "Bucket versioning, off by default"
  }
]

4 個の選択肢は、1 つの基準で分かれます。3 つは、ブラウザーしか持たない相手にもファイルを渡せます。1 つは、すでに所有しているデバイスとのみ通信します。Seafile のバージョン管理項目 Library history and snapshots については、補足が必要です。履歴はライブラリ単位で保持されるため、ライブラリを削除すると、その履歴も削除されます。

データを再び取り出す

移行コストは、今確認するなら低く、後で判明すると高くつきます。そのため、導入を決める前に確認してください。

Nextcloud は実際のファイルを実際のディレクトリに保存するため、データディレクトリの tar があれば、アプリケーションを二度と起動できなくなってもドキュメントを取得できます。Syncthing でも各ピアに同じ状態が保たれるため、この中では最も移行しやすい構成です。ファイルが各デバイス上にそのまま存在するからです。Seafile のオブジェクトストアでは、ブロックをファイルに再構成するために Seafile またはそのエクスポートツールが必要です。オブジェクトストレージでは rclone または同等のツールが必要ですが、1 つのコマンドで実行できます。

同期はバックアップではない。この違いがデータ損失につながる

ここで扱うすべてのツールは、マシン間で変更をコピーします。削除も変更です。ノートパソコンでフォルダーを削除すると、クライアントがその変更をサーバーに通知し、サーバーが適用します。その結果、ほかのすべてのデバイスでも削除されます。ランサムウェアも同じ経路を使用します。ローカルでファイルを暗号化すると、クライアントは変更されたファイルを検出し、暗号化された状態でアップロードします。同期は正常に動作しています。それでも、データは失われています。

ゴミ箱とバージョン履歴があれば、影響を軽減できます。ただし、これらにも保持期限があります。誤操作をしたのと同じアカウントで消去できる場合もあります。また、稼働中のコピーと同じディスク上に保存されます。ボリュームに障害が発生すると、ファイルとその履歴が同時に失われます。

バックアップとは、別のハードウェア上に別のコピーをスケジュールに従って作成し、少なくとも 1 回は復元したものです。ファイルと同じ処理でデータベースもバックアップしてください。Nextcloud のデータディレクトリだけを復元すると、そのファイルの存在を認識できないインスタンスになります。その後に occ files:scan を実行するとファイルは復旧できますが、これらのテーブルに保存されていた共有設定とバージョン履歴は失われます。VPS からのスケジュール済み restic バックアップでは、暗号化と重複排除を行うこの方式について、復元を想定するだけでなく実際にテストする方法も説明しています。

私なら選ぶもの

この記事を読む多くの人には、Nextcloud を勧めます。Dropbox をやめた後に困るのは、何もインストールしない相手にリンクを渡すことと、スマートフォンでファイルを開くことです。Nextcloud なら、公式クライアントを使ってこの両方を実現でき、有料プランも必要ありません。そのために 2 GB の RAM を割り当てる価値は十分にあります。

例外は 2 つあります。フォルダーを自分だけが使い、自分が所有するハードウェア上でしか扱わないなら、Syncthing を実行してください。パッチを適用するサーバーも、守るべき Web ログイン画面も不要になります。数十万個のファイルがある作業ディレクトリを同期するなら、Seafile を実行してください。ストレージが見えにくくなる代わりに、速度を得られます。Object storage は、選択した製品の前段に同期ツールとして置くのではなく、バックアップ先としてその下に配置します。

FAQ

Syncthing は laptop のバックアップになりますか?

いいえ。Syncthing はデバイス間で変更をコピーします。削除も他の変更と同じ扱いになるため、誤って削除したファイルは数秒以内にペアリング済みのすべてのデバイスから消えます。フォルダー単位のファイルバージョニングが役立ちますが、各フォルダーで有効にするまで無効です。別のハードウェアに、スケジュールに従って実際のバックアップを保存してください。一度復元して、復元が機能することも確認してください。

Nextcloud と Syncthing を同じ VPS で実行できますか?

はい。異なるポートで待ち受けるため、競合しません。Syncthing のフォルダーを Nextcloud のデータディレクトリに指定しないでください。Nextcloud はすべてのファイルをデータベースで管理します。そのため、配下のディスク上に現れたファイルは occ files:scan を実行するまで認識されません。配下から削除されたファイルについては、存在しない対象を指すデータベース行が残ります。Syncthing 専用のディレクトリを用意してください。または、そのディレクトリを外部ストレージとして Nextcloud に接続し、Nextcloud がそこを確認できるようにしてください。

アカウントを持たない相手とリンクを共有できるのはどれですか?

Nextcloud と Seafile は、任意のパスワードと有効期限を設定した公開リンクを作成できます。オブジェクトストレージでは、設定した時間が経過すると自動的に使えなくなる presigned URL を作成できます。Syncthing にはこの機能がありません。共有モデルはデバイスのペアリングです。そのため、相手は Syncthing をインストールし、デバイス ID を知らせ、フォルダーを受け入れる必要があります。

サーバーにはどの程度のディスク容量が必要ですか?

正本サーバーとして運用する場合は、共有データの全容量に加えて、バージョン履歴とごみ箱の容量、およびアップロード中の作業領域を確保してください。見積もりで過小評価されやすいのはバージョン履歴です。毎日変更される 2 GB のファイルをすべてのバージョンで保持すると、容量は急速に増えます。そのため、早い段階で保持ポリシーを設定してください。データを別のボリュームに置くと、この増加分を root ファイルシステムから分離できます。ディスクが満杯になると、1 件のアップロードではなくサーバー全体が停止するためです。