必要なもの
- Docker EngineとDocker Composeを利用できるLinux ARM64またはAMD64環境。
- ワークスペース、設定、バックアップ用の、書き込み可能な永続ストレージ。
- コンテナから接続できるAIモデルのエンドポイント。
- アカウントサービスとデバイスのペアリングに必要なインターネット接続。
自分のLinuxサーバーや対応するNASでAssistelaを実行し、ブラウザーのインターフェースや無料のiOS Clientを利用できます。
チャット、メモリ、ファイル、ツール、連携機能は無料です。Assistela Proではパーソナルアシスタントとスケジューラが追加されます。Assistela Clientは無料です。
LM StudioやOpenAI互換のモデルサーバーを接続するか、対応するAIプロバイダーを選択してください。モデルはAssistelaとは別に実行されます。プロバイダーの利用料金はProには含まれません。
Dockerから接続できるモデルのアドレスを使用してください。コンテナ内のlocalhostは、そのコンテナ自身を指し、モデルを実行しているコンピューターを指すものではありません。
Dockerは、ホスト上の永続的な/dataボリュームにワークスペースを保存します。このボリュームをバックアップし、ホストを利用可能な状態に保ってください。リクエストに必要なデータは、選択したAIプロバイダーに送信される場合があります。
Dockerでは、サーバー向けのサービス連携とChromiumブラウザーを利用できます。Macのアプリの操作や、Apple Mail、iMessage、Appleのローカルカレンダーや連絡先への直接アクセスはできません。
すぐに実行できるイメージをGitHubからダウンロードします。DockerがARM64またはAMD64を自動的に選択します。Swiftのソースコードやコンパイラは必要ありません。
ghcr.io/assistela/assistela:2.0.29
以下の内容をcompose.yamlとして保存し、同じフォルダで下記のコマンドを実行します。この例にはDockerホストからのみアクセスできます。
name: assistela-docker-v2
services:
assistela:
image: ghcr.io/assistela/assistela:2.0.29
hostname: assistela-docker-v2
init: true
restart: unless-stopped
stop_grace_period: 120s
shm_size: 512mb
ports:
- "127.0.0.1:8234:8234"
environment:
ASSISTELA_PUBLIC_URL: http://localhost:8234
ASSISTELA_TIME_ZONE: Europe/Prague
volumes:
- assistela-data:/data
security_opt:
- no-new-privileges:true
volumes:
assistela-data:
docker compose pull
docker compose up -d
docker compose logs assistela
インストール後、Dockerホストの管理画面を開き、コンテナのログに表示されるセットアップトークンを使って管理者パスワードを設定します。続いてAIモデルを接続し、QRコードでiOS Clientをペアリングします。
対応するSynology NASで、Container Manager → Project → Createを開きます。フォルダを選択し、以下のYAMLをエディタに貼り付けてプロジェクトを起動します。
2か所のNAS_IPをNASのプライベートIPv4アドレス(例:192.168.1.10)に置き換えます。http://NAS_IP:8234/admin/を開き、コンテナのログでセットアップトークンを確認します。
推奨のSynology設定です。user: "1026:100"でテスト済みです。まず/volume1/docker/assistelaを作成し、userにフォルダー所有者のUID:GIDを設定してください。SSH経由でidを実行して、アカウントのIDを確認してください。必要に応じてフォルダーのパスを変更してください。
name: assistela
services:
assistela:
image: ghcr.io/assistela/assistela:2.0.29
user: "1026:100"
hostname: assistela
init: true
restart: unless-stopped
stop_grace_period: 120s
shm_size: 512mb
ports:
- "NAS_IP:8234:8234"
environment:
ASSISTELA_PUBLIC_URL: http://NAS_IP:8234
ASSISTELA_ALLOW_LAN_HTTP: "1"
ASSISTELA_TIME_ZONE: Europe/Prague
volumes:
- /volume1/docker/assistela:/data
security_opt:
- no-new-privileges:true
Synologyの例では、信頼できるLAN内で暗号化されていないHTTPを使用します。インターネット経由でアクセスする場合は、HTTPSリバースプロキシを使用し、ASSISTELA_PUBLIC_URLにその正確なアドレスを設定してください。
Synology — Container Manager / Project
データは/dataにマウントされたストレージ(DockerボリュームまたはNASフォルダー)に保持されます。ストレージのマッピング、プロジェクト名、ホスト名は変更しないでください。更新前に/dataをバックアップし、その内容は絶対に削除しないでください。
更新するには、イメージタグを新しいバージョンに変更し、pullとup -dを再度実行します。Container Managerでは、YAMLを編集してプロジェクトを再デプロイします。