balenaCloud で Raspberry Pi を遠隔管理 — Docker コンテナと A/B パーティションで実現する安全な OTA 更新

Raspberry Pi を遠隔地に何台もデプロイすると、いつも頭を悩ませるのが「文鎮化」と「OS アップデート」だ。SSH で 1 台ずつ繋いで作業するのは現実的ではなく、現地に出向くのはさらに困難だ。 balenaCloud は、まさにこの問題を解くために作られたマネージド IoT エッジプラットフォームだ。ひと言で言えば、IoT デバイスを Web サーバーのように運用管理できる仕組みだ。Raspberry Pi のような SBC(シングルボードコンピュータ)や産業用 PC を、クラウド経由でフリート単位に一括管理できる。 balenaCloud の仕組み — balenaOS と balenaEngine balenaCloud の最大の特徴は、アプリケーションを Docker コンテナとして動かす点にある。 コンポーネント 役割 balenaOS Raspberry Pi にインストールする専用の軽量 OS。OTA(Over-The-Air、ネットワーク経由の更新)に特化している balenaEngine Docker を IoT 向けに軽量化したコンテナエンジン 管理コンソール ブラウザで全拠点のデバイスを状態確認、ログ閲覧、再起動、アプリのデプロイ 開発者は手元の PC で書いたコードを balena push するだけで、世界中のフリートに一斉配信できる。Docker Compose 形式(docker-compose.yml)でマルチコンテナ構成を定義することも可能だ。 なぜ Raspberry Pi 運用で選ばれるのか 1. OTA 更新で「文鎮化」を防ぐ A/B パーティション balenaOS は A/B パーティション方式を採用している。デバイス内に OS が入る領域が 2 つあり、新しい OS は常に現在動いていない方のパーティションに書き込まれる。 ...

2026年5月12日 · 2 分

macOS キャッシュ掃除チートシート — 開発マシンの数百 GB を取り戻す

開発マシンを放置していると、パッケージマネージャやコンテナ、IDE のキャッシュが気づかないうちに数百 GB に膨れ上がります。本記事では、主要なツールごとにキャッシュを安全に削除するコマンドをまとめます。 パッケージマネージャ系 Python 環境の uv は特に溜まりやすく、100 GB を超えることもあります。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # uv (Python) — 100 GB+ 溜まることも uv cache clean # npm npm cache clean --force # pnpm pnpm store prune # Yarn yarn cache clean # pip pip cache purge # Poetry — `poetry cache list` でキャッシュ名を確認してから個別削除も可能 # 下記の "." は全キャッシュソースを対象にする引数(Poetry バージョンによっては要確認) poetry cache clear --all . # Homebrew — ダウンロード済みアーカイブ brew cleanup --prune=all コンテナ・仮想化 Docker は数百 GB になりがちです。OrbStack / Docker Desktop どちらでも同じコマンドが使えます。 ...

2026年5月7日 · 2 分

Sandcastle — AI コーディングエージェントを夜間並列実行して朝にレビューするだけにする OSS

元 Vercel エンジニアで TypeScript 専門家の Matt Pocock 氏が、AI エージェントを複数並列実行するためのオーケストレーションライブラリ Sandcastle を OSS として公開した。このツールは「夜間に 5 タスクを並列で走らせて、朝にマージレビューだけする」という AFK(Away From Keyboard)開発 を現実のワークフローとして成立させる。 Sandcastle とは Sandcastle は TypeScript ライブラリで、AI コーディングエージェントを隔離されたサンドボックスの中で動かすためのオーケストレーション基盤を提供する。 主な機能は 3 ステップ: sandcastle.run() の一行でエージェントを起動する Sandcastle がサンドボックス化とブランチ戦略を管理する エージェントが作ったコミットを自動的にマージ対象のブランチに集約する サンドボックスプロバイダー Sandcastle はプロバイダーに依存しない設計で、以下をビルトインサポートする: プロバイダー インポートパス 種別 Docker @ai-hero/sandcastle/sandboxes/docker バインドマウント Podman @ai-hero/sandcastle/sandboxes/podman バインドマウント(rootless) Vercel @ai-hero/sandcastle/sandboxes/vercel 隔離(Firecracker microVM) No-sandbox @ai-hero/sandcastle/sandboxes/no-sandbox なし(インタラクティブ専用) ローカル開発では Docker Desktop が最も一般的だ。クラウド実行には Vercel の Firecracker microVM が選択肢になる。独自のコンテナ環境に接続する場合は createBindMountSandboxProvider や createIsolatedSandboxProvider でカスタムプロバイダーを作ることもできる。 クイックスタート パッケージ名は @ai-hero/sandcastle、npm で配布されている。 ...

