<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>松本 侑真 — #homelab</title><description>「homelab」タグの記事フィード</description><link>https://yuuma.dev/</link><item><title>HomeLabの第一歩となる旗艦サーバ『holodeck』を立ち上げました</title><link>https://yuuma.dev/blog/holodeck/holodeck-setup/</link><guid isPermaLink="true">https://yuuma.dev/blog/holodeck/holodeck-setup/</guid><description>Proxmox 上に Ubuntu Server 24.04 を構築し、Docker と Tailscale を導入して「どこからでもアクセスできる最強のコンテナ母艦」を作り上げるまでのプロセスを記録します。</description><pubDate>Tue, 25 Nov 2025 02:20:57 GMT</pubDate><content:encoded>&lt;!-- cmd+option+v: ImagePaste --&gt;
&lt;p&gt;&lt;picture&gt;
  &lt;source srcset=&quot;/blog/img/holodeck-setup/2025-11-25-02-40-18.avif&quot; type=&quot;image/avif&quot;&gt;
  &lt;source srcset=&quot;/blog/img/holodeck-setup/2025-11-25-02-40-18.webp&quot; type=&quot;image/webp&quot;&gt;
  &lt;img src=&quot;https://yuuma.dev/blog/img/holodeck-setup/2025-11-25-02-40-18.png&quot; alt=&quot;2025-11-25-02-40-18&quot; style=&quot;max-height:480px;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;ホストマシンの構成について&quot;&gt;&lt;a href=&quot;#ホストマシンの構成について&quot; class=&quot;heading-link&quot;&gt;ホストマシンの構成について&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h2&gt;
&lt;h3 id=&quot;ホストマシンとなるゲーミングpcのスペック&quot;&gt;&lt;a href=&quot;#ホストマシンとなるゲーミングpcのスペック&quot; class=&quot;heading-link&quot;&gt;ホストマシンとなるゲーミングPCのスペック&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CPU: AMD Ryzen 5 3600 (6 Core / 12 Thread)&lt;/li&gt;
&lt;li&gt;RAM: 16GB&lt;/li&gt;
&lt;li&gt;SSD: 512GB&lt;/li&gt;
&lt;li&gt;GPU: NVidia RTX 2070 Super&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;サーバーといえば低消費電力なミニPCやラズパイも人気ですが、あえて Ryzen 5 3600 を選んだのには理由があります。
それは 「圧倒的なマルチスレッド性能」 です。6コア12スレッドという余裕のあるリソースは、Proxmox で複数の VM やコンテナ（LXC）を並列稼働させるのに最適です。Docker コンテナを数十個立ち上げてもビクともしない、頼れる母艦になります。&lt;/p&gt;
&lt;h3 id=&quot;proxmox-veについて&quot;&gt;&lt;a href=&quot;#proxmox-veについて&quot; class=&quot;heading-link&quot;&gt;Proxmox VEについて&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h3&gt;
&lt;h2 id=&quot;holodeckの設計図&quot;&gt;&lt;a href=&quot;#holodeckの設計図&quot; class=&quot;heading-link&quot;&gt;holodeckの設計図&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;
  &lt;source srcset=&quot;/blog/img/holodeck-setup/2025-11-25-02-43-30.avif&quot; type=&quot;image/avif&quot;&gt;
  &lt;source srcset=&quot;/blog/img/holodeck-setup/2025-11-25-02-43-30.webp&quot; type=&quot;image/webp&quot;&gt;
  &lt;img src=&quot;https://yuuma.dev/blog/img/holodeck-setup/2025-11-25-02-43-30.png&quot; alt=&quot;2025-11-25-02-43-30&quot; style=&quot;max-height:480px;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;このホスト上に構築するメインサーバー（VM）を、スタートレックにちなんで holodeck（ホロデッキ） と名付けました。&lt;/p&gt;
