# FIRERPA Starlink プラットフォーム

Starlink プラットフォームは、分散した Android デバイスと自動化タスク実行のための管理システムです。**データは完全にローカルに保存**され、**デバイス接続**、**デバイス監視**、**スクリプト開発**、**タスクオーケストレーション**、**モデル設定**、**ユーザー管理**などの主要なシナリオをカバーしています。リモートデバイス運用、バッチ自動実行、AI/RPA スクリプトに適しており、クロスネットワークデバイス接続、ローカル/リモートデバイスの統一管理とP2P接続をサポートします。
<br>
<br>
大規模なデバイスノードの管理、自動化スクリプトの作成・バージョン管理・デバッグ、デバイスへの動的なスクリプト配信と実行、タスクの実行状況や結果・失敗原因の追跡、AIモデルの設定、Prompt/ハイブリッドスクリプト実行のサポート、プラットフォームユーザーの管理などが可能です。

## 主な機能

### デバイス管理

Starlink は、完全なデバイス管理機能を提供し、デバイス一覧のページネーション検索、ソート、一括選択に対応します。グループごとにデバイスを表示し、オンライン、オフライン、ビジーなどの状態を識別できます。デバイス接続は、ダイレクト接続、P2P、リレーなどのモードをサポートし、さまざまなネットワーク環境に適応します。また、デバイスのブランド、モデル、アーキテクチャ、サービスバージョン、登録時刻、ハートビート時刻、バッテリー残量などの情報を表示し、デバイス詳細画面でユーザーバインディング管理が可能です。

### リアルタイム監視

プラットフォームはデバイスのリアルタイム監視機能を提供し、デバイス全体の概要、グループフィルタリング、ステータスフィルタリング、およびデバイス画面のリアルタイムプレビューをサポートします。デバイス詳細ページでは、CPU、メモリ、ネットワーク、スレッド、ファイルディスクリプタ、クラッシュ数などのリアルタイムおよび履歴指標を継続的に確認でき、グラフ機能と組み合わせてデバイスの状態変化を観測できます。リモート巡回点検や異常調査に適しています。

### 一括操作

一括操作のシナリオでは、Starlink は複数のデバイスに同時にファイルをプッシュし、アップロード進捗のフィードバックと失敗時のリトライ機構を提供します。また、複数のデバイスからファイルを取得し、一括してダウンロードすることも可能です。さらに、一括でのShellコマンド実行と、デバイスごとの出力結果、エラーメッセージ、終了ステータスの確認をサポートし、集中管理と一括処理を容易にします。

### タスクオーケストレーション

プラットフォームは組み込みのタスクオーケストレーションおよび実行機能を備えており、タスク一覧でのページネーション表示、検索、ステータスフィルタリング、時間フィルタリング、ソートが可能で、実行中、一時停止、完了などのタスク状態を直感的に把握できます。また、タスクの概要統計（実行数、成功数、失敗数、タイムアウト数、トレンドデータ）も提供します。タスク作成時には、スクリプトバージョン、ターゲットグループ、実行モード、優先度、タイムアウト、リトライなどのパラメータを設定でき、ループ、回数、デバイスごとの回数、期限、Crontabなど多様なスケジュール方式に対応します。

### タスクトラッキング

タスク詳細では、ユーザーは基本情報、スクリプトバージョン、実行設定、パラメータソース、時間情報を確認でき、デバイス単位でタスクの配信、成功、失敗、タイムアウト、バインディング状態を追跡できます。また、実行インスタンスの詳細を表示し、実行状態、所要時間、例外、トレースバック、結果、リソース情報を確認できるほか、タスクの実行制御やバージョン切り替えも可能です。

### スクリプトセンター

スクリプトセンターは、スクリプト開発、メンテナンス、コラボレーション向けに設計されており、スクリプト一覧の検索、種類フィルタリング、時間フィルタリング、一括削除をサポートし、コードスクリプトとPrompt/ハイブリッドスクリプトの両方に対応します。プラットフォームはスクリプトを他のユーザーと共有でき、スクリプト詳細ページにはMonaco Editorが統合されており、充実したオンライン開発体験を提供します。また、スクリプトのバージョン履歴の閲覧と差分比較（Diff）も可能で、継続的なイテレーションと変更の追跡に役立ちます。

### オンラインデバッグ

Starlink は組み込みのオンラインデバッグ機能を提供し、スクリプトページから直接デバッグモードに入り、ターゲットデバイスとモデルを選択してデバッグ実行を開始できます。デバッグ中は、Step In、Step Over、Step Out、Continue、Quitなどの制御操作が可能で、ソースコードの停止位置、コールスタック、ローカル変数、デバッグ出力を確認できるほか、デバッグコンソールで式を実行することもできます。リアルタイム画面ミラーリング機能と組み合わせることで、スクリプト実行の流れとデバイスの画面を連動して観察できます。

### モデル管理

