Skip to content

Latest commit

 

History

History
146 lines (110 loc) · 8.64 KB

File metadata and controls

146 lines (110 loc) · 8.64 KB

CoLink Logo

CoLink • すべてのデバイスをつなぎ、シームレスに連携します。

English

ウェブサイト機能クイックスタートアーキテクチャ開発


CoLink は、日常的な同期、リモートアクセス、デバイス制御を一つの接続にまとめるクロスプラットフォームのデバイス連携ツールです。デバイスが同じ LAN 上にある場合でもインターネット経由で接続されている場合でも、安全に連携できます。

機能

  • クリップボード同期 — あるデバイスでコピーし、別のデバイスで貼り付けます。プレーンテキスト、リッチテキスト、画像に対応しています。
  • ファイル転送 — デバイス間でファイルを送信します。LAN 直結転送にはサイズ制限がなく、クラウドリレーは最大 10 MB まで対応します。
  • テキストメッセージ — メモやテキスト断片をデバイス間で即座に送信できます。
  • リモートファイルアクセス — リモートデバイスのファイルシステムを閲覧し、接続済みデバイス間でファイルを転送できます。
  • リモートターミナルとデバイス制御 — スマートフォンから接続済みコンピューターの対話型ターミナルを開き、接続先の対応状況に応じて電源状態、メディア再生、システム音量を制御できます。
  • リモートカメラ — 接続済みデバイスのカメラ映像をライブで確認できます。
  • CastBoard — 別のデバイスをライブステータス表示に変えます。現在の再生情報、アルバムアート、同期歌詞(NetEase Cloud Music、QQ Music、Sogou Music、Spotify)を表示し、コンピューターの CPU、メモリ、ネットワークなどのシステム指標を同期します。
  • LAN 直結 — 同じネットワーク上のデバイスは mDNS で自動検出され、クラウドを経由せず直接接続します。

リモートアクセスと制御の機能は、両方のデバイスのクライアントバージョン、プラットフォーム機能、付与された権限に依存します。

対応プラットフォーム アプリ 状態
Windows colink-desktop ✅ 利用可能
macOS colink-desktop 🚧 近日対応
Linux colink-desktop ✅ 利用可能
Android colink-android ✅ 利用可能
iOS colink-ios 🚧 計画中

画面プレビュー

デバイス一覧 メッセージ一覧 メッセージ画面
デバイス一覧 メッセージ一覧 メッセージ画面

CastBoard Demo

https://www.youtube.com/watch?v=w7pMdKMIfjg

同期歌詞 CastBoard の同期歌詞
現在の再生 CastBoard の現在の再生
システム指標 CastBoard のシステム指標

クイックスタート

1. クライアントをインストール

プラットフォーム ダウンロード
Windows 最新リリース
Linux 最新リリース
Android 最新リリース

2. 接続

  1. クライアントを開いてアカウントを登録します。
  2. 同じ LAN 上では 6 桁のペアリングコードでデバイスをペアリングし、リモートではサーバーリレー経由で接続します。
  3. クリップボードを同期し、ファイルやメッセージを送信するか、リモートアクセス、デバイス制御、CastBoard を利用します。

セルフホスティング(任意)

Docker を使って CoLink サーバーをセルフホストできます。セットアップ手順は colink-server を参照してください。

アーキテクチャ

flowchart TB
  Server["colink-server<br/>Go · Gin · GORM · PostgreSQL<br/>REST API · WebSocket リレー"]
  Desktop["colink-desktop<br/>Tauri 2 · Rust · React"]
  Android["colink-android<br/>Kotlin · Jetpack Compose"]

  Server <-->|HTTPS / WSS| Desktop
  Server <-->|HTTPS / WSS| Android
  Desktop <-.->|LAN 直接 P2P<br/>mDNS · WebSocket · E2EE| Android
Loading
通信経路 転送方式 用途
クライアント ↔ サーバー HTTPS + WSS 認証、デバイス管理、クラウドリレー
クライアント ↔ クライアント(LAN) mDNS + WebSocket 同一ネットワーク内の直接 P2P

セキュリティ

  • 各デバイスは偽造できない暗号学的 ID として独立した Ed25519 鍵ペアを持ち、オンラインでのローテーションに対応しています。
  • LAN 接続は 4 ステップの相互ハンドシェイクで信頼を確立します。初回ペアリングでは MITM 攻撃を防ぐため、SHA-256 から派生した 6 桁のペアリングコードを使用します。
  • LAN メッセージはエンドツーエンドで暗号化されます。X25519 ECDH 鍵合意、HKDF-SHA256 派生セッション鍵、AES-256-GCM/ChaCha20-Poly1305 AEAD を使用します。
  • JWT Access Token の有効期間は 15 分です。Refresh Token は 1 回の使用後すぐにローテーションされ、古いトークンはリプレイ検出のため失効済みとして記録されます。
  • サーバーはメッセージ、ファイル、クリップボード内容を永続化せず、アカウントとデバイスのメタデータのみを保存します。

開発

このプロジェクトはマルチリポジトリ構成です。各コンポーネントは独立して管理されています。

リポジトリ 技術スタック 説明
colink-server Go, Gin, GORM, PostgreSQL バックエンド API サーバーと WebSocket リレー
colink-desktop Tauri 2.x (Rust + React/TS) Windows、macOS、Linux 向けデスクトップクライアント
colink-android Kotlin, Jetpack Compose Android クライアント
colink-castboard TypeScript スタンドアロンの CastBoard プロジェクト
CoLinkProtocol Markdown プロトコル仕様と API ドキュメント(ホストされたドキュメント: CoLink Protocol

ルートリポジトリとすべてのサブリポジトリを同じ親ディレクトリにクローンします。

git clone https://github.com/CoLinkDev/CoLink.git
cd CoLink
git clone https://github.com/CoLinkDev/colink-server.git
git clone https://github.com/CoLinkDev/colink-desktop.git
git clone https://github.com/CoLinkDev/colink-android.git
git clone https://github.com/CoLinkDev/colink-castboard.git
git clone https://github.com/CoLinkDev/CoLinkProtocol.git

ビルドと実行

各サブプロジェクトにはそれぞれ設定手順があります。対応する README を参照してください。

  • サーバーcolink-server/README.md
  • デスクトップcolink-desktop/README.md
  • Androidcolink-android/README.md
  • CastBoardcolink-castboard/README.md