2026年5月1日 · 2 分

Open-notebook — NotebookLM をセルフホストできる完全ローカル OSS

Google の NotebookLM に触発されたオープンソース実装 open-notebook が海外のテック界隈で注目を集めている。データを一切外部に送信しない完全ローカル動作を売りに、Docker で約2分で立ち上げられる手軽さも人気の理由だ。 open-notebook とは open-notebook は、NotebookLM の主要機能をすべて再実装した OSS プロジェクト。2024年10月に公開され、2026年4月時点で 22,000 スター超 を獲得している。 公式サイト: open-notebook.ai 主な機能 マルチソースの知識統合 PDF・動画・音声・ウェブページを横断で読み込ませ、AI とのチャット形式で対話できる。NotebookLM と同様の使い勝手を、完全ローカル環境で実現する。 多数の AI バックエンドに対応 OpenAI・Anthropic(Claude)・Google Gemini・Ollama・Mistral・Groq・xAI・Deepseek など主要なプロバイダーを幅広くサポートしている。 バックエンド 備考 Anthropic (Claude) クラウド OpenAI (GPT) クラウド Google Gemini クラウド Ollama ローカル・完全無料 Mistral / Groq / xAI / Deepseek など クラウド Ollama を選択すれば、外部サービスへの通信がゼロのオフライン環境でも完全無料で運用できる。 ポッドキャスト風音声の生成 複数の話者でポッドキャスト形式の音声を自動生成できる。NotebookLM が2人固定なのに対し、open-notebook は話者数をカスタマイズ可能な点が差別化ポイント。 REST API 完備 REST API が標準搭載されているため、企業内アプリへの組み込みや外部サービスとの連携が容易。n8n や LangChain などのワークフローツールからも呼び出せる。 日本語 UI 対応 インターフェースが日本語に対応しており、日本のユーザーでもすぐに使い始められる。 ...

2026年4月22日 · 1 分

Infisical — .env に別れを告げるオープンソース・シークレット管理プラットフォーム

