Solosyncのセルフホスト方式では、自分で設置したSync Serverに同期データを保存します。1つのサーバーインスタンスは、1つのSolosync Group専用です。端末内で使うだけならサーバーは必要ありません。
必要な環境
- PHP 8.2以上(
pdo_mysql、json、hash、openssl拡張) - MySQL 8以上、または対応するMariaDB
- HTTPS
- Apache互換の
.htaccessが使える共有ホスト、またはpublic/をDocumentRootに設定できるホスト
本番サーバーにNode.jsやComposerは必要ありません。PHPのzip拡張が必要なのは配布ZIPを作るときだけです。ホストが扱えるリクエストサイズも確認してください。サーバーの既定のSyncPack上限は16 MiBです。
1. サーバーファイルを配置する
Sync Serverのリポジトリを取得するか、配布ZIPのsolosync-server/を展開してアップロードします。
Apache共有ホストでは、.htaccessによるアクセス拒否とURL書き換えが実際に動作することを確認したうえで、public_html/solosync/のような場所にディレクトリごと配置できます。そうでない環境ではpublic/だけをDocumentRootに設定し、private/、src/、migrations/などがWebから直接取得できないようにしてください。
設置URLがhttps://example.com/solosync/なら、以降の例でもこのURLを使います。
2. 初回セットアップを開く
ブラウザでhttps://example.com/solosync/setup.phpを開きます。初回アクセスでprivate/setup.key.phpに本人確認用のキーが作られます。ホストのファイルマネージャーでそのファイルを開き、return '...';の引用符の中身だけをセットアップ画面へ貼り付けてください。
続けてDB接続情報と管理者パスワードを入力します。セットアップがデータベースの準備、サーバー識別子の生成、private/config.phpの作成を行います。完了後は同じ画面から再セットアップできません。
ブラウザ版Solocordを使う場合、許可Originには実際のWebアプリのOriginを設定します。公式Web版はhttps://sc.kakikou.appです。ネイティブアプリとTauri版にはCORSのOrigin登録は不要です。X-Forwarded-Protoを信頼する設定は、信頼できるリバースプロキシがHTTPSを終端する構成のときだけ有効にしてください。
3. 接続キーを発行する
https://example.com/solosync/admin/にアクセスし、ユーザー名adminとセットアップ時のパスワードでログインします。管理画面で接続キーを作成し、表示されたキーを安全な場所へ控えてください。キー本文が表示されるのは作成時の1回だけです。
4. Solocordから接続する
SolocordのSolosync設定で「セルフホスト」を選び、Sync Server URLに設置先のベースURL(例https://example.com/solosync)、接続キーに管理画面で発行した値を入力します。初めて使う空のサーバーは、接続したSolosync Groupに結び付けられます。
すでに別のGroupがあるサーバーに接続する場合、アプリが復元または統合の確認を表示することがあります。内容を確認してから選択してください。バックアップしてから移行することをおすすめします。
運用時の注意
private/config.php、private/setup.key.php、接続キー、DBダンプ、実運用プラグインをGitや公開ZIPに含めないでください。SyncPackはエンドツーエンド暗号化されません。ホスト管理者と信頼されたプラグインは同期内容を読めます。
手動設定が必要な場合は、サーバーのREADMEとprivate/config.example.phpを参照してください。手動設定では管理画面の「インストール / マイグレーション」またはphp bin/migrate.phpも必要です。