プラットフォームはAIモデル管理機能を提供し、モデル名、エンドポイント、モデル名、キーなどの設定を保持し、ビジョンモードの切り替えもサポートします。ユーザーはビジョンスケール、最大トークン、Temperature、ステップ遅延などのパラメータを設定し、Prompt/ハイブリッドスクリプトやAI駆動タスクの実行要件に適合させることができます。

## プラットフォームのインストール

当社のサービスエコシステムは完全にDockerベースで構築されているため、お使いのコンピューターまたはサーバーにDockerがインストールされている必要があります。スムーズな進行のために、Windows/MacよりもUbuntu、DebianなどのLinux系システムの使用を推奨します。

まず、設定ファイルをクローンする必要があります。以下のコマンドを実行してください。

```bash
git clone https://github.com/firerpa/starlink.git
```

```{tip}
Gitがインストールされていない場合は、このファイルをダウンロードして解凍してください：https://github.com/firerpa/starlink/archive/refs/heads/master.zip
```

クローンが完了したら、そのディレクトリに移動します。ディレクトリ内に隠しファイル `.env.example` がありますので、それを `.env` にリネームし、内部の設定項目を適宜編集してください。
設定項目は実際の要件に応じて変更しますが、一部の設定は一度設定すると後から変更できません。

```{attention}
ファイアウォールで `7123` `8883` `8000` `65000` ポート（デフォルト）を正しく開放する必要があります。設定でこれらのポートを変更した場合は、対応するポートを開放してください。
```

```ini
DOMAIN=starlink.local

# 以下の変数は初回初期化後に変更することは厳禁です。
API_PORT=65000
WEB_PORT=8000
FWD_PORT=7123

# 関連データベースのデフォルトパスワードを設定します（ランダムで構いません）
REDIS_PASSWORD=9XdTBBn11m5ugEGUavmR4C
RABBITMQ_PASSWORD=6LVc53IVJcRpiDsY0CyLcN
POSTGRES_PASSWORD=P5FinxzLZToVzAaAIZvsIw

# 現在のサーバーが存在する物理ネットワークのサブネット、ゲートウェイ、インターフェース名を設定します。
# パブリックネットワークで動作する場合は、以下の3項目を設定する必要はありません。また、starlink.yaml 内のすべての lan-macvlan セクションを削除してください。
LOCAL_LAN_SUBNET=192.168.50.0/24
LOCAL_LAN_GATEWAY=192.168.50.1
LOCAL_LAN_INTERFACE=enp7s0
# 現在のサービスのローカルIPを設定します。ホストがdocker lan-macvlanモードをサポートしているか、およびローカルネットワークのデバイスに接続する必要があるかによって異なります。
# ここでは、現在のイントラネットで未使用のIPを使用する必要があります。ローカルデバイスに接続する必要がない場合、またはlan-macvlanモードをサポートしていない場合は、127.0.0.1に設定してください。この項目は空にできません。
LOCAL_LAN_IP=192.168.50.200

# 現在のサーバーのパブリックIPを設定します。パブリックネットワークにデプロイしない場合は、LOCAL_LAN_IP と同じ値にしてください。そうでない場合は、正しいサーバーのパブリックアドレスを設定してください（コマンド curl -4 ip.sb で取得できます）
PUBLIC_IP=192.168.50.200

# https://github.com/firerpa/hub-bridge をデプロイして以下のパラメーターを取得します
# P2Pモードを使用すると、イントラネットで動作しながら外部ネットワークのデバイスを接続できます。P2Pモードを使用しない場合は、現在のコメントアウト状態を維持してください。

#TOP_ENDPOINT=http://x.x.x.x:9000
#TOP_CLIENT_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq...QIDAQAB
#TOP_SECRET=49c98730-....-bb0c9f22a310
```

```{hint}
中国本土内部に展開するサービスの場合、docker hubから正常にイメージをプルできない場合があります。その制限を自己回避する必要があります。
```

設定が完了したら、カレントディレクトリで以下のコマンドを実行してください。

```bash
docker compose -f starlink.yaml up --force-recreate -d
```

しばらくすると、ブラウザで `https://{LOCAL_LAN_IP}:{WEB_PORT}` にアクセスして管理画面を開くことができます。パブリックネットワークにデプロイしている場合は、`LOCAL_LAN_IP` を `PUBLIC_IP` に置き換えてください。デフォルトのユーザー名 `admin`、パスワード `starlink` でログインし、ログイン後は速やかにデフォルトパスワードを変更してください。

## 有人サービス

これらの手順がまだ複雑に感じられる場合は、有料のインストールサービスを選択することもできます。WeChatでQRコードをスキャンし、必要なインストール数を選択してください。ご要望に応じて適切なリモートインストールサービスを提供し、あらゆる煩わしさから解放します。

<p align="center">
<img src="/assets/images/manual-service.png" alt="有人サービス" width="25%">
</p>

お支払い後の**遷移ページ**でQRコードを長押しして、有人サービスのWeChatを追加してください（または[テクニカルサポート](./tech-support.md)セクションで弊社の企業WeChatを追加してください）。その際、注文によって生成されたサービス証明書または注文のスクリーンショットを添付してください。誠心誠意対応させていただきます。