.env よ、安らかに眠れ——。 AI 時代の開発現場では、シークレット(API キー・データベースパスワード・証明書など)の扱い方が大きな課題になっています。従来は .env ファイルに書いておけばなんとかなっていました。しかしチーム規模が拡大したり、AI エージェントが複数のサービスを横断して動くようになると、.env ベースの管理はほころびを見せてきます。 Infisical は、そんな .env の時代を終わらせるべく登場したオープンソースのシークレット管理プラットフォームです。 .env の何が問題なのか .env ファイルによるシークレット管理には以下のような問題があります。 ディスクに残る: 誤って git add .env してしまうリスクが常に存在する 同期が難しい: 複数人・複数環境での値の一元管理が困難 ローテーションが手動: シークレットを更新するたびに全メンバーへの周知が必要 監査ログがない: いつ誰がどの値を変更したか追跡できない AI エージェントとの相性が悪い: エージェントが環境変数ファイルを読み書きすると漏洩リスクが増大する Infisical とは Infisical は、シークレット・証明書・特権アクセスを一元管理するオープンソースプラットフォームです。2026年4月時点で GitHub 26,000 スター超を獲得しており、Vault の OSS 代替として注目されています。 最大の特徴は、シークレットをランタイム時に取得する設計にあります。.env ファイルのようにディスクに値を保存しないため、ファイルベースの漏洩リスクを根本から排除します。 主な機能 シークレット管理 プロジェクト・環境(dev / staging / prod)ごとのシークレット管理 シークレットのバージョン履歴と自動ローテーション 変更の監査ログ シークレット参照(他のシークレットの値を参照する変数展開) 証明書管理(PKI) プライベート CA の構築と証明書の発行 ACME プロトコル対応で Let’s Encrypt 互換のワークフロー 証明書の有効期限監視と自動更新 統合機能 CLI: あらゆる言語・フレームワークのコマンドをシークレット付きで実行 SDK: Node.js、Python、Go、Java など主要言語のネイティブ SDK インフラ統合: Kubernetes、GitHub Actions、AWS、GCP、Azure など 基本的な使い方 インストール 1 2 3 4 5 # macOS (Homebrew) brew install infisical/get-cli/infisical # npm npm install -g @infisical/cli ログインとプロジェクト初期化 1 2 3 4 5 # Infisical にログイン infisical login # プロジェクトに紐付け infisical init シークレットを注入してコマンドを実行 1 2 3 4 5 # .env の代わりに Infisical からシークレットを取得してアプリを起動 infisical run -- node app.js # 環境を指定 infisical run --env=staging -- python manage.py runserver SDK から直接取得(Node.js の例) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import { InfisicalSDK } from "@infisical/sdk"; const client = new InfisicalSDK(); await client.auth().universalAuth.login({ clientId: process.env.INFISICAL_CLIENT_ID, clientSecret: process.env.INFISICAL_CLIENT_SECRET, }); const secret = await client.secrets().getSecret({ secretName: "DATABASE_URL", projectId: "my-project-id", environment: "production", }); AI 時代のシークレット管理 AI エージェントや MCP サーバーが普及した今、シークレット管理の重要性はさらに高まっています。 ...

2026年4月21日 · 2 分

Onyx(旧 Danswer)

概要 旧称 Danswer から改名されたオープンソースの企業向け AI アシスタント&検索プラットフォーム。Slack・GitHub・Confluence・Google Drive など 50 以上のコネクタで社内ナレッジを統合し、自然言語で検索・質問できる。GitHub スター数 22,000 超。 ライセンス: Community Edition (CE) は MIT ライセンスで無料 GitHub: onyx-dot-app/onyx 主な機能 機能 内容 ハイブリッド検索 ベクトル検索 + キーワード検索の組み合わせ Agentic RAG エージェントが自律的に多段階検索 Deep Research 複数ステップのリサーチでレポート生成 カスタムエージェント 独自の指示・知識・アクションを持つエージェント 50 以上のコネクタ Slack・GitHub・Notion・Jira・Linear など MCP 対応 MCP 経由のカスタムコネクタも可 セルフホスト手順 Docker と Docker Compose があれば数分でデプロイ可能: 1 2 3 curl -fsSL https://raw.githubusercontent.com/onyx-dot-app/onyx/main/deployment/docker_compose/install.sh > install.sh chmod +x install.sh ./install.sh 対応 LLM クラウド LLM(OpenAI・Anthropic・Gemini)とローカル LLM(Ollama・vLLM・LiteLLM)の両方に対応。完全オンプレミス構成で外部 API なしの運用も可能。 ...

2026年4月16日 · 1 分

Onyx(旧 Danswer)完全ガイド — 無料で使えるオープンソース AI プラットフォーム

