<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on 或る阿呆の記</title><link>https://hack-le.com/tags/linux/</link><description>Recent content in Linux on 或る阿呆の記</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Sat, 05 Sep 2026 12:11:44 +0900</lastBuildDate><atom:link href="https://hack-le.com/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>AIプログラミングはマシンやOSを跨ぐと苦労する</title><link>https://hack-le.com/ai-os-kurou/</link><pubDate>Mon, 07 Sep 2026 00:00:00 +0900</pubDate><guid>https://hack-le.com/ai-os-kurou/</guid><description>&lt;p&gt;最近、いくつかの自前のアプリケーションについて、Mac上で動かしていたのを、Linuxに移しました。この作業自体は既に何度もやっているので、AIにもそれらを参考にさせることですんなりいくかと思いましたが、だめでした。苦労しました。&lt;/p&gt;&#10;&lt;h2 id="maclinuxへ"&gt;Mac→Linuxへ&#10;&lt;/h2&gt;&lt;p&gt;長らくメインのMac miniに自作のアプリケーションを常駐させてきました。その中には24時間稼働のアプリケーションもあります。一番重たいものでは仮想通貨トレードアプリなどそうでした。&lt;/p&gt;&#10;&lt;p&gt;これは元々、改修を即座に反映してログなど確認するには、開発マシンでそのままやるのが一番効率的だったからです。自作のアプリケーションではそんな運用でも特に問題はありませんでした。&lt;/p&gt;&#10;&lt;p&gt;とはいえ、よほど重い処理をさせるのではない限り、サーバーマシンは一定のスペックがあれば性能的には飽和するものです。もちろんCPUがよければそれだけキビキビ動くのも確かなのですけれど、多くのサーバアプリケーションのユーザは人間はではないことも多く、24時間安定して稼働できることのほうが重要です。&lt;/p&gt;&#10;&lt;p&gt;そういう次第なので、今はAIがあるしなぁと、重い腰を上げて、いまだMac miniにあったサーバアプリケーション、特に24時間稼働のものについて、Linuxサーバに移行することにしました。&lt;/p&gt;&#10;&lt;h2 id="問題はインストールと更新"&gt;問題はインストールと更新&#10;&lt;/h2&gt;&lt;p&gt;今はAIがあるので、まぁすんなりできるだろう……と、できたかどうかは、微妙なところです。&lt;/p&gt;&#10;&lt;p&gt;まず表面化したのは、&lt;strong&gt;MacとLinuxではインストールで必要なプロセスがまったく異なるため、make installの内容が全然変わってしまう&lt;/strong&gt;、ということです。まぁこれを嫌って小規模アプリケーションでもDockerなど扱う人も多いのですが、あれはあれで別の罠が色々とあるし、個人的にはなにかクリティカルな理由がなければネイティブにやります。これは低レベルの操作まで含めてAIに書かせることになるので、AIプログラミングの観点だとつらい面はあるのですが…&lt;/p&gt;&#10;&lt;p&gt;その結果がまったく異なる&lt;code&gt;make install&lt;/code&gt;ではあるのですけれど、まぁ&lt;code&gt;make&lt;/code&gt;はまさにそのためのものではあるので、それは仕方ないのかなぁと思います。そしてその面倒くささをAIは吸収してくれるのだ……。&lt;/p&gt;&#10;&lt;p&gt;というのが期待されることではあるんですけれど、最近はLinuxのインストールにも色々とパターンがあるようで、それによって権限周りで色々と嫌なことが起きます。まずsystemdについて、権限をどうするかで割れます。AIにまかせっきりだと、システム権限でやろうとしたりユーザ権限でやろうとしたりしてブレます。&lt;/p&gt;&#10;&lt;p&gt;ここらへん多分今どきは、特別な理由がなければユーザ権限になるのかなぁと思うのですが、昔はシステム権限が普通だったはずなので、&lt;strong&gt;時間の切り刻まれたAIにおいては対応が確率で混ざってしまう&lt;/strong&gt;のでしょうか。&lt;/p&gt;&#10;&lt;p&gt;しかもシステム権限にするとsudoの権限問題なども出てくるのですが、その対応について問うと&lt;code&gt;sudo ALL=(ALL) NOPASSWD: ALL&lt;/code&gt;などとんでもないことをしれっと提案してきて「この計画で進めてよろしいでしょうか」よろしくないぞ。&lt;strong&gt;スナック菓子感覚で大いなる力を使おうとするな&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;h2 id="全然違うものを参考にするというか模倣する"&gt;全然違うものを参考にするというか模倣する&#10;&lt;/h2&gt;&lt;p&gt;他にも「むむむ」と思ったのが、Mac→Linux移行はこれまでさんざっぱらやってきたので、他のプロジェクトを参考にするようにいったのですが、すると今度は技術選定が全然違うものを参考にしてカオス。&lt;/p&gt;&#10;&lt;p&gt;具体的には、Go言語による生成物がシングルバイナリなシンプルなアプリケーションがあり、それはインストールの過程でバイナリをmvするというもので、まぁシングルバイナリならそれはそれでいいわけです。&lt;/p&gt;&#10;&lt;p&gt;しかし今回のアプリケーションはNext.jsなど使っており生成物が色々あるわけなのですが、それをいろいろなexcludeを付与したrsyncコマンドを羅列して無理やり同期させようとしており、そんなことして良いはずがなく、「なんでそんなことするの」と聞いたところ、シンプルなシングルバイナリのやり方を何も考えずに真似してしまいました、とのことで。oh&amp;hellip;&lt;/p&gt;&#10;&lt;p&gt;なんというか残念な新卒のような振る舞いです。まぁこちらの指示の仕方が甘いといえばそうなのでしょうし、実際こちらで参考にすべきプロジェクトを精査してどこをどう参考にすべきなのか指示すれば通った、と思います。でもそんな細かな指示を毎回するのしんどいなぁと思うし、そもそもAIはうまくいくときは任せとけとばかりにいい感じでやってくれることもまぁあるのです。&lt;/p&gt;&#10;&lt;h2 id="aiの暴走"&gt;AIの暴走&#10;&lt;/h2&gt;&lt;p&gt;たまに暴走するのは、確率の問題なのか、それともこちらの意図が変な普通に伝わって妙な制約を生んでしまうのか、多分両方あるのでしょうけれど、なんとなく肌感で「なんか迷走しそう」と思った時はだいたい迷走する感じです。人間のこの感覚はなんなのでしょうね。&lt;/p&gt;&#10;&lt;p&gt;まぁ私のつくる小規模アプリケーションならば、迷走暴走大爆走したところで大したことにはそうなりませんが、エラい人たちが金と時間をかけて作ったサンドボックス内での実験でも、AIが脱獄紛いのことをして現実のシステムを食い荒らす、というような事故（？）が起きているので、元より完全に制御するというのが無理なのでしょう。&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://www.itmedia.co.jp/news/article/2608/30/2000000949/" target="_blank" rel="noopener"&#10; &gt;Hugging Face侵害事件、OpenAIとMETRが最終報告書公開──約1200体のAIエージェントが“闇掲示板”で結託し700体が攻撃に参加 - ITmedia NEWS&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;それでもずっと使っているとなんだかコイツ（Model）のことわかってきたような気がする錯覚かもしれない感覚が生じるのですが、生じたあたりでどうせモデルチェンジなので、なんだかいつになっても悩みの質は変わらない感じですね。&lt;/p&gt;&#10;</description></item><item><title>あの日開いたソフトウェアが悪質かどうかAppleはまだ知らない</title><link>https://hack-le.com/akushitsunasoftware/</link><pubDate>Sun, 30 Aug 2026 10:06:33 +0900</pubDate><guid>https://hack-le.com/akushitsunasoftware/</guid><description>&lt;p&gt;個人開発しているアプリケーションについて、永遠に公開を先延ばししてしまいそうだったので、えいやと公開しました。LoPiQというアプリケーションで、これはLinux版とMac版のバイナリをとりあえず配布したのですけれど、Mac版については例によってというのか、Appleからの嫌がらせで簡単に開かせてもらえない刑に処されています。&lt;/p&gt;&#10;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://hack-le.com/images/uploads/2026/08/image-8.png"&gt;&lt;/p&gt;&#10;&lt;p&gt;なにがOKなんだ😡&lt;/p&gt;&#10;&lt;h2 id="悪質なソフトウェアとは"&gt;悪質なソフトウェアとは&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;自分のソフトウェアを自分のPCで動かそうとしたら「悪質なソフトウェア」疑惑をかけられるという屈辱&lt;/strong&gt;。まぁこの嫌がらせについてはMacユーザならみんなもう慣れっこだと思うので、もういいんですけど。有名どころのアプリでも普通にありますし。AppleはiPhoneでストア税徴収の味をしめたのか、Macでもやりたかったんでしょうけれど、あまりうまくいっていないようです。&lt;/p&gt;&#10;&lt;p&gt;まー開発者からすればそりゃそうだという話で、Appleがタダで審査するならまだしも、&lt;strong&gt;なんで金払ってしかもAppleのよくわからない謎基準に合わせなければならないのか&lt;/strong&gt;、完全に理由がありません。ユーザからの信用の問題というかもしれませんが、この開発元は信用できないがアプリストアにあるから大信用！とはならないでしょう。そもそも信用できないなら無理に使ってくれなくていいよという話です。ちなみにLoPiQはユーザ権限とはいえシェルスクリプトをそのまんま実行する暴れん坊なので普通に審査落ちるでしょう。&lt;/p&gt;&#10;&lt;h2 id="暴力はすべてを解決するの"&gt;暴力はすべてを解決するの？&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;本来胴元に合わせる理由はないというのは、スマホも本当はそう&lt;/strong&gt;なんですよね。iPhoneが出たときは、単一のストア、整備された決済システムというのも、これはまぁ確かに価値だったかもしれませんが、今となってはただのショバ代。それしかないことに合理的な理由はなく、単に力関係です。&lt;/p&gt;&#10;&lt;p&gt;なのでまぁ、最近はEUあたりがついに国家権力を使って介入し始めましたし、それに対抗するのはGoogleでもAppleでもなくトランプだったりするわけです。GAFAが何故GAFAになれたか、そこに米軍と米政府の存在が前提としてあったことを今更思います。全部力です力。いやだなー。&lt;/p&gt;&#10;&lt;h2 id="自由は何処"&gt;自由は何処&#10;&lt;/h2&gt;&lt;p&gt;そうすると俺たちにはLinuxがあるじゃないかと思うわけですが、あっちはあっちで色々とあるようで…。実際Waylandなどはあまりいい話を聞きませんけれど、Windows/Mac以上にガチガチなところがあるようで、ここにRed Hatの思惑は当然あるでしょう。まぁそんなのもあって、僕はGUI環境として依然としてX11を使っており、xfceにしているのですが…。リーナス御大の引退も見えてくる中、Linuxも今後どうなることやら、といったところでしょうか。&lt;/p&gt;&#10;&lt;p&gt;まぁでも皆が皆統制的というわけでは当然なく、自由を追い求める実力者もいてくれていますので、自分としても、できる範囲で個人のための自由な計算機文化を伝えていきたいものです。&lt;/p&gt;&#10;</description></item><item><title>セルフホストしたWebアプリになぜかうまくアクセスできない時のチェック</title><link>https://hack-le.com/selfhost-webapps-down/</link><pubDate>Mon, 10 Aug 2026 00:00:59 +0900</pubDate><guid>https://hack-le.com/selfhost-webapps-down/</guid><description>&lt;p&gt;私的メモ。そりゃそうだ集。症状は様々なので症状から逆引きというより流し読みして心当たりあるやつを思い出す集。構成が複雑になるほど、「端末Aでは症状A&amp;rsquo;になるが端末Bでは症状B&amp;rsquo;になる」など発生する。がんばれ。&lt;/p&gt;&#10;&lt;h2 id="環境"&gt;環境&#10;&lt;/h2&gt;&lt;p&gt;Linuxが基本。メインはLinux Mint Xfce。&lt;/p&gt;&#10;&lt;h2 id="一般"&gt;一般&#10;&lt;/h2&gt;&lt;h3 id="localhost以外からのアクセスを許可してない"&gt;localhost以外からのアクセスを許可してない&#10;&lt;/h3&gt;&lt;p&gt;症状: ローカル端末からはアクセスできるし正常に起動しているが、他端末からアクセスできない。&lt;/p&gt;&#10;&lt;p&gt;アプリ側でそういう設定になってるので、変更できるか否かという感じ。&lt;/p&gt;&#10;&lt;h3 id="ファイアウォールで許可していない"&gt;ファイアウォールで許可していない&#10;&lt;/h3&gt;&lt;p&gt;症状: ローカル端末からはアクセスできるし正常に起動しているが、他端末からアクセスできない。&lt;/p&gt;&#10;&lt;p&gt;間抜けなことにこれは本当によくある。&lt;/p&gt;&#10;&lt;p&gt;ファイアウォールの設定確認する。&lt;code&gt;ufw&lt;/code&gt;の場合のコマンド。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ufw status&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;空いてなかったら追加。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ufw allow &amp;lt;ポート番号&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="セキュリティグループ的なので許可していない"&gt;セキュリティグループ的なので許可していない&#10;&lt;/h3&gt;&lt;p&gt;AWSをはじめとするクラウドとかVPSで、そもそもネットワークインタフェースに到達していないケース。許可しよう。&lt;/p&gt;&#10;&lt;h3 id="ポートの競合"&gt;ポートの競合&#10;&lt;/h3&gt;&lt;p&gt;症状: なんかうまくいったりいかなかったりする&lt;/p&gt;&#10;&lt;p&gt;複数のアプリケーション、なんなら同一のアプリケーションでポートが競合している。調べるときのコマンドはこれ。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo lsof -i :8080&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="adguardhomeaghとかlan内dnsを使っている場合"&gt;AdGuardHome(AGH)とかLAN内DNSを使っている場合&#10;&lt;/h2&gt;&lt;h3 id="lan内dnsに向いてない"&gt;LAN内DNSに向いてない&#10;&lt;/h3&gt;&lt;p&gt;症状: LAN内ドメインだけ名前解決できない&lt;/p&gt;&#10;&lt;p&gt;そもそも論としてLAN内DNSに向いてない。ルータでDNSをLAN内のやつ指定するか、あるいは各クライアントでそれぞれ設定するか。&lt;/p&gt;&#10;&lt;h3 id="agh側でdns書き換え設定を忘れている"&gt;AGH側でDNS書き換え設定を忘れている&#10;&lt;/h3&gt;&lt;p&gt;症状: LAN内ドメインだけ名前解決できない&lt;/p&gt;&#10;&lt;p&gt;稀によくある。設定しよう。&lt;/p&gt;&#10;&lt;p&gt;サブドメインの法則決めてワイルドカード使うのが楽ではある（ワイルドカードを使えばサブドメインの証明書発行を知られないというのもある。まぁサブドメイン知られたところで別にLAN内限定公開なら問題ないかもしれないが気持ち悪いので…）。&lt;/p&gt;&#10;&lt;h3 id="ipv6が優先されている"&gt;IPv6が優先されている&#10;&lt;/h3&gt;&lt;p&gt;症状: 名前解決できない。端末によってはできることもある。&lt;/p&gt;&#10;&lt;p&gt;AdGuardHomeで頑張ってIPv6対応するか、ルータで切れるならIPv6切るか、あるいはクライアントでIPv6を切るか。クライアントで切る場合は対応はOSによって異なる。Macは基本的にDNSサーバをIPv4で設定すればいけると思うのだが、Windows/Linuxは明示的にやる必要あり。Androidはアプリ使う必要がある。自分はRethinkDNSを使っている。iOSは持ってないから知らない。&lt;/p&gt;&#10;&lt;p&gt;このとおり、OSによって状況が異なるため「端末AではいけるけどBではいけない」ということが起きうる。さらに同じOSでも設定してたりしてなかったりすると、それでも異なる症状になったりする。めんどくさい。&lt;/p&gt;&#10;&lt;div class="blog-card-wrapper"&gt;&#10; &lt;a href="https://hack-le.com/landnsipv6windowsipv6/" class="blog-card"&gt;&#10; &lt;div class="blog-card-content"&gt;&#10; &lt;div class="blog-card-label"&gt;&#10; &lt;svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"&gt;&lt;/path&gt;&lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;span&gt;あわせて読みたい&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-title"&gt;LAN内DNSでIPv6は使わないのでWindowsでIPv6を無効化する&lt;/div&gt;&#10; &lt;div class="blog-card-url"&gt;/landnsipv6windowsipv6/&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-thumbnail"&gt;&#10; &lt;img src="https://hack-le.com/images/uploads/2026/07/eyecatch_50770_1785034008.webp" alt="LAN内DNSでIPv6は使わないのでWindowsでIPv6を無効化する" loading="lazy" /&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;div class="blog-card-wrapper"&gt;&#10; &lt;a href="https://hack-le.com/android-lan-agh-dns/" class="blog-card"&gt;&#10; &lt;div class="blog-card-content"&gt;&#10; &lt;div class="blog-card-label"&gt;&#10; &lt;svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"&gt;&lt;/path&gt;&lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;span&gt;あわせて読みたい&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-title"&gt;AndroidでLAN内DNS(AdGuard Home)にIPv4アドレスでアクセスする&lt;/div&gt;&#10; &lt;div class="blog-card-url"&gt;/android-lan-agh-dns/&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-thumbnail"&gt;&#10; &lt;img src="https://hack-le.com/images/uploads/2026/08/eyecatch_50782_1786019566.webp" alt="AndroidでLAN内DNS(AdGuard Home)にIPv4アドレスでアクセスする" loading="lazy" /&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="caddyを使っている時"&gt;Caddyを使っている時&#10;&lt;/h2&gt;&lt;p&gt;AGH + Caddyまで持っていくとだいぶ捗るけど構築は面倒くさい。DNS-01チャレンジを利用しているとエラーパターンが増える。&lt;/p&gt;&#10;&lt;h3 id="caddyfileの設定を忘れている間違えている"&gt;Caddyfileの設定を忘れている、間違えている&#10;&lt;/h3&gt;&lt;p&gt;稀によくある。設定しよう。ドメインの前にスペース空いてないとかよくある &lt;code&gt;examp.com{&lt;/code&gt;。&lt;code&gt;caddy validate&lt;/code&gt;と&lt;code&gt;caddy fmt --overwrite&lt;/code&gt;しよう。Docker版ならサービス名caddyの時&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker compose &lt;span class="nb"&gt;exec&lt;/span&gt; caddy caddy validate --config /etc/caddy/Caddyfile&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;フォーマットは&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker compose &lt;span class="nb"&gt;exec&lt;/span&gt; caddy caddy fmt --overwrite /etc/caddy/Caddyfile&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="caddyfileの設定を読み込むのを忘れている"&gt;Caddyfileの設定を読み込むのを忘れている&#10;&lt;/h3&gt;&lt;p&gt;ファイル書き換えただけで。リロードしよう。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;caddy reload&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Docker版&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker compose &lt;span class="nb"&gt;exec&lt;/span&gt; caddy caddy reload --config /etc/caddy/Caddyfile&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="証明書の発行に失敗している"&gt;証明書の発行に失敗している&#10;&lt;/h3&gt;&lt;p&gt;症状: 証明書エラー&lt;/p&gt;&#10;&lt;p&gt;自己証明書以外のとき。ログを見て判断。利用しているレジストラに対応したCaddyを使っているか確認。あとAPIの権限を確認。&lt;/p&gt;&#10;&lt;h3 id="証明書を発行していない"&gt;証明書を発行していない&#10;&lt;/h3&gt;&lt;p&gt;症状: 証明書エラー&lt;/p&gt;&#10;&lt;p&gt;Docker版で &lt;code&gt;docker compose up -d&lt;/code&gt;リロード代わりにした場合、証明書が発行されないまま。&lt;code&gt;docker compose down&lt;/code&gt;してから起動し直す。&lt;/p&gt;&#10;&lt;h3 id="docker利用時-バインドマウントを忘れている"&gt;(Docker利用時) バインドマウントを忘れている&#10;&lt;/h3&gt;&lt;p&gt;症状: 404エラーがでる&lt;/p&gt;&#10;&lt;p&gt;Docker版Caddyを使っている時。ホストマシンのディレクトリをそのまんまfile_serverとか使ってホスティングする場合、バインドマウントしないと当然見えない。&lt;/p&gt;&#10;&lt;h2 id="tailscaleを使っている場合"&gt;Tailscaleを使っている場合&#10;&lt;/h2&gt;&lt;p&gt;最近使ってないけど、使っていたときはややこしかった。特にAGH、Caddyと併用するとカオス。&lt;/p&gt;&#10;&lt;h3 id="magicdnsがうまく機能しない"&gt;MagicDNSがうまく機能しない&#10;&lt;/h3&gt;&lt;p&gt;Tailscaleから付与されるIPアドレスを直打ちするほうが無難。&lt;/p&gt;&#10;&lt;h3 id="aghと一緒に使う"&gt;AGHと一緒に使う&#10;&lt;/h3&gt;&lt;p&gt;TailscaleのDNSをAGHに向けること。&lt;/p&gt;&#10;&lt;p&gt;個人的にはこの構成はそもそも管理がとても複雑なのでやめたほうがいいように思う。&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;参考&amp;gt;&lt;/p&gt;&#10;&lt;div class="blog-card-wrapper"&gt;&#10; &lt;a href="https://hack-le.com/splitdns/" class="blog-card"&gt;&#10; &lt;div class="blog-card-content"&gt;&#10; &lt;div class="blog-card-label"&gt;&#10; &lt;svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"&gt;&lt;/path&gt;&lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;span&gt;あわせて読みたい&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-title"&gt;自宅内のアプリに、同一のドメインで、LAN内とインターネットの外からの両方に対応する（スプリットDNS）構成編&lt;/div&gt;&#10; &lt;div class="blog-card-url"&gt;/splitdns/&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-thumbnail"&gt;&#10; &lt;img src="https://hack-le.com/images/uploads/2026/04/eyecatch_49425_1776895341.webp" alt="自宅内のアプリに、同一のドメインで、LAN内とインターネットの外からの両方に対応する（スプリットDNS）構成編" loading="lazy" /&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="cloudflare-tunnelとか使っている場合"&gt;Cloudflare Tunnelとか使っている場合&#10;&lt;/h2&gt;&lt;h3 id="トンネルが落ちている接続されていない間違えている"&gt;トンネルが落ちている、接続されていない、間違えている&#10;&lt;/h3&gt;&lt;p&gt;当たり前の見落としをよくする。&lt;/p&gt;&#10;&lt;h3 id="トンネルが競合している"&gt;トンネルが競合している&#10;&lt;/h3&gt;&lt;p&gt;症状: 繋がったり繋がらなかったりする&lt;/p&gt;&#10;&lt;p&gt;Docker版とネイティブ版両方動かしていたりとか、よくわからないことをすると起きる。&lt;/p&gt;&#10;</description></item><item><title>Linux Mint Xfce 22.3 でIPv6を切る</title><link>https://hack-le.com/linux-mint-xfce-22-3-ipv6-disabled/</link><pubDate>Sun, 09 Aug 2026 00:00:00 +0900</pubDate><guid>https://hack-le.com/linux-mint-xfce-22-3-ipv6-disabled/</guid><description>&lt;p&gt;操作メモ。&lt;/p&gt;&#10;&lt;h2 id="環境"&gt;環境&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Linux Mint Xfce 22.3&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="やりたいこと"&gt;やりたいこと&#10;&lt;/h2&gt;&lt;p&gt;LAN内通信でIPv6を有効にしたくないのでクライアント端末で切りたい。&lt;/p&gt;&#10;&lt;p&gt;個別の理由としては、AdGuardHomeを使っていて、IPv6の設定するのがつらい。外との通信はルータ経由でIPv6を使うのでルータレベルで無効にしたくない。&lt;/p&gt;&#10;&lt;h2 id="操作"&gt;操作&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;タスクバー右下のWi-fiアイコンを右クリックし「接続を編集する」&lt;/li&gt;&#10;&lt;li&gt;操作したいWi-fiのSSIDを選択し、設定アイコンをクリック&lt;/li&gt;&#10;&lt;li&gt;IPv6設定タブをクリック&lt;/li&gt;&#10;&lt;li&gt;メソッドを「無視する」に変更する&lt;/li&gt;&#10;&lt;li&gt;保存して再接続する&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://hack-le.com/images/uploads/2026/08/d518342b456c71edd4420817531de0cb.png"&gt;&lt;/p&gt;&#10;&lt;p&gt;メソッドには「無効」もある。違いと使い分けはAI曰く以下。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;項目&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;無視（ignore）&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;strong&gt;無効（disabled）&lt;/strong&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;動作&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;IPv6アドレスの割り当て処理をスキップ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;IPv6機能そのものを完全停止&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;ローカル通信&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;維持される（&lt;code&gt;fe80::&lt;/code&gt;などが残る）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;完全に遮断される&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;システム影響&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;互換性トラブルが起きにくい&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;一部アプリや機器接続に影響が出ることがある&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;無視で問題なければそのほうが多分安全。&lt;/p&gt;&#10;&lt;p&gt;2026-08-22: その後うまく接続できないことがあり、結局IPv6そのものを停止ました（無視しました）。。。&lt;/p&gt;&#10;&lt;p&gt;以上。&lt;/p&gt;&#10;</description></item><item><title>メインのノートPCをLinuxにしたいなぁと思いつつ</title><link>https://hack-le.com/main-pc-linux/</link><pubDate>Wed, 10 Jun 2026 00:56:07 +0900</pubDate><guid>https://hack-le.com/main-pc-linux/</guid><description>&lt;p&gt;Windows 11のうんこっぷりにキレ散らかす日々、いい加減Linuxに切り替えたい。おらもう勝手に再起動されるの嫌だ。&lt;/p&gt;&#10;&lt;p&gt;今この記事を書いているWindows PCは、5年くらい前に買ったASUSのTUF GAMING F15だ。モバイル版のRTX3060(VRAM 6GB)がのっており、消費電力もかなり高いのだが、その高い消費電力でやっていることがブログ執筆ではしょうもない。&lt;/p&gt;&#10;&lt;p&gt;と言いつつゲームもちょくちょくしているので、一応ゲーミングPCの面目躍如はある模様。が、そのためにLinuxに移行する踏ん切りがつかなかったりもする。以前デュアルブートでPop!_OS 22.04を入れていたこともあるのだけれど、あの時は所詮デュアルブート、本意気ではなかった。本気でやるならやはりWindowsごと消さねばなるまい。&lt;/p&gt;&#10;&lt;p&gt;なのだけれど、Linuxだとゲームとかやっぱりつらくなるよなぁ、と思って躊躇している。最近はSteamをはじめたいていのゲームは動くという噂なのだが、俺たちのDMM Game Playerはそうもいかなさそうである。いやまぁ、DMM Game Playerにあるようなのはたいていスマホ版がある（というかそっちが本体に近い）ので、別に動かなきゃ動かないで別にいいんだが…。&lt;/p&gt;&#10;&lt;p&gt;しかしまぁ、SteamなんかにしたってWindowsネイティブのほうがたいてい良いのではないかなぁ。と思ってAIに聞いてみたら、「古いWindows向けのゲームなんかはむしろLinuxのほうが動くこともある」らしく、一長一短であるらしい。そうなのか。しかし今更古いWindowsゲームでやりたいのがあるのか、と考えてみると特にない。&lt;/p&gt;&#10;&lt;p&gt;特にないというか、冷静に考えるとゲーム自体大してやっていないのだけれど、子供時代ゲームが大好きであの頃の楽しさを忘れられないためか、常に「ゲームを楽しくやりたいなぁ」と欲求だけが亡霊のように残っており、やりもしないゲームが積まれ続けて10年以上経過したかと思う。いやでもきっといつかまたやるから…。&lt;/p&gt;&#10;&lt;p&gt;あとは地味にLinuxでEmacsキーバインドを実現する手段が確保できていない、というのがある。Windowsではkeyhac + Fakeymacsでほぼやりたいことができるのだが、これと同等のことをLinuxでやろうとすると、どうしたらいいのかちょっとわかっていない。しかも僕はJISキーボードをUSキーボードのように使うということもしていたりするので余計に厄介である。なんだかんだで今なおWindowsではこういうかゆいところに手が届くソフトウェアが有志により開発されているのは大きい。あとはMSが滅びてくれたら完璧なんだけど。&lt;/p&gt;&#10;&lt;p&gt;それとまぁ、e-taxのようなクソアプリを使わざるを得ない状況もあるので。まぁこれは何もゲーミングPCでやる必要はないため、本当に必要ならそれ用の事務用PCを中古で用意するほうがいいかもしれない。なにもRTX3060の消費電力でやることではあるまい。いやまぁ、それをいったらブログ執筆もそうなんだけどさ…。&lt;/p&gt;&#10;&lt;p&gt;あとドライバ周りで苦労することになる可能性もあるしなぁ。開発自体はLinuxのほうがやりやすいけれど、それはメインデスクトップのMacでやればいいことではあるし。サブノートはLinuxなので、メインノートはWindowsを使うことで、一通りのOSを触り続けられるというのはあるし。&lt;/p&gt;&#10;&lt;p&gt;いずれにせよ今月はちょっと落ち着かないので、やるとしても来月かなぁ。MSが余計なことしなければWindowsでもいいんだけどなぁ。&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;関連記事&amp;gt;&lt;/p&gt;&#10;&lt;div class="blog-card-wrapper"&gt;&#10; &lt;a href="https://hack-le.com/windows-11-init/" class="blog-card"&gt;&#10; &lt;div class="blog-card-content"&gt;&#10; &lt;div class="blog-card-label"&gt;&#10; &lt;svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"&gt;&lt;/path&gt;&lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;span&gt;あわせて読みたい&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-title"&gt;Windows 11で入れているアプリやキーボードの設定（Emacsキーバインド）&lt;/div&gt;&#10; &lt;div class="blog-card-url"&gt;/windows-11-init/&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-thumbnail"&gt;&#10; &lt;img src="https://hack-le.com/images/uploads/2025/11/output-4.webp" alt="Windows 11で入れているアプリやキーボードの設定（Emacsキーバインド）" loading="lazy" /&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&#10;</description></item><item><title>Trilium Notes (Docker) のマシンを移行する</title><link>https://hack-le.com/trilium-notes-docker-migration/</link><pubDate>Sun, 07 Jun 2026 21:21:36 +0900</pubDate><guid>https://hack-le.com/trilium-notes-docker-migration/</guid><description>&lt;p&gt;現在運用しているTrilium Notesについて、Intel Mac mini 2018 + Docker Desktop から Linux Mint Xfce 22.3のサーバマシンに移行する。&lt;/p&gt;&#10;&lt;h2 id="環境"&gt;環境&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Trilium Notesのlatest&lt;/li&gt;&#10;&lt;li&gt;移行元&#10;&lt;ul&gt;&#10;&lt;li&gt;Intel Mac mini 2018&#10;&lt;ul&gt;&#10;&lt;li&gt;macOS Sonoma 14.6.1&lt;/li&gt;&#10;&lt;li&gt;Docker Desktop for mac v4.76.0&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;移行先&#10;&lt;ul&gt;&#10;&lt;li&gt;ThinkPad L390&lt;/li&gt;&#10;&lt;li&gt;Linux Mint Xfce 22.3&#10;&lt;ul&gt;&#10;&lt;li&gt;Docker 29.5.2&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="手順"&gt;手順&#10;&lt;/h2&gt;&lt;p&gt;移行元のマシンで停止する。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker compose down&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;でデータディレクトリを確認する。&lt;code&gt;TRILIUM_DATA_DIR&lt;/code&gt;がどうなっているか見る。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Running `docker-compose up` will create/use the &amp;#34;trilium-data&amp;#34; directory in the user home&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Run `TRILIUM_DATA_DIR=/path/of/your/choice docker-compose up` to set a different directory&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# To run in the background, use `docker-compose up -d`&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;services:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; trilium:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Optionally, replace `latest` with a version tag like `v0.90.3`&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Using `latest` may cause unintended updates to the container&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; image: triliumnext/trilium:latest&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Restart the container unless it was stopped by the user&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; restart: unless-stopped&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; environment:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - &lt;span class="nv"&gt;TRILIUM_DATA_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/node/trilium-data&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - &lt;span class="nv"&gt;TZ&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Asia/Tokyo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ports:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# By default, Trilium will be available at http://localhost:8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# It will also be accessible at http://&amp;lt;host-ip&amp;gt;:8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# You might want to limit this with something like Docker Networks, reverse proxies, or firewall rules,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# however be aware that using UFW is known to not work with default Docker installations, see:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# https://docs.docker.com/engine/network/packet-filtering-firewalls/#docker-and-ufw&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - &lt;span class="s1"&gt;&amp;#39;8080:8080&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; volumes:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Unless TRILIUM_DATA_DIR is set, the data will be stored in the &amp;#34;trilium-data&amp;#34; directory in the home directory.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# This can also be changed with by replacing the line below with `- /path/of/your/choice:/home/node/trilium-data&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TRILIUM_DATA_DIR&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/trilium-data&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:/home/node/trilium-data&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# - /etc/timezone:/etc/timezone:ro&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - /etc/localtime:/etc/localtime:ro&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ここでは&lt;code&gt;~/trilium-data&lt;/code&gt;となっている。ついでにMacで&lt;code&gt;/etc/timezone&lt;/code&gt;がなかったのでコメントアウトされているね。&lt;/p&gt;&#10;&lt;p&gt;とりあえずアーカイブ化しよう。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -czvf trilium-data-backup.tar.gz ~/trilium-data&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;こいつを新しいマシンに転送してやる。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;scp trilium-data-backup.tar.gz ユーザ@IPアドレス:移行先のパス&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;新しいマシンで、これを保存先ディレクトリ上に展開する。今回は&lt;code&gt;trilium-data&lt;/code&gt;にしている。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -xzvf trilium-data-backup.tar.gz&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存先ディレクトリに入って、もしデータベースの一時ファイルが存在したら削除する。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -f document.db-shm document.db-wal&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;準備ができたらコンテナの起動。とりあえずフロントで。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker compose up&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;エラーなく起動したら、&lt;code&gt;http://IPアドレス:ポート&lt;/code&gt;にアクセスする。以前使っていたパスワードでログインできることを確認する。&lt;/p&gt;&#10;&lt;p&gt;問題なければOK。Ctrl-cで停止して、改めてバックグラウンドで起動する。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker compose up -d&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでOK。しばらく動かして、安定していることを確認したら元のコンテナは削除してよい。&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;関連記事&amp;gt;&lt;/p&gt;&#10;&lt;div class="blog-card-wrapper"&gt;&#10; &lt;a href="https://hack-le.com/evernote-notion-trilium-notes/" class="blog-card"&gt;&#10; &lt;div class="blog-card-content"&gt;&#10; &lt;div class="blog-card-label"&gt;&#10; &lt;svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"&gt;&lt;/path&gt;&lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;span&gt;あわせて読みたい&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-title"&gt;Evernote/Notion代替: Trilium NotesでインストールからWeb Clipまで&lt;/div&gt;&#10; &lt;div class="blog-card-url"&gt;/evernote-notion-trilium-notes/&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-thumbnail"&gt;&#10; &lt;img src="https://hack-le.com/images/uploads/2026/03/image-4.png" alt="Evernote/Notion代替: Trilium NotesでインストールからWeb Clipまで" loading="lazy" /&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&#10;</description></item><item><title>Dell Latitude 5290は中古PCサーバの母艦としていいかもしれないね、一方クライアントなら意外にも…</title><link>https://hack-le.com/dell-latitude-5290-l390-linux/</link><pubDate>Tue, 26 May 2026 00:00:00 +0900</pubDate><guid>https://hack-le.com/dell-latitude-5290-l390-linux/</guid><description>&lt;p&gt;うちには40台くらいジャンクPCがある。特に2018年前後を集めており、定番なのはLenovo ThinkPadとDel Latitudeあたりだ。このへんはまぁ安いといってもジャンクの中では高いのかもしれないのだが、既に送料で底打ちがあるため、バランスを取るならこのへんかなぁ、とは思う。ジャンクでバランスもなにもないが…。&lt;/p&gt;&#10;&lt;h2 id="結局linuxに似合う中古pcはなんなんだい"&gt;結局Linuxに似合う中古PCはなんなんだい&#10;&lt;/h2&gt;&lt;p&gt;個人的には、漁っているとFUJITSUのLIFEBOOKやPANASONICのLet&amp;rsquo;s Noteの古いやつなんかが、むしろ良いのではないか？という気がしている。流通量もそこそこあるし。あのへんはLenovoやDellとは異なる方向にブランドなので、必ずしも安くなっていない…なんなら骨董品レベルのものがやけに高く売られていることもある。あの時代のパーツがほしい人向けなんだろうか…しかしコンシューマのPCでそんなことあるかなぁ。&lt;/p&gt;&#10;&lt;p&gt;まぁなんでもいいのだけれど、無難にいくならThinkPadかLatitude、というのはそれはそう、という感じだ。ただ2018年より、ThinkPadの上位モデルであるX280以降はメモリソルダリングという悪に手を染めてしまっているため、それより一つ落ちるはずのL390のほうが、メモリの拡張性高い分使いやすいという逆転現象が起きている。筐体の無骨さもサーバ用途ならばむしろ悪くない。まぁ問題は、L390はThinkPadシリーズの中だとそんなに量が出回っていないということかな…。あと、LANポートがないのもいたいね。&lt;/p&gt;&#10;&lt;p&gt;そこでいくと、&lt;strong&gt;Dell Latitude 5290は攻守ともに強い感じ&lt;/strong&gt;だ。メモリも換えられるし。ま、ちょっと重いかな。Dellらしい無骨さではある。しかし前述したように&lt;strong&gt;サーバで無骨さは褒め言葉&lt;/strong&gt;よ。ただ同じ型番で2-in-1タイプもあるらしいが、そちらはオンボードという罠仕様になっている。まぁジャンク漁りをする人の中でも2-in-1を狙うのはさらに数寄者だろうから好きでやっているんだろうが…。&lt;/p&gt;&#10;&lt;p&gt;なので、僕はThinkPad L390を母艦にしているけれども、Dell Latitude 5290も実は候補に上がっていた。しかし結局L390になり、Latitude 5290は仕事で使うPCとして供養する流れだ。Core i5-8250Uと8GBという必要十分なスペックに、LANポートがあるのが決めてになったかな。LANポートがあると、それ経由でシングルボードな子機とサクッと接続できるのがよい。SSDは家にあった128GB SATA SSDだがね。m.2 2280フォームファクタのSATAがあるなんて、ジャンク漁るまで知らなかったよ…。&lt;/p&gt;&#10;&lt;p&gt;まぁThinkPadだのDellだのも当然のように裏蓋ネジなかったり画面TNでもやってたしCMOS切れてたり通信たまに切れたりバッテリー死んでたりするという点では変わらない。そこは安くどうにかできるならなんとかするし、できるけど高く付くならそういう使い方は諦めるという割り切りが必要だ。&lt;/p&gt;&#10;&lt;h2 id="クライアントならちょっと冒険してみて"&gt;クライアントならちょっと冒険してみて…&#10;&lt;/h2&gt;&lt;p&gt;さて少し目先を変えて、そんなサーバとかじゃなくて、普通に普段遣いでやりたいんだけど、という向きでは、僕の見た感じだと感触はかなり異なる。&lt;/p&gt;&#10;&lt;p&gt;ここで一番重要なのは液晶で、画面は生きててIPSフルHDとバッテリーとキーボードタッチパッドが生きていること、が条件となる。あとためらわないレベルで外観が保たえれていることとか（時々戦争に持っていったの？みたいな可愛そうな筐体がある…）。ここがクリアしていればあとはまぁなんとか。&lt;/p&gt;&#10;&lt;p&gt;まぁあるにはあるんだけど、普通に1万超えてくるよねこんなの。高いよ。ジャンクでも2万くらいはある。まともな中古店なら2万後半から3万しててもおかしくない。これからもっと高くなるかもな。&lt;/p&gt;&#10;&lt;p&gt;…なんですけど、PANASONICとかLIFEBOOKで捨て値になっているように、バッテリーが死にかけだけどもまだ残っていて、驚くべきことにIPS FHD（ときどきTN FHDがあるので気をつける）、みたいなのが、3000円とか5000円とかで手に入ったりすることもある（送料込み）。もちろんCPUは期待するな。Core i5第4世代でも気にするな。でもバッテリー生きてるならなんでもいいじゃない！たとえ残り39%とかだったとしても！&lt;/p&gt;&#10;&lt;p&gt;このへんのはね、まぁさすがに常用はつらいと思うけど、サーバよりも持ち運びたいタイプの特定用途のクライアントPCとして活躍の場があると思ったな。筐体のめっちゃ軽いからね。当時は最先端だったんだろう。&lt;/p&gt;&#10;&lt;p&gt;PANASONICの昔のやつとかでもボタン一つでWi-fi切り替えギミックとかほしい人はほしそうなやつあるしね。まだそこまでちゃんといじってなけど、僕はけっこういいと思ったな。&lt;/p&gt;&#10;&lt;h2 id="どんどん検証していく"&gt;どんどん検証していく&#10;&lt;/h2&gt;&lt;p&gt;40台くらいジャンク揃えたけど「完璧だ！」みたいなのマジでなくて、「こいつはここがなぁ…」のオンパレードです。今はThinkPad L390を使っていて、これは比較的の文句のないPC…に見せかけて、クリックパッド死んでたりするからねｗあとなんか全体的にもやってる。まぁあんまりメインディスプレイがっつり見ないけどね。&lt;/p&gt;&#10;&lt;p&gt;とりあえず今日現時点においては、このサイトはThinkPad L390 Core i5-8265U, 32GB RAMで動いております。RAMだけすごい。普段は3-6GBの利用料なので完全に無駄。でもこれからメインサーバの機能をうつしていったら重くなるかも。&lt;/p&gt;&#10;&lt;p&gt;最初の間は消費電力も10Wくらいだったけど、メディア系のサーバを入れ始めたから、いまは15Wくらいにあがってそうだなー…。Jellyfinとかは入れる予定ないんだけど。Immichは入れようかなぁ。家族にAppleやGoogleにお布施しているのがいたら救ってもいいんだが…。&lt;/p&gt;&#10;&lt;p&gt;この子がいつでも最後のちからを振り絞れるように、後ろに何台ものジャンクを控えさせておかないとな。そういう態勢を整えて、知見を共有していきたい。&lt;/p&gt;&#10;&lt;p&gt;まぁなんにしても、あんまり失敗したくなくて、でもLinuxほしいなぁって雑に思う人はDell Latitude 5290はいいと思うよ（2-in1は避けつつ）。ジャンクなら別途パーツ含めて1万、保証付きの中古ショップなら…25000くらいかなぁ。ジャンク市場もこれからどうなることやら…&lt;/p&gt;&#10;</description></item><item><title>Linux Mint Xfce 22.3 + LyrionMusicServer + Squeezelite で音楽生活</title><link>https://hack-le.com/linux-mint-xfce-22-3-lyrionmusicserver-squeezelite/</link><pubDate>Mon, 25 May 2026 00:00:00 +0900</pubDate><guid>https://hack-le.com/linux-mint-xfce-22-3-lyrionmusicserver-squeezelite/</guid><description>&lt;p&gt;メインサーバになりつつあるLinuxマシンに、チューナレステレビをHDMIでつなぎ、TVに光オーディオ出力でアンプに繋がっている。たいへんややこしい状況だが、どうせなら音楽はこのアンプでききたいものである。&lt;/p&gt;&#10;&lt;p&gt;ということで、音楽サーバ構築編。&lt;/p&gt;&#10;&lt;h2 id="環境"&gt;環境&#10;&lt;/h2&gt;&lt;p&gt;とてもややこしいけれども以下のような感じだ。&lt;/p&gt;&#10;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD&#10;subgraph PCA ["PC A (操作端末 / リモコン)"]&#10;Browser["Webブラウザ / App(Material Skin UI)"]&#10;end&#10;subgraph PCB ["PC B (Linux Mint / サーバー兼再生機)"]&#10;direction TB&#10;LMS["Lyrion Music Server(楽曲管理・配信)"]&#10;subgraph AudioOutput ["音声出力プロセス"]&#10;Squeezelite["Squeezelite(再生用クライアント)"]&#10;PipeWire["PipeWire / ALSA(OS音声制御)"]&#10;end&#10;Storage[("音楽ファイル群(HDD/SSD)")]&#10;end&#10;subgraph AudioPath ["中継・出力"]&#10;TV["Mi TV(音声ハブ)"]&#10;Speaker["外部スピーカー"]&#10;end&#10;%% 接続とデータの流れ&#10;Browser -- "① 選曲・操作命令 (Port 9000)" --&gt; LMS&#10;LMS -- "② 音楽ストリーム送信 (Port 3483 / localhost)" --&gt; Squeezelite&#10;Squeezelite -- "③ 音声データ引き渡し (default出力)" --&gt; PipeWire&#10;Storage -. "スキャン (パーミッション確認済)" .-&gt; LMS&#10;%% 物理接続&#10;PipeWire == "④ HDMI出力 (DEV=3)" ==&gt; TV&#10;TV == "⑤ 光デジタル出力" ==&gt; Speaker&#10;%% スタイル設定&#10;style PCB fill:#f5f6f8,stroke:#4f5b66,stroke-width:2px&#10;style LMS fill:#d1e7dd,stroke:#0f5132&#10;style Squeezelite fill:#fff3cd,stroke:#856404&#10;style Browser fill:#cfe2ff,stroke:#084298&#10;style PipeWire fill:#e2d9f3,stroke:#4b2c7e&#10;style TV fill:#eeeeee,stroke:#666&lt;/pre&gt;&lt;p&gt;HW/SWは以下。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;ThinkPad L390&#10;&lt;ul&gt;&#10;&lt;li&gt;32GB RAM&lt;/li&gt;&#10;&lt;li&gt;Linux Mint Xfce 22.3&lt;/li&gt;&#10;&lt;li&gt;squeezelite v1.9.9-1449&lt;/li&gt;&#10;&lt;li&gt;Lyrion Music Player v9.1.0&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="インストールと設定"&gt;インストールと設定&#10;&lt;/h2&gt;&lt;h3 id="lyrion-music-server"&gt;Lyrion Music Server&#10;&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://lyrion.org/getting-started/#configure" target="_blank" rel="noopener"&#10; &gt;Getting Started with LMS - Lyrion Music Server&lt;/a&gt;より、ダウンロードリンクを取得。記事を書いた時のリンクだとこれ。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget &lt;span class="s2"&gt;&amp;#34;https://downloads.lms-community.org/LyrionMusicServer_v9.1.0/lyrionmusicserver_9.1.0_amd64.deb&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install ./lyrionmusicserver_9.1.0_amd64&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ステータスを確認する。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl status lyrionmusicserver.service&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;enabledでactive(running)になっていることを確認する。&lt;/p&gt;&#10;&lt;p&gt;ポートを空ける。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ufw allow 9000/tcp&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;そうしたら &lt;code&gt;http://IPアドレス:9000&lt;/code&gt;にGo。右下のNextボタンで、音楽ファイルの場所と、プレイリストを保存する場所を指定することになる。&lt;/p&gt;&#10;&lt;p&gt;ここで、ディレクトリのパーミッションは755でないとLMSが読めない。基本的にホームサーバならディレクトリは755でよいはず。外付けディスクとかでパーミッションまとめて変える必要があるときは&lt;code&gt;find&lt;/code&gt;で一気にやってしまう。たとえば&lt;code&gt;/mnt/hdd&lt;/code&gt;のときは以下の感じ。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find /mnt/hdd -type d -exec chmod &lt;span class="m"&gt;755&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; +&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ホームディレクトリは&lt;code&gt;~/.ssh&lt;/code&gt;とかあるんでまとめてやるとか雑なことはしない。&lt;/p&gt;&#10;&lt;p&gt;さらに音楽ファイルの権限も600とかだと読めない。音楽ファイルのあるディレクトリに移動して、パーミッションを変更する。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find . -type f -exec chmod &lt;span class="m"&gt;644&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; +&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;再スキャンするときは、Web画面で歯車よりServerから再スキャン可能。&lt;/p&gt;&#10;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://hack-le.com/images/uploads/2026/05/66d639db4f7220ae225dde9a4235401b-700x399.png"&gt;&lt;/p&gt;&#10;&lt;p&gt;とにかく音楽フォルダとプレイリストフォルダのパーミッションは整えてやる必要がある。ちなみにうちの場合は音楽ファイルは外付けのハードディスクドライブで、プレイリストフォルダは内蔵SSDのホームフォルダ内にしている。&lt;/p&gt;&#10;&lt;h3 id="squeezelite"&gt;Squeezelite&#10;&lt;/h3&gt;&lt;p&gt;まずポート空けておく。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ufw allow &lt;span class="m"&gt;3483&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以下でインストール。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install squeezelite&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;入れたら出力を確認する。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;squeezelite -l&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;なんかいっぱい出てくる。ここでハードウェアを指定して &lt;code&gt;/etc/default/squeezelite&lt;/code&gt;を書き換えていく、ということになっているのだが…。&lt;/p&gt;&#10;&lt;p&gt;ただねぇ…僕はここから相当転がされた結果、一つの結果にたどり着いたが、これは一般的ではない、とあらかじめ申し添えておく。&lt;/p&gt;&#10;&lt;p&gt;まずapt installしたら勝手にsystemctlで動いているsqueezeliteを殺す。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl stop squeezelite.service&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;有効化はされてないのでdisableする必要はないが、もしenableしてしまったらdisableもしておく。&lt;/p&gt;&#10;&lt;p&gt;そのうえで、&lt;code&gt;~/.config/autostart&lt;/code&gt;にスタートアップスクリプトを書いていく。ディレクトリがなかったら最初につくる。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p ~/.config/autostart&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;そしたら設定ファイルを書く。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat &lt;span class="s"&gt;&amp;lt;&amp;lt; &amp;#39;EOF&amp;#39; &amp;gt; ~/.config/autostart/squeezelite-tv.desktop&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;[Desktop Entry]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Encoding=UTF-8&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Version=0.9.4&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Type=Application&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Name=Squeezelite-TV&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Comment=Hand-launched success command with delay&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Exec=bash -c &amp;#34;sleep 5 &amp;amp;&amp;amp; squeezelite -o default -n MiTV&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;OnlyShowIn=XFCE;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;StartupNotify=false&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Terminal=false&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Hidden=false&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;EOF&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Execのところは適当に。&lt;code&gt;-n MiTV&lt;/code&gt;は僕がMiTV使ってるからなので。適当にわかりやすい名前にする。&lt;/p&gt;&#10;&lt;p&gt;再起動して、LMSで見つかるかどうか試す。見つかればOK。&lt;/p&gt;&#10;&lt;p&gt;これは明らかに標準の方法ではないが、これが一番安定した。systemdはクソ。昔から思ってたけど、僕の頭が悪いんだと思っていた。今となっては自信を持って言える。僕の頭が悪かろうがなんだろうが関係なくsystemdはクソ。&lt;/p&gt;&#10;&lt;h2 id="systemdはクソ"&gt;systemdはクソ&#10;&lt;/h2&gt;&lt;p&gt;疲れた。なんだかんだで半日消費した。あとは運用していきたい。&lt;/p&gt;&#10;&lt;p&gt;ちなみにフォルダ管理派はフォルダをブラウズするように設定できるが、そのへんの話はMacのときに書いたのでそちらを参照。&lt;/p&gt;&#10;&lt;div class="blog-card-wrapper"&gt;&#10; &lt;a href="https://hack-le.com/mac-mini-2018-lyrion-music-serverlms-logitech-media-server-squeezelite/" class="blog-card"&gt;&#10; &lt;div class="blog-card-content"&gt;&#10; &lt;div class="blog-card-label"&gt;&#10; &lt;svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"&gt;&lt;/path&gt;&lt;path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;span&gt;あわせて読みたい&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-title"&gt;Mac mini 2018 &amp;#43; Lyrion Music Server(LMS, Logitech Media Server) &amp;#43; Squeezeliteで音楽ライフ&lt;/div&gt;&#10; &lt;div class="blog-card-url"&gt;/mac-mini-2018-lyrion-music-serverlms-logitech-media-server-squeezelite/&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;div class="blog-card-thumbnail"&gt;&#10; &lt;img src="https://hack-le.com/images/uploads/2026/02/eyecatch_48160_1771482682.webp" alt="Mac mini 2018 &amp;#43; Lyrion Music Server(LMS, Logitech Media Server) &amp;#43; Squeezeliteで音楽ライフ" loading="lazy" /&gt;&#10; &lt;/div&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;ってかPipeWireって何？とか、基本的なところ理解できてないなぁと思った。systemdはクソ。&lt;/p&gt;&#10;</description></item><item><title>Core i5-8xxxUをLinuxサーバにしたらメモリより先にCPUが燃え尽きる</title><link>https://hack-le.com/core-i5-8xxx-linux/</link><pubDate>Mon, 18 May 2026 00:00:00 +0900</pubDate><guid>https://hack-le.com/core-i5-8xxx-linux/</guid><description>&lt;p&gt;だからメモリ8GBでも気にしなくてｲｲﾝﾀﾞﾖ！&lt;/p&gt;&#10;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://hack-le.com/images/uploads/2026/05/f17fc91e28ad6e52ef744fcab4b9ac6b.png"&gt;&lt;/p&gt;&#10;&lt;p&gt;ざっとこんな感じさ。4コアを使い尽くしているよ。でもメモリは3GBだよ。32GB刺しているのにゴミのようだ。&lt;/p&gt;&#10;&lt;p&gt;まぁこれは動画をエンコードしているのでそれはそう、ではあるのだけれど、基本的に3GBくらいが普通なんだよね。一番多いときでも7GBくらい。まだ多くの機能をIntel Mac mini 2018をやっているから、それらの機能を全部うつしたら…特にImmichなど重量級なのを移したらもっと使うだろうけれど、それにしても多分CPUのほうが先に音を上げるんじゃないかな？かな？&lt;/p&gt;&#10;&lt;p&gt;まぁディストリビューションはLinux Mint Xfceで、最新のUbuntu使ってGNOME使ってとなればこうもいかないと思う。でもそれはOSの本懐じゃないよね。CUIとか言う前にまず軽量GUIを試すべきだ。特にホームサーバにおいて、GUIは非常に有力なのだ。これを利用しないのは非常に勿体ないと思う。&lt;/p&gt;&#10;&lt;p&gt;最先端GUI or CUIってーのは極端だ。リッチなクライアントかもしくはクラウドのサーバかってそういう思考になっちゃってんじゃない。でもPCってそうじゃなかったよね。もっといくらでも良い選択肢があるのだし、それを選び扱えてこそじゃなかろうか。&lt;/p&gt;&#10;&lt;p&gt;そんなわけで、第8世代の値下がりジャンクをLinuxサーバにしてやろうという賢いユーザはメモリについて8GBで実用上十分くらいでいいんじゃないかな。&lt;/p&gt;&#10;&lt;p&gt;ちなみにこんなPCでエンコードしているのは、現在制作中のデジタルコンテンツ管理アプリ、DigitalShelf（仮）の試運転です。試運転といっても自分のデータを扱っているのでゴリゴリ本番なんだけどね。また、これは標準機能ではなくて、&lt;code&gt;ffmpeg&lt;/code&gt;を使った外部プラグインという立ち位置。外部プラグインなのでソースコードは開示しなくていいって寸法よ。別に開示してもよかったんだけど、なんかもうOSSは開示したらAIでアタックされるという酷い時代になったので、もう何もできないよね。&lt;/p&gt;&#10;&lt;p&gt;まぁ僕もAI使ってアプリ作っているわけだが…。激動の時代だけれど、結局shは動いているという事実を大事にして明日を生きよう。&lt;/p&gt;&#10;</description></item></channel></rss>