SSD Nodes Learn 🎉 VPS $4.99/月〜
ガイド Matt Connor著者 Matt Connor ・更新日 2026-08-05

セルフホスト型Dropbox代替4種を比較

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

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

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

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

同期トポロジー: 正本サーバーか、サーバーなしのピアか

選択肢は2つあります。以下の大部分は、どちらを選ぶかで決まります。

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

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

この違いから4つの結果が生じます。実際に問題になるのは、次の点です。

  • ソフトウェアをインストールしない相手にファイルを送るには、正本サーバーが必要です。リンクは URL であり、URL にはポートで待ち受けるプロセスが必要です。
  • 管理権限のないマシン、たとえば職場のノートパソコンからファイルにアクセスするには、正本サーバーが必要です。
  • 数週間オフラインだったデバイスは、復帰するとサーバーから変更を取り込みます。ピア構成では、そのデータを保持する別のデバイスもオンラインの間だけ変更を取り込めます。そのため、多くの Syncthing ユーザーは VPS 上でインスタンスを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(トランスポート層セキュリティ)、バックアップについては、TLS とバックアップを含む Docker ベースの Nextcloud インストールで説明しています。導入を決めたら、こちらを参照してください。

対象範囲について、1 つ注意があります。Nextcloud ではカレンダー、連絡先、ノート、写真ライブラリも運用できますが、有効にするアプリごとにバックグラウンド処理が増え、アップグレードを妨げる要因も 1 つ増えます。実際の課題が写真なら、専用ツールのほうが適しています。セルフホスト型の Google Photos 代替としての Immichを参照してください。実際の課題がドキュメントや wiki なら、ファイルサーバーにアプリを積み重ねるのではなく、セルフホスト型 Notion 代替サービスを検討してください。

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 バイナリです。フォルダーを監視し、ディスカバリーサーバーまたはリレーを介してピアを見つけ、デバイス間で直接同期します。同期相手のためのアカウントやログインページはありません。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 を使い、デスクトップクライアントではバケットをドライブとして表示できます。共有には presigned URL を使います。これは、有効期限を自身に含めて生成するリンクです。バージョニングはバケット単位の設定です。Bucket versioning, off by default となるため、バケットの作成時に有効にしてください。作成前にアップロードしたオブジェクトには適用されないためです。

バケットを同期フォルダーとして扱うと、問題が発生します。デフォルトでは Documents ディレクトリを監視しません。rclone bisync は双方向同期を実行しますが、rclone の公式ドキュメントにも、慎重な運用が必要だと明記されています。オブジェクトストレージが得意なのは、基盤として利用することです。バックアップ先や、アプリケーションのストレージ層として機能します。MinIO を使用した自ホスト型 S3 互換オブジェクトストレージでは、サーバー側の構成を説明しています。

ここでのリソースコストは特殊です。MinIO は単一のバイナリで動作し、アイドル時の消費も少量です。実際に発生する費用はディスクです。VPS では、これはギガバイト単位で借りるブロックボリュームと、オブジェクトの送受信に使う帯域幅を意味します。どちらも 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 コマンドで実行できます。

同期はバックアップではありません。データを失う原因は、この違いを見落とすことです

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

ごみ箱とバージョン履歴があれば、影響を軽減できます。ただし、これらにも保持期限があります。また、誤操作を行ったアカウント自身が削除でき、ライブコピーと同じディスク上に保存されています。ボリュームに障害が発生すると、ファイルとその履歴が同時に失われます。

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

選ぶなら

このページを読んでいる多くの人には、Nextcloud を勧めます。Dropbox を離れた後に困るのは、何もインストールしない相手にリンクを渡すことと、スマートフォンでファイルを開くことです。Nextcloud なら公式クライアントでその両方に対応でき、有料プランも必要ありません。その対価として 2 GB の RAM は妥当です。

例外は 2 つあります。フォルダーを自分だけが使用し、自分が所有するハードウェア上だけで扱うなら、Syncthing を実行してください。パッチを適用するサーバーも、保護すべき Web ログイン画面も不要になります。数十万個のファイルがある作業ディレクトリを同期するなら、Seafile を実行してください。高速性と引き換えに、内部ストレージの構造が見えにくくなる点は受け入れます。Object storage は、選択したサービスの下位にバックアップ先として配置します。同期ツールとして、その前段に置くものではありません。

FAQ

Syncthing はノート PC のバックアップになりますか?

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

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

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

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

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

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

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