Onyx(旧 Danswer)は、社内のドキュメント・アプリ・人材をまとめて繋ぎ、どんな LLM とも連携できるオープンソースの AI プラットフォームです。Community Edition(CE)は MIT ライセンスで完全無料。セルフホストできるため、データを外部に出さずに AI チャットや RAG、エージェント機能を利用できます。 Onyx とは Onyx は企業向け AI アシスタント&検索プラットフォームです。Slack、GitHub、Confluence、Google Drive など 50 以上のコネクタで社内ナレッジを統合し、自然言語で質問するだけで必要な情報を引き出せます。 GitHub リポジトリ(onyx-dot-app/onyx)のスター数は 22,000 超で、活発に開発が続いています。 主な機能 チャット&RAG ハイブリッド検索: ベクトル検索とキーワード検索を組み合わせた高精度な情報検索 Agentic RAG: AI エージェントが検索クエリの生成・評価・再検索を自律的に繰り返し、複数ステップで情報を収集 Deep Research: 多段階のリサーチフローで詳細なレポートを生成 エージェント&ツール カスタムエージェント: 固有の指示・知識・アクションを持つ AI エージェントを構築可能 Web 検索: リアルタイムの Web 情報を取得 コード実行: サンドボックス内でコードを実行し、データ分析やグラフ描画が可能 画像生成: プロンプトに基づいた画像生成 音声モード: テキスト読み上げ&音声入力に対応 コネクタ(50 以上) Slack、GitHub、Confluence、Notion、Google Drive、Jira、Linear など主要サービスと連携。MCP(Model Context Protocol)経由のカスタムコネクタにも対応しています。 エディション比較 項目 Community Edition (CE) Enterprise Edition (EE) ライセンス MIT(無料) 商用ライセンス チャット・RAG・エージェント ✅ ✅ SSO(OIDC / SAML) — ✅ エアギャップ環境 — ✅ サポート コミュニティ 専用サポート Cloud 版も提供されており、セルフホストなしで試用できます。ビジネスプランは 1 ユーザーあたり月額 $16〜。 ...

2026年4月3日 · 2 分

Pay2Key の Linux ランサムウェアが x64/ARM64 サーバーを標的に — 防御機構を無効化する高度な手口

Linux を標的とするランサムウェアが新たな段階に入った。イラン系とされる攻撃グループ Pay2Key が Linux 向けに進化し、「Pay2Key.I2P」と呼ばれる新たな亜種を展開している。Morphisec の技術分析をもとに、攻撃の手口、防御機構の無効化手法、そして具体的な対策を整理する。 Pay2Key とは Pay2Key はイラン系の攻撃グループに帰属するランサムウェアで、Fox Kitten APT グループとの関連が指摘されている。従来は Windows を主な標的としていたが、企業のサーバー基盤を直撃する Linux 版が登場し、防御の前提が揺らぎ始めている。 2026年2月には、米国の医療機関で Pay2Key による侵害事例が Beazley Security Incident Response によって対応されている。 Pay2Key.I2P の技術的特徴 設定駆動型の設計 Pay2Key.I2P は単なる Windows 版の移植ではない。JSON 設定ファイルによって動作を制御する設定駆動型の攻撃ツールとして設計されている。ターゲットとするファイルシステムの範囲や暗号化の挙動を柔軟に変更できる。 デュアルアーキテクチャ対応 x64 と ARM64 の両方に対応し、従来の x86 サーバーだけでなく、ARM ベースのクラウドインスタンス(AWS Graviton など)や仮想化ホストも一括で狙うことができる。 root 権限の必須化 侵入後は root 権限を必須とし、取得できない場合は即終了する設計となっている。これはノイズを最小限に抑え、検知を回避するための戦略と考えられる。 防御機構の無効化 Pay2Key.I2P の最も危険な特徴は、Linux の防御機構を体系的に無効化する点にある。 SELinux / AppArmor の無効化 実行時に SELinux や AppArmor を無効化し、強制アクセス制御(MAC)による保護を解除する。これにより、通常であれば制限されるファイルアクセスやプロセス操作が可能になる。 systemd サービスの停止 データベースやバックアップなどの重要なサービスを停止し、ファイルロックを解除して暗号化対象のファイルにアクセスできる状態を作り出す。 cron による永続化 cron エントリを登録してリブート後も自動的に再実行されるようにし、単純な再起動では排除できない永続性を確保する。 暗号化の手法 ChaCha20 による高速暗号化 暗号化アルゴリズムには ChaCha20 を採用している。AES と比較してソフトウェア実装での処理速度に優れる。AES-NI などの専用ハードウェアを持たない環境でも高速に動作する。 ...

2026年3月30日 · 2 分

