プログラミング
Immichの連写写真を自動でまとめるツールを作りました(immich-burst-stacker)
ディズニーで増えた連写写真を、撮影時刻とphashで自動判定してImmichのスタックにまとめるPython CLIの仕組みを紹介します。実コードの抜粋、安全なscan→確認→applyの流れ、22,431枚から2,351スタックを検出した結果までまとめました。
14 本の記事
プログラミング
ディズニーで増えた連写写真を、撮影時刻とphashで自動判定してImmichのスタックにまとめるPython CLIの仕組みを紹介します。実コードの抜粋、安全なscan→確認→applyの流れ、22,431枚から2,351スタックを検出した結果までまとめました。
プログラミング
Wi-Fiでは自宅サーバーに繋がるのに、有線LANに切り替えた途端つながらなくなりました。原因はLANケーブルを壁のLANポートに挿していたことで、PCがサーバーとは別のサブネット(192.168.0.x)のIPを受け取っていたためです。ipconfigでの診断手順、ケーブルの挿し先を変える解決策、Tailscaleを使った応急処置までまとめました。
プログラミング
外出先から自宅サーバーに突然つながらなくなり、サーバー本体の故障を疑ったら、原因はTailscaleのノードキーの有効期限切れでした。サーバー本体とTailscaleを切り分ける手順、再ログインでの復旧、キーの有効期限をサーバーだけ無効化する恒久対策(Disable key expiry)までを、実際のコマンド出力つきでまとめた障害記録です。
プログラミング
買い替えて使わなくなった古いWindowsデスクトップ(Core i5-6400・メモリ8GB)を、Ubuntu Server 24.04 LTS の自宅サーバーにした手順です。SSHの方針、データ用HDDのUUID指定での自動マウント、CasaOSとDockerによるアプリ管理、Sambaでのファイル共有、UFWでの入り口の絞り込みまで、実際に使っている設定値とあわせてまとめました。
プログラミング
自宅サーバーに外出先からアクセスするために、ルーターのポート開放をせずに済むTailscaleを導入した記録です。テールネットの仕組み、サーバーと手元の端末への導入手順、マジックDNS、Tailscale経由のSSH、serveとFunnelの使い分け、UFWを自宅LANとTailscaleの帯だけに絞る設定までまとめました。
プログラミング
有料のObsidian Syncを、無料のSyncthingで置き換えた記録です。自宅のUbuntuサーバーにDockerでSyncthingを立て、サーバー・Windows・Androidスマホの3台でObsidianのvaultを双方向同期しています。実際に使っているdocker composeの内容、4つのポートの役割とUFWの開け方、.stignoreとバージョニングの設定、Claude Codeへの指示書までまとめました。
プログラミング
自宅のUbuntuサーバーにObsidian操作用のMCPサーバーを立てて、スマホやパソコンのClaudeから自分のメモを検索・閲覧・編集できるようにした記録です。Python 3.12+FastMCP(HTTP・ポート8751)の構成、Dockerでの動かし方(user: 1000:1000)、用意した20個のツール、ウィキリンク解析やdry_run・transactionといった安全機構、Tailscale Funnelでのつなぎ方、Claude Codeへの指示書までまとめました。
プログラミング
自宅のUbuntuサーバーにNextcloudを立てて、Google Driveの代わりにファイル置き場を自前で持つ手順です。公式イメージ nextcloud:32.0 の導入、保存先とポート(10081/10443)の決め方、アップロード上限の引き上げ、パソコン・スマホの同期アプリ、Tailscale経由での外部アクセス、Claude Codeへの指示書までまとめました。
プログラミング
自宅のUbuntuサーバーにMinifluxを立てて、有料のクラウドRSSサービスの代わりに自分専用のRSSリーダーを持つ手順です。本体とPostgreSQLの2コンテナ構成、ポート8750と更新間隔10分などの設定値、RSSHubとGoogle NewsのRSSで情報源を集約する方法、全文取得(Fetch original content)、Tailscale経由の外部アクセス、Claude Codeへの指示書までまとめました。
プログラミング
自宅のUbuntuサーバーにImmichを立てて、Google Photosの代わりにスマホの写真を自前でバックアップする手順です。本体・AIの頭脳(ML)・DB・Redisの4コンテナ構成、実際に使っているイメージのバージョンとポート2283、写真の保存先、ベクトル検索でAI検索が動く仕組み、Tailscale経由の外部アクセス、Claude Codeへの指示書までまとめました。
プログラミング
Ubuntuの自宅サーバーにClaude Codeを導入して、以降の構築をAIに任せられる状態を作る手順です。Node.js 22系の確認、npmの導入先を ~/.npm-global に変えてパスを通す理由、@anthropic-ai/claude-code の導入とログイン、許可(パーミッション)の考え方、CLAUDE.md に書いておく内容、command not found などのトラブル対処までまとめました。
プログラミング
自宅サーバーのデータを、暗号化した外付けHDDへ毎日自動でバックアップする仕組みの中身です。LUKSと /etc/crypttab(nofail・keyfile-timeout)での自動解除、rsync --link-dest によるスナップショット(日次14世代+週次4世代)、データベース・ファイル・設定・復元手順書の4層構成、systemdタイマーでの毎日実行、異常時だけ通知する番犬スクリプトまでまとめました。
プログラミング
体組成計・筋トレアプリ・スマートウォッチに分散していた健康記録を、自宅サーバーの1つのデータベースに集約した話です。スクショをClaudeに読ませて記録するMCPサーバー(gym-mcp)と、Health Connectの連続データを自動送信するAndroidアプリ(からだ同期)の2本立てで、設計判断と実機で見つかったバグまでまとめました。
プログラミング
自宅サーバーのClaude Codeをスマホのブラウザから操作するために自作したWebアプリ cliweb の紹介です。Claude Agent SDKのストリーミング入力モードで会話をサーバー側に常駐させる設計、1つのHTTPサーバーに2系統のWebSocketを同居させる振り分け、SDKイベントを正規化したチャットUI、セッションIDを確認してからresumeする復元、画面に入ったコードだけを色付けする遅延ハイライト、ツールの承認、ローカル待ち受けと自分を再起動させないフックまで、実際のコードを抜粋しながらまとめました。