&lt;h3 id=&quot;holodeck-スペック&quot;&gt;&lt;a href=&quot;#holodeck-スペック&quot; class=&quot;heading-link&quot;&gt;holodeck スペック&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;OS: Ubuntu Server 24.04 LTS (最新の長期サポート版)&lt;/li&gt;
&lt;li&gt;vCPU: 4 Core (Host passthrough)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;※ホストのCPU機能を直接パススルーし、パフォーマンスを最大化&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RAM: 8GB (Ballooning on)&lt;/li&gt;
&lt;li&gt;Disk: 64GB (SCSI / writeback / iothread=on)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;※I/Oパフォーマンス重視の設定&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;役割: Docker ホスト (NPM, Cloudflare Tunnel, memos, FreshRSS 等の運用)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ubuntu-serverインストール後の作業について&quot;&gt;&lt;a href=&quot;#ubuntu-serverインストール後の作業について&quot; class=&quot;heading-link&quot;&gt;Ubuntu Serverインストール後の作業について&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h2&gt;
&lt;h3 id=&quot;固定ip化&quot;&gt;&lt;a href=&quot;#固定ip化&quot; class=&quot;heading-link&quot;&gt;固定IP化&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;サーバーとして運用する以上、IPアドレスが変わってしまうと不便です。Ubuntu 24.04 では &lt;code&gt;Netplan&lt;/code&gt; を使って設定します。&lt;/p&gt;
&lt;p&gt;まずインターフェース名を確認。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;ip&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; a&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D;--shiki-light-font-style:inherit;--shiki-dark:#51597D;--shiki-dark-font-style:italic&quot;&gt;# 例: ens18 などが表示される&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-18&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;設定ファイルを編集します。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; nano&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; /etc/netplan/00-installer-config.yaml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-19&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;以下のように書き換えます。今回は &lt;code&gt;100.xx.x.xx&lt;/code&gt; を割り当てます。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;remark-code-title&quot;&gt;00-installer-config.yaml&lt;/div&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;network&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;  version&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#FF9E64&quot;&gt; 2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;  renderer&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; networkd&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;  ethernets&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;    ens18&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;      dhcp4&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#FF9E64&quot;&gt; false&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;      addresses&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#9ABDF5&quot;&gt;        -&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; 100.xx.x.xx/24&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;      routes&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#9ABDF5&quot;&gt;        -&lt;/span&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; default&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;          via&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; 100.xx.1.1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;      nameservers&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A;--shiki-dark:#F7768E&quot;&gt;        addresses&lt;/span&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#89DDFF&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#9ABDF5&quot;&gt;          -&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#FF9E64&quot;&gt; 1.1.1.1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E;--shiki-dark:#9ABDF5&quot;&gt;          -&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#FF9E64&quot;&gt; 8.8.8.8&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-20&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;設定を反映させます。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; chmod&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#FF9E64&quot;&gt; 600&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; /etc/netplan/00-installer-config.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; netplan&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; apply&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-21&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;これで holodeck の住所が確定しました。&lt;/p&gt;
&lt;h3 id=&quot;ssh-鍵認証の導入mac--holodeck&quot;&gt;&lt;a href=&quot;#ssh-鍵認証の導入mac--holodeck&quot; class=&quot;heading-link&quot;&gt;SSH 鍵認証の導入（Mac → holodeck）&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;パスワード認証はセキュリティ的に不安があるため、Mac から鍵認証でログインできるようにします。&lt;/p&gt;
&lt;p&gt;Mac側で鍵ペアを作成します。RSAよりも強固で短い Ed25519 を使用します。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;ssh-keygen&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; -t&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; ed25519&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; -f&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; ~/.ssh/holodeck&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-22&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;公開鍵を holodeck へ転送します。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;ssh-copy-id&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; -i&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; ~/.ssh/holodeck.pub&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; yuuma@100.xx.x.xx&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-23&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;パスワードを聞かれずにログインできれば成功です。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;ssh&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; -i&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; ~/.ssh/holodeck&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; yuuma@100.xx.x.xx&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-24&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h2 id=&quot;dockerの構築&quot;&gt;&lt;a href=&quot;#dockerの構築&quot; class=&quot;heading-link&quot;&gt;Dockerの構築&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;モダンなホームラボに Docker は不可欠です。公式スクリプトを使ってサクッと導入します。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D;--shiki-light-font-style:inherit;--shiki-dark:#51597D;--shiki-dark-font-style:italic&quot;&gt;# 公式スクリプトでインストール&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; -fsSL&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; https://get.docker.com&lt;/span&gt;&lt;span style=&quot;color:#D73A49;--shiki-dark:#89DDFF&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; sh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D;--shiki-light-font-style:inherit;--shiki-dark:#51597D;--shiki-dark-font-style:italic&quot;&gt;# sudoなしでdockerコマンドを使えるようにする&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; usermod&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; -aG&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; docker&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; yuuma&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D;--shiki-light-font-style:inherit;--shiki-dark:#51597D;--shiki-dark-font-style:italic&quot;&gt;# Docker Compose プラグインの確認&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; -y&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; docker-compose-plugin&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-25&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;ここで一度 exit して再ログインすると、グループ設定が反映されます。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;docker&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; version&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-26&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;これが動けば、コンテナをデプロイする準備は万端です。&lt;/p&gt;
&lt;h2 id=&quot;tailscale-でどこでも管理を実現&quot;&gt;&lt;a href=&quot;#tailscale-でどこでも管理を実現&quot; class=&quot;heading-link&quot;&gt;Tailscale で「どこでも管理」を実現&lt;/a&gt;&lt;span class=&quot;anchor&quot; aria-hidden=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;最後に、外出先や別ネットワークからでも安全にアクセスできるよう、VPNツールの Tailscale を導入します。ポート開放などの危険な作業なしに、安全なプライベートネットワークを構築できる神ツールです。&lt;/p&gt;
&lt;div class=&quot;remark-code-container&quot;&gt;&lt;div class=&quot;code-block&quot;&gt;&lt;pre class=&quot;astro-code astro-code-themes github-light tokyo-night&quot; style=&quot;background-color:#fff;--shiki-dark-bg:#1a1b26;color:#24292e;--shiki-dark:#a9b1d6; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D;--shiki-light-font-style:inherit;--shiki-dark:#51597D;--shiki-dark-font-style:italic&quot;&gt;# インストール&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; -fsSL&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; https://tailscale.com/install.sh&lt;/span&gt;&lt;span style=&quot;color:#D73A49;--shiki-dark:#89DDFF&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; sh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D;--shiki-light-font-style:inherit;--shiki-dark:#51597D;--shiki-dark-font-style:italic&quot;&gt;# 起動（SSH機能も有効化）&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1;--shiki-dark:#C0CAF5&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; tailscale&lt;/span&gt;&lt;span style=&quot;color:#032F62;--shiki-dark:#9ECE6A&quot;&gt; up&lt;/span&gt;&lt;span style=&quot;color:#005CC5;--shiki-dark:#E0AF68&quot;&gt; --ssh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;code-copy-button&quot; id=&quot;code-copy-button-27&quot; type=&quot;button&quot; aria-label=&quot;コードをコピー&quot;&gt;&lt;svg fill=&quot;currentColor&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: &amp;#x27;visible&amp;#x27;, color: &amp;#x27;currentcolor&amp;#x27;&quot;&gt;&lt;rect width=&quot;336&quot; height=&quot;336&quot; x=&quot;128&quot; y=&quot;128&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; rx=&quot;57&quot; ry=&quot;57&quot;&gt;&lt;/rect&gt;&lt;path fill=&quot;none&quot; stroke=&quot;currentColor&quot; stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;32&quot; d=&quot;m383.5 128 .5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;表示された認証URLにアクセスし、ブラウザで承認すれば接続完了です。
以降は、元々の固定IPアドレスと異なる固定アドレスを使ってssh接続を行います。
接続元のクライアントPCにも Tailscale のログインが必要です。
このログインを通してプライベートネットワークにアクセスできるようになります。&lt;/p&gt;
&lt;details class=&quot;callout callout-info&quot; open&gt;
&lt;summary class=&quot;callout-title callout-title-info&quot;&gt;&lt;svg fill=&quot;none&quot; stroke-width=&quot;0&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; stroke=&quot;currentColor&quot; viewBox=&quot;0 0 24 24&quot; height=&quot;1em&quot; width=&quot;1em&quot; style=&quot;overflow: visible; color: currentcolor;&quot;&gt;&lt;path fill=&quot;currentColor&quot; fill-rule=&quot;evenodd&quot; d=&quot;M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 0 1 .67 1.34l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 1 1-.671-1.34l.041-.022ZM12 9a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z&quot; clip-rule=&quot;evenodd&quot;&gt;&lt;/path&gt;&lt;/svg&gt;これができると何が嬉しいか？&lt;/summary&gt;
&lt;p&gt;Macbook を持ってカフェに行っても、ssh &lt;a href=&quot;mailto:yuuma@100.x.x.x&quot;&gt;yuuma@100.x.x.x&lt;/a&gt; (Tailscale IP) と打つだけで、家の holodeck に安全にログインできるようになります。&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;これで、元ゲーミングPCが「holodeck」として生まれ変わりました。&lt;/p&gt;
&lt;p&gt;✅ Proxmox + Ubuntu 24.04 の堅牢な基盤&lt;/p&gt;
&lt;p&gt;✅ Ryzen 3600 のパワーを活かしたリソース配分&lt;/p&gt;
&lt;p&gt;✅ Docker 完備でアプリを無限に追加可能&lt;/p&gt;
&lt;p&gt;✅ Tailscale で場所を選ばない管理体制&lt;/p&gt;
&lt;p&gt;次はこの holodeck 上で実際にサービスを動かしていきます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Nginx Proxy Manager: Webサービスの入り口を作る&lt;/li&gt;
&lt;li&gt;Cloudflare Tunnel: 自宅IPを隠したまま外部公開&lt;/li&gt;
&lt;li&gt;memos / FreshRSS: 自分専用の便利ツール群を展開&lt;/li&gt;
&lt;li&gt;Jellyfin: メディアサーバー構築（ゆくゆくはGPUパススルーも…？）&lt;/li&gt;
&lt;/ol&gt;</content:encoded></item></channel></rss>