# OpenHands × Ollama ローカルLLM実践記 — Mac Studio M3 Ultra で動かすまでの全記録

OpenHands × Ollama ローカルLLM実践記 — Mac Studio M3 Ultra で動かすまでの全記録 TL;DR: OpenHands(旧OpenDevin)をMac Studio M3 Ultra(96GB)+ Ollama + Qwen3-Coder 30B で動かそうとした。Docker-in-Docker のビルド問題、Playwright依存、ランタイムイメージ手動構築を経てUI起動まで到達したが、30Bモデルのtool calling精度不足で実用には至らなかった。 1. OpenHands とは OpenHands(旧 OpenDevin)は、オープンソースのAIコーディングエージェントプラットフォーム。75以上のLLMプロバイダーに対応し、SWE-bench で Qwen3-Coder 使用時に 69.6% のスコアを記録している。 公式リポジトリ: https://github.com/All-Hands-AI/OpenHands 特徴: Web UI でブラウザから操作 Docker サンドボックスで安全にコード実行 CodeActAgent による自律的なタスク遂行 Playwright 統合によるブラウザ操作 2. 動機 — なぜ OpenHands を試したか 前回の実験で Qwen Code(CLI エージェント)を Ollama + Qwen3-Coder 30B で動かしたが、複雑な multi-step タスク(GitHub PR レビューなど)で tool calling が破綻する問題に直面した。 OpenHands は SWE-bench で高スコアを出しており、エージェントスキャフォールディングの力で同じ 30B モデルでも改善されるのでは?という仮説を検証するために試した。 ...

2026年3月6日 · 3 分

# Claude Code の「YOLO モード」を安全に使う — dangerously-skip-permissions と Docker 活用

Claude Code の「YOLO モード」を安全に使う — dangerously-skip-permissions と Docker 活用 関連ポスト: hiragram リポジトリ: hiragram/claude-docker はじめに Claude Code を使っていると、ファイル編集やコマンド実行のたびに「これを実行してもいいですか?」と確認を求められる。安全設計として正しいが、反復的な作業では毎回の承認が煩わしくなる。 そこで登場するのが --dangerously-skip-permissions フラグ。通称「YOLO モード」。YOLO とは “You Only Live Once”(人生は一度きり) の略で、「結果を気にせず、とにかくやってしまえ」というネットスラング。安全確認を一切スキップして全操作をぶっ通しで実行させる様子が、まさに「後先考えずに突っ走る」YOLOの精神そのものであることから、コミュニティでこう呼ばれるようになった。 便利だが、名前の通り危険も伴う。このフラグの本質と、安全に使うための Docker 活用について整理する。 --dangerously-skip-permissions とは Claude Code の全てのパーミッションチェック(権限確認プロンプト)をバイパスし、完全に自律動作させるフラグ。 1 claude --dangerously-skip-permissions 3つの動作モードの比較 モード 挙動 ユーザー介入 通常モード ファイル変更・コマンド実行のたびに承認を要求 毎回必要 Auto-Accept (Shift+Tab) UI上で承認を自動化 介入可能 dangerously-skip-permissions 全ての安全ガードレールを除去 一切不要 なぜ「dangerously」と名付けられているのか Anthropic が意図的に「危険」という語を含めている。実際にリスクは深刻で、以下のような報告がある。 Wolak 事件(2025年10月): Ubuntu/WSL2 上で Claude Code が rm -rf / を実行し、/bin、/boot、/etc などシステムディレクトリを破壊 eesel AI の調査によると、このフラグ使用者の 32% が意図しないファイル変更を経験、9% が実際のデータ損失を報告 主なリスク リスク 具体例 破壊的コマンドの無確認実行 rm -rf、git reset --hard、設定ファイル上書き スコープクリープ 指定範囲外のファイルを「親切心」で変更・削除 資格情報の漏洩 ホストの全資格情報にアクセス可能な状態 連鎖的被害 1つの誤った解釈が次々と問題を引き起こす それでも YOLO モードが必要な理由 危険だが、以下のユースケースでは事実上不可欠。 ...

2026年2月27日 · 2 分