<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki</id>
	<title>MochiuWiki : SUSE, EC, PCB - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Wiki"/>
	<updated>2026-09-08T20:00:26Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=Linux%E3%81%9D%E3%81%AE%E4%BB%96_-_%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&amp;diff=14620</id>
		<title>Linuxその他 - ディスクイメージ</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Linux%E3%81%9D%E3%81%AE%E4%BB%96_-_%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&amp;diff=14620"/>
		<updated>2026-04-06T02:05:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* ディスクイメージファイルの拡張 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
ディスクイメージは、ディスク全体またはパーティションの完全なコピーであり、後で復元や分析が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、システムのバックアップや移行、テスト等で非常に役立つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ディスクイメージファイルの拡張 ==&lt;br /&gt;
Linux OSのディスクイメージファイルをマウントして使用する場合、ディスクイメージファイルの空き領域が不足する時がある。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、ディスクイメージファイルのサイズを変更する手順について記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 方法 1 : 非対話式 (推奨) ====&lt;br /&gt;
まず、ディスクイメージファイルを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu &amp;lt;ディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 2.54 GiB, 2722103296 バイト, 5316608 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス                                        起動 開始位置  終了位置    セクタ   サイズ Id   タイプ&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; コマンドを使用して、空き領域を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
上記の例では、最初のパーティションはブートパーティション（カーネルとバイナリブロブ）、2番目のパーティションはファイルシステムである。&amp;lt;br&amp;gt;&lt;br /&gt;
ディスクイメージファイルに空の空き領域を追加して、2番目のパーティションを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dd if=/dev/zero bs=1M count=3072 &amp;gt;&amp;gt; &amp;lt;元のディスクイメージファイル&amp;gt;.img  # この例では、3[GB]を追加している&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
空き領域を追加したディスクイメージファイルの情報を表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、出力結果は空き領域が追加されたサイズ(以下の例では、5.54[GiB])と表示するが、ディスクイメージファイルの2番目のパーティションのサイズはまだ変更されていない。(以下の例では、2[G])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu &amp;lt;元のディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 5.54 GiB, 5943328768 バイト, 11608064 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス                                        起動 開始位置  終了位置    セクタ   サイズ Id   タイプ&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これを解決するため、ディスクイメージファイルの空の追加領域の部分を埋めるようにパーティションのサイズを変更する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
まず、ループバックデバイスを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -f -P --show &amp;lt;元のディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;がディスクイメージファイル全体、/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p2がサイズ拡張するパーティションとして設定される。&amp;lt;br&amp;gt;&lt;br /&gt;
他のループバックデバイスを選択する場合は、未使用のループバックデバイスのドライブを割り当てる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;  # X : ループバックデバイス番号&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 sudo fdisk -lu /dev/loop0&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク /dev/loop0: 5.54 GiB, 5943328768 バイト, 11608064 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス         起動 開始位置  終了位置    セクタ   サイズ Id  タイプ&lt;br /&gt;
 /dev/loop0p1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 /dev/loop0p2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記の出力例では、/dev/loop0p1はブートパーティション、/dev/loop0p2はルートパーティションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、&amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt; コマンドを非対話モードで実行して、2番目のパーティションのサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;100%&amp;lt;/code&amp;gt; を指定すると、ディスクの残り全領域を使用してパーティションを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted -s /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; resizepart &amp;lt;パーティション番号&amp;gt; 100%&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 sudo parted -s /dev/loop0 resizepart 2 100%&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、上記のコマンドで警告が表示されて失敗する場合は、&amp;lt;code&amp;gt;---pretend-input-tty&amp;lt;/code&amp;gt; オプションを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted ---pretend-input-tty /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; resizepart &amp;lt;パーティション番号&amp;gt; yes 100%&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 sudo parted ---pretend-input-tty /dev/loop0 resizepart 2 yes 100%&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常に拡張されているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted -s /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; print&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 モデル: Loopback デバイス (loopback)&lt;br /&gt;
 ディスク /dev/loop0: 5943MB&lt;br /&gt;
 セクタサイズ (論理/物理): 512B/512B&lt;br /&gt;
 パーティションテーブル: msdos&lt;br /&gt;
 ディスクフラグ:&lt;br /&gt;
 &lt;br /&gt;
 番号   開始     終了    サイズ    タイプ    ファイルシステム       フラグ&lt;br /&gt;
  1    4194kB  541MB   537MB   primary  fat32             lba, type=0c&lt;br /&gt;
  2    541MB   5943MB  5402MB  primary  ext4              type=83&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;e2fsck&amp;lt;/code&amp;gt; コマンドを実行して、拡張したディスクイメージファイルのファイルシステムを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo e2fsck -f /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;  # Xはデバイス番号, Yは拡張したパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;resize2fs&amp;lt;/code&amp;gt; コマンドで拡張したディスクイメージファイルのファイルシステムを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※パーティションのサイズは既に変更しているので、ここではファイルシステムをリサイズ(拡張)する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo resize2fs /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;  # Xはデバイス番号, Yは拡張したパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、ループバックデバイスを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -d /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 方法 2 : 対話式 ====&lt;br /&gt;
まず、ディスクイメージファイルを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu &amp;lt;ディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 2.54 GiB, 2722103296 バイト, 5316608 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス                                        起動 開始位置  終了位置    セクタ   サイズ Id   タイプ&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;コマンドを使用して、空き領域を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
上記の例では、最初のパーティションはブートパーティション（カーネルとバイナリブロブ）、2番目のパーティションはファイルシステムである。&amp;lt;br&amp;gt;&lt;br /&gt;
ディスクイメージファイルに空の空き領域を追加して、2番目のパーティションを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dd if=/dev/zero bs=1M count=3072 &amp;gt;&amp;gt; &amp;lt;元のディスクイメージファイル&amp;gt;.img  # この例では、3[GB]を追加している&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
空き領域を追加したディスクイメージファイルの情報を表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、出力結果は空き領域が追加されたサイズ(以下の例では、5.54[GiB])と表示するが、ディスクイメージファイルの2番目のパーティションのサイズはまだ変更されていない。(以下の例では、2[G])&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu &amp;lt;元のディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク 2023-10-10-raspios-bookworm-arm64-lite.img: 5.54 GiB, 5943328768 バイト, 11608064 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス                                        起動 開始位置  終了位置    セクタ   サイズ Id   タイプ&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 2023-10-10-raspios-bookworm-arm64-lite.img2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これを解決するため、ディスクイメージファイルの空の追加領域の部分を埋めるようにパーティションのサイズを変更する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
まず、ループバックデバイスを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -f -P --show &amp;lt;元のディスクイメージファイル&amp;gt;.img&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;がディスクイメージファイル全体、/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p2がサイズ拡張するパーティションとして設定される。&amp;lt;br&amp;gt;&lt;br /&gt;
他のループバックデバイスを選択する場合は、未使用のループバックデバイスのドライブを割り当てる。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;  # X : ループバックデバイス番号&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 sudo fdisk -lu /dev/loop0&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 ディスク /dev/loop0: 5.54 GiB, 5943328768 バイト, 11608064 セクタ&lt;br /&gt;
 単位: セクタ (1 * 512 = 512 バイト)&lt;br /&gt;
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト&lt;br /&gt;
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト&lt;br /&gt;
 ディスクラベルのタイプ: dos&lt;br /&gt;
 ディスク識別子: 0x7788c428&lt;br /&gt;
 &lt;br /&gt;
 デバイス         起動 開始位置  終了位置    セクタ   サイズ Id  タイプ&lt;br /&gt;
 /dev/loop0p1          8192  1056767 1048576   512M  c   W95 FAT32 (LBA)&lt;br /&gt;
 /dev/loop0p2       1056768  5316607 4259840     2G 83   Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記の出力例では、/dev/loop0p1はブートパーティション、/dev/loop0p2はルートパーティションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、&amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;を実行して、パーティションのサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
2番目のパーティションのサイズを、&amp;lt;code&amp;gt;parted&amp;lt;/code&amp;gt;コマンドのヘッダ出力の&amp;lt;u&amp;gt;Disk&amp;lt;/u&amp;gt;または&amp;lt;u&amp;gt;ディスク&amp;lt;/u&amp;gt;で始まる行で指定された/dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;のフルサイズに変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、&amp;lt;u&amp;gt;ディスク&amp;lt;/u&amp;gt;は5943[MB]である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 (parted) print&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 モデル: Loopback デバイス (loopback)&lt;br /&gt;
 ディスク /dev/loop0: 5943MB&lt;br /&gt;
 セクタサイズ (論理/物理): 512B/512B&lt;br /&gt;
 パーティションテーブル: msdos&lt;br /&gt;
 ディスクフラグ:&lt;br /&gt;
 &lt;br /&gt;
 番号   開始     終了    サイズ    タイプ     ファイルシステム      フラグ&lt;br /&gt;
  1    4194kB  541MB   537MB   primary  fat32             lba, type=0c&lt;br /&gt;
  2    541MB   2722MB  2181MB  primary  ext4              type=83&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2番目のパーティションサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、2番目のパーティション(ルートパーティション)をフルサイズに変更している。&amp;lt;br&amp;gt;&lt;br /&gt;
 (parted) resizepart &amp;lt;パーティション番号&amp;gt; &amp;lt;拡張するサイズ&amp;gt;&lt;br /&gt;
 または&lt;br /&gt;
 (parted) resizepart &amp;lt;パーティション番号&amp;gt; &amp;lt;拡張するサイズの割合&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 実行例&lt;br /&gt;
 (parted) resizepart 2 5943MB&lt;br /&gt;
 または&lt;br /&gt;
 (parted) resizepart 2 100%&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常に拡張されているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 (parted) print&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 モデル: Loopback デバイス (loopback)&lt;br /&gt;
 ディスク /dev/loop0: 5943MB&lt;br /&gt;
 セクタサイズ (論理/物理): 512B/512B&lt;br /&gt;
 パーティションテーブル: msdos&lt;br /&gt;
 ディスクフラグ:&lt;br /&gt;
 &lt;br /&gt;
 番号   開始     終了    サイズ    タイプ    ファイルシステム       フラグ&lt;br /&gt;
  1    4194kB  541MB   537MB   primary  fat32             lba, type=0c&lt;br /&gt;
  2    541MB   5943MB  5402MB  primary  ext4              type=83&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;e2fsck&amp;lt;/code&amp;gt;コマンドを実行して、拡張したディスクイメージファイルのファイルシステムを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo e2fsck -f /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;  # Xはデバイス番号, Yは拡張したパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;resize2fs&amp;lt;/code&amp;gt;で拡張したディスクイメージファイルのファイルシステムを拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※パーティションのサイズは既に変更しているので、ここではファイルシステムをリサイズ（拡張）する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo resize2fs /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;  # Xはデバイス番号, Yは拡張したパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ディスクイメージファイルが正常に拡張されているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo parted /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (parted) print&lt;br /&gt;
 &lt;br /&gt;
 # 出力例 (正常に拡張されている場合)&lt;br /&gt;
 モデル: Loopback デバイス (loopback)&lt;br /&gt;
 ディスク /dev/loop0: 5943MB&lt;br /&gt;
 セクタサイズ (論理/物理): 512B/512B&lt;br /&gt;
 パーティションテーブル: msdos&lt;br /&gt;
 ディスクフラグ:&lt;br /&gt;
 &lt;br /&gt;
 番号   開始     終了    サイズ    タイプ     ファイルシステム      フラグ&lt;br /&gt;
  1    4194kB  541MB   537MB   primary  fat32             lba, type=0c&lt;br /&gt;
  2    541MB   5943MB  5402MB  primary  ext4              type=83&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、ループバックデバイスを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -d /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 方法 3 ====&lt;br /&gt;
まず、空のイメージファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、拡張するサイズを5[GiB]としている。&amp;lt;br&amp;gt;&lt;br /&gt;
 truncate -s 5GiB &amp;lt;空のイメージファイル名&amp;gt;.img&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
元のディスクイメージファイルと空のイメージファイルを結合する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;lt;元のディスクイメージファイル&amp;gt;.img &amp;lt;空のイメージファイル名&amp;gt;.img &amp;gt; &amp;lt;結合したディスクイメージファイル名&amp;gt;.img&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
現在空いているループバックデバイスを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -f&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
結合したディスクイメージファイルをループバックデバイスにマウントする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; &amp;lt;結合したディスクイメージファイル名&amp;gt;.img  # X : ループバックデバイス番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にマウントできたかどうかを確認するため、ループバックデバイスの設定状況を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -a&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0: []: (&amp;lt;結合したディスクイメージファイル名&amp;gt;.img)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パーティションテーブルを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk -lu /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 Disk /dev/loop0: 5.6 GiB, 3054501888 bytes, 5965824 sectors&lt;br /&gt;
 Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
 Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
 I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
 Disklabel type: gpt&lt;br /&gt;
 Disk identifier: 00CF01F2-3FB1-498B-BFE9-BA5B68507014&lt;br /&gt;
 &lt;br /&gt;
 デバイス     起動  Start 最後から セクタ  Size Id タイプ&lt;br /&gt;
 /dev/loop0p1         2048   1048576   131072  511M  c W95 FAT32 (LBA)&lt;br /&gt;
 /dev/loop0p2      1048576  13913020 13313020  4.1G 83 Linux ファイルシステム&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
結合したディスクイメージファイルのパーティションを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo fdisk /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 Welcome to fdisk (util-linux 2.37.4).&lt;br /&gt;
 Changes will remain in memory only, until you decide to write them.&lt;br /&gt;
 Be careful before using the write command.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、拡張するパーティションを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;キーを入力した後、拡張するパーティション番号を入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): d&lt;br /&gt;
 パーティション番号 (1,2, default 2): 2&lt;br /&gt;
 &lt;br /&gt;
 Partition 2 has been deleted.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、拡張するパーティションの種類を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、プライマリとして使用するため、&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;キーを入力した後、&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
なお、extendedパーティション(拡張パーティション)は、主にスワップ向けに使用される。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): n&lt;br /&gt;
 Partition type&lt;br /&gt;
    p   primary (1 primary, 0 extended, 3 free)&lt;br /&gt;
    e   extended (container for logical partitions)&lt;br /&gt;
 &lt;br /&gt;
 Select (default p): p&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
拡張するパーティション番号および拡張するサイズ(セクタ番号の最初と最後)を入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトの値は、最大セクタサイズである。&amp;lt;br&amp;gt;&lt;br /&gt;
 パーティション番号 (2-4, default 2): 2&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 First sector (1048576-15913020, default 1048576): &lt;br /&gt;
 Last sector, +sectors or +size{K,M,G,T,P} (1048576-15913020, default 15913020): &lt;br /&gt;
 &lt;br /&gt;
 Created a new partition 2 of type &#039;Linux&#039; and of size 7.1 GiB.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
拡張するパーティションタイプを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;キーを入力した後、パーティション番号およびLinuxファイルシステムを示すパーティションタイプである&amp;lt;code&amp;gt;83&amp;lt;/code&amp;gt;を入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): t&lt;br /&gt;
 パーティション番号 (1,2, default 2): 2&lt;br /&gt;
 Partition type (type L to list all types): 83&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 Changed type of partition &#039;Linux&#039; to &#039;Linux&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定したパーティションを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): p&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 Disk /dev/loop0: 7.59 GiB, 8147483648 bytes, 14864445 sectors&lt;br /&gt;
 Units: sectors of 1 * 512 = 512 bytes&lt;br /&gt;
 Sector size (logical/physical): 512 bytes / 512 bytes&lt;br /&gt;
 I/O size (minimum/optimal): 512 bytes / 512 bytes&lt;br /&gt;
 Disklabel type: gpt&lt;br /&gt;
 Disk identifier: 00CF01F2-3FB1-498B-BFE9-BA5B68507014&lt;br /&gt;
 &lt;br /&gt;
 デバイス     起動  Start 最後から セクタ  Size Id タイプ&lt;br /&gt;
 /dev/loop0p1         2048   1048576  1048576  511M  c EFI システム&lt;br /&gt;
 /dev/loop0p2      1048576  15913020 14864445  7.1G 83 Linux ファイルシステム&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記で設定したパーティションを書き込む。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 コマンド (m でヘルプ): w&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 The partition table has been altered.&lt;br /&gt;
 Calling ioctl() to re-read partition table.&lt;br /&gt;
 Re-reading the partition table failed.: 無効な引数です&lt;br /&gt;
 &lt;br /&gt;
 The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ループバックデバイスを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo losetup -d /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ディスクイメージをマウントする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo mount -o loop,offset=&amp;lt;オフセット番号  (1セクタサイズ ✕ セクタの開始番号)&amp;gt; &amp;lt;結合したディスクイメージファイル名&amp;gt;.img &amp;lt;マウントするディレクトリ&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
拡張の設定をしたパーティションを拡大する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 設定されているループバックデバイス名を確認&lt;br /&gt;
 sudo losetup -a&lt;br /&gt;
 &lt;br /&gt;
 # パーティションの拡大&lt;br /&gt;
 sudo resize2fs /dev/loop&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
拡張したパーティションを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 df&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 /dev/loop0                    1048576    15913020     14864445  35% /mnt&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SDカードのパーティションの拡張 ==&lt;br /&gt;
SDカードの場合は、SDカードをPCに挿入してパーティションのサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
イメージファイルをフラッシュした後にパーティションのサイズを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パーティションのサイズを拡張するには、以下に示す2つの方法がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Growpartの使用&lt;br /&gt;
*# GrowPartをインストールする。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo zypper install growpart&amp;lt;/code&amp;gt;&lt;br /&gt;
*# GrowPartを実行して、パーティションのサイズを設定する。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo growpart  /dev/mmcblk&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#00A000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;  # Xはストレージデバイス番号, Yはパーティション番号&lt;br /&gt;
*# パーティションのサイズを変更する。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo resize2fs /dev/mmcblk&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;p&amp;lt;span style=&amp;quot;color:#00A000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;  # Xはストレージデバイス番号, Yはパーティション番号&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Partedの使用 (推奨)&lt;br /&gt;
*# PCにSDカードを挿入する。&lt;br /&gt;
*# Partedを実行して、パーティションのサイズを設定する。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo parted /dev/sd&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;  # Xはストレージデバイス番号&lt;br /&gt;
*#: &amp;lt;code&amp;gt;(parted) resizepart 2 100%&amp;lt;/code&amp;gt;&lt;br /&gt;
*#: &amp;lt;code&amp;gt;(parted) quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*# パーティションのサイズを変更する。&lt;br /&gt;
*#: &amp;lt;code&amp;gt;sudo resize2fs /dev/sd&amp;lt;span style=&amp;quot;color:#C00000&amp;quot;&amp;gt;X&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00A000&amp;quot;&amp;gt;Y&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;  # Xはストレージデバイス番号, Yはパーティション番号&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意 1&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;実機の内部からパーティションのサイズを変更することは禁止である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;現在マウントされているパーティションのサイズを変更すると、奇妙な結果になることがある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意 2 : PinePhone Beta/ProのeMMCの拡張&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;PinePhone Beta/ProのeMMCを拡張する場合、Jumpdriveを使用して、PCとUSBケーブルで接続してeMMCに直接アクセスする。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;その後、eMMCのパーティションのサイズを変更する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== qcow2ファイルのサイズの拡張 ==&lt;br /&gt;
KVMで作成した仮想マシンのディスクファイル(qcow2ファイル)を拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
なお、仮想マシンのセットアップが完了していることが前提となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
仮想マシンのディスクファイルのリサイズは、&amp;lt;code&amp;gt;virsh&amp;lt;/code&amp;gt;コマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのパス&amp;gt; &amp;lt;ファイルサイズ&amp;gt; [--pool &amp;lt;プール名 または UUID&amp;gt;] [--allocate] [--delta] [--shrink]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイルサイズは、&amp;lt;code&amp;gt;50GB&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;50000MB&amp;lt;/code&amp;gt;、または、&amp;lt;code&amp;gt;50GiB&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;5120MiB&amp;lt;/code&amp;gt;等と記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--allocate&amp;lt;/code&amp;gt;オプションは、rawファイルにのみ対応しており、qcow2ファイルに対して指定するとエラーになるので注意する。 (基本的には使用しない)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--delta&amp;lt;/code&amp;gt;オプションを付加しない場合、&amp;lt;ファイルサイズ&amp;gt;には変更後のサイズを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--delta&amp;lt;/code&amp;gt;オプションを付加する場合、代わりにサイズ拡張 / 縮小の差分の値を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--shrink&amp;lt;/code&amp;gt;オプションを付加する場合、サイズを縮小する際に指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
拡張の際に指定するとエラーとなることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 拡張手順 ====&lt;br /&gt;
まず、プール名を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh pool-list&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 #  Name                     State    Autostart&lt;br /&gt;
 # ----------------------------------------------&lt;br /&gt;
 #  default                  active   yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プール名にある仮想マシン名を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-list --pool &amp;lt;プール名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 #  名前          パス&lt;br /&gt;
 # -----------------------------------------------------&lt;br /&gt;
 #  RHEL_9       /run/media/suse/SAMSUNG860EVO/KVM/RHEL_9&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
現在のボリュームサイズを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-info --pool &amp;lt;プール名&amp;gt; &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 名前:       RHEL_9.qcow2&lt;br /&gt;
 タイプ:      ファイル&lt;br /&gt;
 容量:       40.00 GiB&lt;br /&gt;
 割り当て:    12.19 GiB&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、プール名 : defaultに存在するサイズ : 50[GiB]の仮想マシン名 : RHEL_9.qcow2を、50[GiB]に拡張している。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す2種類のコマンドは、同様の結果になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、&amp;lt;code&amp;gt;--delta&amp;lt;/code&amp;gt;を使用する方が現在の容量を意識せずに済む。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt; --pool &amp;lt;プール名&amp;gt; --delta 10GiB&lt;br /&gt;
 # または&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt; --pool &amp;lt;プール名&amp;gt; 50GiB&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、仮想マシンのファイルサイズを5[GiB]縮小している。&amp;lt;br&amp;gt;&lt;br /&gt;
ファイルサイズの縮小する場合はデータを破壊するリスクがあるため、実行する前にバックアップを作成した方がよい。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt; --pool &amp;lt;プール名&amp;gt; --delta -5GiB --shrink&lt;br /&gt;
 # または&lt;br /&gt;
 sudo virsh vol-resize &amp;lt;仮想マシン名 または 仮想マシンのファイルのパス&amp;gt; --pool &amp;lt;プール名&amp;gt; 35GiB --shrink&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14619</id>
		<title>インストール - OpenCode</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_OpenCode&amp;diff=14619"/>
		<updated>2026-04-05T08:56:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* デスクトップアプリケーションのビルド */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
OpenCodeは、オープンソースのAIコーディングエージェントである。&amp;lt;br&amp;gt;&lt;br /&gt;
ターミナルベースのTUI (ターミナルユーザーインターフェース) を提供し、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要な特徴として、以下が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Anthropic (Claude)、OpenAI (GPT)、Google (Gemini)、GitHub Copilot、Ollama等のモデルの主要プロバイダをサポート&lt;br /&gt;
* 2026年1月にGitHub Copilotとの公式パートナーシップを発表&lt;br /&gt;
* プライバシー重視の設計&lt;br /&gt;
*: コードは送信されず、ローカルでの処理を優先&lt;br /&gt;
* CLI、TUI、Desktop アプリ、IDE拡張機能、Webインターフェースを提供&lt;br /&gt;
* MCP (Model Context Protocol) とLSP (Language Server Protocol) をサポート&lt;br /&gt;
* 組み込みエージェント&lt;br /&gt;
** build (開発用)&lt;br /&gt;
** plan (読み取り専用分析)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeは、Go言語でBubble Tea TUIフレームワークを使用して実装されている。&amp;lt;br&amp;gt;&lt;br /&gt;
セッション管理、マルチセッション対応を備え、会話履歴の保存、復元、エクスポートが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Desktop アプリはTauri v2ベースのネイティブアプリケーションとして実装されており、TypeScriptで実装された内部CLI、Rust + SolidJSで構築されたフロントエンドを組み合わせている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 主な機能 ==&lt;br /&gt;
OpenCodeは、多様な機能を提供する包括的なAIコーディングツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| TUI (Bubble Tea) || ターミナルベースの対話型インターフェース&lt;br /&gt;
|-&lt;br /&gt;
| マルチプロバイダ対応 || 75以上のLLMプロバイダをサポート&lt;br /&gt;
|-&lt;br /&gt;
| セッション管理 || 会話履歴の保存、復元、エクスポート&lt;br /&gt;
|-&lt;br /&gt;
| ツール統合 || ファイル操作、Bash実行、テスト実行等&lt;br /&gt;
|-&lt;br /&gt;
| MCP (Model Context Protocol) || 外部ツールとの統合プロトコル&lt;br /&gt;
|-&lt;br /&gt;
| LSP (Language Server Protocol) || 25以上の組み込みLSPサーバーによる言語サーバーとの連携&lt;br /&gt;
|-&lt;br /&gt;
| 組み込みエージェント || build (開発用)&amp;lt;br&amp;gt;plan (読み取り専用分析)&amp;lt;br&amp;gt;general (調査用)&amp;lt;br&amp;gt;explore (コード探索用)&lt;br /&gt;
|-&lt;br /&gt;
| Desktop アプリ || Tauri v2ベースのネイティブアプリ&lt;br /&gt;
|-&lt;br /&gt;
| IDE拡張機能 || VS Code、JetBrains等のIDE拡張&lt;br /&gt;
|-&lt;br /&gt;
| カスタムコマンド || &amp;lt;u&amp;gt;.opencode/commands/&amp;lt;/u&amp;gt; ディレクトリ内でユーザ定義コマンド作成&lt;br /&gt;
|-&lt;br /&gt;
| Git統合 || &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; コマンドでGitバック付きの変更管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応AIプロバイダとモデル ==&lt;br /&gt;
OpenCodeは、75以上のLLMプロバイダに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要プロバイダ一覧 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要プロバイダ一覧&lt;br /&gt;
! プロバイダ !! 認証方法 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| Anthropic || APIキー (&amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt;) || Claude 4.x系をサポート&lt;br /&gt;
|-&lt;br /&gt;
| OpenAI || APIキー (&amp;lt;code&amp;gt;OPENAI_API_KEY&amp;lt;/code&amp;gt;) || GPT-4o、o3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| Google || APIキー (&amp;lt;code&amp;gt;GOOGLE_API_KEY&amp;lt;/code&amp;gt;) || Gemini 3等をサポート&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Copilot || GitHub認証 (OAuth) || &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証&lt;br /&gt;
|-&lt;br /&gt;
| Z.AI || APIキー || GLM-5、GLM-4.7等をサポート&amp;lt;br&amp;gt;GLM Coding Plan対応&lt;br /&gt;
|-&lt;br /&gt;
| AWS Bedrock || AWS認証情報 || Anthropicモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Azure OpenAI || Azureエンドポイント || OpenAIモデルのホスティング&lt;br /&gt;
|-&lt;br /&gt;
| Ollama || ローカル実行 (認証不要) || ローカルモデルの実行&lt;br /&gt;
|-&lt;br /&gt;
| OpenRouter || APIキー || 複数プロバイダのルーティング&lt;br /&gt;
|-&lt;br /&gt;
| Groq || APIキー || 高速推論&lt;br /&gt;
|-&lt;br /&gt;
| Together AI || APIキー || オープンソースモデル&lt;br /&gt;
|-&lt;br /&gt;
| Fireworks AI || APIキー || 高速推論&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 推奨モデル ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 用途別推奨モデル&lt;br /&gt;
! 用途 !! 推奨モデル&lt;br /&gt;
|-&lt;br /&gt;
| 高精度コーディング || Claude Sonnet 4.5、GPT-4o&lt;br /&gt;
|-&lt;br /&gt;
| 高速処理 || Claude Haiku 4.5、Gemini 2.5 Flash&lt;br /&gt;
|-&lt;br /&gt;
| 複雑な推論 || Claude Opus 4.6、o3&lt;br /&gt;
|-&lt;br /&gt;
| ローカル実行 || Qwen 2.5 Coder (Ollama)&lt;br /&gt;
|-&lt;br /&gt;
| コスト効率重視 || GLM-4.7、GLM-5 (Z.AI Coding Plan)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ローカルモデル (Ollama) ====&lt;br /&gt;
Ollamaを使用することで、ローカル環境でモデルを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Ollamaのインストール =====&lt;br /&gt;
Ollamaの公式サイトからインストールスクリプトをダウンロードして実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://ollama.com/install.sh | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== モデルのダウンロード =====&lt;br /&gt;
Ollamaでモデルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ollama pull qwen2.5-coder&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== OpenCodeでの設定 =====&lt;br /&gt;
&amp;lt;code&amp;gt;opencode.json&amp;lt;/code&amp;gt; でOllamaプロバイダを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;ollama/qwen2.5-coder&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 前提条件 ==&lt;br /&gt;
OpenCodeをインストールするには、以下の前提条件を満たす必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 標準インストール時の前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 標準インストール時の前提条件&lt;br /&gt;
! 要件 !! 詳細&lt;br /&gt;
|-&lt;br /&gt;
| OS || Linux、MacOS、Windows&lt;br /&gt;
|-&lt;br /&gt;
| Node.js || npm経由のインストールに必要 (Node.js 18以上)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || AIプロバイダへの接続に必要&lt;br /&gt;
|-&lt;br /&gt;
| AIプロバイダのAPIキー || 使用するプロバイダのAPIキーまたは認証情報&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
OpenCodeのインストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クイックインストール (Linux) ====&lt;br /&gt;
公式のインストールスクリプトを使用してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -fsSL https://opencode.ai/install | bash&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Homebrew (MacOS) ====&lt;br /&gt;
Homebrewを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== npm (全プラットフォーム) ====&lt;br /&gt;
npmを使用してグローバルインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windows (Scoop / Chocolatey) ====&lt;br /&gt;
Windowsでは、ScoopまたはChocolateyを使用してインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Scoopでのインストール =====&lt;br /&gt;
 scoop install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Chocolateyでのインストール =====&lt;br /&gt;
 choco install opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーション ====&lt;br /&gt;
[https://opencode.ai/download OpenCodeの公式Webサイト]にアクセスして、デスクトップアプリケーションをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応プラットフォーム:&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux (deb、rpm)&lt;br /&gt;
* MacOS (dmg)&lt;br /&gt;
* Windows (exe)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== バージョン確認 ====&lt;br /&gt;
インストール後、バージョンを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 初期設定 ==&lt;br /&gt;
OpenCodeの初期設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロバイダの認証 ====&lt;br /&gt;
OpenCodeの初回起動時に、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンド または &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドでAIプロバイダとの認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== GitHub Copilotとの連携 =====&lt;br /&gt;
OpenCodeはGitHub Copilotの公式パートナーであり、&amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; コマンドで認証を設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 /connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、GitHub Copilotを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
Webブラウザが開き、GitHub認証ページが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証を完了すると、OpenCodeでGitHub Copilotが使用可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== APIキーによる認証 =====&lt;br /&gt;
環境変数でAPIキーを設定する方法もある。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export OPENAI_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 export GOOGLE_API_KEY=&amp;quot;...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を永続化する場合は、~/.profileファイル等に環境変数 &amp;lt;code&amp;gt;ANTHROPIC_API_KEY&amp;lt;/code&amp;gt; を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export ANTHROPIC_API_KEY=&amp;quot;sk-...&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Z.AI (GLM) との連携 =====&lt;br /&gt;
Z.AIのGLMモデル (GLM-5、GLM-4.7等) をOpenCodeで使用するには、[https://z.ai/subscribe Z.AI GLM または GLM Coding Plan]のサブスクリプション契約およびAPIキーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====== GLM / GLM Coding Planの概要 ======&lt;br /&gt;
GLM / GLM Coding Planは、Z.AIが提供するAIコーディング向けのサブスクリプションプランである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GLM Coding Plan&lt;br /&gt;
! プラン !! 月額 !! GLM-5対応 !! 5時間あたりの目安&lt;br /&gt;
|-&lt;br /&gt;
| Lite || $10 || 対応 || 約80プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Pro || $30 || 対応 || 約400プロンプト&lt;br /&gt;
|-&lt;br /&gt;
| Max || $120 || 対応 || 約1,600プロンプト&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用可能なモデルは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* GLM-5 (ProプランおよびMaxプランのみ)&lt;br /&gt;
* GLM-4.7&lt;br /&gt;
* GLM-4.6&lt;br /&gt;
* GLM-4.5&lt;br /&gt;
* GLM-4.5-Air&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM-5はピーク時 (日本時間 15:00〜19:00) に3倍、オフピーク時に2倍のクォータを消費する。&amp;lt;br&amp;gt;&lt;br /&gt;
日常的なタスクにはGLM-4.7を使用し、複雑なタスクにのみGLM-5を使用することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== 認証の設定手順 ======&lt;br /&gt;
Z.AIの[https://z.ai/manage-apikey/apikey-list APIコンソール]にアクセスして、APIキーを取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; コマンドを実行して、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIのAPIキーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Select provider&lt;br /&gt;
 │  Z.AI Coding Plan&lt;br /&gt;
 │&lt;br /&gt;
 ◇  Enter your API key&lt;br /&gt;
 │  &amp;lt;Z.AIのAPIキーを入力&amp;gt;&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenCodeを起動して、&amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; コマンドでGLM-5 / GLM-4.7等のモデルを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 /models&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
====== トラブルシューティング : Insufficient balance ======&lt;br /&gt;
GLMモデルの使用時に、以下に示すエラーメッセージが表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 Insufficient balance or no resource package. Please recharge.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このエラーは、OpenCodeのプロバイダ設定がGLM Coding Plan専用のエンドポイントに接続されていない場合に発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GLM Coding Planでは、専用のAPIエンドポイント (https://api.z.ai/api/coding/paas/v4) を使用する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
プロバイダ選択で &amp;lt;u&amp;gt;Z.AI&amp;lt;/u&amp;gt; (通常のAPI) を選択した場合、標準エンドポイント (https://api.z.ai/api/paas/v4) に接続されるため、Coding Planの残高が認識されず、上記のエラーが発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Z.AI APIエンドポイントの違い&lt;br /&gt;
! エンドポイント !! URL !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| 標準 (通常API) || https://api.z.ai/api/paas/v4 || 従量課金のAPI利用&lt;br /&gt;
|-&lt;br /&gt;
| Coding Plan専用 || https://api.z.ai/api/coding/paas/v4 || GLM Coding Planサブスクリプション利用&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対処方法として、一旦Z.AIの認証情報をログアウトしてから、&amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; で再度ログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Z.AIの認証情報をログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth logout&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度ログインして、プロバイダ選択で &amp;lt;u&amp;gt;Z.AI Coding Plan&amp;lt;/u&amp;gt; を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 opencode auth login&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ┌  Add credential&lt;br /&gt;
 │&lt;br /&gt;
 ◆  Select provider&lt;br /&gt;
 │  ● Z.AI Coding Plan    ← Z.AI ではなく、Z.AI Coding Planを選択すること&lt;br /&gt;
 │  ...&lt;br /&gt;
 └&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIキーを入力して認証を完了した後、OpenCodeを起動して正常にGLMモデルが使用できることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定ファイル ====&lt;br /&gt;
OpenCodeの設定ファイルは、&amp;lt;u&amp;gt;プロジェクトルート&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;ホームディレクトリ&amp;lt;/u&amp;gt; に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの場所 =====&lt;br /&gt;
設定ファイルは以下の順序で検索される。&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクトルート&lt;br /&gt;
*: &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* ホームディレクトリ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.opencode/config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 設定ファイルの例 =====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;model&amp;quot;: &amp;quot;anthropic/claude-sonnet-4-5-20250929&amp;quot;,&lt;br /&gt;
   &amp;quot;small_model&amp;quot;: &amp;quot;anthropic/claude-haiku-4-5-20251001&amp;quot;,&lt;br /&gt;
   &amp;quot;keybinds&amp;quot;: {&lt;br /&gt;
      &amp;quot;leader&amp;quot;: &amp;quot;ctrl+x&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能な項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 使用するモデル名 (プロバイダ/モデル名 形式)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-sonnet-4-5-20250929&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;openai/gpt-4o&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;small_model&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 軽量タスク用のモデル (コスト削減に有効)&lt;br /&gt;
*: 例: &amp;lt;code&amp;gt;anthropic/claude-haiku-4-5-20251001&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;keybinds.leader&amp;lt;/code&amp;gt;&lt;br /&gt;
*: リーダーキーの設定&lt;br /&gt;
*: デフォルト : &amp;lt;code&amp;gt;ctrl+x&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIコマンド ==&lt;br /&gt;
OpenCodeは、CLIモードと対話モードの両方で使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要コマンド ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要コマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt; || TUIを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode run &amp;quot;プロンプト&amp;quot;&amp;lt;/code&amp;gt; || 非対話モードでプロンプトを実行&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --model プロバイダ/モデル名&amp;lt;/code&amp;gt; || モデルを指定して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --continue&amp;lt;/code&amp;gt; || 前回のセッションを継続して起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth login&amp;lt;/code&amp;gt; || プロバイダの認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode auth logout&amp;lt;/code&amp;gt; || 認証情報を削除&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp list&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode mcp add サーバー名&amp;lt;/code&amp;gt; || MCPサーバを追加&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode serve&amp;lt;/code&amp;gt; || ヘッドレスバックエンドサーバを起動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --version&amp;lt;/code&amp;gt; || バージョンを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opencode --help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 非対話モード ====&lt;br /&gt;
非対話モードでは、プロンプトをコマンドライン引数として渡すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 使用例 =====&lt;br /&gt;
プロジェクトの概要を説明する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;このプロジェクトの概要を説明して&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
モデルを指定してテストを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 opencode run &amp;quot;テストを実行して&amp;quot; --model anthropic/claude-sonnet-4-5-20250929&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TUI (ターミナルユーザーインターフェース) ==&lt;br /&gt;
OpenCodeのTUIは、ターミナルベースの対話型インターフェースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スラッシュコマンド ====&lt;br /&gt;
TUI内でスラッシュコマンドを使用して、様々な操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ スラッシュコマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/new&amp;lt;/code&amp;gt; || 新しいセッションを開始&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/init&amp;lt;/code&amp;gt; || プロジェクト構造を分析&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/undo&amp;lt;/code&amp;gt; || 直前の変更を元に戻す (Git連携)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/redo&amp;lt;/code&amp;gt; || 元に戻した変更をやり直す&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/compact&amp;lt;/code&amp;gt; || 会話を要約して圧縮&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/share&amp;lt;/code&amp;gt; || 会話の共有リンクを生成&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/export&amp;lt;/code&amp;gt; || 会話をMarkdownでエクスポート&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/sessions&amp;lt;/code&amp;gt; || 過去のセッション一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/models&amp;lt;/code&amp;gt; || 使用可能なモデル一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/agents&amp;lt;/code&amp;gt; || エージェント一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/connect&amp;lt;/code&amp;gt; || プロバイダ認証を設定&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/status&amp;lt;/code&amp;gt; || 現在のステータスを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/mcp&amp;lt;/code&amp;gt; || MCPサーバ一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/theme&amp;lt;/code&amp;gt; || テーマを変更&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/editor&amp;lt;/code&amp;gt; || 外部エディタで入力&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/help&amp;lt;/code&amp;gt; || ヘルプを表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/commands&amp;lt;/code&amp;gt; || コマンド一覧を表示&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/exit&amp;lt;/code&amp;gt; || OpenCodeを終了&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== キーバインド ====&lt;br /&gt;
OpenCodeのリーダーキーのデフォルトは、[Ctrl] + [X]キーである。&amp;lt;br&amp;gt;&lt;br /&gt;
リーダーキーを押した後に各キーを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ キーバインド一覧&lt;br /&gt;
! キー !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [N] || 新しいセッション&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [L] || セッション一覧&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [T] || タイムライン&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [M] || モデル選択ダイアログ&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [X] -&amp;gt; [C] || コンパクト表示&lt;br /&gt;
|-&lt;br /&gt;
| [Ctrl] + [P] || コマンドパレット&lt;br /&gt;
|-&lt;br /&gt;
| [Tab] || Plan/Buildエージェント切替&lt;br /&gt;
|-&lt;br /&gt;
| [Page Up] / [Page Down] || スクロール&lt;br /&gt;
|-&lt;br /&gt;
| [Shift] + [Enter] || 改行入力&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル参照とBashコマンド ====&lt;br /&gt;
TUI内でファイル参照とBashコマンドの実行ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ファイル参照 =====&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; でファイルをファジー検索して参照を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 @filename&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Bashコマンドの実行 =====&lt;br /&gt;
&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; をプレフィックスとしてBashコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 !ls -la&lt;br /&gt;
 !git status&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CLIバイナリのビルド (SUSE) ==&lt;br /&gt;
OpenCode CLIバイナリをSUSE環境でソースコードからビルドすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルドの前提条件&lt;br /&gt;
! 項目 !! 要件&lt;br /&gt;
|-&lt;br /&gt;
| OS || &lt;br /&gt;
* RHEL 9 / 10&lt;br /&gt;
* SUSE 15 / 16&lt;br /&gt;
|-&lt;br /&gt;
| Bun || 1.3.x (&amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; 内の &amp;lt;code&amp;gt;packageManager&amp;lt;/code&amp;gt; で &amp;lt;code&amp;gt;bun@1.3.9&amp;lt;/code&amp;gt; を指定)&lt;br /&gt;
|-&lt;br /&gt;
| git || ブランチ名取得に使用 (Gitリポジトリでない場合は環境変数で回避可能)&lt;br /&gt;
|-&lt;br /&gt;
| ネットワーク || ビルド時に https://models.dev/api.json からモデルデータを取得&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 前提条件の確認コマンド =====&lt;br /&gt;
 # Bunバージョン確認 (1.3.9が必要)&lt;br /&gt;
 bun --version&lt;br /&gt;
 &lt;br /&gt;
 # ネットワーク接続の確認&lt;br /&gt;
 curl -s https://models.dev/api.json | head -c 100&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルド方式の説明 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビルド方式の説明&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| 言語 || TypeScript (Bun ランタイム)&lt;br /&gt;
|-&lt;br /&gt;
| ビルド方式 || &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; の &amp;lt;code&amp;gt;compile: true&amp;lt;/code&amp;gt; でスタンドアロン実行ファイルを生成&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/opencode/script/build.ts&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 出力 || Bunランタイムを内蔵した単一バイナリ (&amp;lt;code&amp;gt;opencode&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 環境変数の設定 ====&lt;br /&gt;
ソースディレクトリがGitリポジトリでない場合、&amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; が失敗するため、環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.14&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 依存パッケージのインストール ====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このプロジェクトはBunワークスペース構成のモノレポである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;bun install&amp;lt;/code&amp;gt; コマンドを実行して、ルートおよび全パッケージの依存関係がインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ビルドの実行 ====&lt;br /&gt;
ビルドスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; フラグは現在のプラットフォーム向けのみビルドする。(例: linux-x64)&amp;lt;br&amp;gt;&lt;br /&gt;
フラグなしで実行すると全11プラットフォーム分のクロスコンパイルを試みる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドスクリプトの処理内容:&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; からモデルデータを取得し、TypeScript スナップショットを生成&lt;br /&gt;
* &amp;lt;code&amp;gt;@opentui/core&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;@parcel/watcher&amp;lt;/code&amp;gt; のネイティブバインディングをインストール&lt;br /&gt;
* &amp;lt;code&amp;gt;Bun.build()&amp;lt;/code&amp;gt; で TypeScript をスタンドアロンバイナリにコンパイル&lt;br /&gt;
* &amp;lt;code&amp;gt;packages/opencode/dist/opencode-linux-x64/bin/opencode&amp;lt;/code&amp;gt; に出力&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
ビルドが完了したら、バイナリが生成されたか確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # バイナリが生成されたか確認&lt;br /&gt;
 ls -la packages/opencode/dist/opencode-linux-x64/bin/opencode&lt;br /&gt;
 &lt;br /&gt;
 # バージョン表示で動作確認&lt;br /&gt;
 ./packages/opencode/dist/opencode-linux-x64/bin/opencode --help&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch --show-current&amp;lt;/code&amp;gt; 失敗 || ソースがGitリポジトリではない || 下記の環境変数を設定する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;OPENCODE_VERSION=&amp;lt;バージョン  例: 1.1.53&amp;gt;&amp;lt;br&amp;gt;OPENCODE_CHANNEL=latest&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;models.dev&amp;lt;/code&amp;gt; に接続できない || ネットワーク制限 || 事前に &amp;lt;u&amp;gt;api.json&amp;lt;/u&amp;gt; をダウンロードして、&amp;lt;code&amp;gt;MODELS_DEV_API_JSON=/path/to/api.json&amp;lt;/code&amp;gt; で指定する。&lt;br /&gt;
|-&lt;br /&gt;
| GLIBCバージョン不足 || SUSEのGLIBCのバージョンが古い || &amp;lt;code&amp;gt;--single&amp;lt;/code&amp;gt; に加えて &amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加&amp;lt;br&amp;gt;または、muslビルドを検討する。&lt;br /&gt;
|-&lt;br /&gt;
| native module のビルド失敗 || C / C++ コンパイラ不足 || ビルドツールをインストールする。&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo zypper install gcc gcc-c++ make&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== オフライン環境でのビルド =====&lt;br /&gt;
ネットワークに接続できない場合、モデルデータを事前にダウンロードしておく必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 # オンライン環境で事前にダウンロード&lt;br /&gt;
 curl -o api.json https://models.dev/api.json&lt;br /&gt;
 &lt;br /&gt;
 # ビルド時にローカルファイルを指定&lt;br /&gt;
 export MODELS_DEV_API_JSON=/path/to/api.json&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== baselineビルド =====&lt;br /&gt;
CPUがAVX2命令セットをサポートしていない場合、&amp;lt;code&amp;gt;--baseline&amp;lt;/code&amp;gt; フラグを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single --baseline&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== デスクトップアプリケーションのビルド ==&lt;br /&gt;
OpenCode Desktopは、Tauri v2ベースのデスクトップアプリケーションである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デスクトップアプリケーションの構成 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Desktop アプリの構成&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| フロントエンド || SolidJS + Vite (TypeScript)&lt;br /&gt;
|-&lt;br /&gt;
| バックエンド || Rust (Tauri v2 シェル)&lt;br /&gt;
|-&lt;br /&gt;
| サイドカー || OpenCode CLI バイナリ (CLIバイナリのビルドで作成したもの)&lt;br /&gt;
|-&lt;br /&gt;
| ビルドスクリプト || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; 配下&lt;br /&gt;
|-&lt;br /&gt;
| 出力形式 (Linux) || debパッケージ、rpmパッケージ&lt;br /&gt;
|-&lt;br /&gt;
| ソースディレクトリ || &amp;lt;u&amp;gt;packages/desktop/&amp;lt;/u&amp;gt; (フロントエンド)&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;packages/desktop/src-tauri/&amp;lt;/u&amp;gt; (Rust)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビルドの前提条件 ====&lt;br /&gt;
===== OpenCode CLIバイナリのビルド =====&lt;br /&gt;
デスクトップアプリケーションでは、OpenCode CLIバイナリをサイドカーとしてバンドルする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、まず、OpenCode CLIバイナリのビルドを完了させること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Rustツールチェーン =====&lt;br /&gt;
Tauri v2 のビルドには、Rustが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Rustのインストール (未インストールの場合)&lt;br /&gt;
 curl --proto &#039;=https&#039; --tlsv1.2 https://sh.rustup.rs -sSf | sh&lt;br /&gt;
 &lt;br /&gt;
 # 環境変数の設定を反映&lt;br /&gt;
 source &amp;quot;$HOME/.cargo/env&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # バージョン確認&lt;br /&gt;
 rustc --version&lt;br /&gt;
 cargo --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 依存ライブラリのインストール =====&lt;br /&gt;
Tauri v2公式ドキュメントに基づく依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install -t pattern devel_basis&lt;br /&gt;
 sudo zypper install curl wget file webkit2gtk3-devel libopenssl-devel libappindicator3-1 librsvg-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ソースコードのダウンロード =====&lt;br /&gt;
[https://github.com/anomalyco/opencode/releases OpenCodeのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf opencode-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== デスクトップアプリケーションのビルド ====&lt;br /&gt;
===== Step 1 : 環境変数の設定 =====&lt;br /&gt;
環境変数を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export OPENCODE_VERSION=&amp;lt;バージョン  例 : 1.2.4&amp;gt;&lt;br /&gt;
 export OPENCODE_CHANNEL=latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2 : 依存パッケージのインストール =====&lt;br /&gt;
プロジェクトディレクトリに移動して、依存パッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /path/to/opencode-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
 bun install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、bun installに失敗する場合は、node-gypをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun add node-gyp -D&lt;br /&gt;
 # または&lt;br /&gt;
 npm install -g node-gyp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 2.5 : OpenCode Desktopの最大化に関する不具合 =====&lt;br /&gt;
OpenCode Desktopにおいて、前回終了したウィンドウサイズで起動できるようにする場合は、以下に示すファイルの60行目をコメントアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 vi /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 // /path/to/opencode-&amp;lt;バージョン&amp;gt;/packages/desktop/src-tauri/src/windows.rsファイル&lt;br /&gt;
 &lt;br /&gt;
 // 編集前&lt;br /&gt;
 .maximized(true)&lt;br /&gt;
 &lt;br /&gt;
 // 編集後&lt;br /&gt;
 //.maximized(true)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 3 : CLIバイナリのビルド (未完了の場合) =====&lt;br /&gt;
サイドカーとなるOpenCode CLIバイナリが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
CLIバイナリのビルド手順を完了していない場合は、OpenCode CLIバイナリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./packages/opencode/script/build.ts --single&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下記のエラーが表示される場合がある。&lt;br /&gt;
 | // relax version requirement&lt;br /&gt;
 | const expectedBunVersionRange = `^${expectedBunVersion}`&lt;br /&gt;
 |&lt;br /&gt;
 | if (!semver.satisfies(process.versions.bun, expectedBunVersionRange)) {&lt;br /&gt;
 |   throw new Error(`This script requires bun@${expectedBunVersionRange}, but you are using bun@${process.versions.bun}`)&lt;br /&gt;
 &lt;br /&gt;
 error: This script requires bun@^X.X.X, but you are using bun@X.X.X&lt;br /&gt;
       at /path/to/opencode-X.X.XX/packages/script/src/index.ts:16:13&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この時、bunをアップデートする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun upgrade&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Step 4 : サイドカーの配置 =====&lt;br /&gt;
OpenCode CLIバイナリを、Tauriが期待するサイドカーディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p packages/desktop/src-tauri/sidecars&lt;br /&gt;
 cp packages/opencode/dist/opencode-linux-x64/bin/opencode \&lt;br /&gt;
    packages/desktop/src-tauri/sidecars/opencode-cli-x86_64-unknown-linux-gnu&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;tauri.conf.json&amp;lt;/u&amp;gt; ファイル内の &amp;lt;code&amp;gt;externalBin&amp;lt;/code&amp;gt; に &amp;lt;u&amp;gt;sidecars/opencode-cli&amp;lt;/u&amp;gt; が指定されており、Tauriがターゲットトリプル (&amp;lt;code&amp;gt;x86_64-unknown-linux-gnu&amp;lt;/code&amp;gt;) を付与して検索する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 5 : フロントエンドのビルド確認 (任意) =====&lt;br /&gt;
Viteビルドは、&amp;lt;code&amp;gt;tauri build&amp;lt;/code&amp;gt; コマンドの &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; で自動実行されるが、事前に確認する場合は以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop build&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Step 6 : Tauriビルドの実行 =====&lt;br /&gt;
Tauriビルドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記のコマンドは、以下に示す事柄を実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;beforeBuildCommand&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;bun run build&amp;lt;/code&amp;gt;) でフロントエンドをビルドする。&lt;br /&gt;
* Cargo (Rust) でネイティブバイナリをコンパイルする。&lt;br /&gt;
* サイドカー (OpenCode CLIバイナリ) をバンドルに含める。&lt;br /&gt;
* deb / rpmパッケージを生成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Cargo.toml&amp;lt;/u&amp;gt; ファイルにgitパッチ依存 (specta、tauri 本体) があるため、ネットワーク接続が必須である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== 生成されたファイルの確認 =====&lt;br /&gt;
以下に示すディレクトリにファイルが生成される。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 # debパッケージ&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/bundle/deb/*.deb&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリ (直接実行も可能)&lt;br /&gt;
 ls -la packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 動作確認 ====&lt;br /&gt;
RPMパッケージをインストールして確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMパッケージをインストールして確認&lt;br /&gt;
 sudo zypper install ./packages/desktop/src-tauri/target/release/bundle/rpm/*.rpm&lt;br /&gt;
 &lt;br /&gt;
 ## または&lt;br /&gt;
 &lt;br /&gt;
 # 実行バイナリを直接起動&lt;br /&gt;
 ./packages/desktop/src-tauri/target/release/OpenCode&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対策&lt;br /&gt;
|-&lt;br /&gt;
| cargo buildコマンド実行時に、git依存の取得に失敗 || ネットワーク接続なし / プロキシ || Cargo.tomlファイルにgit パッチ依存あり、ネットワーク接続が必須&lt;br /&gt;
|-&lt;br /&gt;
| opencode-cli-x86_64-unknown-linux-gnu not found || サイドカーが配置されていない || サイドカーの配置手順を実行して、OpenCode CLIバイナリをコピーする。&lt;br /&gt;
|-&lt;br /&gt;
| 画面が真っ白 / WebView 描画されない || Wayland環境の問題 || 環境変数 &amp;lt;code&amp;gt;OC_ALLOW_WAYLAND=1&amp;lt;/code&amp;gt; でWaylandを強制する。&lt;br /&gt;
|-&lt;br /&gt;
| RPMパッケージが生成されない || tauri.conf.jsonファイルのtargets設定 || deb、rpmが設定されていることを確認する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 特定パッケージ形式のみビルド =====&lt;br /&gt;
全形式をビルドする必要がない場合、&amp;lt;code&amp;gt;--bundles&amp;lt;/code&amp;gt; フラグで指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RPMのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles rpm&lt;br /&gt;
 &lt;br /&gt;
 # debのみ&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --bundles deb&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== デバッグビルド =====&lt;br /&gt;
問題の調査が必要な場合、デバッグビルドを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
 bun run --cwd packages/desktop tauri build --debug&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デバッグビルドではDevToolsが有効になり、アプリケーション内で右クリック -&amp;gt; [Inspect Element]が利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Oh my OpenCode ==&lt;br /&gt;
Oh my OpenCodeは、OpenCode用のマルチエージェントオーケストレーションプラグインである。&amp;lt;br&amp;gt;&lt;br /&gt;
フック、MCPサーバ、スキル、専門エージェントを活用してOpenCodeの機能を拡張する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GitHubリポジトリ&lt;br /&gt;
*: https://github.com/code-yeongyu/oh-my-opencode oh-my-opencode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主な機能 ====&lt;br /&gt;
Oh my OpenCodeは以下に示す機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Oh my OpenCode 機能一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; || 複雑なタスクを専門エージェントに自動分割して並列処理するマジックワード&lt;br /&gt;
|-&lt;br /&gt;
| フック統合 || ツール実行前後に自動実行されるフック (コード品質チェック、テスト自動実行等)&lt;br /&gt;
|-&lt;br /&gt;
| MCP統合 || Context7 (ライブラリドキュメント取得)、Sequential Thinking (構造的推論)&lt;br /&gt;
|-&lt;br /&gt;
| LSP/AST解析 || Language Server ProtocolとAST解析による高精度なコード理解&lt;br /&gt;
|-&lt;br /&gt;
| スキルシステム || 再利用可能なプロンプトテンプレート&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;/ultra&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門エージェント ====&lt;br /&gt;
Oh my OpenCodeは以下の専門エージェントを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 専門エージェント一覧&lt;br /&gt;
! エージェント名 !! 役割&lt;br /&gt;
|-&lt;br /&gt;
| Sisyphus || プランニングと実装を担当するメインエージェント&amp;lt;br&amp;gt;タスク分割、実装、テスト、反復改善を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Oracle || コードベース全体の調査・分析を担当&amp;lt;br&amp;gt;プロジェクト構造の把握、依存関係の追跡を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Frontend Engineer || フロントエンド開発を担当&amp;lt;br&amp;gt;React / Next.js等のUI実装、アクセシビリティ対応を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Librarian || ドキュメント管理を担当&amp;lt;br&amp;gt;README、API仕様書、変更履歴の作成・更新を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Explorer || 未知のコードベースの探索を担当&amp;lt;br&amp;gt;新しいプロジェクトの構造理解や技術スタックの調査を行う。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インストール ====&lt;br /&gt;
インストールの前提条件は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* OpenCode v1.0.150以上&lt;br /&gt;
* Node.js または Bun&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Oh my OpenCodeをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest&lt;br /&gt;
 # または&lt;br /&gt;
 npx oh-my-opencode@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
非対話モードでインストールする場合は以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 bunx oh-my-opencode@latest --non-interactive&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
設定ファイルは以下の場所に配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* プロジェクト単位&lt;br /&gt;
*: &amp;lt;u&amp;gt;.opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* グローバル&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/oh-my-opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルはJSONC (コメント付きJSON) 形式で記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に設定ファイルの例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
       &amp;quot;context7&amp;quot;: true,&lt;br /&gt;
       &amp;quot;thinking&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;agents&amp;quot;: {&lt;br /&gt;
       &amp;quot;sisyphus&amp;quot;: true,&lt;br /&gt;
       &amp;quot;oracle&amp;quot;: true,&lt;br /&gt;
       &amp;quot;frontend&amp;quot;: true,&lt;br /&gt;
       &amp;quot;librarian&amp;quot;: true,&lt;br /&gt;
       &amp;quot;explorer&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hooks&amp;quot;: {&lt;br /&gt;
       &amp;quot;afterEdit&amp;quot;: true,&lt;br /&gt;
       &amp;quot;afterWrite&amp;quot;: true&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;skills&amp;quot;: {&lt;br /&gt;
       &amp;quot;ultra&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、各設定項目の説明を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 設定項目一覧&lt;br /&gt;
! カテゴリ !! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | mcpServers || - || MCPサーバの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| context7 || ライブラリドキュメント取得サーバ&lt;br /&gt;
|-&lt;br /&gt;
| thinking || 構造的推論サーバ&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | agents || - || 専門エージェントの有効/無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| sisyphus || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| oracle || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| frontend || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| librarian || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| explorer || 個別に制御可能&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | hooks || - || フックの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| afterEdit || ファイル編集後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| afterWrite || ファイル作成後に自動チェックを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | skills || - || スキルの有効 / 無効を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| ultra || ultraworkスキルを有効化する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 使用方法 ====&lt;br /&gt;
プロンプトに &amp;lt;u&amp;gt;ultrawork&amp;lt;/u&amp;gt; というキーワードを含めるだけで、複雑なタスクを専門エージェントに自動分割して並列処理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 大規模リファクタリング&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このプロジェクトの認証システムをリファクタリングして&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 新機能実装&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork ユーザ管理機能を実装して&amp;lt;/pre&amp;gt;&lt;br /&gt;
* ドキュメント調査&lt;br /&gt;
*: &amp;lt;pre&amp;gt;ultrawork このコードベースを分析してドキュメントを作成して&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アンインストール ====&lt;br /&gt;
プロジェクト単位の設定ファイルを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf .opencode/agents   \&lt;br /&gt;
        .opencode/hooks    \&lt;br /&gt;
        .opencode/skills   \&lt;br /&gt;
        .opencode/mcp.json \&lt;br /&gt;
        .opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
グローバル設定を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 rm -rf ~/.config/opencode/oh-my-opencode.json&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 注意事項 ====&lt;br /&gt;
Oh my OpenCodeを使用する際は以下の点に注意すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* AnthropicモデルのOpenCode対応はコミュニティ主導の取り組みであり、Anthropicの公式サポート対象外である。&lt;br /&gt;
* フック機能により外部コマンドが自動実行されるため、設定内容を事前に確認すること。&lt;br /&gt;
* MCPサーバはネットワークアクセスを行う場合があるため、セキュリティポリシーに準じて使用すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 注意事項 ==&lt;br /&gt;
==== プライバシーとデータ取り扱い ====&lt;br /&gt;
OpenCodeはオープンソースであり、コードの透明性を確保している。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルでの処理を優先、コードの送信は最小限に抑制する。&lt;br /&gt;
* 使用するAIプロバイダのプライバシーポリシーを確認すること。&lt;br /&gt;
* GitHubリポジトリで実装を検証可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 生成コードの検証 ====&lt;br /&gt;
AIが生成したコードは必ずレビューして検証する。&amp;lt;br&amp;gt;&lt;br /&gt;
* コードの動作を確認&lt;br /&gt;
* セキュリティ上の問題がないか確認&lt;br /&gt;
* ライセンス上の問題がないか確認&lt;br /&gt;
* コーディング規約に準拠しているか確認&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
APIキーやパスワード等の機密情報をコードに含めないように注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
* APIキー、パスワード等の機密情報をコードに含めない。&lt;br /&gt;
* 環境変数や設定ファイルで管理する。&lt;br /&gt;
* &amp;lt;u&amp;gt;.gitignore&amp;lt;/u&amp;gt; ファイルで機密情報を含むファイルを除外する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89&amp;diff=14618</id>
		<title>インストール - クリップボード</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_-_%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89&amp;diff=14618"/>
		<updated>2026-04-05T07:18:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* RHEL / SUSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
クリップボードは、システム上のクリップボードに保存された全ての履歴を保持するユーティリティやツールのことである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、様々なクリップボードマネージャとインストール手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CopyQ ==&lt;br /&gt;
==== CopyQとは ====&lt;br /&gt;
CopyQは強力なクリップボードマネージャであり、データの保存、エントリの編集したり、暗号化等をすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、CopyQのインストール方法を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CopyQのインストール ====&lt;br /&gt;
===== Windows =====&lt;br /&gt;
[https://github.com/hluk/CopyQ/releases CopyQのGithub]にアクセスして、Windows向けのEXEファイルをダウンロードする。&lt;br /&gt;
ダウンロードしたファイルをダブルクリックしてインストールする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== RHEL / SUSE =====&lt;br /&gt;
* パッケージ管理システムからインストール&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install copyq&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ソースコードからインストール&lt;br /&gt;
CopyQの依存関係のライブラリをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 &lt;br /&gt;
 ## Qt 5を使用する場合&lt;br /&gt;
 sudo dnf install git cmake extra-cmake-modules gcc-c++ git libXfixes-devel libXtst-devel libSM-devel \&lt;br /&gt;
                  qt5-qtbase-devel qt5-qtdeclarative-devel qt5-qtsvg-devel qt5-qttools-devel qt5-qtwayland-devel qt5-qtx11extras-devel \&lt;br /&gt;
                  libqt5-qtbase-private-headers-devel wayland-devel&lt;br /&gt;
 &lt;br /&gt;
 ## Qt 6を使用する場合&lt;br /&gt;
 sudo dnf install git cmake extra-cmake-modules ninja-build gcc-c++         \&lt;br /&gt;
                  libSM-devel libXfixes-devel libXtst-devel miniaudio-devel \&lt;br /&gt;
                  kf6-kguiaddons-devel kf6-knotifications-devel kf6-kstatusnotifieritem-devel           \&lt;br /&gt;
                  qt6-qtbase-devel qt6-qtbase-private-devel qt6-qtdeclarative-devel qt6-qtsvg-devel     \&lt;br /&gt;
                  qt6-qttools-devel qt6-qtwayland-devel qca-qt6-devel qca-qt6-ossl qtkeychain-qt6-devel \&lt;br /&gt;
                  wayland-devel&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 &lt;br /&gt;
 ## Qt 5を使用する場合&lt;br /&gt;
 sudo zypper install git cmake extra-cmake-modules ninja gcc-c++ \&lt;br /&gt;
                     libXfixes-devel libXtst-devel libSM-devel miniaudio-devel knotifications-devel \&lt;br /&gt;
                     libqt5-qtbase-devel libqt5-qtbase-private-headers-devel libqt5-qtdeclarative-devel libqt5-qtsvg-devel \&lt;br /&gt;
                     libqt5-qttools-devel libqt5-qtwayland-devel libqt5-qtx11extras-devel qca-qt5-devel qtkeychain-qt5-devel \&lt;br /&gt;
                     wayland-devel&lt;br /&gt;
 &lt;br /&gt;
 ## Qt 6を使用する場合&lt;br /&gt;
 sudo zypper install git cmake extra-cmake-modules ninja gcc-c++ \&lt;br /&gt;
                     libXfixes-devel libXtst-devel libSM-devel miniaudio-devel \&lt;br /&gt;
                     kf6-kguiaddons-devel kf6-knotifications-devel kf6-kstatusnotifieritem-devel \&lt;br /&gt;
                     qt6-base-devel qt6-base-private-devel qt6-declarative-devel qt6-svg-devel qt6-tools-devel qt6-wayland-devel \&lt;br /&gt;
                     qca-qt6-devel qtkeychain-qt6-devel wayland-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/hluk/CopyQ/releases CopyQのGithub]にアクセスして、CopyQのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;コマンドを実行して、CopyQのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/hluk/CopyQ.git&lt;br /&gt;
 cd CopyQ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パッケージマネージャからインストールできるQtのバージョンが古い場合は、&amp;lt;br&amp;gt;&lt;br /&gt;
Qtの公式WebサイトからQtをインストールして、環境変数にQtライブラリのパスを追加する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PATH=&amp;quot;/&amp;lt;Qtのインストールディレクトリ&amp;gt;/&amp;lt;Qtのバージョン&amp;gt;/gcc_64/bin:$PATH&amp;quot;;                       \&lt;br /&gt;
 export LD_LIBRARY_PATH=&amp;quot;/&amp;lt;Qtのインストールディレクトリ&amp;gt;/&amp;lt;Qtのバージョン&amp;gt;/gcc_64/bin:$LD_LIBRARY_PATH&amp;quot;; \&lt;br /&gt;
 export PKG_CONFIG_PATH=&amp;quot;$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)&amp;quot;;      \&lt;br /&gt;
 export PKG_CONFIG_PATH=&amp;quot;/&amp;lt;Qtのインストールディレクトリ&amp;gt;/&amp;lt;Qtのバージョン&amp;gt;/gcc_64/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CopyQをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
 &lt;br /&gt;
 cmake  -DCMAKE_BUILD_TYPE=Release                               \&lt;br /&gt;
        -DCMAKE_INSTALL_PREFIX=&amp;lt;CopyQのインストールディレクトリ&amp;gt; \&lt;br /&gt;
        -DCMAKE_C_COMPILER=&amp;lt;GCCの実行ファイルのパス&amp;gt;             \  # GCCコンパイラを指定する場合&lt;br /&gt;
        -DCMAKE_CXX_COMPILER=&amp;lt;G++の実行ファイルのパス&amp;gt;           \  # G++コンパイラを指定する場合&lt;br /&gt;
        -DWITH_QT6=ON                                            \  # Qt 6を使用する場合&lt;br /&gt;
        ..&lt;br /&gt;
 &lt;br /&gt;
 make -j $(nproc)&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* RPMファイルからインストール (SUSEのみ)&lt;br /&gt;
[https://github.com/hluk/CopyQ/releases CopyQのGithub]にアクセスして、SUSE向けのrpmファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルにおいて、以下のコマンドを実行してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install ./copyq_&amp;lt;バージョン&amp;gt;_openSUSE_.*.rpm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、/&amp;lt;CopyQのインストールディレクトリ&amp;gt;/binディレクトリに、CopyQの起動用のラッパーシェルスクリプトを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi /&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # /&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.shファイル&lt;br /&gt;
 &lt;br /&gt;
 #!/usr/bin/env sh&lt;br /&gt;
 &lt;br /&gt;
 appname=&amp;quot;copyq&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # use -f to make the readlink path absolute&lt;br /&gt;
 dirname=&amp;quot;$(dirname -- &amp;quot;$(readlink -f -- &amp;quot;${0}&amp;quot;)&amp;quot; )&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 if [ &amp;quot;$dirname&amp;quot; = &amp;quot;.&amp;quot; ]; then&lt;br /&gt;
    dirname=&amp;quot;$PWD/$dirname&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cd $dirname&lt;br /&gt;
 &lt;br /&gt;
 # Initialize interpreter path&lt;br /&gt;
 export LD_LIBRARY_PATH=&amp;quot;${dirname}/../lib:$LD_LIBRARY_PATH&amp;quot;&lt;br /&gt;
 #export LD_LIBRARY_PATH=&amp;quot;/&amp;lt;Qtのインストールディレクトリ&amp;gt;/&amp;lt;Qtのバージョン&amp;gt;/gcc_64/lib:$LD_LIBRARY_PATH&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Run CopyQ binary&lt;br /&gt;
 &amp;quot;$dirname/$appname&amp;quot; &amp;quot;$@&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CopyQのデスクトップエントリファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.local/share/applications/com.github.hluk.copyq.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.local/share/applications/com.github.hluk.copyq.desktop&lt;br /&gt;
 &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Name=CopyQ&lt;br /&gt;
 GenericName=Clipboard Manager&lt;br /&gt;
 Comment=A cut &amp;amp; paste history utility&lt;br /&gt;
 Exec=/&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.sh --start-server show&lt;br /&gt;
 Icon=copyq&lt;br /&gt;
 &lt;br /&gt;
 # Workaround / fix for issue #1526 that prevents a proper autostart of the tray icon in GNOME&lt;br /&gt;
 X-GNOME-Autostart-Delay=3&lt;br /&gt;
 &lt;br /&gt;
 # The rest is taken from Klipper application.&lt;br /&gt;
 Type=Application&lt;br /&gt;
 GenericName[ja]=クリップボードツール&lt;br /&gt;
 Comment[ja]=カット＆ペースト履歴ユーティリティ&lt;br /&gt;
 Categories=Qt;KDE;Utility;&lt;br /&gt;
 Terminal=false&lt;br /&gt;
 X-KDE-autostart-after=panel&lt;br /&gt;
 X-KDE-StartupNotify=false&lt;br /&gt;
 X-KDE-UniqueApplet=true&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CopyQの自動起動ファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.config/autostart/copyq.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.config/autostart/copyq.desktopファイル&lt;br /&gt;
 &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Name=CopyQ (User Build)&lt;br /&gt;
 GenericName=Clipboard Manager&lt;br /&gt;
 Comment=A cut &amp;amp; paste history utility&lt;br /&gt;
 Path=&lt;br /&gt;
 TryExec=/&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.sh&lt;br /&gt;
 Exec=QT_SCREEN_SCALE_FACTORS=1 /&amp;lt;CopyQのインストールディレクトリ&amp;gt;/bin/copyq.sh --start-server&lt;br /&gt;
 Icon=copyq&lt;br /&gt;
 Categories=Qt;KDE;Office;WordProcessor;&lt;br /&gt;
 MimeType=&lt;br /&gt;
 StartupNotify=false&lt;br /&gt;
 Terminal=false&lt;br /&gt;
 TerminalOptions=&lt;br /&gt;
 X-DBUS-ServiceName=&lt;br /&gt;
 X-DBUS-StartupType=&lt;br /&gt;
 X-GNOME-Autostart-Delay=3&lt;br /&gt;
 X-KDE-StartupNotify=false&lt;br /&gt;
 X-KDE-SubstituteUID=false&lt;br /&gt;
 X-KDE-UniqueApplet=true&lt;br /&gt;
 X-KDE-Username=&lt;br /&gt;
 X-KDE-autostart-after=panel&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SELinuxの設定 ====&lt;br /&gt;
SELinuxを使用している場合、CopyQ向けにセキュリティの設定を行う必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、ポリシーファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo ausearch -c &#039;copyq&#039; --raw | audit2allow -M &amp;lt;ポリシー名  例: CopyQ&amp;gt;&lt;br /&gt;
 例: sudo ausearch -c &#039;copyq&#039; --raw | audit2allow -M my-copyq&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、SELinuxにCopyQ向けのポリシーパッケージファイルをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo semodule -X 300 -i &amp;lt;ポリシーパッケージファイル名  例: CopyQ.pp&amp;gt;&lt;br /&gt;
 例: sudo  semodule -X 300 -i my-copyq.pp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 自動起動の設定 ====&lt;br /&gt;
CopyQを使用する前に、自動起動エントリを設定しておくことを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
スタートアップエントリを設定することは、クリップボードのデータを常に監視して保存するためには重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CopyQの起動エントリを設定するには様々な方法があるが、ここではターミナルに焦点を当てて記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、デスクトップエントリディレクトリに移動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd /usr/local/share/applications&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動起動エントリのディレクトリを作成して、CopyQのデスクトップエントリファイルをそのディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cp com.github.hluk.copyq.desktop ~/.config/autostart/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デスクトップエントリファイルのパーミッションを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
 chmod u+x ~/.config/autostart/com.github.hluk.copyq.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== CopyQの操作方法 ====&lt;br /&gt;
* コピー&lt;br /&gt;
*: CopyQには多くの機能があるが、主となるのはクリップボードマネージャである。&lt;br /&gt;
*: 使用するには、任意のテキストを選択してコピーすると、自動的にCopyQのエントリーとして保存される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* クリップボードに移動&lt;br /&gt;
*: CopyQの古いエントリーをクリップボードに移動する場合は、古いエントリーを選択して[クリップボードに移動]アイコンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* エントリの暗号化&lt;br /&gt;
*: CopyQに保存した機密情報は、暗号化機能を使用すべきである。&lt;br /&gt;
*: 暗号化するには、エントリーを選択して[ロック]アイコンを押下する。そうすると、GnuPGが起動して自動的にデータが暗号化される。&lt;br /&gt;
*: &amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&lt;br /&gt;
*: &amp;lt;u&amp;gt;暗号化機能は、GnuPGが必須である。&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* エントリの作成&lt;br /&gt;
*: CopyQの機能には、クリップボードを使用せずにクリップボードの新規項目を作成する機能がある。&lt;br /&gt;
*: この機能の使い方は、[新規項目]アイコンを押下して、そこからテキストを書き込み、[保存]アイコンを押下する。&lt;br /&gt;
*: すると、CopyQが保存したデータの一覧に、新しいクリップボードエントリが追加される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GPaste ==&lt;br /&gt;
==== GPasteとは ====&lt;br /&gt;
GNOMEベースの優れたクリップボードマネージャであるが、様々なデスクトップ環境でも動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
GPasteは、以下のような機能を持っている。&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEシェルとの統合&lt;br /&gt;
* クリップボードの履歴管理&lt;br /&gt;
* クイックアクセスのショートカット&lt;br /&gt;
* 画像のコピー&lt;br /&gt;
* GTK+3 GUI&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GPasteのインストール ====&lt;br /&gt;
* パッケージ管理システムからインストール&lt;br /&gt;
*: 以下のコマンドを実行して、GPasteをインストールする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo zypper install gpaste gpaste-lang libgpaste11 typelib-1_0-GPaste-1_0 gnome-shell-extension-gpaste&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ソースコードからインストール&lt;br /&gt;
*: GPasteのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;git clone https://github.com/Keruspe/GPaste.git GPaste&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;cd GPaste&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: GPasteのソースコードをビルドしてインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;./autogen.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;mkdir build &amp;amp;&amp;amp; cd build&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;../configure --sysconfdir=/home/&amp;lt;ユーザ名&amp;gt;/.GPaste --prefix=/home/&amp;lt;ユーザ名&amp;gt;/InstallSoftware/GPaste&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;make -j $(nproc)&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo glib-compile-schemas /usr/share/glib-2.0/schemas/&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
** GPasteのアップデート (ソースコードからインストールしている場合のみ)&lt;br /&gt;
**: GPasteをアップグレードした場合は、新しい機能を有効化するために、以下のコマンドを実行する。&lt;br /&gt;
**: &amp;lt;code&amp;gt;gpaste-client dr aka gpaste-client daemon-reexec&amp;lt;/code&amp;gt;&lt;br /&gt;
**: &amp;lt;br&amp;gt;&lt;br /&gt;
**: 次に、以下のコマンドを実行して、デーモンが正常に動作していることを確認する。&lt;br /&gt;
**: &amp;lt;code&amp;gt;gpaste-client daemon-version&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parcellite ==&lt;br /&gt;
==== Parcelliteとは ====&lt;br /&gt;
Parcelliteは、Linux向けのGTK+2の基本的な機能を備えたクリップボードマネージャである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Parcelliteのインストール ====&lt;br /&gt;
Parcelliteの依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install gtk3&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install gtk3 &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[http://parcellite.sourceforge.net/ SourceForge]からソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar zxvf parcellite-&amp;lt;バージョン名&amp;gt;.tar.gz&lt;br /&gt;
 cd parcellite-&amp;lt;バージョン名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Parcelliteのソースコードをコンパイルしてインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./configure --prefix=/home/&amp;lt;ユーザ名&amp;gt;/InstallSoftware/Parcellite&lt;br /&gt;
 make -j 8&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Diodon ==&lt;br /&gt;
==== Diodonのインストール ====&lt;br /&gt;
Diodonのビルドに必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install vala libayatana-appindicator3-devel libpeas-devel zeitgeist-devel xvfb-run wayland-protocols-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DiodonのGithunからソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/diodon-dev/diodon.git&lt;br /&gt;
 cd diodon&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Diodonをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 /&amp;lt;Python3のインストールディレクトリ&amp;gt;/bin/meson -Dprefix=&amp;lt;Diodonのインストールディレクトリ&amp;gt; builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アプリケーションインジケータ用のパッケージを提供していないディストリビューションでは、&amp;lt;br&amp;gt;&lt;br /&gt;
builddir作成コマンドを調整することにより、インジケータのビルドを無効化することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
 /&amp;lt;Python3のインストールディレクトリ&amp;gt;/bin/meson -Dprefix=&amp;lt;Diodonのインストールディレクトリ&amp;gt; builddir -Ddisable-indicator-plugin=true&lt;br /&gt;
 cd builddir&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ninja&lt;br /&gt;
 ninja test&lt;br /&gt;
 sudo ninja install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Diodonをアンインストールする場合は、上記のソースコードディレクトリ内において、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo ninja uninstall&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Diodonのプラグイン ====&lt;br /&gt;
Diodonプラグインを作成する場合は、[http://esite.ch/2011/10/19/writing-a-plugin-for-diodon/ こちらの記事]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Diodon向けの便利なプラグインを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#fefefe;&amp;quot;&lt;br /&gt;
|+ プラグインの概要&lt;br /&gt;
! style=&amp;quot;background-color:#66CCFF;&amp;quot; | プラグイン &lt;br /&gt;
! style=&amp;quot;background-color:#66CCFF;&amp;quot; | 説明&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Features] || Diodonメニューの追加機能&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Numbers] || クリップボードのメニュー項目数を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Pop Item] || アクティブなクリップボード項目を貼り付けてから削除する。&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Paste All] || 最近のアイテムを一度に貼り付ける。&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/RedHatter/diodon-plugins Edit] || アクティブなアイテムを編集するように促す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Glipper ==&lt;br /&gt;
==== Glipperとは ====&lt;br /&gt;
Glipperは、GNOME向けのクリップボードマネージャであり、プラグインを使用して機能を拡張することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
クリップボードマネージャの基本的な機能のほとんどを持っている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Glipperのインストール ====&lt;br /&gt;
Glipperの依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
* Python 2.4以降&lt;br /&gt;
* pygtk-2.6以降(モジュール名 : gtk、gtk.gdk、gobject)&lt;br /&gt;
* python-keybinder(モジュール名 : keybinder)&lt;br /&gt;
* python-distutils-extra(モジュール名 : DistUtilsExtra)&lt;br /&gt;
* python-appindicator(モジュール名 : appindicator)&lt;br /&gt;
* python-xdg(モジュール名 : xdg.BaseDirectory)&lt;br /&gt;
* オプション : python-prctl(モジュール名 : prctl)&lt;br /&gt;
* オプション : python-crypto&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python2 python3 pygtk python-keybinder python-distutils-extra python-appindicator python-xdg python-prctl python-crypto&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python2 python3 pygtk python-keybinder python-distutils-extra python-appindicator python-xdg python-prctl python-crypto&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Glipperの[https://launchpad.net/glipper 公式Webサイト]からソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar zxvf glipper-&amp;lt;バージョン名&amp;gt;.tar.gz&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Glipperのソースコードを実行してインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo python setup.py install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clipit ==&lt;br /&gt;
==== Clipitとは ====&lt;br /&gt;
GTK+の軽量で機能が豊富なクリップボードマネージャである。&amp;lt;br&amp;gt;&lt;br /&gt;
Clipitは、Parcelliteからフォークされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Clipitのインストール ====&lt;br /&gt;
Clipitのビルドに必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install gtk2-devel gtk3-devel xdotool-devel intltool automake autoconf autopoint&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ClipitのGithubから、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/CristianHenzel/ClipIt.git&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Clipitのソースコードをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 ./configure --with-gtk3 --prefix=/home/&amp;lt;ユーザ名&amp;gt;/InstallSoftware/Clipit&lt;br /&gt;
 make -j $(nproc)&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Windows10]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_SSH%E3%81%AE%E8%A8%AD%E5%AE%9A&amp;diff=14617</id>
		<title>GitHub - SSHの設定</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_SSH%E3%81%AE%E8%A8%AD%E5%AE%9A&amp;diff=14617"/>
		<updated>2026-04-01T02:16:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == SSH (Secure Shell) は、暗号化された通信を用いてリモートサーバーに安全に接続するためのプロトコルである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; GitHubとの通信方法にはHTTPSとSSHの2種類があり、HTTPSではリポジトリへのプッシュ / プルのたびにユーザ名とPersonal Access Tokenの入力が必要となる。&amp;lt;br&amp;gt; 一方、SSHでは公開鍵認証方式を使用するため、一度鍵を設定すれば以降の認…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
SSH (Secure Shell) は、暗号化された通信を用いてリモートサーバーに安全に接続するためのプロトコルである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubとの通信方法にはHTTPSとSSHの2種類があり、HTTPSではリポジトリへのプッシュ / プルのたびにユーザ名とPersonal Access Tokenの入力が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
一方、SSHでは公開鍵認証方式を使用するため、一度鍵を設定すれば以降の認証は自動的に行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude CodeやOpenCode等のAIコーディングツールからGitHubリポジトリを操作する場合にも、SSH接続の設定が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSHを使用する主なメリットは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* パスワードやトークンの入力が不要&lt;br /&gt;
*: 毎回の認証操作が省略されるため、作業効率が向上する。&lt;br /&gt;
* 高い安全性&lt;br /&gt;
*: 公開鍵認証方式はパスワード認証よりも安全であり、通信内容も暗号化される。&lt;br /&gt;
* 利便性&lt;br /&gt;
*: 一度設定すれば、以降のgit push / pull / clone等の操作で追加の認証入力は不要である。&lt;br /&gt;
* AIコーディングツールとの親和性&lt;br /&gt;
*: Claude CodeやOpenCode等のターミナルベースのAIツールは対話的なパスワード入力に対応していない場合があるため、SSH接続が事実上必須となる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSH接続の仕組みは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
# ローカルコンピュータでSSH鍵ペア (秘密鍵と公開鍵) を生成する。&lt;br /&gt;
# 公開鍵をGitHubアカウントに登録する。&lt;br /&gt;
# ローカルからGitHubに接続する際、秘密鍵で署名を生成してGitHubが公開鍵で検証する。&lt;br /&gt;
# 検証に成功すると認証が完了して、リポジトリへのアクセスが許可される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SSHの設定 ==&lt;br /&gt;
==== SSH鍵の種類 ====&lt;br /&gt;
SSH鍵にはいくつかの暗号アルゴリズムが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なSSH鍵の種類と特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SSH鍵の種類&lt;br /&gt;
! アルゴリズム !! 鍵長 !! 特徴&lt;br /&gt;
|-&lt;br /&gt;
| Ed25519 || 256ビット固定 || 現在最も推奨されるアルゴリズム。&amp;lt;br&amp;gt;高速かつ安全性が高い。GitHubも推奨している。&lt;br /&gt;
|-&lt;br /&gt;
| RSA || 2048 / 4096ビット || 広く普及しており互換性が高い。&amp;lt;br&amp;gt;4096ビット以上の使用を推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| ECDSA || 256 / 384 / 521ビット || 楕円曲線暗号を使用する。&amp;lt;br&amp;gt;Ed25519が利用できない環境での代替として使用される。&lt;br /&gt;
|-&lt;br /&gt;
| DSA || 1024ビット || 非推奨。OpenSSH 7.0以降ではデフォルトで無効化されている。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;特別な理由がない限り、Ed25519の使用を推奨する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH鍵の生成 ====&lt;br /&gt;
以下のコマンドを実行して、Ed25519アルゴリズムのSSH鍵ペア (秘密鍵と公開鍵) を生成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Ed25519鍵を生成する (推奨)&lt;br /&gt;
 ssh-keygen -t ed25519 -C &amp;quot;GitHubに登録しているメールアドレス&amp;quot; -f ~/.ssh/id_ed25519_github&lt;br /&gt;
 &lt;br /&gt;
 # Ed25519が使用できない環境の場合はRSA 4096ビットを使用する&lt;br /&gt;
 ssh-keygen -t rsa -b 4096 -C &amp;quot;GitHubに登録しているメールアドレス&amp;quot; -f ~/.ssh/id_rsa_github&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コマンド実行時のオプションの詳細は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-t ed25519&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 鍵の種類を指定する。&lt;br /&gt;
* &amp;lt;code&amp;gt;-C &amp;quot;メールアドレス&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*: コメントを設定する。一般的にメールアドレスを指定する。&lt;br /&gt;
* &amp;lt;code&amp;gt;-f ~/.ssh/id_ed25519_github&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 鍵ファイルの保存先とファイル名を指定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コマンド実行後にパスフレーズの入力を求められる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Enter passphrase (empty for no passphrase):&lt;br /&gt;
 Enter same passphrase again:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パスフレーズを設定すると、鍵の使用時にパスフレーズの入力が必要になる。&amp;lt;br&amp;gt;&lt;br /&gt;
セキュリティの観点からパスフレーズの設定を推奨するが、空欄のまま[Enter]キーを押下して省略することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
鍵の生成が完了すると、以下に示す2つのファイルが作成される。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;~/.ssh/id_ed25519_github&amp;lt;/u&amp;gt;&lt;br /&gt;
*: 秘密鍵。絶対に他者と共有してはならない。&lt;br /&gt;
* &amp;lt;u&amp;gt;~/.ssh/id_ed25519_github.pub&amp;lt;/u&amp;gt;&lt;br /&gt;
*: 公開鍵。GitHubに登録するファイル。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH Agentの設定 ====&lt;br /&gt;
SSH Agentは秘密鍵をメモリ上に保持して、SSH接続時に自動的に鍵を提供するデーモンである。&amp;lt;br&amp;gt;&lt;br /&gt;
パスフレーズを設定した場合、SSH Agentを使用することで毎回のパスフレーズ入力を省略できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # SSH Agentをバックグラウンドで起動する&lt;br /&gt;
 eval &amp;quot;$(ssh-agent -s)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # 秘密鍵をSSH Agentに追加する&lt;br /&gt;
 ssh-add ~/.ssh/id_ed25519_github&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パスフレーズを設定している場合は、&amp;lt;code&amp;gt;ssh-add&amp;lt;/code&amp;gt;コマンドの実行時に1度だけパスフレーズの入力を求められる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSH Agentの起動をシェルのログイン時に自動化する場合は、シェルの設定ファイルに以下を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # Bashの場合&lt;br /&gt;
 &lt;br /&gt;
 # SSH Agent&lt;br /&gt;
 if [ -z &amp;quot;$SSH_AUTH_SOCK&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
    eval &amp;quot;$(ssh-agent -s)&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
    ssh-add ~/.ssh/id_ed25519_github &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 fi&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;fish&amp;quot;&amp;gt;&lt;br /&gt;
 # Fishの場合&lt;br /&gt;
 &lt;br /&gt;
 # SSH Agent&lt;br /&gt;
 if not set -q SSH_AUTH_SOCK&lt;br /&gt;
     eval (ssh-agent -c) &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
     ssh-add ~/.ssh/id_ed25519_github &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 end&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH configの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.ssh/config&amp;lt;/u&amp;gt; ファイルにGitHub用の設定を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、GitHub接続時に使用する鍵ファイルが自動的に選択される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Host github.com&lt;br /&gt;
      HostName github.com&lt;br /&gt;
      User git&lt;br /&gt;
      IdentityFile ~/.ssh/id_ed25519_github&lt;br /&gt;
      AddKeysToAgent yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各設定項目の詳細は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SSH config設定項目&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Host || 接続先のエイリアス名&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;github.com&amp;lt;/u&amp;gt; を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| HostName || 実際の接続先ホスト名&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;github.com&amp;lt;/u&amp;gt; を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| User || 接続ユーザ名&amp;lt;br&amp;gt;GitHubでは常に &amp;lt;u&amp;gt;git&amp;lt;/u&amp;gt; を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| IdentityFile || 使用する秘密鍵のパス&lt;br /&gt;
|-&lt;br /&gt;
| AddKeysToAgent || &amp;lt;code&amp;gt;yes&amp;lt;/code&amp;gt; を指定すると、初回接続時に自動的にSSH Agentに鍵が追加される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のGitHubアカウントを使い分ける場合は、以下に示すようにHostを別名にして設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # メインアカウント&lt;br /&gt;
 Host github.com&lt;br /&gt;
      HostName github.com&lt;br /&gt;
      User git&lt;br /&gt;
      IdentityFile ~/.ssh/id_ed25519_github_main&lt;br /&gt;
 &lt;br /&gt;
 # サブアカウント&lt;br /&gt;
 Host github-sub&lt;br /&gt;
      HostName github.com&lt;br /&gt;
      User git&lt;br /&gt;
      IdentityFile ~/.ssh/id_ed25519_github_sub&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
サブアカウントのリポジトリをクローンする場合は、以下に示すように指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone git@github-sub:&amp;lt;ユーザ名&amp;gt;/&amp;lt;リポジトリ名&amp;gt;.git&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公開鍵のGitHubへの登録 ====&lt;br /&gt;
生成した公開鍵をGitHubアカウントに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、公開鍵の内容をクリップボードにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 公開鍵の内容を表示する&lt;br /&gt;
 cat ~/.ssh/id_ed25519_github.pub&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 表示例&lt;br /&gt;
 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... user@example.com&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
表示された文字列を全てコピーして、以下の手順でGitHubに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubにログインする。&lt;br /&gt;
# 右上のプロフィールアイコンを選択して、[Settings]を選択する。&lt;br /&gt;
# 左メニューの[Access]セクションにある[SSH and GPG keys]を選択する。&lt;br /&gt;
# [New SSH key]ボタンを押下する。&lt;br /&gt;
# 以下の項目を入力する。&lt;br /&gt;
#* Title&lt;br /&gt;
#*: 鍵の識別名を入力する。&lt;br /&gt;
#*: 例: &amp;lt;u&amp;gt;SUSE-PC&amp;lt;/u&amp;gt;&lt;br /&gt;
#* Key type&lt;br /&gt;
#*: &amp;lt;u&amp;gt;Authentication Key&amp;lt;/u&amp;gt; を選択する。(デフォルト)&lt;br /&gt;
#* Key&lt;br /&gt;
#*: コピーした公開鍵を貼り付ける。&lt;br /&gt;
# [Add SSH key]ボタンを押下する。&lt;br /&gt;
# GitHubのパスワード入力を求められた場合は、入力して認証する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIを使用して登録する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh ssh-key add ~/.ssh/id_ed25519_github.pub --title &amp;quot;SUSE-PC&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続テスト ====&lt;br /&gt;
SSH鍵の登録が完了した後、GitHubとのSSH接続が正常に動作するかテストする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ssh -T git@github.com&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
初回接続時は、以下のようにホスト鍵の確認を求められるため&amp;lt;code&amp;gt;yes&amp;lt;/code&amp;gt;と入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 The authenticity of host &#039;github.com (20.27.177.113)&#039; can&#039;t be established.&lt;br /&gt;
 ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続に成功すると、以下のメッセージが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Hi &amp;lt;ユーザ名&amp;gt;! You&#039;ve successfully authenticated, but GitHub does not provide shell access.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記のメッセージが表示されれば、SSHの設定は完了である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続に失敗した場合は、以下のコマンドを実行して詳細なデバッグ情報を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 ssh -vT git@github.com&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 既存リポジトリのリモートURLをSSHに変更 ====&lt;br /&gt;
既にHTTPSでクローンしたリポジトリをSSH接続に切り替える場合は、リモートURLを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 現在のリモートURLを確認する&lt;br /&gt;
 git remote -v&lt;br /&gt;
 &lt;br /&gt;
 # リモートURLをSSHに変更する&lt;br /&gt;
 git remote set-url origin git@github.com:&amp;lt;ユーザ名&amp;gt;/&amp;lt;リポジトリ名&amp;gt;.git&lt;br /&gt;
 &lt;br /&gt;
 # 変更後のリモートURLを確認する&lt;br /&gt;
 git remote -v&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH鍵のセキュリティに関する注意事項 ====&lt;br /&gt;
SSH鍵を安全に運用するために、以下に示す事柄に留意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SSH鍵のセキュリティ対策&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 秘密鍵の権限設定 || 秘密鍵ファイルのパーミッションは&amp;lt;code&amp;gt;600&amp;lt;/code&amp;gt; (所有者のみ読み書き可) に設定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519_github&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 秘密鍵の共有禁止 || 秘密鍵は絶対に他者と共有してはならない。共有するのは公開鍵 (&amp;lt;code&amp;gt;.pub&amp;lt;/code&amp;gt;) のみである。&lt;br /&gt;
|-&lt;br /&gt;
| パスフレーズの設定 || 秘密鍵にはパスフレーズを設定することを推奨する。&amp;lt;br&amp;gt;万が一秘密鍵ファイルが漏洩した場合のリスクを軽減する。&lt;br /&gt;
|-&lt;br /&gt;
| 鍵のローテーション || 定期的に新しい鍵ペアを生成して、古い鍵をGitHubから削除することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| 不要な鍵の削除 || 使用しなくなったデバイスの鍵は、GitHubの[SSH and GPG keys]設定ページから速やかに削除する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
下表に、SSH接続に関する一般的な問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SSHトラブルシューティング&lt;br /&gt;
! 症状 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Permission denied (publickey) || 公開鍵がGitHubに登録されていない、&amp;lt;br&amp;gt;または秘密鍵のパスが正しくない || &amp;lt;code&amp;gt;ssh-add -l&amp;lt;/code&amp;gt;で登録済みの鍵を確認する。&amp;lt;br&amp;gt;SSH configのIdentityFileパスを確認する。&amp;lt;br&amp;gt;GitHubに公開鍵が正しく登録されているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| Could not open a connection to your authentication agent || SSH Agentが起動していない || &amp;lt;code&amp;gt;eval &amp;quot;$(ssh-agent -s)&amp;quot;&amp;lt;/code&amp;gt;を実行してSSH Agentを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| WARNING: UNPROTECTED PRIVATE KEY FILE! || 秘密鍵ファイルのパーミッションが緩すぎる || &amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519_github&amp;lt;/code&amp;gt;を実行する。&lt;br /&gt;
|-&lt;br /&gt;
| Connection timed out || ファイアウォール等でSSHポート (22) がブロックされている || HTTPS経由のSSH接続 (ポート443) を試行する。&amp;lt;br&amp;gt;SSH configに以下を設定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;Host github.com&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;HostName ssh.github.com&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Port 443&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric&lt;br /&gt;
Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry&lt;br /&gt;
Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open&lt;br /&gt;
SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=Raspberry_Pi%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A&amp;diff=14616</id>
		<title>Raspberry Piの初期設定</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=Raspberry_Pi%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A&amp;diff=14616"/>
		<updated>2026-03-25T13:04:50Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* ソフトウェアの自動起動 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raspbianのダウンロード ==&lt;br /&gt;
以下のWebサイトにアクセスして、任意のRaspbian OSのzipファイルまたはtorrentファイルをダウンロードする。(torrentを使用することを推奨する)&amp;lt;br&amp;gt;&lt;br /&gt;
* Raspberry Pi 公式Webサイト&lt;br /&gt;
*: https://www.raspberrypi.com/software/operating-systems/&lt;br /&gt;
* ミラーサイト(JAIST)&lt;br /&gt;
*: http://ftp.jaist.ac.jp/pub/raspberrypi/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたRaspbian OSのzipファイルは解凍せずに、balenaEtcher等を使用してSDカードに書き込む。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RaspberryPi Imagerを使用してインストール ==&lt;br /&gt;
==== RaspberryPi Imagerとは ====&lt;br /&gt;
RaspberryPi Imagerは、Raspberry Pi OSや他OSをmicroSDカードにインストールして、Raspberry Piで使用できるようにするためソフトウェアである。&amp;lt;br&amp;gt;&lt;br /&gt;
RaspberryPi ImagerをPCにインストールした後、Raspberry Piで使用するSDカードをPCに挿入して、Raspberry Pi Imagerを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RaspberryPi Imagerのインストール ====&lt;br /&gt;
RaspberryPi Imagerのビルドに必要なライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install libarchive-devel libcurl-devel zlib-devel libgnutls-devel \&lt;br /&gt;
                     &lt;br /&gt;
                     # Qt 5を使用する場合&lt;br /&gt;
                     libqt5-qtbase-common-devel libQt5Widgets-devel libQt5DBus-devel libQt5Concurrent-devel \&lt;br /&gt;
                     libqt5-qtsvg-devel libQt5QuickControls2-devel libqt5-linguist-devel&lt;br /&gt;
                     &lt;br /&gt;
                     # Qt 6を使用する場合&lt;br /&gt;
                     qt6-base-devel qt6-base-common-devel qt6-core-devel qt6-dbus-devel qt6-concurrent-devel \&lt;br /&gt;
                     qt6-svg-devel qt6-quick-devel qt6-quickcontrols2-devel qt6-linguist-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/raspberrypi/rpi-imager/releases/ RaspberryPi ImagerのGithub]にアクセスして、RaspberryPi Imagerのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf rpi-imager-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd rpi-imager-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;コマンドを使用して、RaspberryPi Imagerのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone --depth 1 https://github.com/raspberrypi/rpi-imager.git&lt;br /&gt;
 cd rpi-imager&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドディレクトリを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
RaspberryPi Imagerをビルドおよびインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 cmake -DCMAKE_C_COMPILER=&amp;lt;GCC 8以降のgcc&amp;gt; -DCMAKE_CXX_COMPILER=&amp;lt;G++ 8以降のg++&amp;gt; \&lt;br /&gt;
       -DCMAKE_BUILD_TYPE=Release                                              \&lt;br /&gt;
       -DCMAKE_INSTALL_PREFIX=&amp;lt;RaspberryPi Imagerのインストールディレクトリ&amp;gt;           \&lt;br /&gt;
       -DENABLE_TELEMETRY=OFF                                                  \&lt;br /&gt;
       ../src&lt;br /&gt;
 &lt;br /&gt;
 make -j $(nproc)&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
RaspberryPi Imagerのデスクトップエントリファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.local/applications/RaspberryPi_Imager.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.local/applications/RaspberryPi_Imager.desktopファイル&lt;br /&gt;
 &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Version=1.0&lt;br /&gt;
 Name=Raspberry Pi Imager&lt;br /&gt;
 Comment=Raspberry Pi Imager&lt;br /&gt;
 Exec=/&amp;lt;RaspberryPi Imagerのインストールディレクトリ&amp;gt;/bin/rpi-imager --disable-telemetry &lt;br /&gt;
 Icon=/&amp;lt;RaspberryPi Imagerのインストールディレクトリ&amp;gt;/share/icons/hicolor/128x128/apps/rpi-imager.png&lt;br /&gt;
 Categories=Utility&lt;br /&gt;
 StartupNotify=false&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== テレメトリの無効化 ====&lt;br /&gt;
標準のRaspberry Piイメージを使用する場合、&amp;lt;br&amp;gt;&lt;br /&gt;
ソフトウェアの使用状況（Raspberry Pi Imagerのバージョンの普及状況、どのイメージとOSが最も人気があるか等）を把握するため、&amp;lt;br&amp;gt;&lt;br /&gt;
選択したイメージのURL、OS名、カテゴリ、Raspberry Pi Imagerの実行バージョン、使用しているOS、CPUアーキテクチャ、ロケール、Raspberry Piリビジョンを、&amp;lt;br&amp;gt;&lt;br /&gt;
https://rpi-imager-stats.raspberrypi.com へ送信している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このサービスは、Herokuによってホストされており、eu-west-1地域における1日あたりの各URL、OS名、カテゴリについて、Redis Sorted Setを使用して増分するカウンターを保存している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、これらのカウントに個人データを関連付けることはない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、時間の経過と共にダウンロード数を照会のみを行っている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxでは、&amp;lt;code&amp;gt;rpi-imager --disable-telemetry&amp;lt;/code&amp;gt;を実行する、または、~/.config/Raspberry Pi/Imager.confファイルに以下に示す内容を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # ~/.config/Raspberry Pi/Imager.confファイル&lt;br /&gt;
 &lt;br /&gt;
 [General]&lt;br /&gt;
 telemetry=false&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RaspberryPi Imagerの設定 ====&lt;br /&gt;
RaspberryPi Imagerの使用時において、[Ctrl] + [Shift] + [X]キーを同時押下することにより、詳細オプションダイアログを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Raspberry Piのブート設定ファイルで設定するいくつかの事柄を指定することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、SSHの有効化および無効化、Wi-Fiの設定、ロケールの設定を行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raspbianの設定 ==&lt;br /&gt;
まず、Raspbianを最新の状態にするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== キーボードの設定 ==&lt;br /&gt;
設定用アプリケーションの[Localisation]タブの[Set Keyboard]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたウインドウにある[Country]を[Japan]に、[Variant]を[Japanese(OADG 109A)]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== タイムゾーンの設定 ==&lt;br /&gt;
設定用アプリケーションの[Localisation]タブの[Set Timezone]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたウインドウにある[Area]を[Asia]に、[Location]を[Tokyo]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPアドレスの設定 ==&lt;br /&gt;
==== GUIで設定する ====&lt;br /&gt;
まず、デスクトップ画面右上のネットワークアイコンを右クリックして、[Wireless &amp;amp; Wired Network Settings]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
[Network Preferences]が開くので、[Interface]プルダウンを選択して、有線LANの場合は[eth0]、Wi-Fiの場合は[wlan0]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、以下のネットワークの設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
* IPアドレス&lt;br /&gt;
*: &amp;lt;IPアドレス&amp;gt;/&amp;lt;サブネットマスク  例. 24&amp;gt;&lt;br /&gt;
* Router&lt;br /&gt;
*: &amp;lt;ゲートウェイのIPアドレス&amp;gt;&lt;br /&gt;
* DNS&lt;br /&gt;
*: &amp;lt;DNSサーバのIPアドレス&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、[適用]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CUIで設定する (推奨) ====&lt;br /&gt;
===== Raspberry Pi OS Bookwormの場合 =====&lt;br /&gt;
 sudo vi &#039;/etc/NetworkManager/system-connections/Wired connection 1.nmconnection&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # /etc/NetworkManager/system-connections/Wired connection 1.nmconnectionファイル&lt;br /&gt;
 &lt;br /&gt;
 [connection]&lt;br /&gt;
 type=ethernet&lt;br /&gt;
 id=Wired connection 1&lt;br /&gt;
 uuid=xxxx-xxxx-xxxx-xxxx-xxxx&lt;br /&gt;
 autoconnect=true&lt;br /&gt;
 interface-name=eth0&lt;br /&gt;
 timestamp=1732023900&lt;br /&gt;
 &lt;br /&gt;
 [ethernet]&lt;br /&gt;
 &lt;br /&gt;
 [ipv4]&lt;br /&gt;
 address1=&amp;lt;Raspberry PiのIPアドレス  例: 192.168.0.100&amp;gt;/&amp;lt;サブネットマスク  例: 24&amp;gt;,&amp;lt;デフォルトゲートウェイ  例: 192.168.0.1&amp;gt;  # 任意の値&lt;br /&gt;
 dns=&amp;lt;DNSのアドレス  例: 192.168.0.1&amp;gt;;  # 任意の値&lt;br /&gt;
 method=manual&lt;br /&gt;
 &lt;br /&gt;
 [ipv6]&lt;br /&gt;
 addr-gen-mode=stable-privacy&lt;br /&gt;
 #method=auto&lt;br /&gt;
 method=disabled  # IPv6を無効化する場合&lt;br /&gt;
 &lt;br /&gt;
 [proxy]&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Raspberry Pi OS Bullseyeの場合 =====&lt;br /&gt;
まず、/etc/dhcpcd.confファイルの最下行に、以下の設定を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/dhcpcd.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/dhcpcd.confファイル&lt;br /&gt;
 &lt;br /&gt;
 interface &amp;lt;eth0 または wlan0&amp;gt;&lt;br /&gt;
 static ip_address=&amp;lt;IPアドレス&amp;gt;/&amp;lt;サブネットマスク  例. 24&amp;gt;&lt;br /&gt;
 static routers=&amp;lt;ゲートウェイのIPアドレス&amp;gt;&lt;br /&gt;
 static domain_name_servers=&amp;lt;DNSのIPアドレス&amp;gt;&lt;br /&gt;
 noipv6  # IPv6を使用しない場合&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記の設定を有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl restart networking&lt;br /&gt;
 sudo systemctl restart dhcpcd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PCを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
静的IPアドレスに設定できているかどうかを確認する。&amp;lt;bt&amp;gt;&lt;br /&gt;
 ip a&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、静的IPアドレスが設定できない場合、dhcpcdデーモンの状態を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl status dhcpcd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すようなメッセージが出力されている場合は、静的IPアドレスが他の端末と衝突しているため、別の静的IPアドレスの値を設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 〜 dhcpcd 〜: eth0: hardware address &amp;lt;MACアドレス&amp;gt; claims &amp;lt;上記で設定した静的IPアドレス&amp;gt;&lt;br /&gt;
 〜 dhcpcd 〜: eth0: DAD detected &amp;lt;上記で設定した静的IPアドレス&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 日本語フォントのインストールと言語の変更 ==&lt;br /&gt;
日本語フォントをインストールするために、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install fonts-noto-cjk fonts-vlgothic&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、GUI環境で日本語を表示するために言語の変更を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
設定用アプリケーションの[Localisation]タブの[Set Locale]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
表示されたウインドウにある[Language]を[JP(Japan)]に、[Character Set]を[UTF-8]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定後、再起動が促されるのでYesボタンを押下して再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記だけでなく、以下のフォントも使用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install ttf-kochi-gothic ttf-kochi-mincho fonts-takao fonts-vlgothic fonts-ipafont xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 日本語入力ソフトウェアのインストール ==&lt;br /&gt;
日本語入力ソフトウェアは2種類存在するのでどちらか一方を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Bullseye以降のRaspberry Pi OS ====&lt;br /&gt;
Mozcをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install ibus-mozc&lt;br /&gt;
 または&lt;br /&gt;
 sudo apt install fcitx5-mozc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fcitx5-mozcをインストールした場合、以下の設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
 QT_QPA_PLATFORM=wayland fcitx5-configtool&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/environment&lt;br /&gt;
 # または&lt;br /&gt;
 vi ~/.xprofile&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.xprofileファイル&lt;br /&gt;
 &lt;br /&gt;
 INPUT_METHOD=fcitx5&lt;br /&gt;
 XMODIFIERS=@im=fcitx5&lt;br /&gt;
 GTK_IM_MODULE=fcitx5&lt;br /&gt;
 QT_IM_MODULE=fcitx5&lt;br /&gt;
 &lt;br /&gt;
 fcitx5 &amp;amp;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Raspberry Piを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
[半角 / 全角]キー等で日本語入力の切り替えができることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mozcをインストールする場合 (NOOBS 1.4.2以降のRaspbian) ====&lt;br /&gt;
Mozcをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install ibus-mozc&lt;br /&gt;
 または&lt;br /&gt;
 sudo apt install fcitx-mozc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Raspberry Piを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
[半角 / 全角]キーで日本語入力の切り替えができることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Fcitx-mozcをインストールした場合、以下の設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
# デスクトップ画面左上からのメニューアイコンから、[設定] - [Fcitx設定]を選択する。&lt;br /&gt;
# [入力メソッドの設定]画面が開くので、画面左下にある[+]ボタンを押下する。&lt;br /&gt;
# [入力メソッドの追加]画面が開くので、[キーボード - 日本語 - 日本語(OADG 109A)]を選択する。&lt;br /&gt;
# [入力メソッドの設定]画面に戻ると、選択したキーボードが最も下に表示されるので、[↑]ボタンを押下して最も上に移動する。&amp;lt;br&amp;gt;もし、選択したものと異なるキーボードが表示されている場合は、そのキーボードを選択した状態で[-]ボタンを押下する。&lt;br /&gt;
# [入力メソッドの設定]画面の[全体の設定]タブを選択して、[入力メソッドのオンオフ]項目が[Zenkakuhankaku]に設定されていることを確認する。&lt;br /&gt;
# [入力メソッドの設定]画面の[外観]タブを選択して、[状態パネルを隠すモード]項目のプルダウンから[表示]を選択する。&lt;br /&gt;
# [入力メソッドの設定]画面右上の[x]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== UIMをインストールする場合(NOOBS 1.4.1までのRaspbian推奨) =====&lt;br /&gt;
wheezyをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install uim uim-anthy xfonts-kaname&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール完了後、Raspbianを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
[半角／全角]キーまたは[Shift][Space]キーを同時押下することで日本語入力のオンオフを切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ランレベルの変更 ==&lt;br /&gt;
デスクトップ画面左上のアイコンから、[設定] - [Raspberry Piの設定]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
[System]タブ - [ブート]項目から、[デスクトップ]または[CLI]を選択して、[自動ログイン]のチェックを外す。&amp;lt;br&amp;gt;&lt;br /&gt;
[OK]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Raspberry Piを再起動すると、CLIまたはGUIでRaspberry Piが起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;リモートデスクトップ接続する場合は、[デスクトップ]を選択すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ファイヤーウォールの設定 ==&lt;br /&gt;
firewalldのインストールを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install firewalld&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
正常にインストールできたかどうか確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
Active: active (running)と表示されていれば正常に起動している。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl status firewalld&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイヤーウォールを自動で起動するには以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl enable firewalld&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイヤーウォールの設定を確認するには以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 firewall-cmd --list-all&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイヤーウォールのポートを開放するには以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
下記は、SSHやHTTPのポートを開放する例である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --add-port=ssh     // SSHを開放&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --add-port=http    // HTTPを開放&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --add-port=22/tcp  // TCPポート22番を開放&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --add-port=80/tcp  // TCPポート80番を開放&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、ファイヤーウォールのポートを閉じるには以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
下記は、SSHやHTTPのポートを閉じる例である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --remove-service=ssh&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --remove-service=http&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下のコマンドでは、publicゾーンの設定をWi-Fiのインターフェース(インターフェース名 : wlan0)に割り当てる。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo firewall-cmd --permanent --zone=public --change-interface=wlan0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、設定を反映させるため以下のコマンドを入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
successと表示されていれば成功である。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo firewall-cmd --reload&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wi-Fiの無効化 ==&lt;br /&gt;
Wi-Fiを無効にする場合、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
Raspberry Piを再起動することにより、設定が有効になる。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo iwconfig wlan0 txpower off&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再度、Wi-Fiを有効にする場合は、以下のコマンドを実行して再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo iwconfig wlan0 txpower on&lt;br /&gt;
 または&lt;br /&gt;
 sudo iwconfig wlan0 txpower auto&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== debパッケージのインストールとアンインストール ==&lt;br /&gt;
* debファイルのみをインストールする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo deb -i &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;sudo dpkg -i &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
* 依存関係のパッケージも含めてインストールする&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo gdebi &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
* 依存関係を無視してインストールする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -i --force-depends &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
* debパッケージがインストールされているか確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg --list &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* debパッケージをアンインストールする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -r &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -purge &amp;lt;パッケージ名&amp;gt;  # 設定ファイルも含めて削除する場合&amp;lt;/code&amp;gt;&lt;br /&gt;
*: また、アンインストール時に依存関係により問題が生じる場合、&amp;lt;code&amp;gt;--force-depends&amp;lt;/code&amp;gt;オプションを付加することで強制的に削除することができる。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -r --force-depends &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* インストールされたパッケージの情報を確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -s &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* debパッケージの情報を確認する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg -I &amp;lt;パッケージ名&amp;gt;.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dpkg-reconfigure&amp;lt;/code&amp;gt;コマンドを使用すると、既にインストールされたdebパッケージの状態を再設定できる。&amp;lt;br&amp;gt;設定の初期化等も可能である。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg-reconfigure &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*: また、&amp;lt;code&amp;gt;--force&amp;lt;/code&amp;gt;オプションを付加する場合、設定ファイルが破損している場合でも強制実行することができる。&lt;br /&gt;
*: &amp;lt;code&amp;gt;sudo dpkg-reconfigure --force &amp;lt;パッケージ名&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* その他のオプション&lt;br /&gt;
** インストールを行わずに、確認のみを行う。&lt;br /&gt;
**: &amp;lt;code&amp;gt;--no-act&amp;lt;/code&amp;gt;&lt;br /&gt;
** システムにインストール済みのパッケージが新しい場合は、インストールしない。&lt;br /&gt;
**: &amp;lt;code&amp;gt;-G&amp;lt;/code&amp;gt;&lt;br /&gt;
** 同バージョンがインストール済みの場合は、再インストールしない。&lt;br /&gt;
**: &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetoothの無効化 ==&lt;br /&gt;
オンボードのBluetoothおよび関連サービスを無効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
これらの手順は、Raspberry Piの起動時にbluetooth、hci_uart、btbcm等の関連カーネルモジュールのロードも無効化する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Raspberry Pi 3B、3B+、3A+、4B、Zero Wにおいて、オンボードのBluetoothを無効化する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、GPIO 14(pin 8)とGPIO 15(pin10)上のUART0 / ttyAMA0を復元する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
N.B.モデムを初期化するsystemdサービスを無効にしてUARTを使用しないようにするには、&amp;lt;code&amp;gt;sudo systemctl disable hciuart&amp;lt;/code&amp;gt;を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /boot/config.txt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /boot/config.txtファイル&lt;br /&gt;
 &lt;br /&gt;
 # Disable Bluetooth&lt;br /&gt;
 dtoverlay=disable-bt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bluetoothのデーモンを無効化する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl disable hciuart.service&lt;br /&gt;
 sudo systemctl disable bluealsa.service&lt;br /&gt;
 sudo systemctl disable bluetooth.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Raspberry Piを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl reboot&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、オンボードのBluetoothおよび関連サービスを無効にしても、外付けのBluetoothアダプタを接続する場合、Bluetoothは利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
もし、Bluetoothが不要な場合は、Bluetoothスタックをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、外付けのBluetoothアダプタも利用できなくなる。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt purge bluez&lt;br /&gt;
 sudo apt autoremove&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ソフトウェアの自動起動 ==&lt;br /&gt;
==== autostartファイルについて ====&lt;br /&gt;
ソフトウェアのパスの前に&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;が記述されていることがある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;は、指定されたソフトウェアがクラッシュした場合、再起動するようLXDEに指示するものである。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;を付加することにより、ソフトウェアが予期せず終了した場合でも自動的に再起動されるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;を付加せずにソフトウェアを指定する場合、そのソフトウェアはシステムの起動時に1度だけ実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== システム全体に設定する場合 ====&lt;br /&gt;
/etc/xdg/lxsession/LXDE-pi/autostartファイルに自動起動するソフトウェアのパスを記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &amp;quot;@&amp;lt;ソフトウェアのパス&amp;gt; [オプション]&amp;quot; &amp;gt;&amp;gt; /etc/xdg/lxsession/LXDE-pi/autostart&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 各ユーザに設定する場合 ====&lt;br /&gt;
まず、/etc/xdg/lxsession/LXDE-pi/autostartファイルを~/.config/lxsession/LXDE-piにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p ~/.config/lxsession/LXDE-pi&lt;br /&gt;
 cp /etc/xdg/lxsession/LXDE-pi/autostart ~/.config/lxsession/LXDE-pi/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、コピーした~/.config/lxsession/LXDE-pi/autostartファイルに自動起動するソフトウェアのパスを記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
 echo &amp;quot;@&amp;lt;ソフトウェアのパス&amp;gt; [オプション]&amp;quot; &amp;gt;&amp;gt; ~/.config/lxsession/LXDE-pi/autostart&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;~/.config/lxsession/LXDE-pi/autostart&amp;lt;/u&amp;gt; ファイルを作成する時、&amp;lt;u&amp;gt;/etc/xdg/lxsession/LXDE-pi/autostart&amp;lt;/u&amp;gt; が完全に上書きされる。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、&amp;lt;u&amp;gt;~/.config/lxsession/LXDE-pi/autostart&amp;lt;/u&amp;gt; ファイルを作成してカスタム項目を追加する場合は、必ずデフォルトの内容をコピーしてから編集すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他の設定 ==&lt;br /&gt;
デスクトップ画面左上から、[設定] - [Raspberry Piの設定]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
[System]タブ - [スプラッシュ画面:]項目を[無効]にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、起動時に何か問題が発生した場合、様々なエラーを表示できるからである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[Category:Raspberry_Pi]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14615</id>
		<title>MCPサーバ - Filesystem</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14615"/>
		<updated>2026-03-25T09:57:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* プロジェクトルートのみ参照する場合 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
起動時に許可するディレクトリを明示的に指定することで、AIアシスタントはそのディレクトリ内に限定したファイル操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14個のファイル操作ツールを提供 (読み取り、書き込み、ディレクトリ管理、検索等)&lt;br /&gt;
* 指定ディレクトリ外へのアクセスをブロックするパストラバーサル防止機能&lt;br /&gt;
* Dockerイメージ (mcp/filesystem) による実行にも対応&lt;br /&gt;
* Rootsプロトコルによる実行時のディレクトリ動的更新&lt;br /&gt;
* Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用した読み取り専用アクセスの設定が可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Filesystem MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18.0.0以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されているため、Node.jsのインストールで利用可能になる。&lt;br /&gt;
* Docker (オプション)&lt;br /&gt;
*: Dockerを使用してFilesystem MCP Serverを実行する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用した実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でFilesystem MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
アクセスを許可するディレクトリへの絶対パスをコマンドライン引数で指定する (複数指定可能)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory1 /path/to/allowed/directory2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した実行 ====&lt;br /&gt;
Docker Hubに公式イメージ (mcp/filesystem) が公開されており、Node.jsをインストールせずにFilesystem MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行することにより、ローカルディレクトリをコンテナ内の &amp;lt;code&amp;gt;/projects&amp;lt;/code&amp;gt; にマウントしてサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、読み取り専用アクセスとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects:ro mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みアクセスを許可する場合は、&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを省略する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory1&amp;quot;, &amp;quot;/path/to/allowed/directory2&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルの内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenCodeの設定 ====&lt;br /&gt;
OpenCodeでは、プロジェクトルートまたはグローバル設定の &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルにMCPサーバを定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの読み込み優先順位は以下の通りである。(後の設定が前の設定にマージされる)&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: プロジェクトルートの &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルに以下の内容を記述して、Filesystem MCP Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のディレクトリへのアクセスを許可する場合は、&amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; 配列にディレクトリパスを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/dir1&amp;quot;, &amp;quot;/path/to/dir2&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバを一時的に無効にする場合は、&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用することにより、ワークスペースのルートディレクトリを自動的に許可対象に指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;${workspaceFolder}&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; (グローバル設定) または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; (プロジェクト設定) ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトルートのみ参照する場合 ====&lt;br /&gt;
.mcp.json / opencode.jsonファイルがあるディレクトリ自体を指すには、相対パス &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; は、MCPサーバ起動時のカレントディレクトリ (一般的には、.mcp.json / opencode.jsonファイルがあるプロジェクトルート) を指す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
サブディレクトリに限定する場合は、&amp;lt;u&amp;gt;./src&amp;lt;/u&amp;gt; のように指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;.&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Filesystem MCP Serverは、ファイル読み取り、ファイル書き込み、ディレクトリ管理、ファイル検索・管理の4カテゴリで合計14個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル読み取りツール ====&lt;br /&gt;
下表に、ファイルの内容を読み込むためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル読み取りツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; || 指定したファイルの完全な内容を読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_text_file&amp;lt;/code&amp;gt; || テキストファイルを読み込む。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; よりも詳細なエラーメッセージを提供する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_media_file&amp;lt;/code&amp;gt; || 画像やオーディオファイルをBase64エンコードして読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_multiple_files&amp;lt;/code&amp;gt; || 複数のファイルを同時に読み込む。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル書き込みツール ====&lt;br /&gt;
下表に、ファイルの作成・編集を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル書き込みツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write_file&amp;lt;/code&amp;gt; || ファイルを新規作成する。&amp;lt;br&amp;gt;既存ファイルが存在する場合は上書きする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;edit_file&amp;lt;/code&amp;gt; || 行ベースの編集を行う。&amp;lt;br&amp;gt;検索・置換操作に対応し、git形式のdiffを出力する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリ管理ツール ====&lt;br /&gt;
下表に、ディレクトリの作成・参照を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ディレクトリ管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_directory&amp;lt;/code&amp;gt; || ディレクトリを作成する。&amp;lt;br&amp;gt;ネストしたディレクトリ構造の作成にも対応する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory&amp;lt;/code&amp;gt; || ディレクトリの内容を一覧表示する。&amp;lt;br&amp;gt;ファイルには &amp;lt;code&amp;gt;[FILE]&amp;lt;/code&amp;gt;、ディレクトリには &amp;lt;code&amp;gt;[DIR]&amp;lt;/code&amp;gt; のプレフィックスが付与される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory_with_sizes&amp;lt;/code&amp;gt; || ファイルサイズを含むディレクトリの内容を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory_tree&amp;lt;/code&amp;gt; || ディレクトリ構造をJSON形式のツリーとして取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル検索・管理ツール ====&lt;br /&gt;
下表に、ファイルの検索・メタデータ取得・移動に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル検索・管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_files&amp;lt;/code&amp;gt; || グロブパターンを使用してファイルを再帰的に検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_file_info&amp;lt;/code&amp;gt; || ファイルのメタデータを取得する。&amp;lt;br&amp;gt;取得できる情報: ファイルサイズ、作成日時、更新日時等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;move_file&amp;lt;/code&amp;gt; || ファイルまたはディレクトリを移動する。&amp;lt;br&amp;gt;ファイル、ディレクトリのリネームにも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; || サーバ起動時に許可として設定されたディレクトリの一覧を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== アクセス制限の仕組み ====&lt;br /&gt;
Filesystem MCP Serverは、起動時に指定したディレクトリのみへのアクセスを許可する設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
指定ディレクトリ外へのアクセス試行はブロックされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なセキュリティ機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 指定ディレクトリへのアクセス制限&lt;br /&gt;
*: サーバ起動時にコマンドライン引数で指定したディレクトリのみにアクセスを限定する。&lt;br /&gt;
* パストラバーサル防止&lt;br /&gt;
*: &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等を利用した許可ディレクトリ外へのアクセスを防止する。&lt;br /&gt;
* Rootsプロトコルによる動的更新&lt;br /&gt;
*: MCPのRootsプロトコルにより、実行時に許可ディレクトリを動的に更新できる。&lt;br /&gt;
* Docker使用時の読み取り専用設定&lt;br /&gt;
*: Docker実行時に &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、マウントしたディレクトリへの書き込みを禁止できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ上の注意事項 ====&lt;br /&gt;
下表に、Filesystem MCP Serverを安全に使用するための推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 許可ディレクトリの最小化 || 必要最小限のディレクトリのみを許可対象として指定する。&amp;lt;br&amp;gt;ルートディレクトリ (/ や C:\) を許可対象に含めることは避けること。&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用の活用 || 書き込みが不要な用途では、&amp;lt;br&amp;gt;Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用して読み取り専用で実行することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || 過去バージョンにパス検証の脆弱性が存在したため、常に最新バージョンを使用すること。&amp;lt;br&amp;gt;最新版では修正済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Filesystem MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの読み取り ====&lt;br /&gt;
ファイルの内容を読み込む場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 単一ファイルを読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/config.yaml の内容を読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 複数ファイルをまとめて読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 src/main.py と src/utils.py の2つのファイルを同時に読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリの参照 ====&lt;br /&gt;
ディレクトリの内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリの一覧を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects ディレクトリの内容を一覧表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリ構造をツリー形式で確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp のディレクトリツリーを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの作成・編集 ====&lt;br /&gt;
ファイルを作成または編集する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいファイルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/README.md を作成して、プロジェクトの概要を記述してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 既存ファイルを編集する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/config.py の DEBUG 変数の値を False に変更してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの検索 ====&lt;br /&gt;
特定のファイルを検索する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* globパターンでPythonファイルを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects 配下にある全ての .py ファイルを検索してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;Server transport closed unexpectedly&amp;lt;/u&amp;gt; エラーが発生する || PATHの問題&amp;lt;br&amp;gt;NVM等のバージョンマネージャを使用している場合に発生しやすい。 || Node.jsの完全パスを設定ファイルの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に指定する。&amp;lt;br&amp;gt;または、NVM向けのラッパースクリプトを作成して使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;MCP filesystem: Server disconnected&amp;lt;/u&amp;gt; エラーが発生する || NVM環境での実行時に環境が正しく初期化されていない。 || シェルの設定ファイルでNVMを正しく初期化した上でMCPクライアントを起動する。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;nvm use&amp;lt;/code&amp;gt; を実行してからMCPクライアントを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ファイルが読み込まれない || JSONファイルにコメントが含まれている。&amp;lt;br&amp;gt;JSON標準仕様ではコメントは使用不可である。 || 設定ファイルからコメントを全て削除する。&lt;br /&gt;
|-&lt;br /&gt;
| アクセスが拒否される || 指定した許可ディレクトリの外にあるファイルへのアクセスを試みている。 || &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; ツールで許可ディレクトリを確認し、&amp;lt;br&amp;gt;必要に応じてサーバの起動引数に対象ディレクトリを追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| パスが正しく認識されない || OneDriveが有効な場合、表示上のパスと実際のパスが異なることがある。 || エクスプローラーでフォルダのプロパティを確認し、&amp;lt;br&amp;gt;実際のパスを設定ファイルに記述する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドがWindowsのパス解決で問題を起こすことがある。 || &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の先頭に&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;]&amp;lt;/code&amp;gt; を追加して &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一般的なデバッグ手順 ====&lt;br /&gt;
問題が発生した場合は、以下に示す手順でデバッグを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアント (Claude Desktop等) を完全に終了する。&lt;br /&gt;
# 設定ファイルのJSON構文を検証する。(JSONリンターを使用する)&lt;br /&gt;
# Node.jsのバージョンが、v18.0.0以上であることを確認する。&lt;br /&gt;
# &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが使用可能であることを確認する。(&amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; を実行する)&lt;br /&gt;
# 以下に示すコマンドを手動で実行してサーバが正常に起動するか確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
# MCPクライアントを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Filesystem,MCP,Model Context Protocol,filesystem-mcp-server,Claude,Claude Desktop,Claude Code,VS Code,Cursor,Node.js,npx,Docker,ファイルシステム,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14614</id>
		<title>MCPサーバ - Filesystem</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14614"/>
		<updated>2026-03-25T09:56:30Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* Cursorの設定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
起動時に許可するディレクトリを明示的に指定することで、AIアシスタントはそのディレクトリ内に限定したファイル操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14個のファイル操作ツールを提供 (読み取り、書き込み、ディレクトリ管理、検索等)&lt;br /&gt;
* 指定ディレクトリ外へのアクセスをブロックするパストラバーサル防止機能&lt;br /&gt;
* Dockerイメージ (mcp/filesystem) による実行にも対応&lt;br /&gt;
* Rootsプロトコルによる実行時のディレクトリ動的更新&lt;br /&gt;
* Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用した読み取り専用アクセスの設定が可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Filesystem MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18.0.0以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されているため、Node.jsのインストールで利用可能になる。&lt;br /&gt;
* Docker (オプション)&lt;br /&gt;
*: Dockerを使用してFilesystem MCP Serverを実行する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用した実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でFilesystem MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
アクセスを許可するディレクトリへの絶対パスをコマンドライン引数で指定する (複数指定可能)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory1 /path/to/allowed/directory2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した実行 ====&lt;br /&gt;
Docker Hubに公式イメージ (mcp/filesystem) が公開されており、Node.jsをインストールせずにFilesystem MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行することにより、ローカルディレクトリをコンテナ内の &amp;lt;code&amp;gt;/projects&amp;lt;/code&amp;gt; にマウントしてサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、読み取り専用アクセスとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects:ro mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みアクセスを許可する場合は、&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを省略する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory1&amp;quot;, &amp;quot;/path/to/allowed/directory2&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルの内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenCodeの設定 ====&lt;br /&gt;
OpenCodeでは、プロジェクトルートまたはグローバル設定の &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルにMCPサーバを定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの読み込み優先順位は以下の通りである。(後の設定が前の設定にマージされる)&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: プロジェクトルートの &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルに以下の内容を記述して、Filesystem MCP Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のディレクトリへのアクセスを許可する場合は、&amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; 配列にディレクトリパスを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/dir1&amp;quot;, &amp;quot;/path/to/dir2&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバを一時的に無効にする場合は、&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用することにより、ワークスペースのルートディレクトリを自動的に許可対象に指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;${workspaceFolder}&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; (グローバル設定) または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; (プロジェクト設定) ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトルートのみ参照する場合 ====&lt;br /&gt;
.mcp.json / opencode.jsonファイルがあるディレクトリ自体を指すには、相対パス &amp;lt;u&amp;gt;.&amp;lt;/u&amp;gt; を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.&amp;lt;/u&amp;gt; は、MCPサーバ起動時のカレントディレクトリ (一般的には、.mcp.jsonがあるプロジェクトルート) を指す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルがあるディレクトリを作業ディレクトリとしてMCPサーバを起動するため、&amp;lt;u&amp;gt;.&amp;lt;/u&amp;gt; でそのディレクトリを指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
サブディレクトリに限定する場合は、&amp;lt;u&amp;gt;./src&amp;lt;/u&amp;gt; のように指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;.&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Filesystem MCP Serverは、ファイル読み取り、ファイル書き込み、ディレクトリ管理、ファイル検索・管理の4カテゴリで合計14個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル読み取りツール ====&lt;br /&gt;
下表に、ファイルの内容を読み込むためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル読み取りツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; || 指定したファイルの完全な内容を読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_text_file&amp;lt;/code&amp;gt; || テキストファイルを読み込む。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; よりも詳細なエラーメッセージを提供する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_media_file&amp;lt;/code&amp;gt; || 画像やオーディオファイルをBase64エンコードして読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_multiple_files&amp;lt;/code&amp;gt; || 複数のファイルを同時に読み込む。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル書き込みツール ====&lt;br /&gt;
下表に、ファイルの作成・編集を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル書き込みツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write_file&amp;lt;/code&amp;gt; || ファイルを新規作成する。&amp;lt;br&amp;gt;既存ファイルが存在する場合は上書きする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;edit_file&amp;lt;/code&amp;gt; || 行ベースの編集を行う。&amp;lt;br&amp;gt;検索・置換操作に対応し、git形式のdiffを出力する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリ管理ツール ====&lt;br /&gt;
下表に、ディレクトリの作成・参照を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ディレクトリ管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_directory&amp;lt;/code&amp;gt; || ディレクトリを作成する。&amp;lt;br&amp;gt;ネストしたディレクトリ構造の作成にも対応する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory&amp;lt;/code&amp;gt; || ディレクトリの内容を一覧表示する。&amp;lt;br&amp;gt;ファイルには &amp;lt;code&amp;gt;[FILE]&amp;lt;/code&amp;gt;、ディレクトリには &amp;lt;code&amp;gt;[DIR]&amp;lt;/code&amp;gt; のプレフィックスが付与される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory_with_sizes&amp;lt;/code&amp;gt; || ファイルサイズを含むディレクトリの内容を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory_tree&amp;lt;/code&amp;gt; || ディレクトリ構造をJSON形式のツリーとして取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル検索・管理ツール ====&lt;br /&gt;
下表に、ファイルの検索・メタデータ取得・移動に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル検索・管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_files&amp;lt;/code&amp;gt; || グロブパターンを使用してファイルを再帰的に検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_file_info&amp;lt;/code&amp;gt; || ファイルのメタデータを取得する。&amp;lt;br&amp;gt;取得できる情報: ファイルサイズ、作成日時、更新日時等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;move_file&amp;lt;/code&amp;gt; || ファイルまたはディレクトリを移動する。&amp;lt;br&amp;gt;ファイル、ディレクトリのリネームにも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; || サーバ起動時に許可として設定されたディレクトリの一覧を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== アクセス制限の仕組み ====&lt;br /&gt;
Filesystem MCP Serverは、起動時に指定したディレクトリのみへのアクセスを許可する設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
指定ディレクトリ外へのアクセス試行はブロックされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なセキュリティ機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 指定ディレクトリへのアクセス制限&lt;br /&gt;
*: サーバ起動時にコマンドライン引数で指定したディレクトリのみにアクセスを限定する。&lt;br /&gt;
* パストラバーサル防止&lt;br /&gt;
*: &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等を利用した許可ディレクトリ外へのアクセスを防止する。&lt;br /&gt;
* Rootsプロトコルによる動的更新&lt;br /&gt;
*: MCPのRootsプロトコルにより、実行時に許可ディレクトリを動的に更新できる。&lt;br /&gt;
* Docker使用時の読み取り専用設定&lt;br /&gt;
*: Docker実行時に &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、マウントしたディレクトリへの書き込みを禁止できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ上の注意事項 ====&lt;br /&gt;
下表に、Filesystem MCP Serverを安全に使用するための推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 許可ディレクトリの最小化 || 必要最小限のディレクトリのみを許可対象として指定する。&amp;lt;br&amp;gt;ルートディレクトリ (/ や C:\) を許可対象に含めることは避けること。&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用の活用 || 書き込みが不要な用途では、&amp;lt;br&amp;gt;Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用して読み取り専用で実行することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || 過去バージョンにパス検証の脆弱性が存在したため、常に最新バージョンを使用すること。&amp;lt;br&amp;gt;最新版では修正済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Filesystem MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの読み取り ====&lt;br /&gt;
ファイルの内容を読み込む場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 単一ファイルを読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/config.yaml の内容を読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 複数ファイルをまとめて読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 src/main.py と src/utils.py の2つのファイルを同時に読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリの参照 ====&lt;br /&gt;
ディレクトリの内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリの一覧を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects ディレクトリの内容を一覧表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリ構造をツリー形式で確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp のディレクトリツリーを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの作成・編集 ====&lt;br /&gt;
ファイルを作成または編集する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいファイルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/README.md を作成して、プロジェクトの概要を記述してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 既存ファイルを編集する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/config.py の DEBUG 変数の値を False に変更してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの検索 ====&lt;br /&gt;
特定のファイルを検索する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* globパターンでPythonファイルを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects 配下にある全ての .py ファイルを検索してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;Server transport closed unexpectedly&amp;lt;/u&amp;gt; エラーが発生する || PATHの問題&amp;lt;br&amp;gt;NVM等のバージョンマネージャを使用している場合に発生しやすい。 || Node.jsの完全パスを設定ファイルの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に指定する。&amp;lt;br&amp;gt;または、NVM向けのラッパースクリプトを作成して使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;MCP filesystem: Server disconnected&amp;lt;/u&amp;gt; エラーが発生する || NVM環境での実行時に環境が正しく初期化されていない。 || シェルの設定ファイルでNVMを正しく初期化した上でMCPクライアントを起動する。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;nvm use&amp;lt;/code&amp;gt; を実行してからMCPクライアントを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ファイルが読み込まれない || JSONファイルにコメントが含まれている。&amp;lt;br&amp;gt;JSON標準仕様ではコメントは使用不可である。 || 設定ファイルからコメントを全て削除する。&lt;br /&gt;
|-&lt;br /&gt;
| アクセスが拒否される || 指定した許可ディレクトリの外にあるファイルへのアクセスを試みている。 || &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; ツールで許可ディレクトリを確認し、&amp;lt;br&amp;gt;必要に応じてサーバの起動引数に対象ディレクトリを追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| パスが正しく認識されない || OneDriveが有効な場合、表示上のパスと実際のパスが異なることがある。 || エクスプローラーでフォルダのプロパティを確認し、&amp;lt;br&amp;gt;実際のパスを設定ファイルに記述する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドがWindowsのパス解決で問題を起こすことがある。 || &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の先頭に&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;]&amp;lt;/code&amp;gt; を追加して &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一般的なデバッグ手順 ====&lt;br /&gt;
問題が発生した場合は、以下に示す手順でデバッグを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアント (Claude Desktop等) を完全に終了する。&lt;br /&gt;
# 設定ファイルのJSON構文を検証する。(JSONリンターを使用する)&lt;br /&gt;
# Node.jsのバージョンが、v18.0.0以上であることを確認する。&lt;br /&gt;
# &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが使用可能であることを確認する。(&amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; を実行する)&lt;br /&gt;
# 以下に示すコマンドを手動で実行してサーバが正常に起動するか確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
# MCPクライアントを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Filesystem,MCP,Model Context Protocol,filesystem-mcp-server,Claude,Claude Desktop,Claude Code,VS Code,Cursor,Node.js,npx,Docker,ファイルシステム,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14613</id>
		<title>MCPサーバ - Filesystem</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14613"/>
		<updated>2026-03-25T09:52:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* Claude Codeの設定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
起動時に許可するディレクトリを明示的に指定することで、AIアシスタントはそのディレクトリ内に限定したファイル操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14個のファイル操作ツールを提供 (読み取り、書き込み、ディレクトリ管理、検索等)&lt;br /&gt;
* 指定ディレクトリ外へのアクセスをブロックするパストラバーサル防止機能&lt;br /&gt;
* Dockerイメージ (mcp/filesystem) による実行にも対応&lt;br /&gt;
* Rootsプロトコルによる実行時のディレクトリ動的更新&lt;br /&gt;
* Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用した読み取り専用アクセスの設定が可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Filesystem MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18.0.0以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されているため、Node.jsのインストールで利用可能になる。&lt;br /&gt;
* Docker (オプション)&lt;br /&gt;
*: Dockerを使用してFilesystem MCP Serverを実行する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用した実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でFilesystem MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
アクセスを許可するディレクトリへの絶対パスをコマンドライン引数で指定する (複数指定可能)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory1 /path/to/allowed/directory2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した実行 ====&lt;br /&gt;
Docker Hubに公式イメージ (mcp/filesystem) が公開されており、Node.jsをインストールせずにFilesystem MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行することにより、ローカルディレクトリをコンテナ内の &amp;lt;code&amp;gt;/projects&amp;lt;/code&amp;gt; にマウントしてサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、読み取り専用アクセスとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects:ro mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みアクセスを許可する場合は、&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを省略する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory1&amp;quot;, &amp;quot;/path/to/allowed/directory2&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルの内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenCodeの設定 ====&lt;br /&gt;
OpenCodeでは、プロジェクトルートまたはグローバル設定の &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルにMCPサーバを定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの読み込み優先順位は以下の通りである。(後の設定が前の設定にマージされる)&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/opencode/opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: プロジェクトルートの &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルに以下の内容を記述して、Filesystem MCP Serverを登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のディレクトリへのアクセスを許可する場合は、&amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; 配列にディレクトリパスを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;$schema&amp;quot;: &amp;quot;https://opencode.ai/config.json&amp;quot;,&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: [&amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/dir1&amp;quot;, &amp;quot;/path/to/dir2&amp;quot;],&lt;br /&gt;
       &amp;quot;enabled&amp;quot;: true&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバを一時的に無効にする場合は、&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用することにより、ワークスペースのルートディレクトリを自動的に許可対象に指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;${workspaceFolder}&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; (グローバル設定) または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; (プロジェクト設定) ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Filesystem MCP Serverは、ファイル読み取り、ファイル書き込み、ディレクトリ管理、ファイル検索・管理の4カテゴリで合計14個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル読み取りツール ====&lt;br /&gt;
下表に、ファイルの内容を読み込むためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル読み取りツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; || 指定したファイルの完全な内容を読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_text_file&amp;lt;/code&amp;gt; || テキストファイルを読み込む。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; よりも詳細なエラーメッセージを提供する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_media_file&amp;lt;/code&amp;gt; || 画像やオーディオファイルをBase64エンコードして読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_multiple_files&amp;lt;/code&amp;gt; || 複数のファイルを同時に読み込む。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル書き込みツール ====&lt;br /&gt;
下表に、ファイルの作成・編集を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル書き込みツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write_file&amp;lt;/code&amp;gt; || ファイルを新規作成する。&amp;lt;br&amp;gt;既存ファイルが存在する場合は上書きする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;edit_file&amp;lt;/code&amp;gt; || 行ベースの編集を行う。&amp;lt;br&amp;gt;検索・置換操作に対応し、git形式のdiffを出力する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリ管理ツール ====&lt;br /&gt;
下表に、ディレクトリの作成・参照を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ディレクトリ管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_directory&amp;lt;/code&amp;gt; || ディレクトリを作成する。&amp;lt;br&amp;gt;ネストしたディレクトリ構造の作成にも対応する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory&amp;lt;/code&amp;gt; || ディレクトリの内容を一覧表示する。&amp;lt;br&amp;gt;ファイルには &amp;lt;code&amp;gt;[FILE]&amp;lt;/code&amp;gt;、ディレクトリには &amp;lt;code&amp;gt;[DIR]&amp;lt;/code&amp;gt; のプレフィックスが付与される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory_with_sizes&amp;lt;/code&amp;gt; || ファイルサイズを含むディレクトリの内容を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory_tree&amp;lt;/code&amp;gt; || ディレクトリ構造をJSON形式のツリーとして取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル検索・管理ツール ====&lt;br /&gt;
下表に、ファイルの検索・メタデータ取得・移動に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル検索・管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_files&amp;lt;/code&amp;gt; || グロブパターンを使用してファイルを再帰的に検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_file_info&amp;lt;/code&amp;gt; || ファイルのメタデータを取得する。&amp;lt;br&amp;gt;取得できる情報: ファイルサイズ、作成日時、更新日時等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;move_file&amp;lt;/code&amp;gt; || ファイルまたはディレクトリを移動する。&amp;lt;br&amp;gt;ファイル、ディレクトリのリネームにも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; || サーバ起動時に許可として設定されたディレクトリの一覧を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== アクセス制限の仕組み ====&lt;br /&gt;
Filesystem MCP Serverは、起動時に指定したディレクトリのみへのアクセスを許可する設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
指定ディレクトリ外へのアクセス試行はブロックされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なセキュリティ機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 指定ディレクトリへのアクセス制限&lt;br /&gt;
*: サーバ起動時にコマンドライン引数で指定したディレクトリのみにアクセスを限定する。&lt;br /&gt;
* パストラバーサル防止&lt;br /&gt;
*: &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等を利用した許可ディレクトリ外へのアクセスを防止する。&lt;br /&gt;
* Rootsプロトコルによる動的更新&lt;br /&gt;
*: MCPのRootsプロトコルにより、実行時に許可ディレクトリを動的に更新できる。&lt;br /&gt;
* Docker使用時の読み取り専用設定&lt;br /&gt;
*: Docker実行時に &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、マウントしたディレクトリへの書き込みを禁止できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ上の注意事項 ====&lt;br /&gt;
下表に、Filesystem MCP Serverを安全に使用するための推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 許可ディレクトリの最小化 || 必要最小限のディレクトリのみを許可対象として指定する。&amp;lt;br&amp;gt;ルートディレクトリ (/ や C:\) を許可対象に含めることは避けること。&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用の活用 || 書き込みが不要な用途では、&amp;lt;br&amp;gt;Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用して読み取り専用で実行することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || 過去バージョンにパス検証の脆弱性が存在したため、常に最新バージョンを使用すること。&amp;lt;br&amp;gt;最新版では修正済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Filesystem MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの読み取り ====&lt;br /&gt;
ファイルの内容を読み込む場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 単一ファイルを読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/config.yaml の内容を読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 複数ファイルをまとめて読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 src/main.py と src/utils.py の2つのファイルを同時に読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリの参照 ====&lt;br /&gt;
ディレクトリの内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリの一覧を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects ディレクトリの内容を一覧表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリ構造をツリー形式で確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp のディレクトリツリーを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの作成・編集 ====&lt;br /&gt;
ファイルを作成または編集する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいファイルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/README.md を作成して、プロジェクトの概要を記述してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 既存ファイルを編集する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/config.py の DEBUG 変数の値を False に変更してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの検索 ====&lt;br /&gt;
特定のファイルを検索する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* globパターンでPythonファイルを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects 配下にある全ての .py ファイルを検索してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;Server transport closed unexpectedly&amp;lt;/u&amp;gt; エラーが発生する || PATHの問題&amp;lt;br&amp;gt;NVM等のバージョンマネージャを使用している場合に発生しやすい。 || Node.jsの完全パスを設定ファイルの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に指定する。&amp;lt;br&amp;gt;または、NVM向けのラッパースクリプトを作成して使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;MCP filesystem: Server disconnected&amp;lt;/u&amp;gt; エラーが発生する || NVM環境での実行時に環境が正しく初期化されていない。 || シェルの設定ファイルでNVMを正しく初期化した上でMCPクライアントを起動する。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;nvm use&amp;lt;/code&amp;gt; を実行してからMCPクライアントを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ファイルが読み込まれない || JSONファイルにコメントが含まれている。&amp;lt;br&amp;gt;JSON標準仕様ではコメントは使用不可である。 || 設定ファイルからコメントを全て削除する。&lt;br /&gt;
|-&lt;br /&gt;
| アクセスが拒否される || 指定した許可ディレクトリの外にあるファイルへのアクセスを試みている。 || &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; ツールで許可ディレクトリを確認し、&amp;lt;br&amp;gt;必要に応じてサーバの起動引数に対象ディレクトリを追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| パスが正しく認識されない || OneDriveが有効な場合、表示上のパスと実際のパスが異なることがある。 || エクスプローラーでフォルダのプロパティを確認し、&amp;lt;br&amp;gt;実際のパスを設定ファイルに記述する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドがWindowsのパス解決で問題を起こすことがある。 || &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の先頭に&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;]&amp;lt;/code&amp;gt; を追加して &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一般的なデバッグ手順 ====&lt;br /&gt;
問題が発生した場合は、以下に示す手順でデバッグを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアント (Claude Desktop等) を完全に終了する。&lt;br /&gt;
# 設定ファイルのJSON構文を検証する。(JSONリンターを使用する)&lt;br /&gt;
# Node.jsのバージョンが、v18.0.0以上であることを確認する。&lt;br /&gt;
# &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが使用可能であることを確認する。(&amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; を実行する)&lt;br /&gt;
# 以下に示すコマンドを手動で実行してサーバが正常に起動するか確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
# MCPクライアントを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Filesystem,MCP,Model Context Protocol,filesystem-mcp-server,Claude,Claude Desktop,Claude Code,VS Code,Cursor,Node.js,npx,Docker,ファイルシステム,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_SQLite&amp;diff=14612</id>
		<title>MCPサーバ - SQLite</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_SQLite&amp;diff=14612"/>
		<updated>2026-03-25T09:01:37Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == SQLite MCP Server (mcp-server-sqlite) は、Model Context Protocol (MCP) を通じて、AIアシスタントがSQLiteデータベースと対話するための標準化されたインターフェースを提供するサーバである。&amp;lt;br&amp;gt; Anthropicが開発したMCP公式リファレンス実装の1つであり、MITライセンスで公開されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; AIアシスタントが自然言語の指示を通じてSQLiteデータベースの…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
SQLite MCP Server (mcp-server-sqlite) は、Model Context Protocol (MCP) を通じて、AIアシスタントがSQLiteデータベースと対話するための標準化されたインターフェースを提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
Anthropicが開発したMCP公式リファレンス実装の1つであり、MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AIアシスタントが自然言語の指示を通じてSQLiteデータベースの操作を実行できるようにする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor、Windsurf等の主要なMCPクライアントに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxの主要なOSに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このサーバを使用することにより、AIアシスタントがSQLクエリの実行、テーブルの作成・管理、スキーマの確認、ビジネスインサイトの記録等を自然言語による指示で自動化できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ データベースMCPサーバーツール一覧&lt;br /&gt;
|-&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| クエリ実行ツール || SELECTクエリによるデータ取得、INSERT、UPDATE、DELETEによるデータ操作&lt;br /&gt;
|-&lt;br /&gt;
| テーブル管理ツール || テーブルの作成、テーブル一覧の表示、スキーマ情報の確認&lt;br /&gt;
|-&lt;br /&gt;
| インサイト記録機能 || 分析中に発見したビジネスインサイトを動的メモリソースに蓄積&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== Python版の要件 ====&lt;br /&gt;
Python版のSQLite MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Python 3.10以上&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
* uv (Astralが提供するPythonパッケージマネージャ)&lt;br /&gt;
*: &amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを使用してMCPサーバを実行するために必要&lt;br /&gt;
* SQLite&lt;br /&gt;
*: PythonにSQLiteが組み込まれているため、別途インストールは不要&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Node.js版の要件 ====&lt;br /&gt;
Node.js版のSQLite MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されている。&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用して、MCPサーバを実行するために必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== uvのインストール ====&lt;br /&gt;
MCPサーバの実行に必要なuvをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsの場合 =====&lt;br /&gt;
PowerShellを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 powershell -ExecutionPolicy ByPass -c &amp;quot;irm https://astral.sh/uv/install.ps1 | iex&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WinGetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 winget install --id=astral-sh.uv -e&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== MacOSの場合 =====&lt;br /&gt;
Homebrewを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install uv&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
curlを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Linuxの場合 =====&lt;br /&gt;
curlを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
wgetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 wget -qO- https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-sqliteのインストール ====&lt;br /&gt;
&amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; コマンドを実行してインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 pip install mcp-server-sqlite&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; を使用する場合はインストール不要で、そのままサーバを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
詳細は、後述の[[#SQLite MCP Serverの実行]]セクションを参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SQLite MCP Serverの実行 ====&lt;br /&gt;
インストール後、以下に示すコマンドでSQLite MCP Serverを起動できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを実行して起動する場合 (推奨) は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 uvx mcp-server-sqlite --db-path /path/to/database.db&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを実行して起動する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-sqlite /path/to/database.db&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、コマンドラインオプションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ コマンドラインオプションの一覧&lt;br /&gt;
! オプション !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--db-path&amp;lt;/code&amp;gt; || 必須 || SQLiteデータベースファイルへのパスを指定する。&amp;lt;br&amp;gt;絶対パスを使用することを推奨する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; を使用する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-sqlite&amp;quot;, &amp;quot;--db-path&amp;quot;, &amp;quot;/path/to/database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; を使用する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sqlite&amp;quot;, &amp;quot;/path/to/database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを実行して、SQLite MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドでMCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add sqlite -- uvx mcp-server-sqlite --db-path /path/to/database.db&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project sqlite -- uvx mcp-server-sqlite --db-path /path/to/database.db&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに設定を記述する場合は、以下に示す内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-sqlite&amp;quot;, &amp;quot;--db-path&amp;quot;, &amp;quot;/path/to/database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-sqlite&amp;quot;, &amp;quot;--db-path&amp;quot;, &amp;quot;/path/to/database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの設定の注意点 ====&lt;br /&gt;
Windowsでは、パスの区切り文字として2重バックスラッシュを使用する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-sqlite&amp;quot;, &amp;quot;--db-path&amp;quot;, &amp;quot;C:\\Users\\name\\database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合は、&amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
      &amp;quot;sqlite&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;cmd&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sqlite&amp;quot;, &amp;quot;C:\\Users\\name\\database.db&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SQLite MCP Serverの機能 ==&lt;br /&gt;
SQLite MCP Serverは、クエリ実行、テーブル管理、インサイト記録の機能を6つのツールと1つのリソースで提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 提供ツール一覧 ====&lt;br /&gt;
下表に、SQLite MCP Serverが提供する全ツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;read_query&amp;lt;/u&amp;gt; || SELECTクエリを実行してデータを取得する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;write_query&amp;lt;/u&amp;gt; || INSERT、UPDATE、DELETEクエリを実行する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;create_table&amp;lt;/u&amp;gt; || 新しいテーブルを作成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;list_tables&amp;lt;/u&amp;gt; || データベース内の全テーブル名を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;describe_table&amp;lt;/u&amp;gt; || 指定したテーブルのスキーマ情報 (カラム名、型、制約) を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;append_insight&amp;lt;/u&amp;gt; || ビジネスインサイトを分析メモに追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 提供リソース ====&lt;br /&gt;
下表に、SQLite MCP Serverが提供するリソースを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ リソースの一覧&lt;br /&gt;
! リソースURI !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| memo://insights || 分析中に発見したビジネスインサイトを蓄積する動的メモリソース。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;append_insight&amp;lt;/u&amp;gt; ツールで追記される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 提供プロンプト ====&lt;br /&gt;
下表に、SQLite MCP Serverが提供するプロンプトを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロンプトの一覧&lt;br /&gt;
! プロンプト名 !! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;mcp-demo&amp;lt;/u&amp;gt; || &amp;lt;code&amp;gt;topic&amp;lt;/code&amp;gt; (分析対象を指定) || SQLiteデータベース操作のデモンストレーション用プロンプト。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
SQLite MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== テーブルの確認 ====&lt;br /&gt;
データベース内のテーブルを確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* データベース内の全テーブルを確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 このデータベースに含まれるすべてのテーブルを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* テーブルのスキーマを確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 usersテーブルのカラム構成と制約を確認してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データのクエリ ====&lt;br /&gt;
テーブルからデータを取得する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 条件を指定してデータを取得する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 productsテーブルから価格が1000円以上の商品の名前と価格を取得してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 月別集計を行う場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 salesデータから2024年の月別売上を集計して、ビジネスインサイトメモに記録してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== テーブルの作成 ====&lt;br /&gt;
新しいテーブルを作成する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* スキーマを指定してテーブルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 以下のスキーマでusersテーブルを作成してください:&lt;br /&gt;
 id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
下表に、SQLite MCP Serverのセキュリティに関する推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| データベースファイルの権限設定 || データベースファイルには適切なファイルパーミッションを設定すること。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;chmod 644 database.db&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 絶対パスの使用 || &amp;lt;code&amp;gt;--db-path&amp;lt;/code&amp;gt; オプションには絶対パスを使用する。&amp;lt;br&amp;gt;相対パスや &amp;lt;u&amp;gt;~&amp;lt;/u&amp;gt; (チルダ) は正しく解釈されない場合がある。&lt;br /&gt;
|-&lt;br /&gt;
| 書き込み権限の考慮 || &amp;lt;u&amp;gt;write_query&amp;lt;/u&amp;gt; および &amp;lt;u&amp;gt;create_table&amp;lt;/u&amp;gt; ツールはデータを変更するため、&amp;lt;br&amp;gt;不用意なデータ変更が発生しないよう注意すること。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
下表に、一般的なエラーと対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| uvx または npxコマンドが見つからない || uvまたはNode.jsがインストールされていない。&amp;lt;br&amp;gt;またはPATHが正しく設定されていない。 || uvまたはNode.jsを再インストールして、PATH設定を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| データベースファイルのパスエラーが発生する || 相対パスや &amp;lt;u&amp;gt;~&amp;lt;/u&amp;gt; が使用されている。 || &amp;lt;code&amp;gt;--db-path&amp;lt;/code&amp;gt; オプションには絶対パスを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;database is locked&amp;lt;/u&amp;gt; エラーが発生する || 他のプロセスが同時にデータベースへアクセスしている。 || 他のプロセスのアクセスを確認・終了する。&amp;lt;br&amp;gt;または、WALモードの有効化を検討する。&lt;br /&gt;
|-&lt;br /&gt;
| 権限エラーが発生する || データベースファイルへの読み取り・書き込み権限がない。 || &amp;lt;code&amp;gt;chmod 644 database.db&amp;lt;/code&amp;gt; 等でファイルの権限を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| ツールが表示されない || 設定ファイルのJSON構文が誤っている。&amp;lt;br&amp;gt;またはMCPクライアントが再起動されていない。 || 設定ファイルのJSON構文を検証して、MCPクライアントを再起動する。&lt;br /&gt;
|-&lt;br /&gt;
| Windowsでパスが認識されない || パスの区切り文字が正しくない。 || Windowsでは2重バックスラッシュ (&amp;lt;code&amp;gt;C:\\Users\\name\\database.db&amp;lt;/code&amp;gt;) を使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,SQLite,MCP,Model Context Protocol,mcp-server-sqlite,Claude,AI,データベース,SQL&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_PostgreSQL&amp;diff=14611</id>
		<title>MCPサーバ - PostgreSQL</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_PostgreSQL&amp;diff=14611"/>
		<updated>2026-03-25T08:53:09Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == PostgreSQL MCP Server (@henkey/postgres-mcp-server) は、Model Context Protocol (MCP) を通じて、&amp;lt;br&amp;gt; AIアシスタントがPostgreSQLデータベースと相互作用するための統合ツールインターフェースを提供するサーバである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 元は46個のツールを17個に統合したメタツール設計を採用しており、効率的なデータベース操作を実現する。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Claude Desktop、Claude Code…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PostgreSQL MCP Server (@henkey/postgres-mcp-server) は、Model Context Protocol (MCP) を通じて、&amp;lt;br&amp;gt;&lt;br /&gt;
AIアシスタントがPostgreSQLデータベースと相互作用するための統合ツールインターフェースを提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
元は46個のツールを17個に統合したメタツール設計を採用しており、効率的なデータベース操作を実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、OpenCode、VS Code、Cursor等の複数のMCPクライアント環境で動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxの主要なOSに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このサーバを使用することにより、AIアシスタントが自然言語の指示を通じてPostgreSQLのスキーマ管理、テーブル操作、クエリ実行、データベース分析、リアルタイム監視等を自動化できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な機能カテゴリは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Supabaseツール一覧&lt;br /&gt;
|-&lt;br /&gt;
! カテゴリ !! ツール数 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| メタツール || 8個 || スキーマ管理、テーブル操作、カラム管理、ENUM管理、&amp;lt;br&amp;gt;制約管理、インデックス管理、型管理、RLSポリシー管理&lt;br /&gt;
|-&lt;br /&gt;
| クエリ・ミューテーションツール || 4個 || SELECT文の実行、データ変更 (INSERT / UPDATE / DELETE)、&amp;lt;br&amp;gt;任意のSQL実行、コメント管理&lt;br /&gt;
|-&lt;br /&gt;
| 専門ツール || 5個 || データベース分析、デバッグ、データエクスポート / インポート、&amp;lt;br&amp;gt;データベース間転送、リアルタイム監視&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL MCPサーバのインストール ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
PostgreSQL MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js&lt;br /&gt;
*: バージョン v18以降が必要&lt;br /&gt;
* PostgreSQL&lt;br /&gt;
*: バージョン 12以降が必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してPostgreSQL MCP Serverを実行するために必要&lt;br /&gt;
*: Node.jsに同梱されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== npxを使用したインストール ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でPostgreSQL MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行して、PostgreSQL MCP Serverを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx @henkey/postgres-mcp-server --connection-string &amp;quot;postgresql://user:password@localhost:5432/database&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== npmグローバルインストール ====&lt;br /&gt;
npmを使用してグローバルにインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @henkey/postgres-mcp-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用したインストール ====&lt;br /&gt;
DockerイメージはDocker Hubで公開されており、Node.jsをインストールせずにPostgreSQL MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -e POSTGRES_CONNECTION_STRING=&amp;quot;postgresql://user:password@localhost:5432/database&amp;quot; henkey/postgres-mcp:latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Smithery経由のインストール ====&lt;br /&gt;
Smithery CLIを使用してClaude向けにインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @smithery/cli install @HenkDz/postgresql-mcp-server --client claude&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
Claude Desktopの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続文字列を使用する場合は、設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@henkey/postgres-mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;POSTGRES_CONNECTION_STRING&amp;quot;: &amp;quot;postgresql://username:password@localhost:5432/database&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dockerを使用する場合は、設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&lt;br /&gt;
         &amp;quot;run&amp;quot;, &amp;quot;--rm&amp;quot;, &amp;quot;-i&amp;quot;,&lt;br /&gt;
         &amp;quot;-e&amp;quot;, &amp;quot;POSTGRES_CONNECTION_STRING=postgresql://username:password@host.docker.internal:5432/database&amp;quot;,&lt;br /&gt;
         &amp;quot;henkey/postgres-mcp:latest&amp;quot;&lt;br /&gt;
       ]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してPostgreSQL MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add postgresql -- npx -y @henkey/postgres-mcp-server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに設定を記述する場合は、以下に示す内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@henkey/postgres-mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;POSTGRES_CONNECTION_STRING&amp;quot;: &amp;quot;postgresql://username:password@localhost:5432/database&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenCodeの設定 ====&lt;br /&gt;
設定ファイル &amp;lt;u&amp;gt;opencode.json&amp;lt;/u&amp;gt; ファイルの &amp;lt;code&amp;gt;mcpServers&amp;lt;/code&amp;gt; セクションに以下に示す内容を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;stdio&amp;quot;,&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@henkey/postgres-mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;POSTGRES_CONNECTION_STRING&amp;quot;: &amp;quot;postgresql://username:password@localhost:5432/database&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;postgresql&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@henkey/postgres-mcp-server&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;POSTGRES_CONNECTION_STRING&amp;quot;: &amp;quot;postgresql://username:password@localhost:5432/database&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数とオプション ==&lt;br /&gt;
==== 環境変数一覧 ====&lt;br /&gt;
下表に、PostgreSQL MCP Serverの動作をカスタマイズするための環境変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 環境変数の一覧&lt;br /&gt;
! 環境変数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;POSTGRES_CONNECTION_STRING&amp;lt;/code&amp;gt; || PostgreSQLへの接続文字列を指定する。&amp;lt;br&amp;gt;標準のPostgreSQL URI形式を使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGHOST&amp;lt;/code&amp;gt; || PostgreSQLサーバのホスト名を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGPORT&amp;lt;/code&amp;gt; || PostgreSQLサーバのポート番号を指定する。&amp;lt;br&amp;gt;デフォルト値は 5432&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGDATABASE&amp;lt;/code&amp;gt; || 接続先のデータベース名を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGUSER&amp;lt;/code&amp;gt; || PostgreSQLのユーザ名を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGPASSWORD&amp;lt;/code&amp;gt; || PostgreSQLのパスワードを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PGSSLMODE&amp;lt;/code&amp;gt; || SSL接続モードを指定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;disable&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;allow&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;prefer&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt; 等が使用できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 接続文字列 ==&lt;br /&gt;
==== 接続文字列の基本形式 ====&lt;br /&gt;
PostgreSQL MCP Serverへの接続文字列の基本形式を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://username:password@hostname:port/database&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、各パラメータの説明を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 接続パラメータの一覧&lt;br /&gt;
! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; || PostgreSQLデータベースのユーザ名&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; || PostgreSQLデータベースのパスワード&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt; || PostgreSQLサーバのホスト名またはIPアドレス&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;port&amp;lt;/code&amp;gt; || PostgreSQLサーバのポート番号 (デフォルト: 5432)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt; || 接続先のデータベース名&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続文字列の例 ====&lt;br /&gt;
ローカル接続 (認証あり) の場合の接続文字列を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://username:password@localhost:5432/database&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ローカル接続 (認証なし) の場合の接続文字列を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://localhost:5432/database&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSL接続の場合の接続文字列を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://username:password@hostname:5432/database?sslmode=require&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のパラメータを指定する場合の接続文字列を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 postgresql://username:password@hostname:5432/database?sslmode=require&amp;amp;connect_timeout=10&amp;amp;application_name=mcp_server&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PostgreSQL MCPサーバの機能 ==&lt;br /&gt;
PostgreSQL MCP Serverは、メタツール、クエリ・ミューテーションツール、専門ツールの3つのカテゴリで17個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== メタツール ====&lt;br /&gt;
下表に、データベーススキーマの定義・管理に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ メタツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| schemaManagement || スキーマの作成、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| tableOperations || テーブルの作成、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| columnManagement || カラムの追加、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| enumManagement || ENUM型の作成、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| constraintManagement || 制約 (主キー、外部キー、一意制約等) の管理を行う。&lt;br /&gt;
|-&lt;br /&gt;
| indexManagement || インデックスの作成、変更、削除を管理する。&lt;br /&gt;
|-&lt;br /&gt;
| typeManagement || カスタム型の管理を行う。&lt;br /&gt;
|-&lt;br /&gt;
| policyManagement || Row Level Security (RLS) ポリシーの管理を行う。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クエリ・ミューテーションツール ====&lt;br /&gt;
下表に、SQLクエリの実行およびデータ変更に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ クエリ・ミューテーションツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| executeQuery || SELECT文を実行してデータを取得する。&amp;lt;br&amp;gt;読み取り専用クエリに使用する。&lt;br /&gt;
|-&lt;br /&gt;
| executeMutation || INSERT、UPDATE、DELETE文を実行してデータを変更する。&lt;br /&gt;
|-&lt;br /&gt;
| executeSQL || 任意のSQL文を実行する。DDL文やトランザクション制御にも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| commentsManagement || テーブル、カラム等のデータベースオブジェクトにコメントを追加・管理する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門ツール ====&lt;br /&gt;
下表に、データベースの分析・監視・データ転送に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 専門ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| databaseAnalysis || データベースの統計情報、テーブルサイズ、インデックス使用状況等を分析する。&lt;br /&gt;
|-&lt;br /&gt;
| debugDatabase || ロック状況、実行中のクエリ、接続情報等のデバッグ情報を取得する。&lt;br /&gt;
|-&lt;br /&gt;
| dataExportImport || データのCSV / JSONエクスポートおよびインポートを行う。&lt;br /&gt;
|-&lt;br /&gt;
| crossDatabaseTransfer || 異なるデータベース間でのデータ転送を行う。&lt;br /&gt;
|-&lt;br /&gt;
| realtimeMonitoring || データベースのパフォーマンス、接続数、クエリ実行状況をリアルタイムで監視する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
PostgreSQL MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== テーブル構造の確認 ====&lt;br /&gt;
テーブルのスキーマ情報を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* usersテーブルのスキーマ情報を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 usersテーブルのスキーマ情報を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データの検索 ====&lt;br /&gt;
テーブルからデータをクエリする場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 条件を指定して特定フィールドのみ取得する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 productsテーブルから価格が1000円以降の商品の名前と価格を取得してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データベース分析 ====&lt;br /&gt;
データベースの統計情報やインデックス使用状況を分析する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* テーブルサイズとインデックス使用状況を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 データベースのテーブルサイズとインデックス使用状況を分析してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リアルタイム監視 ====&lt;br /&gt;
現在のデータベースの状態をリアルタイムで確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 実行中のクエリとアクティブな接続数を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 現在実行中のクエリとアクティブな接続数を確認してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データのエクスポート ====&lt;br /&gt;
テーブルデータをファイル形式でエクスポートする場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* テーブルデータをCSV形式でエクスポートする場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 ordersテーブルのデータをCSV形式でエクスポートしてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
==== セキュリティ ====&lt;br /&gt;
下表に、PostgreSQL MCP Serverのセキュリティに関する推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用ユーザの使用 || MCPサーバ用に専用の読み取り専用PostgreSQLユーザを作成することを推奨する。&amp;lt;br&amp;gt;必要最小限の権限のみを付与すること。&lt;br /&gt;
|-&lt;br /&gt;
| 認証情報の管理 || 接続文字列やパスワード等の機密情報は、設定ファイルに直接記述せず、&amp;lt;br&amp;gt;環境変数 (&amp;lt;code&amp;gt;POSTGRES_CONNECTION_STRING&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PGPASSWORD&amp;lt;/code&amp;gt; 等) を使用して管理することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| SSL/TLS接続の使用 || 本番環境では、接続文字列に &amp;lt;code&amp;gt;sslmode=require&amp;lt;/code&amp;gt; を指定して、&amp;lt;br&amp;gt;SSL/TLS暗号化通信を有効にすることを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| ネットワークアクセスの制限 || &amp;lt;u&amp;gt;pg_hba.conf&amp;lt;/u&amp;gt; でホストベース認証を設定して、信頼できるネットワーク範囲のみから接続を許可すること。&lt;br /&gt;
|-&lt;br /&gt;
| ツールアクセス制御 || MCPクライアントのツールアクセス制御機能を活用して、&amp;lt;br&amp;gt;AIアシスタントが使用できるツールを必要なものだけに制限することを推奨する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
下表に、一般的なエラーと対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| 接続エラーが発生する || 接続文字列のユーザ名またはパスワードが誤っている。&amp;lt;br&amp;gt;PostgreSQLサーバが起動していない。 || 接続文字列を確認する。&amp;lt;br&amp;gt;PostgreSQLサーバの起動状態を確認する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;pg_hba.conf&amp;lt;/u&amp;gt; ファイルの認証設定を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 接続できない (Connection refused) || PostgreSQLがリッスンしているポート (デフォルト: 5432) が&amp;lt;br&amp;gt;ファイアウォールでブロックされている。 || ファイアウォールの設定を確認してポート5432を開放する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;postgresql.conf&amp;lt;/u&amp;gt; ファイルの &amp;lt;code&amp;gt;listen_addresses&amp;lt;/code&amp;gt; を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| npxコマンドが見つからない || Node.jsがインストールされていない。&amp;lt;br&amp;gt;または要件を満たすバージョンでない。 || Node.js v18以降をインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| SSL接続エラーが発生する || SSL接続モードの設定が誤っている。&amp;lt;br&amp;gt;SSL証明書が無効 || 接続文字列の &amp;lt;code&amp;gt;sslmode&amp;lt;/code&amp;gt; パラメータを確認する。&amp;lt;br&amp;gt;PostgreSQLサーバ側のSSL設定を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 書き込み操作が拒否される || PostgreSQLユーザに書き込み権限が付与されていない。 || PostgreSQLユーザのGRANT権限を確認する。&amp;lt;br&amp;gt;必要な場合はINSERT、UPDATE、DELETE権限を付与する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,PostgreSQL,MCP,Model Context Protocol,postgres-mcp-server,Claude,AI,MCPサーバ,データベース,スキーマ管理,クエリ,SQL&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_YouTube&amp;diff=14610</id>
		<title>MCPサーバ - YouTube</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_YouTube&amp;diff=14610"/>
		<updated>2026-03-25T08:45:58Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == YouTube MCPサーバは、Model Context Protocol (MCP) を通じて、AIアシスタントがYouTube動画の字幕・トランスクリプトを取得するための機能を提供するサーバである。&amp;lt;br&amp;gt; YouTube動画のURLを指定するだけで、AIアシスタントが動画の内容を分析・要約できるようになる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; YouTube Data APIキーは不要で、手軽に導入可能である。&amp;lt;br&amp;gt; Claude Desktop、Claude Code…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
YouTube MCPサーバは、Model Context Protocol (MCP) を通じて、AIアシスタントがYouTube動画の字幕・トランスクリプトを取得するための機能を提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
YouTube動画のURLを指定するだけで、AIアシスタントが動画の内容を分析・要約できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
YouTube Data APIキーは不要で、手軽に導入可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code等の主要なMCPクライアントに対応し、Windows、MacOS、Linuxの主要なOSで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
代表的な実装として以下の2つが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ YouTube文字起こしMCPサーバー実装比較&lt;br /&gt;
|-&lt;br /&gt;
! 実装名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| mcp-youtube&amp;lt;br&amp;gt;(@anaisbetts/mcp-youtube) || Ani Betts氏が開発した実装であり、yt-dlpを使用して字幕を取得する。&amp;lt;br&amp;gt;単純な構成で導入が容易であり、YouTube Data APIキーは不要である。&lt;br /&gt;
|-&lt;br /&gt;
| mcp-server-youtube-transcript&amp;lt;br&amp;gt;(@kimtaeyoon83/mcp-server-youtube-transcript) || Kim Taeyoon氏が開発した実装であり、&amp;lt;br&amp;gt;多言語対応、広告フィルタリング、タイムスタンプ制御等の高度な機能を提供する。&amp;lt;br&amp;gt;外部ツールへの依存がなく、Node.jsのみで動作する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な活用シーンを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 動画コンテンツの要約と分析&lt;br /&gt;
* 技術動画から情報抽出&lt;br /&gt;
* ポッドキャスト形式コンテンツの分析&lt;br /&gt;
* 言語学習における多言語字幕の取得&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2つのサーバの比較 ==&lt;br /&gt;
下表に、mcp-youtubeとmcp-server-youtube-transcriptの主要な違いを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ YouTube MCPサーバ比較&lt;br /&gt;
! 項目 !! mcp-youtube !! mcp-server-youtube-transcript&lt;br /&gt;
|-&lt;br /&gt;
| 開発元 || Ani Betts || Kim Taeyoon&lt;br /&gt;
|-&lt;br /&gt;
| npmパッケージ || @anaisbetts/mcp-youtube || @kimtaeyoon83/mcp-server-youtube-transcript&lt;br /&gt;
|-&lt;br /&gt;
| バージョン || 0.6.0 || 0.1.1&lt;br /&gt;
|-&lt;br /&gt;
| ライセンス || MIT || MIT&lt;br /&gt;
|-&lt;br /&gt;
| GitHub スター数 || 506 || 503&lt;br /&gt;
|-&lt;br /&gt;
| 外部依存 || yt-dlp 必須 || なし&lt;br /&gt;
|-&lt;br /&gt;
| 多言語対応 || 限定的 || 対応 (自動フォールバック)&lt;br /&gt;
|-&lt;br /&gt;
| 広告フィルタリング || なし || 対応 (デフォルト有効)&lt;br /&gt;
|-&lt;br /&gt;
| タイムスタンプ制御 || タイムスタンプ除去 || 表示 / 非表示を選択可能&lt;br /&gt;
|-&lt;br /&gt;
| YouTube Shorts対応 || 不明 || 対応&lt;br /&gt;
|-&lt;br /&gt;
| YouTube API キー || 不要 || 不要&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== mcp-youtubeの要件 ====&lt;br /&gt;
* Node.js&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
* yt-dlp&lt;br /&gt;
*: 字幕取得のために必要な外部ツール&lt;br /&gt;
*: MacOS: &amp;lt;code&amp;gt;brew install yt-dlp&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Python環境: &amp;lt;code&amp;gt;pip install yt-dlp&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Windows (WinGet): &amp;lt;code&amp;gt;winget install yt-dlp&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-youtube-transcriptの要件 ====&lt;br /&gt;
* Node.js 18以上&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
*: 外部ツールへの依存はなし&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== yt-dlpのインストール (mcp-youtubeを使用する場合) ====&lt;br /&gt;
mcp-youtubeはyt-dlpに依存するため、事前にインストールが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== MacOSの場合 =====&lt;br /&gt;
Homebrewを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install yt-dlp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Linux / MacOSの場合 (pip経由) =====&lt;br /&gt;
pipを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 pip install yt-dlp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsの場合 =====&lt;br /&gt;
WinGetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 winget install yt-dlp&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後、yt-dlpコマンドがPATHに含まれていることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 yt-dlp --version&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-youtubeの設定 ====&lt;br /&gt;
===== Claude Desktopでの設定 =====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@anaisbetts/mcp-youtube&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Claude Codeでの設定 =====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してMCPサーバを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add youtube -- npx -y @anaisbetts/mcp-youtube&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project youtube -- npx -y @anaisbetts/mcp-youtube&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== VS Code / Cursorでの設定 =====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@anaisbetts/mcp-youtube&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsでの設定 =====&lt;br /&gt;
Windowsでは &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; を使用するMCPサーバの場合、&amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;cmd&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@anaisbetts/mcp-youtube&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-youtube-transcriptの設定 ====&lt;br /&gt;
===== Claude Desktopでの設定 =====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube-transcript&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@kimtaeyoon83/mcp-server-youtube-transcript&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Claude Codeでの設定 =====&lt;br /&gt;
 claude mcp add youtube-transcript -- npx -y @kimtaeyoon83/mcp-server-youtube-transcript&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project youtube-transcript -- npx -y @kimtaeyoon83/mcp-server-youtube-transcript&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== VS Code / Cursorでの設定 =====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube-transcript&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@kimtaeyoon83/mcp-server-youtube-transcript&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsでの設定 =====&lt;br /&gt;
Windowsでは &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;youtube-transcript&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;cmd&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@kimtaeyoon83/mcp-server-youtube-transcript&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ツール仕様 ==&lt;br /&gt;
==== mcp-youtubeのツール ====&lt;br /&gt;
下表に、mcp-youtubeが提供するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ mcp-youtube ツール一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || YouTube URLを指定して字幕テキストを取得する。&amp;lt;br&amp;gt;yt-dlpを使用して字幕データを取得し、テキスト形式で返す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-youtube-transcriptのツール ====&lt;br /&gt;
下表に、mcp-server-youtube-transcriptが提供するツールとパラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ mcp-server-youtube-transcript ツール一覧&lt;br /&gt;
! ツール名 !! パラメータ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || url (必須) || YouTube動画URL、Shorts URL、動画IDを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || lang (オプション、デフォルト: &amp;quot;en&amp;quot;) || 取得する字幕の言語コードを指定する。&amp;lt;br&amp;gt;例: ja (日本語)、en (英語)、ko (韓国語)&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || include_timestamps (オプション、デフォルト: false) || タイムスタンプを字幕テキストに含めるかどうかを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| get_transcript || strip_ads (オプション、デフォルト: true) || 広告・スポンサーシップに関する文字列を除去するかどうかを指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 対応URL形式 (mcp-server-youtube-transcript) ====&lt;br /&gt;
mcp-server-youtube-transcriptは、以下に示すURL形式に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 通常URL&lt;br /&gt;
*: https://www.youtube.com/watch?v=&amp;lt;動画ID&amp;gt;&lt;br /&gt;
* YouTube Shorts URL&lt;br /&gt;
*: https://www.youtube.com/shorts/&amp;lt;動画ID&amp;gt;&lt;br /&gt;
* 短縮URL&lt;br /&gt;
*: https://youtu.be/&amp;lt;動画ID&amp;gt;&lt;br /&gt;
* 動画IDのみ&lt;br /&gt;
*: &amp;lt;動画ID&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
MCPサーバを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動画の要約 ====&lt;br /&gt;
YouTube動画の内容を要約する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 動画全体を要約する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 このYouTube動画を要約してください: https://www.youtube.com/watch?v=xxxxx&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* キーポイントを抽出する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 この動画のキーポイントを5つ教えてください: https://www.youtube.com/watch?v=xxxxx&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 多言語字幕の取得 ====&lt;br /&gt;
特定の言語で字幕を取得する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
mcp-server-youtube-transcriptを使用する場合に有効である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 日本語字幕を取得する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 この動画の日本語字幕を取得してください: https://www.youtube.com/watch?v=xxxxx&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術情報の抽出 ====&lt;br /&gt;
技術動画から特定の情報を抽出する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 動画で紹介されているツールを一覧化する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 この技術動画で紹介されているツールを一覧にしてください: https://www.youtube.com/watch?v=xxxxx&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
下表に、一般的なエラーと対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| yt-dlpが見つからない (mcp-youtube) || yt-dlpがインストールされていない。&amp;lt;br&amp;gt;または、PATHに含まれていない。 || yt-dlpをインストールして、PATHに追加する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;yt-dlp --version&amp;lt;/code&amp;gt; コマンドで動作確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 字幕が取得できない || 動画に字幕が存在しない。&amp;lt;br&amp;gt;または、字幕が無効化されている。 || 字幕が存在する動画を指定する。&amp;lt;br&amp;gt;動画のYouTubeページで字幕の有無を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 指定した言語の字幕が取得できない || 指定した言語コードの字幕が動画に存在しない。 || 別の言語コードを試す。&amp;lt;br&amp;gt;mcp-server-youtube-transcriptは自動フォールバックを試みるが、&amp;lt;br&amp;gt;全言語で字幕がない場合はエラーとなる。&lt;br /&gt;
|-&lt;br /&gt;
| npxコマンドエラーが発生する (Windows) || Windowsでは &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; を直接実行できない場合がある。 || 設定ファイルで &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|-&lt;br /&gt;
| Node.jsバージョンエラーが発生する || インストールされているNode.jsが要件を満たしていない。 || mcp-server-youtube-transcriptの場合、&amp;lt;br&amp;gt;Node.js v18以降にアップグレードする。&lt;br /&gt;
|-&lt;br /&gt;
| MCPサーバが起動しない || 設定ファイルの記述に誤りがある。&amp;lt;br&amp;gt;または、Node.jsがインストールされていない。 || MCPクライアントを再起動する。&amp;lt;br&amp;gt;設定ファイルのJSON構文を確認する。&amp;lt;br&amp;gt;Node.jsのインストール状態を確認する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,YouTube,MCP,Model Context Protocol,字幕,トランスクリプト,Claude,AI,mcp-youtube,yt-dlp,mcp-server-youtube-transcript,MCPサーバ,AIアシスタント&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Git&amp;diff=14609</id>
		<title>MCPサーバ - Git</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Git&amp;diff=14609"/>
		<updated>2026-03-25T08:38:21Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Git MCP Server (mcp-server-git) は、Anthropicが開発したModel Context Protocol (MCP) の公式リファレンス実装の1つであり、&amp;lt;br&amp;gt; AIアシスタントがGitリポジトリと対話するための標準化されたインターフェースを提供するサーバである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Python (uv) で実装されており、&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを使用してインストール不要で直接実行できる。&amp;lt;br&amp;gt; Claude Desktop、…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Git MCP Server (mcp-server-git) は、Anthropicが開発したModel Context Protocol (MCP) の公式リファレンス実装の1つであり、&amp;lt;br&amp;gt;&lt;br /&gt;
AIアシスタントがGitリポジトリと対話するための標準化されたインターフェースを提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Python (uv) で実装されており、&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを使用してインストール不要で直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor、Zed等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxの主要なOSに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このサーバを使用することにより、AIアシスタントが自然言語による指示でGitリポジトリの状態確認、差分表示、コミット履歴の確認、&amp;lt;br&amp;gt;&lt;br /&gt;
ファイルのステージング・コミット、ブランチの作成・切り替え等の操作を自動化できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提供されるツールは以下の4カテゴリ、合計12個である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Gitツール一覧&lt;br /&gt;
|-&lt;br /&gt;
| ツール名 || 説明&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリ状態確認ツール || ワーキングツリーの状態確認と差分表示&amp;lt;br&amp;gt;(git_status、git_diff_unstaged、git_diff_staged、git_diff)&lt;br /&gt;
|-&lt;br /&gt;
| コミット履歴・検査ツール || コミット履歴の表示と特定コミットの詳細確認&amp;lt;br&amp;gt;(git_log、git_show)&lt;br /&gt;
|-&lt;br /&gt;
| ファイル・コミット管理ツール || ファイルのステージング、コミット、リセット&amp;lt;br&amp;gt;(git_add、git_commit、git_reset)&lt;br /&gt;
|-&lt;br /&gt;
| ブランチ操作ツール || ブランチの一覧表示、作成、切り替え&amp;lt;br&amp;gt;(git_branch、git_create_branch、git_checkout)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Git MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Python 3.10以降&lt;br /&gt;
*: MCPサーバの実行環境として必要&lt;br /&gt;
* uv (Astralが提供するPythonパッケージマネージャ)&lt;br /&gt;
*: &amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを使用してMCPサーバを実行するために必要&lt;br /&gt;
* Git&lt;br /&gt;
*: Gitリポジトリへのアクセスに必要&lt;br /&gt;
*: 事前にインストールされていること&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== uvのインストール ====&lt;br /&gt;
MCPサーバの実行に必要なuvをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windowsの場合 =====&lt;br /&gt;
PowerShellを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 powershell -ExecutionPolicy ByPass -c &amp;quot;irm https://astral.sh/uv/install.ps1 | iex&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WinGetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 winget install --id=astral-sh.uv -e&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== MacOSの場合 =====&lt;br /&gt;
Homebrewを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 brew install uv&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
curlを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Linuxの場合 =====&lt;br /&gt;
curlを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -LsSf https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
wgetを使用する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 wget -qO- https://astral.sh/uv/install.sh | sh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== pip経由 (全てのOSで対応) =====&lt;br /&gt;
pipを使用してインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 pip install uv&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Pythonのインストール ====&lt;br /&gt;
&amp;lt;code&amp;gt;uv&amp;lt;/code&amp;gt; コマンドを使用してPython 3.10以降をインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 uv python install 3.10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mcp-server-gitのインストール ====&lt;br /&gt;
&amp;lt;code&amp;gt;uvx&amp;lt;/code&amp;gt; コマンドを実行する場合は、インストール不要で直接実行できる。(推奨)&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行して、Git MCP Serverを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 uvx mcp-server-git --repository /path/to/repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; コマンドを実行してインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 pip install mcp-server-git&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後は、以下のコマンドで起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 python -m mcp_server_git&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== コマンドラインオプション =====&lt;br /&gt;
下表に、Git MCP Serverが受け付けるコマンドラインオプションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ コマンドラインオプション一覧&lt;br /&gt;
! オプション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--repository&amp;lt;/code&amp;gt; || 対象Gitリポジトリのパスを指定する。(省略時はカレントディレクトリを使用する)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;git&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-git&amp;quot;, &amp;quot;--repository&amp;quot;, &amp;quot;/path/to/repo&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してGit MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以に示すコマンドでMCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add git -- uvx mcp-server-git --repository /path/to/repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project git -- uvx mcp-server-git --repository /path/to/repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; の内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;git&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-git&amp;quot;, &amp;quot;--repository&amp;quot;, &amp;quot;/path/to/repo&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;git&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;uvx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp-server-git&amp;quot;, &amp;quot;--repository&amp;quot;, &amp;quot;/path/to/repo&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツールの一覧 ==&lt;br /&gt;
Git MCP Serverは、Gitリポジトリを操作するための12個のツールを4カテゴリに分けて提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリ状態確認ツール ====&lt;br /&gt;
下表に、ワーキングツリーの状態確認および差分表示に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ リポジトリ状態確認ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_status&amp;lt;/code&amp;gt; || ワーキングツリーの状態を表示する。(変更ファイル、未追跡ファイル等)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_diff_unstaged&amp;lt;/code&amp;gt; || ステージング前の変更内容を差分表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_diff_staged&amp;lt;/code&amp;gt; || ステージング済みの変更内容を差分表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_diff&amp;lt;/code&amp;gt; || ブランチ間またはコミット間の差分を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コミット履歴・検査ツール ====&lt;br /&gt;
下表に、コミット履歴の表示と特定コミットの詳細確認に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ コミット履歴・検査ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_log&amp;lt;/code&amp;gt; || コミット履歴を表示する。&amp;lt;br&amp;gt;日付範囲フィルタリング対応。ISO 8601形式または相対日付で指定可能&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_show&amp;lt;/code&amp;gt; || 特定のコミットの詳細内容を表示する。&amp;lt;br&amp;gt;コミットハッシュ、ブランチ名、タグ等で指定可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル・コミット管理ツール ====&lt;br /&gt;
下表に、ファイルのステージング、コミット、リセットに関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル・コミット管理ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_add&amp;lt;/code&amp;gt; || ファイルをステージング領域に追加する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_commit&amp;lt;/code&amp;gt; || ステージング済みの変更をコミットする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_reset&amp;lt;/code&amp;gt; || ステージング済みの変更をリセットする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブランチ操作ツール ====&lt;br /&gt;
下表に、ブランチの一覧表示、作成、切り替えに関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ブランチ操作ツールの一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_branch&amp;lt;/code&amp;gt; || ブランチを一覧表示する。&amp;lt;br&amp;gt;ローカル、リモート、全てを指定可能&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_create_branch&amp;lt;/code&amp;gt; || 新しいブランチを作成する。&amp;lt;br&amp;gt;ベースブランチの指定が可能&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git_checkout&amp;lt;/code&amp;gt; || 指定したブランチに切り替える。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
Git MCP Serverを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリ状態の確認 ====&lt;br /&gt;
リポジトリの状態や変更内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ワーキングツリーの状態を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 リポジトリの現在のステータスを確認してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ステージング前の変更内容を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 ステージング前の変更内容を見せてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 2つのブランチ間の差分を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 mainブランチとdevelopブランチの差分を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コミット履歴の確認 ====&lt;br /&gt;
コミット履歴を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 過去1ヶ月のコミット履歴を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 過去1ヶ月のコミット履歴を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 特定のコミットの詳細を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 コミットハッシュ abc1234 の詳細内容を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルのステージングとコミット ====&lt;br /&gt;
ファイルをステージングしてコミットする場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 変更ファイルを全てステージングしてコミットする場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 変更ファイルをすべてステージングして、&amp;quot;Fix: typo in README&amp;quot; というメッセージでコミットしてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブランチの操作 ====&lt;br /&gt;
ブランチを作成して切り替える場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいブランチを作成して切り替える場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 developブランチから feature/new-api ブランチを作成して切り替えてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ブランチの一覧を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 ローカルブランチの一覧を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| uvxコマンドが見つからない || PATHの設定を確認する。&amp;lt;br&amp;gt;シェルの設定ファイル (&amp;lt;u&amp;gt;~/.bashrc&amp;lt;/u&amp;gt; 等) を再読み込み または uvを再インストールする。&lt;br /&gt;
|-&lt;br /&gt;
| Pythonバージョンが不足している || &amp;lt;code&amp;gt;uv python install 3.10&amp;lt;/code&amp;gt; コマンドを実行して、Python 3.10以降をインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| Gitがインストールされていない || パッケージ管理システムを使用して、Gitをインストールする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--repository&amp;lt;/code&amp;gt; パスが不正 || 相対パスではなく絶対パスを指定することを推奨する。&amp;lt;br&amp;gt;パスにスペースが含まれる場合は、クォートで囲む。&lt;br /&gt;
|-&lt;br /&gt;
| パーミッションエラーが発生する || &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;chown&amp;lt;/code&amp;gt; コマンドを実行して、リポジトリのアクセス権限を調整する。&lt;br /&gt;
|-&lt;br /&gt;
| JSON設定ファイルの構文エラーが発生する || JSONバリデータを使用して設定ファイルの構文を確認する。&amp;lt;br&amp;gt;修正後、MCPクライアントを再起動して設定を反映する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || MCPクライアントを再起動する。&amp;lt;br&amp;gt;ログファイルを確認してエラーの詳細を調べる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Linuxでの問題 ====&lt;br /&gt;
下表に、Linux環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Linuxのトラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| uvコマンドが見つからない || &amp;lt;u&amp;gt;~/.profile&amp;lt;/u&amp;gt; ファイル等に環境変数 &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; が正しく設定されているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| パーミッションエラーが発生する || 実行権限を付与する。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;chmod +x ~/.local/bin/uv&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MacOSでの問題 ====&lt;br /&gt;
下表に、MacOS環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ MacOSのトラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Apple Silicon環境で、uvコマンドが見つからない || Homebrewを使用して、uvを再インストールする。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;brew install uv&amp;lt;/code&amp;gt; コマンドを実行する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| ENOENTエラーが発生する || 設定ファイルに環境変数 (&amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; 等) を明示的に指定する。&lt;br /&gt;
|-&lt;br /&gt;
| パスの区切り文字に関するエラーが発生する || Windowsのパス区切り文字 (&amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;) を使用する。&amp;lt;br&amp;gt;または、スラッシュ (&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;) に統一して指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Git,MCP,Model Context Protocol,mcp-server-git,Claude,AI,バージョン管理,リポジトリ,Anthropic,uvx,uv,Python&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Sequential_Thinking&amp;diff=14608</id>
		<title>MCPサーバ - Sequential Thinking</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Sequential_Thinking&amp;diff=14608"/>
		<updated>2026-03-25T08:30:07Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Sequential Thinking MCP Server は、Model Context Protocol (MCP) を通じてAIアシスタントに構造化された段階的思考プロセスを提供するサーバである。&amp;lt;br&amp;gt; Anthropicが開発したMCP公式リファレンス実装の一つであり、MITライセンスで公開されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 複雑な問題を管理可能なステップに分解し、動的かつ反省的な問題解決を実現する。&amp;lt;br&amp;gt; 理解が深まる…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Sequential Thinking MCP Server は、Model Context Protocol (MCP) を通じてAIアシスタントに構造化された段階的思考プロセスを提供するサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
Anthropicが開発したMCP公式リファレンス実装の一つであり、MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複雑な問題を管理可能なステップに分解し、動的かつ反省的な問題解決を実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
理解が深まるにつれて思考を修正・精緻化したり、推論の代替経路へ分岐させたりすることが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 複雑な問題を段階的なステップに分解&lt;br /&gt;
* 理解が深まるにつれて思考を修正・精緻化&lt;br /&gt;
* 推論の代替経路への分岐&lt;br /&gt;
* 必要な思考ステップ数の動的調整&lt;br /&gt;
* ソリューション仮説の生成と検証&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提供するツールは &amp;lt;u&amp;gt;sequential_thinking&amp;lt;/u&amp;gt; の1つのみであるが、思考番号・修正・分岐等のパラメータにより柔軟な推論プロセスを制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor、ChatGPT等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Sequential Thinking MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してMCPサーバを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されている。&lt;br /&gt;
*: MCPサーバを直接実行するために使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用したインストール (推奨) ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でSequential Thinking MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
以下のコマンドを実行して、MCPサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-sequential-thinking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用したインストール ====&lt;br /&gt;
Node.jsをインストールせずにDockerでMCPサーバを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run --rm -i mcp/sequentialthinking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== npmを使用したグローバルインストール ====&lt;br /&gt;
グローバルにインストールする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @modelcontextprotocol/server-sequential-thinking&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを実行してMCPサーバを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに設定を記述する場合は、以下に示す内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した設定 ====&lt;br /&gt;
Dockerを使用する場合は、設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;run&amp;quot;, &amp;quot;--rm&amp;quot;, &amp;quot;-i&amp;quot;, &amp;quot;mcp/sequentialthinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの設定の注意点 ====&lt;br /&gt;
Windowsでは、&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; を使用するMCPサーバの場合、&amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーが必須である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;cmd&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;, &amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
==== 環境変数一覧 ====&lt;br /&gt;
下表に、Sequential Thinking MCP Serverの動作をカスタマイズするための環境変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 環境変数の一覧&lt;br /&gt;
! 環境変数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DISABLE_THOUGHT_LOGGING&amp;lt;/code&amp;gt; || 思考プロセスのコンソールログ出力を制御する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;: ログ出力を無効化する&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;: ログ出力を有効化する (デフォルト)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルで環境変数を指定する場合は、以下に示すように設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;sequential-thinking&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-sequential-thinking&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;DISABLE_THOUGHT_LOGGING&amp;quot;: &amp;quot;true&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Sequential Thinking MCP Serverが提供するツールは &amp;lt;code&amp;gt;sequential_thinking&amp;lt;/code&amp;gt; の1つのみである。&amp;lt;br&amp;gt;&lt;br /&gt;
このツールは、必須パラメータとオプションパラメータを組み合わせて、柔軟な段階的思考プロセスを実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 必須パラメータ ====&lt;br /&gt;
下表に、&amp;lt;code&amp;gt;sequential_thinking&amp;lt;/code&amp;gt; ツールの必須パラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 必須パラメータの一覧&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;thought&amp;lt;/code&amp;gt; || 文字列 || 現在のステップにおける思考内容&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nextThoughtNeeded&amp;lt;/code&amp;gt; || 真偽値 || さらなる思考ステップが必要かどうかを示す。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;: 継続が必要&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;: 結論に到達&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;thoughtNumber&amp;lt;/code&amp;gt; || 整数 || 現在の思考番号 (1から開始)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;totalThoughts&amp;lt;/code&amp;gt; || 整数 || 問題解決に必要と推定される総思考数&amp;lt;br&amp;gt;後から修正することも可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== オプションパラメータ ====&lt;br /&gt;
下表に、&amp;lt;code&amp;gt;sequential_thinking&amp;lt;/code&amp;gt; ツールのオプションパラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらのパラメータにより、修正・分岐・延長といった高度な推論制御が可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ オプションパラメータの一覧&lt;br /&gt;
! パラメータ !! 型 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;isRevision&amp;lt;/code&amp;gt; || 真偽値 || 前の思考ステップの修正かどうかを示す。&amp;lt;br&amp;gt;デフォルト値は &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;revisesThought&amp;lt;/code&amp;gt; || 整数 || 修正対象の思考番号。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;isRevision&amp;lt;/code&amp;gt; が &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt; の場合に使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;branchFromThought&amp;lt;/code&amp;gt; || 整数 || 分岐開始点の思考番号&amp;lt;br&amp;gt;代替経路を探索する場合に使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;branchId&amp;lt;/code&amp;gt; || 文字列 || 分岐を識別するための一意な識別子&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;needsMoreThoughts&amp;lt;/code&amp;gt; || 真偽値 || 推定思考数を超えて追加の思考が必要かどうかを示す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Sequential Thinking MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設計課題への適用 ====&lt;br /&gt;
複雑な設計課題に段階的思考を適用する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* マイクロサービスアーキテクチャを計画する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 マイクロサービスアーキテクチャを構築するための包括的な計画を、段階的に考えてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* システム設計のレビューを行う場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 このシステム設計のセキュリティ、スケーラビリティ、保守性を段階的に評価してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術選定・比較分析 ====&lt;br /&gt;
技術の選定や比較分析を段階的に行う場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* クラウドプロバイダを比較する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 AWSとGCPのメリット・デメリットを段階的に比較分析してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デバッグ・問題解析 ====&lt;br /&gt;
エラーや問題の原因を段階的に分析する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* エラーの原因を特定して解決策を提案する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 このエラーの原因を段階的に分析して、解決策を提案してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Node.jsがインストールされていない || Node.js v18以上をインストールする。&amp;lt;br&amp;gt;[https://nodejs.org/ Node.js公式サイト]からインストーラをダウンロードする。&lt;br /&gt;
|-&lt;br /&gt;
| ツールが応答しない || メモリ不足でないか確認する。&amp;lt;br&amp;gt;初回実行時はパッケージのダウンロードが発生するため、ネットワーク接続を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| JSON設定の構文エラーが発生する || JSONバリデータで設定ファイルの構文を確認する。&amp;lt;br&amp;gt;全角括弧（）が含まれていないかを確認する。&lt;br /&gt;
|-&lt;br /&gt;
| ツールがクライアントに表示されない || MCPクライアントを完全に再起動する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| npxコマンドが見つからない || &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを設定ファイルに追加する。&amp;lt;br&amp;gt;または、以下に示すコマンドを実行してグローバルインストールする。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;npm install -g @modelcontextprotocol/server-sequential-thinking&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ENOENTエラーが発生する || 設定ファイルに環境変数 (&amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; 等) を明示的に指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Sequential Thinking,MCP,Model Context Protocol,段階的思考,Claude,AI,問題解決,推論,sequential_thinking,Anthropic,Claude Desktop,Claude Code,VS Code,Cursor&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Docker&amp;diff=14607</id>
		<title>MCPサーバ - Docker</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Docker&amp;diff=14607"/>
		<updated>2026-03-25T06:52:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Docker MCP Catalog and Toolkitは、Docker社が提供するMCPサーバの統合管理プラットフォームである。&amp;lt;br&amp;gt; Docker Desktopに組み込まれた &amp;lt;u&amp;gt;Docker MCP Toolkit&amp;lt;/u&amp;gt; と &amp;lt;u&amp;gt;Docker MCP Catalog&amp;lt;/u&amp;gt; から構成される。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Docker MCP Catalogは200以上の検証済みMCPサーバを含む信頼できるレジストリであり、Docker Hub上で配布されている。&amp;lt;br&amp;gt; Docker MCP Toolkitは、MCPサーバのセット…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Docker MCP Catalog and Toolkitは、Docker社が提供するMCPサーバの統合管理プラットフォームである。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker Desktopに組み込まれた &amp;lt;u&amp;gt;Docker MCP Toolkit&amp;lt;/u&amp;gt; と &amp;lt;u&amp;gt;Docker MCP Catalog&amp;lt;/u&amp;gt; から構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Docker MCP Catalogは200以上の検証済みMCPサーバを含む信頼できるレジストリであり、Docker Hub上で配布されている。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker MCP Toolkitは、MCPサーバのセットアップ・管理・実行を行うDocker Desktopに統合されたUIツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要AIクライアントと統合できる。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxの主要なOSに対応しており、Docker Desktop 4.59以降で利用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 200以上の検証済みMCPサーバへのアクセス (Docker MCP Catalog)&lt;br /&gt;
* Docker DesktopのUIからMCPサーバを簡単にセットアップ・管理 (Docker MCP Toolkit)&lt;br /&gt;
* コンテナ隔離によるセキュアなMCPサーバ実行環境&lt;br /&gt;
* Docker社によるデジタル署名とSBOM (ソフトウェア部品表) による信頼性の確保&lt;br /&gt;
* Docker Desktopの暗号化シークレット機能による認証情報の安全な管理&lt;br /&gt;
* Stripe、Elastic、Neo4j、Grafana等200以上のパートナー製MCPサーバに対応&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 主要コンポーネント ==&lt;br /&gt;
Docker MCP Catalog and Toolkitは、3つの主要コンポーネントで構成されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker MCP Catalog ====&lt;br /&gt;
200以上のMCPサーバを含む信頼できるレジストリである。&amp;lt;br&amp;gt;&lt;br /&gt;
Docker Hub上で &amp;lt;code&amp;gt;mcp/&amp;lt;/code&amp;gt; 名前空間以下に配布されており、Docker社によるデジタル署名とSBOMが付与されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なパートナーMCPサーバは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Stripe&lt;br /&gt;
* Elastic&lt;br /&gt;
* Neo4j&lt;br /&gt;
* Grafana&lt;br /&gt;
* New Relic&lt;br /&gt;
* Atlassian&lt;br /&gt;
* Slack&lt;br /&gt;
* Notion&lt;br /&gt;
* Kong&lt;br /&gt;
* GitLab&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker MCP Toolkit ====&lt;br /&gt;
Docker Desktopに統合されたUIツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバのセットアップ・管理・実行を行い、AIクライアントとの接続設定を自動化する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker MCP Gateway ====&lt;br /&gt;
MCPサーバのコンテナ管理とAIクライアント間の通信を仲介するCLIプラグインである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GitHub&lt;br /&gt;
*: [https://github.com/docker/mcp-gateway docker/mcp-gateway]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す2つの方法で実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
* CLI経由&lt;br /&gt;
*: &amp;lt;code&amp;gt;docker mcp gateway run&amp;lt;/code&amp;gt;&lt;br /&gt;
* npx経由&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx @docker/mcp-gateway&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Docker MCP Catalog and Toolkitを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Docker Desktop 4.59以降&lt;br /&gt;
*: Docker MCP Toolkitが統合されている最低バージョン&lt;br /&gt;
* 対応OS&lt;br /&gt;
*: Windows&lt;br /&gt;
*: MacOS&lt;br /&gt;
*: Linux&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== Docker DesktopでのMCP Toolkitの有効化 ====&lt;br /&gt;
Docker Desktop上でDocker MCP Toolkitを有効化する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Docker Desktopを起動する。&lt;br /&gt;
# [Settings] - [Beta Features]を開く。&lt;br /&gt;
# [Enable Docker MCP Toolkit]にチェックを入力する。&lt;br /&gt;
# Docker Desktopを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
有効化後、Docker Desktopのサイドバーに[MCP Toolkit]のタブが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
Docker MCP Toolkitでは、Docker DesktopのUIからAIクライアントへの接続設定を自動的に行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
Docker DesktopのClientsタブからClaude Desktopを選択して、[Connect]を選択することにより自動設定が行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
手動で設定する場合は、Claude Desktopの設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルに以下の内容を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;docker&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp&amp;quot;, &amp;quot;gateway&amp;quot;, &amp;quot;run&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Docker DesktopのClientsタブからClaude Codeを選択して、[Connect]を選択することにより設定が行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CLIで設定する場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker mcp client connect claude-code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに手動で設定する場合は、以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;docker&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;mcp&amp;quot;, &amp;quot;gateway&amp;quot;, &amp;quot;run&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;settings.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定した後、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcp&amp;quot;: {&lt;br /&gt;
     &amp;quot;servers&amp;quot;: {&lt;br /&gt;
       &amp;quot;docker&amp;quot;: {&lt;br /&gt;
         &amp;quot;command&amp;quot;: &amp;quot;docker&amp;quot;,&lt;br /&gt;
         &amp;quot;args&amp;quot;: [&amp;quot;mcp&amp;quot;, &amp;quot;gateway&amp;quot;, &amp;quot;run&amp;quot;]&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker mcp client connect vscode&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
Docker DesktopのClientsタブからCursorを選択して、[Connect]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定適用後、Cursorを完全に終了して再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供されるMCPサーバのツール ==&lt;br /&gt;
==== Docker Hub MCP Serverのツール ====&lt;br /&gt;
Docker Hub MCP Serverは、コンテナイメージとリポジトリの検索・情報取得に関するツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Docker Hub MCP Serverのツール一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_images&amp;lt;/code&amp;gt; || 自然言語によるコンテナイメージの検索を行う。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_image_details&amp;lt;/code&amp;gt; || 指定したイメージの詳細情報を取得する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_image_tags&amp;lt;/code&amp;gt; || 指定したイメージのタグ一覧を取得する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_repositories&amp;lt;/code&amp;gt; || Docker Hub上のリポジトリを検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_repository_details&amp;lt;/code&amp;gt; || 指定したリポジトリの統計情報を取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerコンテナ管理MCPサーバのツール ====&lt;br /&gt;
Dockerコンテナ管理MCPサーバは、コンテナおよびイメージの管理に関するツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Dockerコンテナ管理MCPサーバのツール一覧&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_containers&amp;lt;/code&amp;gt; || 実行中および停止中のコンテナ一覧を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_container&amp;lt;/code&amp;gt; || 新しいコンテナを作成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;start_container&amp;lt;/code&amp;gt; || 指定したコンテナを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stop_container&amp;lt;/code&amp;gt; || 指定したコンテナを停止する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;remove_container&amp;lt;/code&amp;gt; || 指定したコンテナを削除する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_container_logs&amp;lt;/code&amp;gt; || 指定したコンテナのログを取得する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_images&amp;lt;/code&amp;gt; || ローカルのDockerイメージ一覧を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pull_image&amp;lt;/code&amp;gt; || Docker Hubから指定したイメージをプルする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;deploy_compose&amp;lt;/code&amp;gt; || Docker Composeスタックをデプロイする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
MCPサーバを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker Hub MCPサーバの使用例 ====&lt;br /&gt;
Docker Hubのイメージやリポジトリを検索・確認する操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Nginxの最新イメージを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Docker Hubから公式のNginxイメージを検索して、最新のタグ一覧を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Pythonイメージの詳細情報を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 python:3.12-slimイメージの詳細情報とサイズを教えてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerコンテナ管理MCPサーバの使用例 ====&lt;br /&gt;
コンテナとイメージの管理に関する操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 実行中のコンテナを確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 現在実行中のDockerコンテナ一覧を表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* コンテナのログを確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 my-appコンテナの最新100行のログを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Docker Composeスタックをデプロイする場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 docker-compose.ymlを使用してアプリケーションスタックをデプロイしてください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== セキュリティ機能の概要 ====&lt;br /&gt;
Docker MCP Catalog and Toolkitは、MCPサーバの安全な実行のために複数のセキュリティ機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティ機能の一覧&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| コンテナ隔離 || 各MCPサーバはコンテナとして実行され、リソース制限が適用される。&amp;lt;br&amp;gt;CPU使用率は1コア以下、メモリは2[GB]以上の割り当てが推奨される。&lt;br /&gt;
|-&lt;br /&gt;
| デジタル署名 || Docker Hub上のmcp/カタログイメージはDocker社がデジタル署名を行っている。&lt;br /&gt;
|-&lt;br /&gt;
| SBOM (ソフトウェア部品表) || 全てのカタログイメージにSBOMが含まれており、コンポーネントの透明性を確保している。&lt;br /&gt;
|-&lt;br /&gt;
| シークレット管理 || Docker Desktopの暗号化シークレット機能を使用して、APIキー等の認証情報を安全に保管する。&lt;br /&gt;
|-&lt;br /&gt;
| ツール許可リスト || 特定のツールのみを許可する設定が可能であり、AIアシスタントが使用できるツールを制限できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティに関する推奨事項 ====&lt;br /&gt;
Docker MCP Catalog and Toolkitを安全に使用するための推奨事項を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* APIキーや認証情報は、設定ファイルに直接記述せず、Docker Desktopのシークレット管理機能を使用して保管する。&lt;br /&gt;
* ツール許可リストを設定して、AIアシスタントが実行できる操作を必要最小限に制限する。&lt;br /&gt;
* Docker Hub上のイメージはDocker社が署名した検証済みのものを使用し、非公式イメージの使用は避ける。&lt;br /&gt;
* コマンドインジェクション対策として、AIアシスタントからの操作実行前にユーザ確認が求められる場合がある。これは正常な動作である。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== よくある問題と対処法 ====&lt;br /&gt;
下表に、Docker MCP Catalog and Toolkitの使用時に発生しやすい問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Docker DesktopがMCP Toolkitを認識しない || Beta FeaturesでDocker MCP Toolkitが有効になっていない。&amp;lt;br&amp;gt;または、Docker Desktopのバージョンが古い。 || [Settings] - [Beta Features]を開いて、&amp;lt;br&amp;gt;[Enable Docker MCP Toolkit]を有効化してDocker Desktopを再起動する。&amp;lt;br&amp;gt;Docker Desktopを4.59以降にアップデートする。&lt;br /&gt;
|-&lt;br /&gt;
| MCPクライアントが接続できない || クライアントの設定が正しく適用されていない。&amp;lt;br&amp;gt;または、MCP Gatewayが起動していない。 || Docker DesktopのClientsタブで接続状態を確認して、&amp;lt;br&amp;gt;[Connect]で再接続する。&amp;lt;br&amp;gt;MCPクライアントを完全に終了して再起動する。&lt;br /&gt;
|-&lt;br /&gt;
| MCPサーバが起動しない || Docker Desktopが実行されていない。&amp;lt;br&amp;gt;または、リソースが不足している。 || &amp;lt;code&amp;gt;docker ps&amp;lt;/code&amp;gt; コマンドでDocker Desktopの動作を確認する。&amp;lt;br&amp;gt;[Settings] - [Resources]でリソース割り当てを確認・調整する。&amp;lt;br&amp;gt;コンテナログを確認してエラーの詳細を調べる。&lt;br /&gt;
|-&lt;br /&gt;
| APIキーが認識されない || 環境変数や認証情報の設定が正しくない。 || Docker Desktopの[Config]タブで環境変数の設定を再確認する。&amp;lt;br&amp;gt;設定変更後にMCPサーバを再起動する。&lt;br /&gt;
|-&lt;br /&gt;
| セキュリティ警告が表示される || コマンドインジェクション対策によるユーザ確認が求められている。 || これは正常な動作である。&amp;lt;br&amp;gt;内容を確認して、問題がなければ許可する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Docker,Docker Desktop,MCP,Model Context Protocol,Docker MCP,MCP Toolkit,MCP Catalog,MCP Gateway,Claude,Claude Code,Claude Desktop,VS Code,Cursor,AIアシスタント,コンテナ,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Memory_Bank&amp;diff=14606</id>
		<title>MCPサーバ - Memory Bank</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Memory_Bank&amp;diff=14606"/>
		<updated>2026-03-25T06:43:43Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Memory Bank MCP (@allpepper/memory-bank-mcp) は、AIアシスタントのコンテキスト永続化を実現するMCPサーバ実装である。&amp;lt;br&amp;gt; Cline Memory Bankの概念を基に、マルチプロジェクト対応のMCP実装として拡張されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; プロジェクト固有の知識をマークダウンファイルで構造化して、複数のセッションにわたってAIアシスタントが継続的にアクセスでき…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Memory Bank MCP (@allpepper/memory-bank-mcp) は、AIアシスタントのコンテキスト永続化を実現するMCPサーバ実装である。&amp;lt;br&amp;gt;&lt;br /&gt;
Cline Memory Bankの概念を基に、マルチプロジェクト対応のMCP実装として拡張されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクト固有の知識をマークダウンファイルで構造化して、複数のセッションにわたってAIアシスタントが継続的にアクセスできる永続メモリシステムを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、AIアシスタントはセッションをまたいでプロジェクトの背景・設計・進捗情報を保持し、継続的な作業を行えるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
開発元はalioshr (GitHub) であり、MITライセンスのもとで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
npmパッケージ名は &amp;lt;code&amp;gt;@allpepper/memory-bank-mcp&amp;lt;/code&amp;gt; で、[https://github.com/alioshr/memory-bank-mcp GitHubリポジトリ] から入手できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、Cline、Roo Code、VS Code、Cursor等の主要なMCPクライアントに対応し、Windows、MacOS、Linuxで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な機能を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主な機能一覧&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| マルチプロジェクト対応 || プロジェクト固有のメモリバンクディレクトリで隔離管理&lt;br /&gt;
|-&lt;br /&gt;
| 永続コンテキスト || セッション間でプロジェクトの知識を保持&lt;br /&gt;
|-&lt;br /&gt;
| ファイル操作 || 構造化されたマークダウンファイルの読み取り・書き込み・更新&lt;br /&gt;
|-&lt;br /&gt;
| セキュリティ || パストラバーサル防止による安全なファイルアクセス&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Memory Bank MCPを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js&lt;br /&gt;
*: v16以上が必要。v18以上を推奨。&lt;br /&gt;
* npxコマンド&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用して、Memory Bank MCPを実行するために必要&lt;br /&gt;
*: Node.jsに同梱されている。&lt;br /&gt;
* メモリバンク用ディレクトリ&lt;br /&gt;
*: 環境変数 &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; で指定するディレクトリが必要&lt;br /&gt;
*: 事前に作成しておくこと。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== Smithery経由のインストール ====&lt;br /&gt;
Smithery CLIを使用してインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @smithery/cli install @allpepper/memory-bank-mcp --client claude&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--client&amp;lt;/code&amp;gt; オプションには、使用するMCPクライアント名 (claude 等) を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== NPM直接インストール ====&lt;br /&gt;
npmを使用してグローバルインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install -g @allpepper/memory-bank-mcp&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Claude Desktop =====&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Claude Code =====&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== VS Code =====&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Cursor =====&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;memory-bank&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@allpepper/memory-bank-mcp@latest&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;MEMORY_BANK_ROOT&amp;quot;: &amp;quot;/path/to/memory-banks&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを実行して、Memory Bank MCPを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add memory-bank -- npx -y @allpepper/memory-bank-mcp@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトの &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに設定を記述する場合は、以下の内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;memory-bank&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@allpepper/memory-bank-mcp@latest&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;MEMORY_BANK_ROOT&amp;quot;: &amp;quot;/path/to/memory-banks&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Code / Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
ワークスペースフォルダ内にメモリバンクを配置する場合は、変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;memory-bank&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@allpepper/memory-bank-mcp@latest&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;MEMORY_BANK_ROOT&amp;quot;: &amp;quot;${workspaceFolder}/memory-banks&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数 ==&lt;br /&gt;
==== 環境変数一覧 ====&lt;br /&gt;
下表に、Memory Bank MCPの動作をカスタマイズするための環境変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 環境変数の一覧&lt;br /&gt;
! 環境変数 !! 必須 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; || 必須 || メモリバンクディレクトリのルートパスを指定する。&amp;lt;br&amp;gt;全プロジェクトのメモリバンクがこのディレクトリ配下に作成される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEMORY_BANK_FOLDER&amp;lt;/code&amp;gt; || オプション || メモリバンクのカスタムフォルダ名を指定する。&amp;lt;br&amp;gt;デフォルト値は &amp;lt;u&amp;gt;memory-bank&amp;lt;/u&amp;gt; である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
==== ツール一覧 ====&lt;br /&gt;
下表に、Memory Bank MCPが提供するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 提供ツールの一覧&lt;br /&gt;
! ツール名 !! 説明 !! パラメータ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;memory_bank_read&amp;lt;/code&amp;gt; || メモリバンクファイルの内容を読み取る。 || &amp;lt;code&amp;gt;projectId&amp;lt;/code&amp;gt;: プロジェクト識別子&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;filePath&amp;lt;/code&amp;gt;: 読み取るファイルのパス&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;memory_bank_write&amp;lt;/code&amp;gt; || 新規メモリバンクファイルを作成して内容を書き込む。 || &amp;lt;code&amp;gt;projectId&amp;lt;/code&amp;gt;: プロジェクト識別子&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;filePath&amp;lt;/code&amp;gt;: 作成するファイルのパス&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt;: 書き込む内容&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;memory_bank_update&amp;lt;/code&amp;gt; || 既存のメモリバンクファイルを部分的に更新する。 || &amp;lt;code&amp;gt;projectId&amp;lt;/code&amp;gt;: プロジェクト識別子&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;filePath&amp;lt;/code&amp;gt;: 更新するファイルのパス&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;patches&amp;lt;/code&amp;gt;: 適用するパッチ内容&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_projects&amp;lt;/code&amp;gt; || メモリバンクに登録されているプロジェクトの一覧を表示する。 || なし&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_project_files&amp;lt;/code&amp;gt; || 指定したプロジェクト内のファイル一覧を表示する。 || &amp;lt;code&amp;gt;projectId&amp;lt;/code&amp;gt;: プロジェクト識別子&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== メモリバンクのファイル構造 ==&lt;br /&gt;
==== 推奨ファイル構成 ====&lt;br /&gt;
メモリバンクは、プロジェクトルート配下の &amp;lt;u&amp;gt;memory-bank&amp;lt;/u&amp;gt; ディレクトリに構造化されたマークダウンファイルとして保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
推奨されるファイル構成を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;プロジェクト&amp;gt;/&lt;br /&gt;
 └── memory-bank/&lt;br /&gt;
    ├── projectContext.md    # プロジェクトの基礎定義 (目的、スコープ、制約)&lt;br /&gt;
    ├── productContext.md    # ビジネス・ユーザー視点の背景情報&lt;br /&gt;
    ├── activeContext.md     # 現在のセッション状態とタスク情報&lt;br /&gt;
    ├── systemPatterns.md    # 技術アーキテクチャと設計パターン&lt;br /&gt;
    ├── techContext.md       # 技術スタック・開発環境の詳細&lt;br /&gt;
    ├── progress.md          # プロジェクトの進捗状況と履歴&lt;br /&gt;
    └── decisionLog.md       # 技術的意思決定の記録 (オプション)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 各ファイルの役割 ====&lt;br /&gt;
下表に、各メモリバンクファイルの役割と記録する内容を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ メモリバンクファイルの一覧&lt;br /&gt;
! ファイル名 !! 役割 !! 記録する内容&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;projectContext.md&amp;lt;/u&amp;gt; || プロジェクトの基礎定義 || プロジェクトの目的、スコープ、制約条件&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;productContext.md&amp;lt;/u&amp;gt; || 製品・ビジネス背景 || ビジネス要件、ユーザー視点の背景情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;activeContext.md&amp;lt;/u&amp;gt; || 現在の作業状態 || 現在のセッション状態、進行中のタスク情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;systemPatterns.md&amp;lt;/u&amp;gt; || 技術設計情報 || 技術アーキテクチャ、設計パターン、規約&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;techContext.md&amp;lt;/u&amp;gt; || 技術環境情報 || 技術スタック、開発環境の詳細、依存関係&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;progress.md&amp;lt;/u&amp;gt; || 進捗管理 || プロジェクトの進捗状況と作業履歴&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;decisionLog.md&amp;lt;/u&amp;gt; || 意思決定記録 (オプション) || 技術的意思決定とその根拠の記録&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Memory Bank MCPの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== メモリバンクの初期化 ====&lt;br /&gt;
プロジェクト開始時にメモリバンクを初期化する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいプロジェクトでメモリバンクを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Initialize a memory bank for this project.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セッション開始時の確認 ====&lt;br /&gt;
セッション開始時に前回の作業状態を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 前回のセッションからの継続作業を確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Let me check the active context to see where we left off.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設計決定の記録 ====&lt;br /&gt;
アーキテクチャや技術的な意思決定をメモリバンクに記録する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 技術的な設計決定を記録する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Record this architectural decision in the memory bank.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 進捗の更新 ====&lt;br /&gt;
作業の進捗状況をメモリバンクに記録する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 本日完了した作業を進捗ファイルに記録する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Update the progress file to reflect what we&#039;ve completed today.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 一般的な問題 ====&lt;br /&gt;
下表に、Memory Bank MCPで発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| Node.jsバージョンエラーが発生する || Node.jsのバージョンが要件を満たしていない。 || Node.js v18以上にアップグレードする。&amp;lt;br&amp;gt;アップグレード後、パッケージを再インストールする。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || 設定ファイルの記述が誤っている。 || 設定JSONの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の内容を確認する。&amp;lt;br&amp;gt;ターミナルで手動実行してエラー内容を確認する。&lt;br /&gt;
|-&lt;br /&gt;
| JSON解析エラーが発生する || サーバの出力に不正なJSON形式が含まれている。 || サーバのログを確認する。&amp;lt;br&amp;gt;パッケージを一度アンインストールして再インストールする。&lt;br /&gt;
|-&lt;br /&gt;
| 接続タイムアウトが発生する || サーバの起動に時間が掛かっている。 || MCPクライアントの設定でタイムアウト値を増加させる。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;&amp;quot;timeout&amp;quot;: 300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 権限エラーが発生する || &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; で指定したディレクトリへの書き込み権限がない。 || ディレクトリの書き込み権限を確認する。&amp;lt;br&amp;gt;例: &amp;lt;code&amp;gt;ls -ld /path/to/memory-banks&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;権限がない場合は、&amp;lt;code&amp;gt;chmod 755 /path/to/memory-banks&amp;lt;/code&amp;gt; を実行する。&lt;br /&gt;
|-&lt;br /&gt;
| パストラバーサルエラーが発生する || 指定したファイルパスが &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; 配下にない。 || ファイルパスが &amp;lt;code&amp;gt;MEMORY_BANK_ROOT&amp;lt;/code&amp;gt; 内に収まっているか確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等の相対パスによる上位ディレクトリへのアクセスは拒否される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Memory Bank,MCP,Model Context Protocol,memory-bank-mcp,Claude,Claude Code,Claude Desktop,Cline,Roo Code,VS Code,Cursor,AIアシスタント,永続メモリ,コンテキスト,プロジェクト管理&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14605</id>
		<title>MCPサーバ - Filesystem</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Filesystem&amp;diff=14605"/>
		<updated>2026-03-25T06:37:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt; MITライセンスで公開されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt; 起動時に許可するディレクトリを明示的に指定することで、AIアシスタント…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Filesystem MCP Server (@modelcontextprotocol/server-filesystem) は、AnthropicがNode.jsで実装したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
MITライセンスで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Model Context Protocol (MCP) を通じて、AIアシスタントにローカルファイルシステムへの安全で制御されたアクセスを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
起動時に許可するディレクトリを明示的に指定することで、AIアシスタントはそのディレクトリ内に限定したファイル操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop、Claude Code、VS Code、Cursor等の主要なMCPクライアントに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linuxに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14個のファイル操作ツールを提供 (読み取り、書き込み、ディレクトリ管理、検索等)&lt;br /&gt;
* 指定ディレクトリ外へのアクセスをブロックするパストラバーサル防止機能&lt;br /&gt;
* Dockerイメージ (mcp/filesystem) による実行にも対応&lt;br /&gt;
* Rootsプロトコルによる実行時のディレクトリ動的更新&lt;br /&gt;
* Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用した読み取り専用アクセスの設定が可能&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Filesystem MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18.0.0以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを実行するために必要&lt;br /&gt;
* &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンド&lt;br /&gt;
*: Node.jsに同梱されているため、Node.jsのインストールで利用可能になる。&lt;br /&gt;
* Docker (オプション)&lt;br /&gt;
*: Dockerを使用してFilesystem MCP Serverを実行する場合に必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== npxを使用した実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用する場合、インストール不要でFilesystem MCP Serverを直接実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
アクセスを許可するディレクトリへの絶対パスをコマンドライン引数で指定する (複数指定可能)。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory1 /path/to/allowed/directory2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPクライアントの設定ファイルで指定する場合は、後述の各クライアント設定を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerを使用した実行 ====&lt;br /&gt;
Docker Hubに公式イメージ (mcp/filesystem) が公開されており、Node.jsをインストールせずにFilesystem MCP Serverを実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドを実行することにより、ローカルディレクトリをコンテナ内の &amp;lt;code&amp;gt;/projects&amp;lt;/code&amp;gt; にマウントしてサーバを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、読み取り専用アクセスとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects:ro mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
書き込みアクセスを許可する場合は、&amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを省略する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 docker run -i --rm -v /path/to/local/directory:/projects mcp/filesystem&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MCPクライアントの設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory1&amp;quot;, &amp;quot;/path/to/allowed/directory2&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してFilesystem MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトスコープで設定する場合は、&amp;lt;code&amp;gt;--scope project&amp;lt;/code&amp;gt; オプションを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定は、&amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルに保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記コマンドにより生成される &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; ファイルの内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
変数 &amp;lt;code&amp;gt;${workspaceFolder}&amp;lt;/code&amp;gt; を使用することにより、ワークスペースのルートディレクトリを自動的に許可対象に指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;${workspaceFolder}&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; (グローバル設定) または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; (プロジェクト設定) ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;filesystem&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@modelcontextprotocol/server-filesystem&amp;quot;, &amp;quot;/path/to/allowed/directory&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Filesystem MCP Serverは、ファイル読み取り、ファイル書き込み、ディレクトリ管理、ファイル検索・管理の4カテゴリで合計14個のツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル読み取りツール ====&lt;br /&gt;
下表に、ファイルの内容を読み込むためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル読み取りツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; || 指定したファイルの完全な内容を読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_text_file&amp;lt;/code&amp;gt; || テキストファイルを読み込む。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;read_file&amp;lt;/code&amp;gt; よりも詳細なエラーメッセージを提供する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_media_file&amp;lt;/code&amp;gt; || 画像やオーディオファイルをBase64エンコードして読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read_multiple_files&amp;lt;/code&amp;gt; || 複数のファイルを同時に読み込む。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル書き込みツール ====&lt;br /&gt;
下表に、ファイルの作成・編集を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル書き込みツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write_file&amp;lt;/code&amp;gt; || ファイルを新規作成する。&amp;lt;br&amp;gt;既存ファイルが存在する場合は上書きする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;edit_file&amp;lt;/code&amp;gt; || 行ベースの編集を行う。&amp;lt;br&amp;gt;検索・置換操作に対応し、git形式のdiffを出力する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリ管理ツール ====&lt;br /&gt;
下表に、ディレクトリの作成・参照を行うためのツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ディレクトリ管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create_directory&amp;lt;/code&amp;gt; || ディレクトリを作成する。&amp;lt;br&amp;gt;ネストしたディレクトリ構造の作成にも対応する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory&amp;lt;/code&amp;gt; || ディレクトリの内容を一覧表示する。&amp;lt;br&amp;gt;ファイルには &amp;lt;code&amp;gt;[FILE]&amp;lt;/code&amp;gt;、ディレクトリには &amp;lt;code&amp;gt;[DIR]&amp;lt;/code&amp;gt; のプレフィックスが付与される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_directory_with_sizes&amp;lt;/code&amp;gt; || ファイルサイズを含むディレクトリの内容を一覧表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory_tree&amp;lt;/code&amp;gt; || ディレクトリ構造をJSON形式のツリーとして取得する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイル検索・管理ツール ====&lt;br /&gt;
下表に、ファイルの検索・メタデータ取得・移動に関するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ファイル検索・管理ツールの一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;search_files&amp;lt;/code&amp;gt; || グロブパターンを使用してファイルを再帰的に検索する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;get_file_info&amp;lt;/code&amp;gt; || ファイルのメタデータを取得する。&amp;lt;br&amp;gt;取得できる情報: ファイルサイズ、作成日時、更新日時等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;move_file&amp;lt;/code&amp;gt; || ファイルまたはディレクトリを移動する。&amp;lt;br&amp;gt;ファイル、ディレクトリのリネームにも使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; || サーバ起動時に許可として設定されたディレクトリの一覧を表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== アクセス制限の仕組み ====&lt;br /&gt;
Filesystem MCP Serverは、起動時に指定したディレクトリのみへのアクセスを許可する設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
指定ディレクトリ外へのアクセス試行はブロックされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主なセキュリティ機能を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 指定ディレクトリへのアクセス制限&lt;br /&gt;
*: サーバ起動時にコマンドライン引数で指定したディレクトリのみにアクセスを限定する。&lt;br /&gt;
* パストラバーサル防止&lt;br /&gt;
*: &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt; 等を利用した許可ディレクトリ外へのアクセスを防止する。&lt;br /&gt;
* Rootsプロトコルによる動的更新&lt;br /&gt;
*: MCPのRootsプロトコルにより、実行時に許可ディレクトリを動的に更新できる。&lt;br /&gt;
* Docker使用時の読み取り専用設定&lt;br /&gt;
*: Docker実行時に &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを付与することで、マウントしたディレクトリへの書き込みを禁止できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティ上の注意事項 ====&lt;br /&gt;
下表に、Filesystem MCP Serverを安全に使用するための推奨事項を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ セキュリティに関する推奨事項&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 許可ディレクトリの最小化 || 必要最小限のディレクトリのみを許可対象として指定する。&amp;lt;br&amp;gt;ルートディレクトリ (/ や C:\) を許可対象に含めることは避けること。&lt;br /&gt;
|-&lt;br /&gt;
| 読み取り専用の活用 || 書き込みが不要な用途では、&amp;lt;br&amp;gt;Dockerの &amp;lt;code&amp;gt;:ro&amp;lt;/code&amp;gt; フラグを使用して読み取り専用で実行することを推奨する。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || 過去バージョンにパス検証の脆弱性が存在したため、常に最新バージョンを使用すること。&amp;lt;br&amp;gt;最新版では修正済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用例 ==&lt;br /&gt;
Filesystem MCP Serverのツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの読み取り ====&lt;br /&gt;
ファイルの内容を読み込む場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 単一ファイルを読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/config.yaml の内容を読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 複数ファイルをまとめて読み込む場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 src/main.py と src/utils.py の2つのファイルを同時に読み込んでください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディレクトリの参照 ====&lt;br /&gt;
ディレクトリの内容を確認する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリの一覧を表示する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects ディレクトリの内容を一覧表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディレクトリ構造をツリー形式で確認する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp のディレクトリツリーを表示してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの作成・編集 ====&lt;br /&gt;
ファイルを作成または編集する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 新しいファイルを作成する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/README.md を作成して、プロジェクトの概要を記述してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 既存ファイルを編集する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects/myapp/config.py の DEBUG 変数の値を False に変更してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルの検索 ====&lt;br /&gt;
特定のファイルを検索する場合の操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* globパターンでPythonファイルを検索する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 /home/user/Projects 配下にある全ての .py ファイルを検索してください。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 共通の問題 ====&lt;br /&gt;
下表に、OS問わず発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 共通トラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;Server transport closed unexpectedly&amp;lt;/u&amp;gt; エラーが発生する || PATHの問題&amp;lt;br&amp;gt;NVM等のバージョンマネージャを使用している場合に発生しやすい。 || Node.jsの完全パスを設定ファイルの &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に指定する。&amp;lt;br&amp;gt;または、NVM向けのラッパースクリプトを作成して使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;MCP filesystem: Server disconnected&amp;lt;/u&amp;gt; エラーが発生する || NVM環境での実行時に環境が正しく初期化されていない。 || シェルの設定ファイルでNVMを正しく初期化した上でMCPクライアントを起動する。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;nvm use&amp;lt;/code&amp;gt; を実行してからMCPクライアントを起動する。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ファイルが読み込まれない || JSONファイルにコメントが含まれている。&amp;lt;br&amp;gt;JSON標準仕様ではコメントは使用不可である。 || 設定ファイルからコメントを全て削除する。&lt;br /&gt;
|-&lt;br /&gt;
| アクセスが拒否される || 指定した許可ディレクトリの外にあるファイルへのアクセスを試みている。 || &amp;lt;code&amp;gt;list_allowed_directories&amp;lt;/code&amp;gt; ツールで許可ディレクトリを確認し、&amp;lt;br&amp;gt;必要に応じてサーバの起動引数に対象ディレクトリを追加する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Windowsでの問題 ====&lt;br /&gt;
下表に、Windows環境で発生する可能性がある問題と対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windowsのトラブルシューティング&lt;br /&gt;
! 問題 !! 原因 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| パスが正しく認識されない || OneDriveが有効な場合、表示上のパスと実際のパスが異なることがある。 || エクスプローラーでフォルダのプロパティを確認し、&amp;lt;br&amp;gt;実際のパスを設定ファイルに記述する。&lt;br /&gt;
|-&lt;br /&gt;
| サーバが起動しない || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドがWindowsのパス解決で問題を起こすことがある。 || &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;cmd&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; の先頭に&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;[&amp;quot;/c&amp;quot;, &amp;quot;npx&amp;quot;]&amp;lt;/code&amp;gt; を追加して &amp;lt;code&amp;gt;cmd /c&amp;lt;/code&amp;gt; ラッパーを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一般的なデバッグ手順 ====&lt;br /&gt;
問題が発生した場合は、以下に示す手順でデバッグを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MCPクライアント (Claude Desktop等) を完全に終了する。&lt;br /&gt;
# 設定ファイルのJSON構文を検証する。(JSONリンターを使用する)&lt;br /&gt;
# Node.jsのバージョンが、v18.0.0以上であることを確認する。&lt;br /&gt;
# &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドが使用可能であることを確認する。(&amp;lt;code&amp;gt;npx --version&amp;lt;/code&amp;gt; を実行する)&lt;br /&gt;
# 以下に示すコマンドを手動で実行してサーバが正常に起動するか確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
# MCPクライアントを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Filesystem,MCP,Model Context Protocol,filesystem-mcp-server,Claude,Claude Desktop,Claude Code,VS Code,Cursor,Node.js,npx,Docker,ファイルシステム,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Context7&amp;diff=14604</id>
		<title>MCPサーバ - Context7</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MCP%E3%82%B5%E3%83%BC%E3%83%90_-_Context7&amp;diff=14604"/>
		<updated>2026-03-25T06:30:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Context7 MCP Server (@upstash/context7-mcp) は、Upstashが開発したMCPサーバである。&amp;lt;br&amp;gt; LLMのコンテキストウィンドウに最新のバージョン固有のライブラリドキュメントとコード例を直接注入することで、ハルシネーションを排除し、正確なコード生成を実現する。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; LLMは学習データに基づいて回答するため、古いバージョンのAPIを使用したコード…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Context7 MCP Server (@upstash/context7-mcp) は、Upstashが開発したMCPサーバである。&amp;lt;br&amp;gt;&lt;br /&gt;
LLMのコンテキストウィンドウに最新のバージョン固有のライブラリドキュメントとコード例を直接注入することで、ハルシネーションを排除し、正確なコード生成を実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
LLMは学習データに基づいて回答するため、古いバージョンのAPIを使用したコードを生成したり、存在しない関数やメソッドを生成することがある。&amp;lt;br&amp;gt;&lt;br /&gt;
Context7はこの問題を解決するために、プロンプトに &amp;lt;code&amp;gt;use context7&amp;lt;/code&amp;gt; と追記するだけで、対象ライブラリの最新ドキュメントを自動的に取得してコンテキストに統合する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 最新バージョン固有のドキュメントをリアルタイムで取得&lt;br /&gt;
* Next.js、React、Vue.js、TypeScript等、数千のライブラリに対応&lt;br /&gt;
* プロンプトへの &amp;lt;code&amp;gt;use context7&amp;lt;/code&amp;gt; 追記だけで動作する簡単な操作性&lt;br /&gt;
* Claude Desktop、Claude Code、Cursor、VS Code、Windsurf等の主要MCPクライアントに対応&lt;br /&gt;
* Windows、MacOS、Linuxに対応&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 動作要件 ==&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
Context7 MCP Serverを使用するために必要な前提条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Node.js v18以上&lt;br /&gt;
*: &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; コマンドを使用してContext7 MCP Serverを実行するために必要&lt;br /&gt;
* インターネット接続&lt;br /&gt;
*: ライブラリドキュメントをContext7サーバから取得するために必要&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
==== 簡単セットアップ ====&lt;br /&gt;
&amp;lt;code&amp;gt;ctx7&amp;lt;/code&amp;gt; CLIを使用して、MCPクライアントへの設定を自動的に行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全クライアントを対象にセットアップする場合は、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx ctx7 setup&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
特定のMCPクライアントのみを対象にセットアップする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktop向けのセットアップコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx ctx7 setup --claude&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursor向けのセットアップコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx ctx7 setup --cursor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Code向けのセットアップコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx ctx7 setup --code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Smithery経由のインストール ====&lt;br /&gt;
Smitheryを使用してContext7 MCP Serverをインストールする場合は、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npx -y @smithery/cli install @upstash/context7-mcp --client claude&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
==== 設定ファイルの場所 ====&lt;br /&gt;
各MCPクライアントの設定ファイルの場所は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Desktopの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Linux&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.config/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* MacOS&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/Library/Application Support/Claude/claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* Windows&lt;br /&gt;
*: &amp;lt;u&amp;gt;%APPDATA%\Claude\claude_desktop_config.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Claude Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ローカルスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;.mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート) : &amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドで生成される。&lt;br /&gt;
* ユーザスコープ&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.claude.json&amp;lt;/u&amp;gt; (ホームディレクトリ)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Cursorの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* グローバル設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* プロジェクト設定&lt;br /&gt;
*: &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeの設定ファイルを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; (プロジェクトルート)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Desktopの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;claude_desktop_config.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp@latest&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Claude Codeの設定 ====&lt;br /&gt;
Claude Codeでは、&amp;lt;code&amp;gt;claude mcp add&amp;lt;/code&amp;gt; コマンドを使用してContext7 MCP Serverを追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下のコマンドでMCPサーバをClaude Codeに登録する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 claude mcp add context7 -- npx -y @upstash/context7-mcp@latest&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Cursorの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;~/.cursor/mcp.json&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.cursor/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp@latest&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VS Codeの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.vscode/mcp.json&amp;lt;/u&amp;gt; ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp@latest&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== APIキーを使用した設定 ====&lt;br /&gt;
APIキーを使用する場合は、設定ファイルに以下に示す内容を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp&amp;quot;, &amp;quot;--api-key&amp;quot;, &amp;quot;YOUR_API_KEY&amp;quot;]&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIキーは、[https://context7.com/dashboard Context7ダッシュボード]から取得できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;APIキーは作成時のみ表示されるため、作成後は安全な場所に保管すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数とオプション ==&lt;br /&gt;
==== 環境変数一覧 ====&lt;br /&gt;
下表に、Context7 MCP Serverの動作をカスタマイズするための環境変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 環境変数の一覧&lt;br /&gt;
! 環境変数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEFAULT_MINIMUM_TOKENS&amp;lt;/code&amp;gt; || ドキュメント取得時のトークン数の最小値を指定する。&amp;lt;br&amp;gt;デフォルト値は &amp;lt;u&amp;gt;10000&amp;lt;/u&amp;gt; である。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTEXT7_API_KEY&amp;lt;/code&amp;gt; || Context7 APIの認証用キーを指定する。&amp;lt;br&amp;gt;[https://context7.com/dashboard Context7ダッシュボード]から取得できる。&amp;lt;br&amp;gt;CLIフラグ &amp;lt;code&amp;gt;--api-key&amp;lt;/code&amp;gt; おオプションでも指定可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数を設定ファイルに記述する場合の例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;mcpServers&amp;quot;: {&lt;br /&gt;
     &amp;quot;context7&amp;quot;: {&lt;br /&gt;
       &amp;quot;command&amp;quot;: &amp;quot;npx&amp;quot;,&lt;br /&gt;
       &amp;quot;args&amp;quot;: [&amp;quot;-y&amp;quot;, &amp;quot;@upstash/context7-mcp@latest&amp;quot;],&lt;br /&gt;
       &amp;quot;env&amp;quot;: {&lt;br /&gt;
         &amp;quot;DEFAULT_MINIMUM_TOKENS&amp;quot;: &amp;quot;20000&amp;quot;,&lt;br /&gt;
         &amp;quot;CONTEXT7_API_KEY&amp;quot;: &amp;quot;YOUR_API_KEY&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 提供ツール ==&lt;br /&gt;
Context7 MCP Serverは、ライブラリドキュメントを取得するための2つのツールを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ツール一覧 ====&lt;br /&gt;
下表に、Context7 MCP Serverが提供するツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ツール一覧&lt;br /&gt;
! ツール名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resolve-library-id&amp;lt;/code&amp;gt; || ライブラリの一般名をContext7互換のライブラリIDに変換する。&amp;lt;br&amp;gt;例: &amp;quot;next.js&amp;quot; --&amp;gt; &amp;quot;/vercel/next.js&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;query-docs&amp;lt;/code&amp;gt; || ライブラリIDを使用してドキュメントを取得する。&amp;lt;br&amp;gt;パラメータ: &amp;lt;code&amp;gt;libraryId&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;トークン制限: デフォルト 5000〜10000&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
Context7 MCP Serverを設定後、プロンプトに &amp;lt;code&amp;gt;use context7&amp;lt;/code&amp;gt; と追記するだけで、&amp;lt;br&amp;gt;&lt;br /&gt;
AIアシスタントが自動的にContext7ツールを呼び出し、最新のドキュメントをコンテキストに統合する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 基本的な使用例 ====&lt;br /&gt;
基本的なプロンプトの書き方を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Next.js 14でルーティングとサーバコンポーネントを使用する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Create a Next.js 14 project with routing and server components. use context7&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* zodのスキーマ定義でバリデーションを行う場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 zod v4のスキーマ定義で文字列かつ最低5文字以上という制約を持たせたい。use context7&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ライブラリIDを指定した使用例 ====&lt;br /&gt;
ライブラリIDを直接指定することにより、曖昧さなく対象ライブラリのドキュメントを取得できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Supabaseのライブラリを指定する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 use library /supabase/supabase for API and docs.&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 複数ライブラリを指定した使用例 ====&lt;br /&gt;
複数のライブラリを同時に指定することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* MongoDBとExpress.jsを組み合わせてREST APIを構築する場合&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # プロンプト例 :&lt;br /&gt;
 &lt;br /&gt;
 Create a REST API using MongoDB and Express.js with JWT authentication. use context7&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 対応ライブラリ ====&lt;br /&gt;
Context7が対応している主なライブラリを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 技術スタック一覧&lt;br /&gt;
|-&lt;br /&gt;
! カテゴリ !! 技術&lt;br /&gt;
|-&lt;br /&gt;
| フロントエンド || Next.js、React、Vue.js、Astro&lt;br /&gt;
|-&lt;br /&gt;
| バックエンド || Node.js、Express.js、Django、FastAPI&lt;br /&gt;
|-&lt;br /&gt;
| データベース || MongoDB、Supabase、PostgreSQL&lt;br /&gt;
|-&lt;br /&gt;
| バリデーション || Zod&lt;br /&gt;
|-&lt;br /&gt;
| 言語 || TypeScript&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
その他、数千のライブラリに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
詳細を知りたい場合は、[https://context7.com context7.com]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== 一般的な問題 ====&lt;br /&gt;
下表に、一般的なエラーと対処法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ トラブルシューティング一覧&lt;br /&gt;
! 問題 !! 対処法&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ERR_MODULE_NOT_FOUND&amp;lt;/code&amp;gt; エラーが発生する || &amp;lt;code&amp;gt;npx&amp;lt;/code&amp;gt; の代わりに &amp;lt;code&amp;gt;bunx&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;deno&amp;lt;/code&amp;gt; を使用する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;@latest&amp;lt;/code&amp;gt; サフィックスを削除して試す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Cannot find module&amp;lt;/code&amp;gt; エラーが発生する || Node.js v18以上がインストールされているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| APIキーエラー (403) が発生する || [https://context7.com/dashboard Context7ダッシュボード]で新しいAPIキーを生成する。&amp;lt;br&amp;gt;APIキーは作成時のみ表示されるため、再生成が必要な場合がある。&lt;br /&gt;
|-&lt;br /&gt;
| ドキュメントの取得に失敗する || &amp;lt;code&amp;gt;resolve-library-id&amp;lt;/code&amp;gt; ツールでライブラリIDを確認する。&amp;lt;br&amp;gt;[https://context7.com context7.com] でライブラリが対応しているか確認する。&lt;br /&gt;
|-&lt;br /&gt;
| 接続問題が発生する || Node.jsのバージョンを確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;npm cache clean --force&amp;lt;/code&amp;gt; コマンドでnpmキャッシュをクリアする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Context7,MCP,Model Context Protocol,context7-mcp,Claude,Claude Code,Claude Desktop,Cursor,VS Code,Windsurf,Upstash,Node.js,npx,ドキュメント,ハルシネーション,Next.js,React,TypeScript,AIアシスタント,MCPサーバ&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:設定]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_IVPN&amp;diff=14603</id>
		<title>VPN - IVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_IVPN&amp;diff=14603"/>
		<updated>2026-03-24T18:41:00Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == IVPNは、プライバシー保護を最優先に設計された、ジブラルタルに本拠を置くVPNサービスである。&amp;lt;br&amp;gt; 2009年に設立され、IVPN Limited (旧: Privatus Limited、2020年に名称変更) が運営している。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 本社は、5 Secretary&amp;#039;s Lane, Gibraltar (ジブラルタル) に位置している。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; IVPNの最大の特徴は、徹底したプライバシー保護への取り組みである。&amp;lt;br&amp;gt; ア…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
IVPNは、プライバシー保護を最優先に設計された、ジブラルタルに本拠を置くVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
2009年に設立され、IVPN Limited (旧: Privatus Limited、2020年に名称変更) が運営している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
本社は、5 Secretary&#039;s Lane, Gibraltar (ジブラルタル) に位置している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNの最大の特徴は、徹底したプライバシー保護への取り組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
アカウント登録時にメールアドレスは不要で、15文字のアカウントIDのみで認証する完全匿名の仕組みを採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、全クライアントソフトウェアはオープンソースとしてGitHubで公開されており、Cure53による定期的な第三者監査を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Freedom of the Press Foundationが推奨するVPNサービスの1つであり、ジャーナリストや活動家等の高いプライバシーを必要とするユーザに支持されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNは、以下に示す特徴がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IVPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 匿名アカウント || メールアドレス不要&amp;lt;br&amp;gt;15文字のアカウントIDのみで登録・認証が完結する。&lt;br /&gt;
|-&lt;br /&gt;
| ノーログ || VPN接続ログ、ユーザのIPアドレス、通信内容、DNSクエリを一切記録しない。&lt;br /&gt;
|-&lt;br /&gt;
| 外部監査 || Cure53による定期的な第三者セキュリティ監査を受けており、全レポートを公開している。&lt;br /&gt;
|-&lt;br /&gt;
| オープンソース || 全クライアントソフトウェアをGitHubで公開している。&amp;lt;br&amp;gt;バックドアがないことを誰でも検証できる。&lt;br /&gt;
|-&lt;br /&gt;
| マルチホップ || 複数のVPNサーバを経由する多段接続に対応しており、追跡をより困難にする。&lt;br /&gt;
|-&lt;br /&gt;
| AntiTracker || DNSレベルで広告、トラッカーをブロックする機能を内蔵している。&amp;lt;br&amp;gt;Hardcoreモードでは、Facebook / Google IPもブロックする。&lt;br /&gt;
|-&lt;br /&gt;
| キルスイッチ || VPN接続が切断された時に全ネットワークトラフィックを自動停止するファイアウォール機能を備えている。&lt;br /&gt;
|-&lt;br /&gt;
| SOCKS5プロキシ || 認証不要のSOCKS5プロキシサービスを提供している。(ポート1080)&lt;br /&gt;
|-&lt;br /&gt;
| V2Ray難読化 || Deep Packet Inspection (DPI) による検閲を回避する難読化機能を備えている。&lt;br /&gt;
|-&lt;br /&gt;
| 令状カナリー || 月次更新の令状カナリーと年次透明性レポートを公開している。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デメリットとしては、以下に示すことが挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* 料金が競合他社と比較して高め。&lt;br /&gt;
* サーバ数が32カ国40ロケーション以上と少なめ。&lt;br /&gt;
* ストリーミングサービスの視聴用途には最適化されていない。&lt;br /&gt;
* ポートフォワーディングには対応していない。&lt;br /&gt;
* 本社がジブラルタル (英国領、5 Eyes圏内) に位置している。&lt;br /&gt;
* モバイルアプリのUIが限定的。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
料金は以下の通りである。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IVPNの料金プラン&lt;br /&gt;
! プラン !! 同時接続台数 !! 週額 !! 月額 !! 年額&lt;br /&gt;
|-&lt;br /&gt;
| Standard || 2台 || $2 || $6 || $60&lt;br /&gt;
|-&lt;br /&gt;
| Pro || 7台 || $4 || $10 || $100&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proプランでは、マルチホップおよびポートフォワーディング非対応のかわりに接続台数が増加する。&amp;lt;br&amp;gt;&lt;br /&gt;
30日間の返金保証が提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
支払い方法はクレジットカード、PayPal、Bitcoin、Monero、現金に対応しており、匿名支払いも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
IVPNは完全なノーログポリシーを採用しており、以下に示す情報を一切記録しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* VPN接続ログ (接続日時、切断日時、接続先サーバ)&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* 通信内容&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
* 帯域幅・データ転送量&lt;br /&gt;
* セッション情報&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一方、以下に示す情報は最低限記録される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アカウント登録日&lt;br /&gt;
* 支払い情報 (Monero、Bitcoin、現金による匿名決済を選択することで最小化可能)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、IVPNはメールアドレスを含む個人情報を収集しない設計を採用しており、&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アカウントは15文字のIDのみで管理される。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、サービス側が保持するユーザ情報を構造的に最小化している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実施状況 ====&lt;br /&gt;
IVPNは、プライバシー保護の実効性を証明するため、Cure53によるセキュリティ監査を定期的に受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IVPN Cure53監査実績&lt;br /&gt;
! 年 !! 監査対象 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2019年 || インフラセキュリティ・ノーログ検証 || プライバシー違反なし、ノーログ確認済み&lt;br /&gt;
|-&lt;br /&gt;
| 2022年 || アプリケーションセキュリティ || 重大な脆弱性なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || Webインフラセキュリティ || 問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || modDNS機能 || セキュリティ上の問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2025年 || 年次監査 (予定) || -&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
監査はCure53チームによる7日間以上の詳細調査として実施されており、SSHおよびrootアクセスを許可した踏み込んだ調査が行われている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全監査報告書はIVPN公式Webサイトで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関への対応事例 ====&lt;br /&gt;
IVPNは、捜査機関からの法的要求に対するデータ提供実績を年次透明性レポートとして公開している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2024年の対応事例&lt;br /&gt;
*: 12件の法的要求を受領した。&lt;br /&gt;
*: そのうち法的妥当性があると判断したのは1件のみであった。&lt;br /&gt;
*: データ提供件数はゼロ件であった。&lt;br /&gt;
*: ノーログポリシーにより、提供すべきデータが存在しなかった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNのノーログポリシーは実際の法執行機関との対応においても、その有効性が確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的なプライバシー保護 ====&lt;br /&gt;
IVPNが採用する技術的なプライバシー保護の仕組みを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 匿名アカウント制&lt;br /&gt;
*: メールアドレス、名前、パスワードは一切不要である。&lt;br /&gt;
*: 15文字のアカウントIDのみで登録・認証が完結する。&lt;br /&gt;
* 匿名支払い対応&lt;br /&gt;
*: Monero、Bitcoin、現金による完全匿名の支払いが可能である。&lt;br /&gt;
*: クレジットカードやPayPalによる支払いも選択できる。&lt;br /&gt;
* オープンソース&lt;br /&gt;
*: 全クライアントソフトウェアはGitHubで公開されている。&lt;br /&gt;
*: バックドアやセキュリティ脆弱性がないことを誰でも検証できる。&lt;br /&gt;
* AntiTracker&lt;br /&gt;
*: DNSレベルで広告およびトラッカードメインをブロックする。&lt;br /&gt;
*: HardcoreモードではFacebook / Meta / GoogleのIPアドレスをASNレベルで追加ブロックする。&lt;br /&gt;
* V2Ray難読化&lt;br /&gt;
*: Deep Packet Inspection (DPI) による検閲を回避する難読化機能を提供する。&lt;br /&gt;
*: 検閲が厳しい地域での使用を想定している。&lt;br /&gt;
* modDNS機能 (ベータ)&lt;br /&gt;
*: DNS-over-HTTPS、DNS-over-TLS、DNS-over-QUICに対応する。&lt;br /&gt;
*: Cure53による監査を受けている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する考慮事項 ====&lt;br /&gt;
IVPNの本社はジブラルタル (英国領) に位置しており、5 Eyes諜報同盟の間接的な管轄圏内となることに注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ジブラルタルの法的環境&lt;br /&gt;
*: 英国領であるが、独自の法体系を持つ自治領である。&lt;br /&gt;
*: ジブラルタル独自のプライバシー法制が存在する。&lt;br /&gt;
*: 5 Eyes諸国からの法的要求を受ける可能性がある。&lt;br /&gt;
* リスク軽減要因&lt;br /&gt;
*: ノーログポリシーにより、要求に応じても提供すべきデータが存在しない。&lt;br /&gt;
*: 法的妥当性のない要求に対しては法的に対抗する方針を採っている。&lt;br /&gt;
*: 令状カナリーを月次で更新しており、現在も green (秘密の捜査令状なし) の状態を維持している。&lt;br /&gt;
*: 年次透明性レポートを公開している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログを技術的に実装した上で法的にも対抗する姿勢を採っているため、管轄法域のリスクは構造的に軽減されていると評価されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要なノーログVPNとの比較&lt;br /&gt;
! 項目 !! IVPN !! Mullvad !! ProtonVPN&lt;br /&gt;
|-&lt;br /&gt;
| 設立年 || 2009年 || 2009年 || 2014年&lt;br /&gt;
|-&lt;br /&gt;
| 本社 || ジブラルタル (英国領) || スウェーデン || スイス&lt;br /&gt;
|-&lt;br /&gt;
| Five Eyes || 間接的に圏内 || 圏外 || 圏外&lt;br /&gt;
|-&lt;br /&gt;
| 第三者監査 || Cure53 (定期的) || Cure53・NCC Group等 || SEC Consult等&lt;br /&gt;
|-&lt;br /&gt;
| オープンソース || あり || あり || あり&lt;br /&gt;
|-&lt;br /&gt;
| 匿名登録 || あり (メール不要) || あり (メール不要) || なし (メール必要)&lt;br /&gt;
|-&lt;br /&gt;
| 匿名支払い || Bitcoin・Monero・現金 || Bitcoin・Monero・現金 || Bitcoin・現金&lt;br /&gt;
|-&lt;br /&gt;
| 料金 (月額) || $6〜$10 || €5 || $4〜$10&lt;br /&gt;
|-&lt;br /&gt;
| 同時接続 || 2〜7台 || 5台 || 1〜10台&lt;br /&gt;
|-&lt;br /&gt;
| サーバ数 || 40ロケーション以上 || 900台以上 || 9,800台以上&lt;br /&gt;
|-&lt;br /&gt;
| マルチホップ || あり (Proプラン) || あり || あり (Plusプラン)&lt;br /&gt;
|-&lt;br /&gt;
| ポートフォワーディング || なし || なし (2023年廃止) || なし&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
* IVPNの本社は5 Eyes圏の管轄に入る可能性があるジブラルタルに位置している。&amp;lt;br&amp;gt;ただし、ノーログポリシーの構造的な実装により、このリスクは大幅に軽減される。&lt;br /&gt;
* サーバ数は競合他社と比較して少ないため、特定地域でのパフォーマンスが限定される場合がある。&lt;br /&gt;
* ストリーミング視聴用途には最適化されていないため、動画配信サービスのVPN迂回には適さない場合がある。&lt;br /&gt;
* 料金は競合他社と比較して高めであるが、プライバシー重視の設計に対する対価と位置づけられている。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IVPNの契約方法 ==&lt;br /&gt;
IVPNの契約手順を以下にに示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.ivpn.net/ IVPNの公式Webサイト]へアクセスして、[Get IVPN]を選択する。&lt;br /&gt;
# プランを選択する。&amp;lt;br&amp;gt;Standard (2台接続) またはPro (7台接続) のいずれかを選択する。&lt;br /&gt;
# 請求サイクルを選択する。&amp;lt;br&amp;gt;週額、月額、年額のいずれかを選択する。&lt;br /&gt;
# アカウントIDが発行される。&lt;br /&gt;
#: このIDはIVPNへのログインに使用する唯一の認証情報であるため、大切に保管すること。&lt;br /&gt;
#: メールアドレスの登録は不要である。&lt;br /&gt;
# 支払い方法を選択して決済する。&lt;br /&gt;
#: クレジットカード、PayPal、Bitcoin、Monero、現金のいずれかを選択できる。&lt;br /&gt;
#: &amp;lt;u&amp;gt;匿名性を重視する場合は、Moneroおよび現金を推奨する。&amp;lt;/u&amp;gt;&lt;br /&gt;
# [https://www.ivpn.net/apps/ IVPNの公式Webサイト]にアクセスして、使用するOSに対応したIVPNアプリをダウンロードする。&lt;br /&gt;
#: 対応OSはWindows、MacOS、Linux、iOS、Androidである。&lt;br /&gt;
# IVPNアプリを起動して、発行されたアカウントIDでログインする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
30日間の返金保証が提供されているため、サービス内容に満足できない場合はサポートへ連絡することで返金を受けられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
IVPNは、Torネットワーク経由でVPN接続を行うVPN over Tor接続の構成をSOCKS5プロキシ機能により実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* VPN over Tor接続の通信フロー&lt;br /&gt;
*: ユーザ --&amp;gt; Torエントリーノード --&amp;gt; Tor出口ノード --&amp;gt; IVPN SOCKS5プロキシ --&amp;gt; インターネット&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この構成では、IVPNサーバにはTorの出口IPアドレスのみが伝わり、ユーザの実際のIPアドレスはIVPNに対して秘匿される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== IVPN SOCKS5プロキシの仕様 ====&lt;br /&gt;
下表に、IVPNが提供するSOCKS5プロキシの仕様を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IVPN SOCKS5プロキシ仕様&lt;br /&gt;
! 項目 !! 値&lt;br /&gt;
|-&lt;br /&gt;
| IPアドレス || 10.1.0.1&lt;br /&gt;
|-&lt;br /&gt;
| ポート番号 || 1080&lt;br /&gt;
|-&lt;br /&gt;
| DNS名 || socks5.gw.ivpn.net&lt;br /&gt;
|-&lt;br /&gt;
| 認証 || 不要&lt;br /&gt;
|-&lt;br /&gt;
| 対応プロトコル || TCPのみ&lt;br /&gt;
|-&lt;br /&gt;
| 対応VPNプロトコル || WireGuard、OpenVPN、IKEv2全て&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;SOCKS5プロキシはTCPのみに対応しており、UDPには対応していないことに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPN over Torの設定手順 ====&lt;br /&gt;
===== 事前準備 =====&lt;br /&gt;
VPN over Tor接続の構成では、TorをIVPN SOCKS5プロキシへの前段プロキシとして使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNに接続する前にTorを起動しておく必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
推奨環境として、同一マシン上でTorとIVPNクライアントを同時実行すると、ルーティングが複雑になる場合があるため、&amp;lt;br&amp;gt;&lt;br /&gt;
別のマシンまたはVM上でTorを実行することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Torの起動 =====&lt;br /&gt;
ターミナルを起動して、Torを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl start tor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torが正常に起動していることを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl status tor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== IVPNのSOCKS5プロキシをTorのブリッジとして設定する =====&lt;br /&gt;
IVPNのSOCKS5プロキシを、Torが外部ネットワークに接続する時のブリッジ (前段プロキシ) として設定することで、VPN over Tor接続の構成を実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IVPNに接続した状態で、Torの設定ファイルを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/tor/torrc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/tor/torrcファイル&lt;br /&gt;
 &lt;br /&gt;
 # IVPNのSOCKS5プロキシをTorの前段ブリッジとして使用する&lt;br /&gt;
 # 10.1.0.1はIVPN VPN接続中にのみアクセス可能なゲートウェイアドレスである&lt;br /&gt;
 Socks5Proxy 10.1.0.1:1080&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定を反映するためにTorを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl restart tor&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== アプリケーションからの接続 =====&lt;br /&gt;
Tor起動後、アプリケーションのプロキシ設定にTorのSOCKS5プロキシ (&amp;lt;u&amp;gt;127.0.0.1:9050&amp;lt;/u&amp;gt;) を指定することにより、&amp;lt;br&amp;gt;&lt;br /&gt;
アプリケーションのトラフィックがIVPN SOCKS5プロキシを経由してTorネットワークに転送される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
curlコマンドでの使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/api/ip&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== proxychainsを使用した方法 =====&lt;br /&gt;
proxychainsを使用することにより、任意のアプリケーションをIVPN SOCKS5プロキシ経由のTorで接続することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
proxychainsをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install proxychains-ng&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
proxychainsの設定ファイルを編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/proxychains.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # /etc/proxychains.confファイル&lt;br /&gt;
 &lt;br /&gt;
 # IVPNのSOCKS5プロキシを経由してTorに接続するプロキシチェーン&lt;br /&gt;
 [ProxyList]&lt;br /&gt;
 # IVPN SOCKS5プロキシ (VPN接続中のみアクセス可能)&lt;br /&gt;
 socks5  10.1.0.1  1080&lt;br /&gt;
 # TorのローカルSOCKS5プロキシ&lt;br /&gt;
 socks5  127.0.0.1  9050&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
proxychainsを使用してアプリケーションを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 proxychains firefox&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 注意事項 ====&lt;br /&gt;
* SOCKS5プロキシはTCPのみ対応のため、UDPを使用するアプリケーションでは使用できない。&lt;br /&gt;
* 同一PCでTorクライアントとIVPNクライアントを直接実行している場合、ルーティングが複雑になる場合がある。&amp;lt;br&amp;gt;別のPC または VM上でTorを実行することを推奨する。&lt;br /&gt;
* AntiTracker機能、カスタムDNS設定、Split Tunnelとは同時に使用できない。&lt;br /&gt;
* SOCKS5プロキシはIVPN VPN接続中にのみ使用可能である。&amp;lt;br&amp;gt;VPN未接続の状態ではプロキシアドレス &amp;lt;u&amp;gt;10.1.0.1&amp;lt;/u&amp;gt; にアクセスできない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
Tor over VPN接続は、一般的なTorとVPNの組み合わせ方法であり、特別な設定は不要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Tor over VPNの通信フロー&lt;br /&gt;
*: ユーザ --&amp;gt; IVPN VPNサーバ --&amp;gt; Torエントリノード --&amp;gt; Tor出口ノード --&amp;gt; インターネット&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Tor over VPNのメリット ====&lt;br /&gt;
* IVPNサーバがユーザの実IPアドレスを確認するが、通信の宛先はIVPNに対して秘匿される。&lt;br /&gt;
* ISP (インターネットサービスプロバイダ) に対して、Torを使用していることを隠すことができる。&lt;br /&gt;
* IVPNのノーログポリシーにより、接続情報は記録されない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Tor over VPNの設定手順 ====&lt;br /&gt;
# IVPNアプリを起動して、任意のIVPNサーバに接続する。&lt;br /&gt;
# VPN接続状態を確認してから、Tor Browserを起動する。&lt;br /&gt;
# Tor Browserを通常通り使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tor Browserが自動的にTorネットワークへの接続を確立するため、追加の設定は不要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPN over Torとの比較 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Tor+VPN構成の比較&lt;br /&gt;
! 項目 !! Tor over VPN !! VPN over Tor&lt;br /&gt;
|-&lt;br /&gt;
| 設定の手間 || 不要 || SOCKS5プロキシ設定が必要&lt;br /&gt;
|-&lt;br /&gt;
| ISPへのTor利用の秘匿 || 可能 || 不可能&lt;br /&gt;
|-&lt;br /&gt;
| VPNへの通信内容の秘匿 || 可能 || 不可能&lt;br /&gt;
|-&lt;br /&gt;
| VPNへの実IP開示 || あり || なし (Tor経由)&lt;br /&gt;
|-&lt;br /&gt;
| 速度 || 低速 || より低速&lt;br /&gt;
|-&lt;br /&gt;
| IVPN SOCKS5プロキシ || 不要 || 使用する&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PrivadoVPN&amp;diff=14602</id>
		<title>VPN - PrivadoVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PrivadoVPN&amp;diff=14602"/>
		<updated>2026-03-24T18:25:08Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == PrivadoVPNは、スイスのツッグに本社を置くVPNサービスであり、2019年にPrivado Networks AGによって設立された。&amp;lt;br&amp;gt; エンタープライズ向けサービスは2019年4月、コンシューマー向けサービスは2019年12月に開始された。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; スイスを拠点とすることで、EU圏外のデータ保護法 (スイス連邦データ保護法: FADP) の適用を受けており、5/9/14 Eyes (情報共有…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PrivadoVPNは、スイスのツッグに本社を置くVPNサービスであり、2019年にPrivado Networks AGによって設立された。&amp;lt;br&amp;gt;&lt;br /&gt;
エンタープライズ向けサービスは2019年4月、コンシューマー向けサービスは2019年12月に開始された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
スイスを拠点とすることで、EU圏外のデータ保護法 (スイス連邦データ保護法: FADP) の適用を受けており、5/9/14 Eyes (情報共有協定) の加盟国に属さないことが特徴である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNは、無料プランを提供している数少ないVPNサービスのひとつであり、月間10[GB]のデータ通信量と10カ国のサーバが無料で利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
無料プランのデータ上限を超過した場合も、約1[Mbps]の低速接続 (Lite Mode) で継続して利用できる点が他社との差別化ポイントとなっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNは、以下に示す主な特徴がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivadoVPN の主な特徴&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 無料プラン || 月間10[GB]の高速データ通信と10カ国のサーバが無料で利用可能。&amp;lt;br&amp;gt;データ超過後はLite Mode (約1[Mbps]) で継続して接続できる。&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシー || ブラウジング履歴、トラフィック宛先、データ内容、ユーザIPアドレス、DNSクエリを記録しない。&lt;br /&gt;
|-&lt;br /&gt;
| スイス拠点 || スイス連邦データ保護法 (FADP) の保護を受け、5/9/14 Eyes の管轄外である。&lt;br /&gt;
|-&lt;br /&gt;
| キルスイッチ || VPN接続が切断された場合に自動でネットワーク通信を遮断して、IPアドレスの漏洩を防ぐ。&lt;br /&gt;
|-&lt;br /&gt;
| スプリットトンネリング || 特定のアプリやサイトのみVPNを経由させることができる。&lt;br /&gt;
|-&lt;br /&gt;
| 広告ブロッカー || 広告や追跡スクリプトをブロックするフィルタリング機能を内蔵している。&lt;br /&gt;
|-&lt;br /&gt;
| SOCKS5プロキシ || Torrentクライアント向けにSOCKS5プロキシを提供している。&amp;lt;br&amp;gt;60以上のグローバルプロキシサーバを選択できる。&lt;br /&gt;
|-&lt;br /&gt;
| ストリーミング対応 || Netflix、Hulu、Amazon Prime Video等の主要ストリーミングサービスに対応している。&lt;br /&gt;
|-&lt;br /&gt;
| 同時接続台数 || 有料プランでは最大10台のデバイスを同時に接続できる。&lt;br /&gt;
|-&lt;br /&gt;
| 30日間返金保証 || 有料プランに加入後30日以内であれば全額返金を受けることができる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デメリットとしては、以下に示すことが挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* 第三者による独立したセキュリティ監査が未実施であり、透明性レポートも公開されていない。&lt;br /&gt;
* サーバ数が338〜377台と他の主要VPNと比較して限定的である。&lt;br /&gt;
* ストリーミングサービス利用時にIPアドレスがブロックされる事例が報告されている。&lt;br /&gt;
* Lite Modeの速度は約1[Mbps]であり、動画視聴等の用途には不向きである。&lt;br /&gt;
* 公式Linux向けアプリが提供されていないため、Linux環境での利用には手動設定が必要となる。&lt;br /&gt;
* カスタマーサポートは主に英語対応であり、日本語サポートは提供されていない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivadoVPN 料金プラン (2026年3月現在)&lt;br /&gt;
! プラン !! 料金 !! 接続台数 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| 無料 || 無料 || 1台 || 月間10[GB]、10カ国のサーバ、Lite Mode対応&lt;br /&gt;
|-&lt;br /&gt;
| 1ヶ月プラン || $10.99/月 || 10台 || 無制限データ通信、全サーバ利用可能&lt;br /&gt;
|-&lt;br /&gt;
| 1年プラン || $3.99/月 (年払い) || 10台 || 無制限データ通信、全サーバ利用可能&lt;br /&gt;
|-&lt;br /&gt;
| 2年プラン || $1.99/月 (2年払い) || 10台 || 無制限データ通信、全サーバ利用可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivadoVPN 無料プランで利用できるサーバ国 (10カ国)&lt;br /&gt;
! 地域 !! 国&lt;br /&gt;
|-&lt;br /&gt;
| ヨーロッパ || 英国、オランダ、ドイツ、フランス&lt;br /&gt;
|-&lt;br /&gt;
| 北米 || 米国、カナダ、メキシコ&lt;br /&gt;
|-&lt;br /&gt;
| 南米 || ブラジル、アルゼンチン&lt;br /&gt;
|-&lt;br /&gt;
| アジア || インド&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
PrivadoVPNは、厳格なノーログポリシーを公式に掲げており、ユーザのプライバシーを保護するために以下の情報を記録しないと明言している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ログポリシーの詳細&lt;br /&gt;
|-&lt;br /&gt;
! 記録しない情報 !! 記録する情報&lt;br /&gt;
|-&lt;br /&gt;
| ブラウジング履歴 (アクセスしたWebの記録) || メールアドレス (アカウント作成・管理のため)&lt;br /&gt;
|-&lt;br /&gt;
| トラフィックの宛先(接続先のIPアドレスやドメイン) || 帯域幅の使用量 (無料プランのデータ制限管理のため)&lt;br /&gt;
|-&lt;br /&gt;
| データ内容(通信の中身) ||&lt;br /&gt;
|-&lt;br /&gt;
| ユーザの実IPアドレス ||&lt;br /&gt;
|-&lt;br /&gt;
| DNSクエリ(DNS検索の記録) ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、帯域幅の使用量の記録は無料プランのデータ制限 (月間10[GB]) を管理するための技術的な必要性によるものであり、VPNの利用内容とは紐付けられていないとしている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
PrivadoVPNは、2026年3月現在において第三者機関による独立したセキュリティ監査を実施していない。&amp;lt;br&amp;gt;&lt;br /&gt;
公開された監査レポートも存在しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要なVPNプロバイダの多くが定期的な第三者監査を実施してノーログポリシーの有効性を客観的に証明しているのに対して、PrivadoVPNはノーログポリシーを自己申告のみで主張している状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、透明性レポート (政府機関や法執行機関からの情報提供要請件数を公開する文書) も確認されておらず、外部からの検証手段が限られていることは留意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的なプライバシー保護 ====&lt;br /&gt;
PrivadoVPNは、ノーログポリシーを支える技術的な仕組みとして以下を採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* AES-256ビット暗号化&lt;br /&gt;
*: 業界標準の最高レベルの暗号化方式を採用している。&lt;br /&gt;
* 対応プロトコル&lt;br /&gt;
*: WireGuard、OpenVPN、IKEv2/IPSecの3つのプロトコルに対応している。&lt;br /&gt;
*: WireGuardは高速かつ軽量なプロトコルであり、モバイル端末での利用に適している。&lt;br /&gt;
* キルスイッチ&lt;br /&gt;
*: VPN接続が予期せず切断された場合に、自動的にインターネット接続を遮断してIPアドレスの漏洩を防ぐ機能である。&lt;br /&gt;
*: 無料プランでも利用できる。&lt;br /&gt;
* DNS漏洩防止&lt;br /&gt;
*: VPN接続中はPrivadoVPN独自のDNSサーバを使用し、ISP (インターネットサービスプロバイダ) へのDNSクエリの漏洩を防ぐ。&lt;br /&gt;
* スプリットトンネリング&lt;br /&gt;
*: 特定のアプリやウェブサイトをVPNトンネルの外で通信させることができる機能である。&lt;br /&gt;
*: バンキングアプリ等、VPN経由でのアクセスが問題になる場合に有用である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する考慮事項 ====&lt;br /&gt;
PrivadoVPNはスイスのツッグに拠点を置いており、スイスの法律の適用を受ける。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
スイスの法的環境として、以下に示す事柄が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* FADP (スイス連邦データ保護法) の保護&lt;br /&gt;
*: スイスは独自のデータ保護法であるFADP (Federal Act on Data Protection) により、個人データの収集・処理に厳格な制限を設けている。&lt;br /&gt;
*: EUのGDPRと同等以上のデータ保護水準を持つとされている。&lt;br /&gt;
* 5/9/14 Eyes 非加盟&lt;br /&gt;
*: スイスは、米国、英国、カナダ、オーストラリア、ニュージーランドを中心とする情報共有協定 (5/9/14 Eyes) の加盟国ではない。&lt;br /&gt;
*: 加盟国の情報機関からの情報共有要請に自動的に応じる義務を持たない。&lt;br /&gt;
* 第三者からの情報請求への対応&lt;br /&gt;
*: スイス法の規定により、PrivadoVPNはユーザの情報を第三者に提供する場合、当該ユーザへの通知義務を負うとされている。&lt;br /&gt;
*: ただし、裁判所命令等の法的根拠に基づく情報提供要請に対しては応じる可能性がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログVPN 比較&lt;br /&gt;
! 項目 !! PrivadoVPN !! Mullvad !! ProtonVPN&lt;br /&gt;
|-&lt;br /&gt;
| 拠点 || スイス || スウェーデン || スイス&lt;br /&gt;
|-&lt;br /&gt;
| 第三者監査 || 未実施 || 定期実施 (Cure53等) || 実施済み&lt;br /&gt;
|-&lt;br /&gt;
| 透明性レポート || 非公開 || 重大事件のみ公開 || 定期公開&lt;br /&gt;
|-&lt;br /&gt;
| 無料プラン || あり (10[GB]/月) || なし || あり (無制限・低速)&lt;br /&gt;
|-&lt;br /&gt;
| 匿名支払い || 限定的 || 現金、Monero等対応 || 暗号通貨対応&lt;br /&gt;
|-&lt;br /&gt;
| Linux公式アプリ || なし || あり || あり&lt;br /&gt;
|-&lt;br /&gt;
| 5/9/14 Eyes || 非加盟 || 加盟 (スウェーデン) || 非加盟&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
* 第三者監査が未実施であるため、ノーログポリシーの有効性を客観的に検証する手段が現時点では存在しない。&lt;br /&gt;
* スイスはプライバシー保護の観点で有利な法域であるが、スイス法に基づく適法な情報提供要請には応じる可能性がある。&lt;br /&gt;
* 透明性レポートが公開されていないため、政府機関等からの情報提供要請件数を確認する方法がない。&lt;br /&gt;
* 高度なプライバシー要件を持つユーザは、第三者監査を実施済みのVPNサービスと比較検討することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PrivadoVPNの契約方法 ==&lt;br /&gt;
PrivadoVPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privadovpn.com/ PrivadoVPNの公式Webサイト]へアクセスして、ページ上部の[Get PrivadoVPN]または[Start for Free]を選択する。&lt;br /&gt;
# プランを選択する。&amp;lt;br&amp;gt;無料プランを利用する場合は[Free]を選択、有料プランを利用する場合は希望のプランを選択する。&lt;br /&gt;
# メールアドレスを入力してアカウントを作成する。&lt;br /&gt;
#: &amp;lt;u&amp;gt;登録したメールアドレスは、アカウント管理および重要な通知に使用されるため、正確に入力すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# 有料プランを選択した場合は、クレジットカード、PayPal等の支払い方法を選択して決済を行う。&lt;br /&gt;
# [https://privadovpn.com/apps/ PrivadoVPNのダウンロードページ]にアクセスして、使用するOSに対応したアプリをダウンロードする。&lt;br /&gt;
#: Windows、MacOS、iOS、Androidに対応している。&lt;br /&gt;
# アプリをインストールして、登録したメールアドレスとパスワードでログインする。&lt;br /&gt;
# 接続したいサーバを選択して、[Connect]ボタンを押すとVPN接続が開始される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNの有料プランは、最安で$1.99/月 (2年プラン) から利用できる。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
有料プランには30日間の返金保証が付いており、期間内であれば全額返金を受けることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
無料プランはクレジットカード情報の登録なしで利用でき、月間10[GB]のデータ通信量が提供される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
データ上限を超過した場合は、約1[Mbps]の低速接続 (Lite Mode) に自動的に切り替わり、接続自体は維持される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPN over Torとは、Torネットワークを経由した上でVPNに接続する構成のことである。&amp;lt;br&amp;gt;&lt;br /&gt;
この構成では、VPNプロバイダに対してもユーザの実IPアドレスを隠すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNは、VPN over Torを公式にはサポートしていない。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、SOCKS5プロキシを提供しており、主にTorrentクライアント向けの用途で提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SOCKS5プロキシの詳細 ====&lt;br /&gt;
下表に、PrivadoVPNが提供するSOCKS5プロキシの仕様を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivadoVPN SOCKS5プロキシ仕様&lt;br /&gt;
! 項目 !! 内容&lt;br /&gt;
|-&lt;br /&gt;
| プロキシサーバ || proxy.privado.io&lt;br /&gt;
|-&lt;br /&gt;
| ポート番号 || 1080&lt;br /&gt;
|-&lt;br /&gt;
| 認証 || 必要 (ユーザ名、パスワード)&lt;br /&gt;
|-&lt;br /&gt;
| プロキシ数 || 60以上のグローバルプロキシ&lt;br /&gt;
|-&lt;br /&gt;
| 主な用途 || Torrentクライアントでの匿名ダウンロード&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロキシに対応したTorrentクライアントの例として、以下に示すものが挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* qBittorrent&lt;br /&gt;
* uTorrent&lt;br /&gt;
* BitComet&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロキシはVPNトンネルとは異なり、全ての通信を暗号化するものではなく、対応したアプリケーションの通信のみをプロキシ経由でルーティングする仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、SOCKS5プロキシ単体はVPN over Torとしての機能を完全には提供しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN over Tor構成を必要とする場合は、Torネットワークへの接続設定を手動で行った上でVPN接続を確立する必要があり、技術的な難易度が高い。&amp;lt;br&amp;gt;&lt;br /&gt;
高度なプライバシー要件を持つ用途には、VPN over Torを公式にサポートするサービスの利用を推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
Tor over VPNとは、まずVPNに接続した上でTorネットワークを使用する構成のことである。&amp;lt;br&amp;gt;&lt;br /&gt;
この構成では、ISP (インターネットサービスプロバイダ) に対してTorの利用を隠すことができ、またTorの入口ノードに対してもユーザの実IPアドレスを隠すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivadoVPNは、Tor over VPNを公式にはサポートしていない。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、理論的には以下の手順で実現することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PrivadoVPNアプリを起動して任意のサーバに接続する。&lt;br /&gt;
# VPN接続が確立された状態で、Torブラウザを起動して利用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この方法では、PrivadoVPNを経由した上でTorネットワークに接続するため、ISPからはTorの利用が隠される。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、VPNプロバイダであるPrivadoVPNは、ユーザがTorを使用していることは認識できる状態となる点に注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torブラウザは [https://www.torproject.org/ Tor Projectの公式Webサイト] から無料でダウンロードできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tor over VPN構成を利用する場合の留意点を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Torネットワーク経由の通信は通常よりも大幅に速度が低下する。&lt;br /&gt;
* VPNとTorを組み合わせることにより、複数のレイヤーで保護されるが、完全な匿名性を保証するものではない。&lt;br /&gt;
* PrivadoVPNの公式サポート対象外の構成であるため、技術的な問題が発生した場合のサポートを受けることができない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_OVPN&amp;diff=14601</id>
		<title>VPN - OVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_OVPN&amp;diff=14601"/>
		<updated>2026-03-24T18:17:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == OVPNは、スウェーデンのストックホルムに拠点を置くプライバシー重視のVPNサービスである。&amp;lt;br&amp;gt; 2014年にOVPN Integritet ABとして設立され、RAM-onlyサーバやマルチホップ接続等、技術的なプライバシー保護に注力している。&amp;lt;br&amp;gt; 2020年のスウェーデン法廷において、ノーログポリシーが法的に実証された実績を持つ。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 2023年5月にPangoに買収さ…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
OVPNは、スウェーデンのストックホルムに拠点を置くプライバシー重視のVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
2014年にOVPN Integritet ABとして設立され、RAM-onlyサーバやマルチホップ接続等、技術的なプライバシー保護に注力している。&amp;lt;br&amp;gt;&lt;br /&gt;
2020年のスウェーデン法廷において、ノーログポリシーが法的に実証された実績を持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2023年5月にPangoに買収され、2024年にPoint Wild (旧TotalAV) と合併している。&amp;lt;br&amp;gt;&lt;br /&gt;
この買収後もノーログポリシーの継続が明記されているが、Point Wildグループの他製品に関するプライバシー上の懸念が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、OVPNの主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ OVPN VPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバ || ハードドライブを持たず、iPXEによる暗号化起動と署名検証を採用している。&amp;lt;br&amp;gt;物理コンソールおよびUSBポートを廃止しており、電源切断でデータが消滅する。&lt;br /&gt;
|-&lt;br /&gt;
| 法廷でのノーログ実証 || 2020年のスウェーデン裁判所の判決により、ノーログポリシーが法的に実証されている。&amp;lt;br&amp;gt;これは、VPNプロバイダとしては世界初のケースとされている。&lt;br /&gt;
|-&lt;br /&gt;
| マルチホップ (Dynamic Multihop) || 2つのサーバを経由する接続であり、入口サーバと出口サーバを個別に選択できる。&amp;lt;br&amp;gt;単一サーバへの依存を排除してプライバシーを強化する。&lt;br /&gt;
|-&lt;br /&gt;
| ポートフォワーディング || 最大7ポートのポートフォワーディングをサポートしている。&amp;lt;br&amp;gt;使用可能なポート範囲は49152〜65535である。&lt;br /&gt;
|-&lt;br /&gt;
| Public IPv4 || 月額$4で専用の静的IPv4アドレスを取得できるオプション機能である。&lt;br /&gt;
|-&lt;br /&gt;
| キルスイッチ || VPN接続が切断された時に自動でネットワークトラフィックを遮断する機能を搭載している。&lt;br /&gt;
|-&lt;br /&gt;
| DNSリーク保護 || OVPNの独自DNSサーバの使用を強制して、1秒ごとに監視する仕組みを採用している。&lt;br /&gt;
|-&lt;br /&gt;
| 暗号通貨・現金対応 || Bitcoin、Ethereum、Moneroの暗号通貨に加え、現金の郵送による完全匿名での支払いに対応している。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ OVPNのメリットとデメリット&lt;br /&gt;
|-&lt;br /&gt;
! メリット !! デメリット&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバを採用しており、法廷でノーログポリシーが実証されている。 || サーバ台数が世界32都市96台のみであり、競合他社の数千台と比較して大幅に少ない。&lt;br /&gt;
|-&lt;br /&gt;
| 暗号通貨および現金郵送に対応しており、完全匿名での契約が可能である。 || 月額$4.22〜$12の料金は、競合他社と比較して高めである。&lt;br /&gt;
|-&lt;br /&gt;
| 平均ダウンロード速度141[Mbps]、アップロード速度120[Mbps]の通信速度を持つ。 || 同時接続デバイス数が最大7台(36ヶ月契約時)と制限がある。&lt;br /&gt;
|-&lt;br /&gt;
| WireGuardおよびOpenVPNの両プロトコルに対応している。 || BBC iPlayer等、一部のストリーミングサービスに対応していない。&lt;br /&gt;
|-&lt;br /&gt;
| || 第三者機関による独立した監査の公開レポートが確認されていない。&lt;br /&gt;
|-&lt;br /&gt;
| || 透明性レポートが未公開である。&lt;br /&gt;
|-&lt;br /&gt;
| || Pangoグループ(Point Wild)との関係において、プライバシー上の懸念がある。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、OVPNの料金を示す。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ OVPN 料金プラン&lt;br /&gt;
! プラン !! 月額料金 !! 同時接続台数&lt;br /&gt;
|-&lt;br /&gt;
| 1ヶ月 || $12/月 || 4台&lt;br /&gt;
|-&lt;br /&gt;
| 12ヶ月 || $4.99/月 || 5台&lt;br /&gt;
|-&lt;br /&gt;
| 36ヶ月 || $4.22/月 || 7台&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
10日間の返金保証が設けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
対応OSは、Windows、MacOS、Linux (Ubuntu、Debian、Fedora、openSUSE)、Android、iOSである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
OVPNは、以下に示すデータを記録しないとしている。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* デバイスID&lt;br /&gt;
* 接続日時および時間&lt;br /&gt;
* データ転送量&lt;br /&gt;
* 訪問したURL&lt;br /&gt;
* ダウンロード情報&lt;br /&gt;
* 使用したプロトコル&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一方、以下に示すデータは保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザ名およびパスワード (メールアドレスはオプション)&lt;br /&gt;
* デバイス接続数 (IPアドレスやタイムスタンプを含まない)&lt;br /&gt;
* 接続成功フラグ (ブール値のみ)&lt;br /&gt;
* 支払い情報&lt;br /&gt;
* サポート連絡先&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、OVPNは一切のデータを保持しないわけではなく、&amp;lt;u&amp;gt;通信に関するログを保持しない&amp;lt;/u&amp;gt; という意味でのノーログVPNである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
OVPNは、2026年3月現在において、公開された第三者機関による独立した監査レポートが確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、Mullvad VPNやNordVPN等の主要競合他社が定期的に第三者監査を実施し、その結果を公開していることと対照的である。&amp;lt;br&amp;gt;&lt;br /&gt;
透明性レポートについても未公開であり、このことはOVPNの信頼性評価における留意点となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法廷での実績 (2020年スウェーデン) ====&lt;br /&gt;
OVPNのノーログポリシーは、2020年のスウェーデンにおける裁判において法的に実証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 経緯&lt;br /&gt;
*: 映画制作企業 (AB Svensk FilmindustriおよびNordisk Film A/S) が、Rights Alliance経由でユーザ情報の開示をOVPNに要求した。&lt;br /&gt;
* 裁判所の判断&lt;br /&gt;
*: スウェーデン特許・市場裁判所が判決を下し、OVPNはログを保有しておらず、情報開示が不可能であると認定した。&lt;br /&gt;
*: 裁判所はOVPNをインターネットプロバイダーではないと判断して、データ保持指令の適用対象外であるとした。&lt;br /&gt;
* 結果&lt;br /&gt;
*: 映画制作企業がOVPNの弁護士費用として約108,000 SEK (約$12,300) を負担することになった。&lt;br /&gt;
*: これは、VPNプロバイダのノーログポリシーが法廷で実証された事例として広く知られている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的なプライバシー保護 ====&lt;br /&gt;
OVPNは以下に示す技術的な仕組みによりプライバシーを保護している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* RAM-onlyサーバ&lt;br /&gt;
*: 全サーバがハードドライブを持たない揮発性メモリ (RAM) のみで動作している。&lt;br /&gt;
*: iPXEによる暗号化起動と署名検証を採用しており、改竄を検知できる仕組みを持つ。&lt;br /&gt;
*: 物理コンソールおよびUSBポートを廃止しており、物理的なアクセスによるデータ抽出が困難である。&lt;br /&gt;
*: 電源を切断した時点でサーバ上の全データが消滅する。&lt;br /&gt;
* マルチホップ (Dynamic Multihop)&lt;br /&gt;
*: 2つのVPNサーバを経由して接続する機能であり、入口サーバと出口サーバを個別に選択できる。&lt;br /&gt;
*: 単一のサーバが侵害された場合でも、ユーザの実際のIPアドレスと通信内容を同時に把握することが困難になる。&lt;br /&gt;
* DNSリーク保護&lt;br /&gt;
*: OVPNの独自DNSサーバの使用を強制し、1秒ごとに監視する仕組みを採用している。&lt;br /&gt;
*: DNSクエリが外部に漏洩することを防止する。&lt;br /&gt;
* 対応プロトコル&lt;br /&gt;
*: OpenVPN (AES-256-GCM暗号化、ChaCha20-Poly1305、TLSv1.3) およびWireGuardに対応している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する考慮事項 ====&lt;br /&gt;
OVPNはスウェーデンに拠点を置いており、スウェーデンは14 Eyes情報共有同盟の加盟国である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* データ保持指令に関する経緯&lt;br /&gt;
*: スウェーデンは2012年にEUのデータ保持指令を国内法化した。&lt;br /&gt;
*: 2014年、EU司法裁判所がこのデータ保持指令を無効と判断した。&lt;br /&gt;
*: 2020年の裁判では、裁判所がOVPNをISPではないと判断して、データ保持義務が適用されないと認定した。&lt;br /&gt;
* 留意事項&lt;br /&gt;
*: スウェーデンは14 Eyes加盟国であるため、国際的な情報共有の枠組みの影響を受ける可能性がある。&lt;br /&gt;
*: 令状カナリーおよび透明性レポートが未公開であり、法執行機関からの要請状況を外部から確認できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
下表に、OVPNと主要なノーログVPNとの比較を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログVPN 比較&lt;br /&gt;
! 項目 !! OVPN !! Mullvad !! NordVPN&lt;br /&gt;
|-&lt;br /&gt;
| 本社所在地 || スウェーデン || スウェーデン || パナマ&lt;br /&gt;
|-&lt;br /&gt;
| 14 Eyes加盟国 || 該当する || 該当する || 該当しない&lt;br /&gt;
|-&lt;br /&gt;
| 第三者監査 || 公開レポートなし || 定期実施・公開あり || 定期実施・公開あり&lt;br /&gt;
|-&lt;br /&gt;
| 法廷での実績 || 2020年スウェーデン (ノーログ実証済み) || 2023年スウェーデン (家宅捜索でデータ提供不可) || 2024年パナマ (支払い情報のみ提供)&lt;br /&gt;
|-&lt;br /&gt;
| RAMオンリーサーバ || 対応済み || 2024年9月完全移行 || 対応済み&lt;br /&gt;
|-&lt;br /&gt;
| 透明性レポート || 未公開 || 重大事件のみ公開 || 公開あり&lt;br /&gt;
|-&lt;br /&gt;
| サーバ数 || 96台 (32都市) || 数百台 (約45カ国) || 数千台 (約111カ国)&lt;br /&gt;
|-&lt;br /&gt;
| マルチホップ || 対応 (Dynamic Multihop) || 対応 || 対応 (Double VPN)&lt;br /&gt;
|-&lt;br /&gt;
| 匿名支払い || 暗号通貨・現金 || 暗号通貨・現金 || 暗号通貨&lt;br /&gt;
|-&lt;br /&gt;
| 料金 (最安) || $4.22/月 (36ヶ月) || 約€4.9/月 || 約$3.09/月&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
OVPNを選択する時には、以下の点に留意することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2023年にPangoに買収され、2024年にPoint Wild (旧TotalAV) と合併している。&amp;lt;br&amp;gt;Point Wildグループの他製品 (Hotspot Shield、Betternet等) にはプライバシー上の懸念が指摘されており、&amp;lt;br&amp;gt;OVPNへの影響について継続的な注視が必要である。&lt;br /&gt;
* 第三者機関による独立した監査レポートが公開されておらず、ノーログポリシーの技術的な実装について外部から検証することが困難である。&lt;br /&gt;
* スウェーデンは14 Eyes加盟国であり、国際的な情報共有の枠組みの影響を受ける可能性がある。&lt;br /&gt;
* 一方で、2020年の法廷での実績はノーログポリシーの信頼性を裏付ける重要な根拠となっている。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OVPNの契約方法 ==&lt;br /&gt;
OVPNの契約手順を以下にに示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.ovpn.com/ OVPNの公式Webサイト]へアクセスして、料金プランを選択する。&lt;br /&gt;
# アカウントを作成する。&lt;br /&gt;
#: メールアドレスはオプションであり、ユーザ名とパスワードのみで登録できる。&lt;br /&gt;
#: 完全な匿名性を希望する場合は、使い捨てメールアドレスの使用を検討すること。&lt;br /&gt;
# 支払い方法を選択して、料金を支払う。&lt;br /&gt;
#: 支払い方法は、クレジットカード、PayPal、暗号通貨 (Bitcoin、Ethereum、Monero)、または現金郵送から選択できる。&lt;br /&gt;
#: 完全な匿名性を希望する場合は、Moneroまたは現金郵送が推奨される。&lt;br /&gt;
# [https://www.ovpn.com/en/download OVPNの公式Webサイト]にアクセスして、使用するOSに対応したOVPNクライアントをダウンロードする。&lt;br /&gt;
#: 対応OSは、Windows、MacOS、Linux (Ubuntu、Debian、Fedora、openSUSE)、Android、iOSである。&lt;br /&gt;
# OVPNクライアントをインストールおよび起動して、登録したユーザ名とパスワードでログインする。&lt;br /&gt;
# 接続するサーバを選択して、VPN接続を開始する。&lt;br /&gt;
#: マルチホップ接続を使用する場合は、入口サーバと出口サーバを個別に選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
10日間の返金保証が設けられており、不満がある場合はサポートに連絡することで返金を受けられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
OVPNは、VPN over Tor (Tor経由でVPNに接続する方式) を公式にはサポートしていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロキシサービスの提供もないため、他のVPNプロバイダが提供する公式なVPN over Tor接続機能は利用できない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;技術的には、OpenVPNの設定ファイルに以下に示すオプションを設定することにより、手動でTor経由のVPN接続を試みることは可能である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、この方法はOVPNの公式サポート対象外であり、動作の保証はない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # OpenVPN設定ファイルに追記する (非公式)&lt;br /&gt;
 socks-proxy 127.0.0.1 9050&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;この場合、Torクライアント (Torブラウザ または Torデーモン) を事前に起動しておく必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;なお、OpenVPNをTor経由で使用する場合は、TorはTCPのみをサポートするため、OpenVPNのプロトコルをTCPに設定する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法である。&amp;lt;br&amp;gt;&lt;br /&gt;
この方式では、OVPNが出口ノードとなり、その先にTorネットワークが続く構成になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OVPNは公式ドキュメントにTor over VPNの手順を明記していないが、VPN接続後にTorブラウザを起動する標準的な方法で実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# OVPNクライアントを起動して、任意のVPNサーバに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&lt;br /&gt;
#: Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この方式により、インターネットサービスプロバイダ (ISP) からはVPN接続のみが見え、Torを使用していることが隠蔽される。&amp;lt;br&amp;gt;&lt;br /&gt;
また、TorネットワークはVPN接続の先にあるため、OVPNのサーバからはTor経由のトラフィックとして見える。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Nord_VPN&amp;diff=14600</id>
		<title>VPN - Nord VPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Nord_VPN&amp;diff=14600"/>
		<updated>2026-03-24T17:19:03Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
NordVPNは、通信に関するログを取らないVPNサービスであり、ユーザが使用したローカルまたは割り当てられたIPアドレス、接続履歴、トラフィックログ、DNSクエリを保持しない。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、アカウント管理目的でメールアドレスおよび支払い情報は保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNの特徴を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ロケーション&lt;br /&gt;
*: NordVPNは、プライバシーの安全な場所であるパナマに本社を構えており、パナマには、EU、イギリス、オーストラリアのようなデータを保持する法律がない。&lt;br /&gt;
*: また、パナマは5つの目、9つの目、または14の目の国のメンバーではない。&lt;br /&gt;
* セキュリティ&lt;br /&gt;
*: NordVPNは、256ビットAESのデータ暗号化を提供している。&lt;br /&gt;
*: これは、優れたファイアウォールと保護されたサーバと一緒に、NordVPNの安全性を最高級に保護している。&lt;br /&gt;
* 通信速度&lt;br /&gt;
*: 以前、通信速度がNordVPNの弱点であったが、現在は最速のVPNサービスの1つになってきている。&lt;br /&gt;
*: また、P2PやTorrentの速度も非常に優れており、Netflixのようなコンテンツをアンロックすることも可能である。&lt;br /&gt;
* 契約&lt;br /&gt;
*: Eメール、支払い方法、パスワードのみで、アカウントを作成することができる。&lt;br /&gt;
*: つまり、ProtonMailのような匿名のメールサービスとBitcoinのような安全な支払い方法を用いることにより、NordVPNは完全な匿名性を求める人に提供できる可能性がある。&lt;br /&gt;
*: クレジットカードや銀行振込等、別の支払い方法を利用する場合は、個人の銀行情報を提供する必要がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
==== 記録しないデータ ====&lt;br /&gt;
NordVPNが記録しないとしているデータは、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザの実際のIPアドレス&lt;br /&gt;
* インターネットアクティビティログ (訪問したWebサイト、ダウンロード内容)&lt;br /&gt;
* トラフィックデータ (通信内容)&lt;br /&gt;
* DNS照会記録&lt;br /&gt;
* VPN接続ログ (接続先サーバ、接続時刻等)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このノーログポリシーは、Standard VPN、Double VPN、Onion Over VPN、難読化サーバ、P2Pサーバの全てのサーバタイプに適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 記録するデータ ====&lt;br /&gt;
一方、アカウント管理目的で以下のデータは保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
* メールアドレス&lt;br /&gt;
* 支払い情報&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、NordVPNは一切のデータを保持しないわけではなく、&amp;lt;u&amp;gt;通信に関するログを保持しない&amp;lt;/u&amp;gt; という意味でのノーログVPNである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的な裏付け - RAMオンリーサーバ ====&lt;br /&gt;
NordVPNは全サーバをRAMオンリー (ディスクレス) 構成に移行済みである。&amp;lt;br&amp;gt;&lt;br /&gt;
* メモリ (RAM) 上でのみデータを処理し、ハードディスクにはデータを保存しない&lt;br /&gt;
* サーバがシャットダウンまたは再起動された時点で、全てのデータが自動削除される&lt;br /&gt;
* 不正アクセスやハードウェア押収が発生した場合でも、データ抽出が不可能&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実施状況 ====&lt;br /&gt;
NordVPNのノーログポリシーは、以下の通り複数回の独立した第三者監査で検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー監査履歴&lt;br /&gt;
! 回 !! 年 !! 監査機関 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 第1回 || 2018年 || PricewaterhouseCoopers AG Switzerland (PwC) || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第2回 || 2020年 || PricewaterhouseCoopers AG Switzerland (PwC) || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第3回 || 2022年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第4回 || 2023年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第5回 || 2024年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第6回 || 2025年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2024年の第5回監査 (2024年11月18日〜12月20日) では、ISAE 3000基準に基づき、ユーザの活動をユーザ個人に関連付けることが不可能な状態であることが検証された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法的立場 ====&lt;br /&gt;
NordVPNはパナマに本社 (Nordvpn S.A.) を置いており、以下の法的優位性を持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
* パナマにはVPNプロバイダに対する強制的なデータ保持法が存在しない&lt;br /&gt;
* パナマは5 Eyes、9 Eyes、14 Eyesのいずれの国際情報共有同盟にも属していない&lt;br /&gt;
* 他国政府がNordVPNに対してデータ提供を強制するための法的メカニズムが制限されている&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、パナマの検察官から法的拘束力のある令状が発行された場合は、保持しているデータの開示に応じる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関へのデータ提出事例 ====&lt;br /&gt;
NordVPNが法執行機関にデータを提出した事例と、他社VPNの事例を以下に整理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2024年10月: パナマ検察からの令状 =====&lt;br /&gt;
NordVPNはパナマの検察官から法的拘束力のある令状を受け、ユーザデータの開示に応じた。&amp;lt;br&amp;gt;&lt;br /&gt;
* 提供されたデータは、支払い情報およびアカウント存在確認のみ&lt;br /&gt;
* トラフィックログ、接続ログ等は保持していないため提供不可能であった。&lt;br /&gt;
* この事例を契機に、Warrant CanaryからTransparency Report (透明性レポート) への移行を開始&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2024年1月〜4月の統計 =====&lt;br /&gt;
* 政府機関からの問い合わせ: 81件&lt;br /&gt;
* DMCA請求: 約242万件&lt;br /&gt;
* いずれもユーザ情報の開示には至らなかったと報告されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 他社VPNの事例との比較 =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 他社VPNのログ提出事例との比較&lt;br /&gt;
! プロバイダ !! 事例 !! 実態&lt;br /&gt;
|-&lt;br /&gt;
| PureVPN (2017年) || FBIにサイバーストーキング事件のログを提供 || ノーログと謳いながら詳細な接続ログを保持していた。&lt;br /&gt;
|-&lt;br /&gt;
| HideMyAss (2011年) || FBIにLulzSecハッカーの接続データを提供 || 同様にログを保持していた。&lt;br /&gt;
|-&lt;br /&gt;
| NordVPN (2024年) || パナマ検察に支払い情報のみ提供 || トラフィックログは実際に存在せず提供不可能であった。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNやHideMyAssは、ノーログを謳いながら実際には詳細なログを保持していたのに対し、&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNは第三者監査および実際の法的事例により、トラフィックログを保持していないことが裏付けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティインシデント ====&lt;br /&gt;
===== 2019年: サーバ侵害事件 =====&lt;br /&gt;
2018年3月、フィンランドのCreanova Datacenterから借用していた約3,000台中1台のサーバが侵害された。&amp;lt;br&amp;gt;&lt;br /&gt;
* 原因&lt;br /&gt;
*: データセンター側がIPMI (Intelligent Platform Management Interface) アカウントを未開示のまま放置していた。&lt;br /&gt;
* ユーザのパスワード、課金情報、VPNログの流出はなし&lt;br /&gt;
* 侵害の発見は2019年4月 (事件発生から約1年後)、公開は2019年10月 (発見からさらに6ヶ月後)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件を受けて、NordVPNは以下の改善策を実施した。&amp;lt;br&amp;gt;&lt;br /&gt;
* Creanovaとの契約を即座に解除&lt;br /&gt;
* 全サーバをRAMオンリー (ディスクレス) 構成に移行&lt;br /&gt;
* 自社管理コロケーションサーバの導入 (2020年10月〜)&lt;br /&gt;
* バグバウンティプログラムの開始 (2019年10月〜)&lt;br /&gt;
* VPN Trust Initiativeの創設メンバーとして参加&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 親会社に関する懸念 =====&lt;br /&gt;
NordVPNの親会社であるNord Security (リトアニア) は、Tesonetというスタートアップインキュベーターの傘下にある。&amp;lt;br&amp;gt;&lt;br /&gt;
* Tesonetはデータ収集企業Oxylabsも保有しており、利益相反の可能性が指摘されている。&lt;br /&gt;
* 企業構造の不透明さが批判されることがある。&lt;br /&gt;
* ただし、複数の独立監査によりユーザデータが外部と共有されていないことは検証されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
下表に、NordVPNのノーログポリシーに関する総合評価を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー総合評価&lt;br /&gt;
! 観点 !! 評価&lt;br /&gt;
|-&lt;br /&gt;
| ノーログの真正性 || 6回の独立監査で検証済み。&amp;lt;br&amp;gt;2024年の令状事例でも実際にログが存在しないことが裏付けられた。&lt;br /&gt;
|-&lt;br /&gt;
| 捜査機関への対応 || 法的令状には応じるが、提供可能データは支払い情報のみ&lt;br /&gt;
|-&lt;br /&gt;
| 他社VPNとの違い || PureVPN、HideMyAssはノーログを詐称していたが、NordVPNは監査で裏付けあり&lt;br /&gt;
|-&lt;br /&gt;
| 懸念事項 || 親会社Tesonetの企業構造の不透明さ、2019年侵害事件の公表遅延&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNの契約 ==&lt;br /&gt;
Nord VPNの契約方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# まず、Nord VPNの公式Webサイトへアクセスして、画面上にある[価格]を選択する。&lt;br /&gt;
# 価格画面からプランを選択する。&lt;br /&gt;
#: プランはスタンダード、プラス、コンプリートの3つのティアがあり、それぞれ1ヶ月、1年、2年の契約期間を選択できる。&lt;br /&gt;
#: 最もコストパフォーマンスが良いのは2年プランである。(3年プランは廃止されている)&lt;br /&gt;
#: プランを選択後、アカウントの作成と支払い方法の選択をする。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;NordVPNはパナマ所在の企業であるため、クレジットカード会社が海外購入として制限を掛け、否決される可能性がある。&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;PayPalまたは暗号通貨 (ビットコイン、イーサリアム、ライトコイン) での支払いを推奨する。&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、[消費税適用外]項目から[日本]を選択して、[続ける]ボタンを押下する。&lt;br /&gt;
# ここでは、PayPalで決済するため、[Pay with PayPal]を選択して支払いを進める。&amp;lt;br&amp;gt;支払いが完了すると、支払い受付画面に移動する。&lt;br /&gt;
# Nord VPNからE-mailが3通届くので、アカウントを有効化するために&amp;quot;NordVPN account activation&amp;quot;という件名のメールを開く。&lt;br /&gt;
# [Set Password and Activate Account]ボタンを押下すると、Nord VPNのWebサイトへ移動するので、パスワード設定とアカウントの有効化を行う。&amp;lt;br&amp;gt;ここで入力するパスワードは、VPN接続する時のパスワードとなる。&lt;br /&gt;
# パスワードを設定すると、自動的にNord VPNソフトウェアのダウンロードが開始される。&amp;lt;br&amp;gt;または、[https://nordvpn.com/ja/download/ Nord VPNの公式Webサイト]でも個別にダウンロードできる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNソフトウェアのインストール ==&lt;br /&gt;
===== RHEL =====&lt;br /&gt;
ターミナルを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo wget -qnc https://repo.nordvpn.com/yum/nordvpn/centos/noarch/Packages/n/nordvpn-release-1.0.0-1.noarch.rpm&lt;br /&gt;
 sudo dnf update&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install nordvpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自分のNord VPNアカウントにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn login&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect&lt;br /&gt;
 または&lt;br /&gt;
 nordvpn c&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== SUSE =====&lt;br /&gt;
ターミナルを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo rpm -v --import https://repo.nordvpn.com/gpg/nordvpn_public.asc&lt;br /&gt;
 sudo zypper install https://repo.nordvpn.com/yum/nordvpn/centos/noarch/Packages/n/nordvpn-release-1.0.0-1.noarch.rpm&lt;br /&gt;
 sudo zypper addrepo /etc/yum.repos.d/nordvpn.repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install nordvpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自分のNord VPNアカウントにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn login&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect&lt;br /&gt;
 または&lt;br /&gt;
 nordvpn c&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== LinuxにおけるNord VPNコマンド =====&lt;br /&gt;
 nordvpn login                  - ログイン&lt;br /&gt;
 nordvpn login --token [トークン] - トークンを使用してログイン (GUI無し環境用)&lt;br /&gt;
 nordvpn connect or nordvpn c   - VPNに接続する。特定のサーバに接続する場合は nordvpn connect &amp;lt;country_code server_number&amp;gt; (例: nordvpn connect uk715)&lt;br /&gt;
 nordvpn disconnect or nordvpn d - VPNから切断する&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn set or nordvpn s - 設定オプション:&lt;br /&gt;
 nordvpn set threatprotectionlite on or off - Threat Protection Lite (DNSフィルタリング・広告ブロック) の有効化/無効化 (旧: cybersec)&lt;br /&gt;
 nordvpn set killswitch on or off            - Kill Switchの有効化/無効化&lt;br /&gt;
 nordvpn set autoconnect on or off           - 自動接続の有効化/無効化。特定サーバの自動接続: nordvpn set autoconnect on us2435&lt;br /&gt;
 nordvpn set dns 1.1.1.1 1.0.0.1             - カスタムDNSの設定 (1つまたは2つ指定可能)&lt;br /&gt;
 nordvpn set technology nordlynx or openvpn   - VPNプロトコルの切り替え&lt;br /&gt;
 nordvpn set obfuscate on or off              - 難読化サーバの有効化/無効化&lt;br /&gt;
 nordvpn set firewall on or off               - ファイアウォールの有効化/無効化&lt;br /&gt;
 nordvpn set ipv6 on or off                   - IPv6サポートの有効化/無効化&lt;br /&gt;
 nordvpn set lan_discovery on or off          - LANデバイス検出の有効化/無効化&lt;br /&gt;
 nordvpn set post_quantum_vpn on or off       - ポスト量子暗号の有効化/無効化&lt;br /&gt;
 nordvpn set notify on or off                 - 通知の有効化/無効化&lt;br /&gt;
 nordvpn set tray on or off                   - システムトレイアイコンの有効化/無効化&lt;br /&gt;
 nordvpn set defaults                         - デフォルト設定にリセット&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn allowlist add port 22                          - ポート22をVPN例外リストに追加 (旧: whitelist)&lt;br /&gt;
 nordvpn allowlist add port 22 protocol TCP             - プロトコル指定でポートを追加&lt;br /&gt;
 nordvpn allowlist remove port 22                       - ポート22のルールを削除&lt;br /&gt;
 nordvpn allowlist add subnet 192.168.0.0/16            - サブネットをVPN例外リストに追加&lt;br /&gt;
 nordvpn allowlist remove subnet 192.168.0.0/16         - サブネットのルールを削除&lt;br /&gt;
 nordvpn allowlist remove all                           - VPN例外リストの全ルールを削除&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn settings  - 現在の設定を表示&lt;br /&gt;
 nordvpn status    - 接続状態を表示&lt;br /&gt;
 nordvpn account   - アカウント情報を表示&lt;br /&gt;
 nordvpn countries - 利用可能な国一覧を表示&lt;br /&gt;
 nordvpn cities    - 利用可能な都市一覧を表示&lt;br /&gt;
 nordvpn groups    - 利用可能なサーバグループ一覧を表示&lt;br /&gt;
 nordvpn version   - アプリケーションバージョンを表示&lt;br /&gt;
 nordvpn logout    - ログアウト&lt;br /&gt;
 nordvpn help or nordvpn h - コマンド一覧またはヘルプを表示&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;man nordvpn&amp;lt;/code&amp;gt;コマンドを使用して、コマンドの全リストを見ることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windows =====&lt;br /&gt;
Nord VPNソフトウェアのインストール手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
# 上記セクションでダウンロードしたNordVPNSetup.exeを実行する。&lt;br /&gt;
# インストール先を選択するダイアログが表示されるので、必要であればフォルダを変更して[Next]ボタンを押下する。&lt;br /&gt;
# [Install]ボタンを押下してインストールを始める。&lt;br /&gt;
# [Finish]ボタンを押下してインストールを完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアを起動手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
# Nord VPNソフトウェアの起動後、ログイン画面が表示されるので、Nord VPNで登録したメールアドレスとパスワードを入力して[Sign In]ボタンを押下する。&lt;br /&gt;
# ログインに成功すると、VPNサーバを選択する画面が表示される。&amp;lt;br&amp;gt;メイン画面下の[Quick connect]ボタンを押下すると、近距離にあるVPNサーバが選択される。(日本国内から接続すれば、日本のVPNサーバが選択される)&lt;br /&gt;
# 接続したい国があれば、世界地図の上から選択する事もできる。&amp;lt;br&amp;gt;例えば、ブラジルのVPNサーバに接続する場合、ブラジルを選択してから[Quick connect]ボタンを押下する。&amp;lt;br&amp;gt;あるいは、メイン画面左から接続したい国を選択して接続することもできる。&lt;br /&gt;
# 接続が成功すると、国のアイコンが緑色に変化する。また、接続状態も[UNCONECTED]から[PROTECTED]に変化して[Connected to Brazil]と表示される。&lt;br /&gt;
# 切断する場合は、[Disconnect]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network Managerを使用したNord VPNの接続 ==&lt;br /&gt;
# Nord VPNの公式Webサイトから、[https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip OpenVPN構成ファイルパッケージ]をダウンロードして解凍する。&lt;br /&gt;
# Network Managerの設定画面を起動する。(GNOMEの場合は、[VPNオフ]を選択後、ドロップダウンから[VPN設定]を選択する)&lt;br /&gt;
# 設定画面下にある[+]ボタンを押下する。(GNOMEの場合は、 [VPN]項目横にある[+]ボタンを押下する)&lt;br /&gt;
# 接続タイプは、[VPN接続をインポート...]を選択する。(GNOMEの場合は、[ファイルからインポート...]を選択する)&lt;br /&gt;
# 上記でダウンロードしたファイルから1つを選択して、[開く]ボタンを押下する。&lt;br /&gt;
# ポップアップウィンドウにNord VPNで取得したのユーザ名とパスワードを入力して、[追加]ボタンを押下する。&lt;br /&gt;
# 追加したNord VPNサービスの資格情報は、Nordアカウントダッシュボードで確認できる。右側のボタンを使用して認証情報をコピーします。&lt;br /&gt;
# 最後に、Network Managerの設定画面から、VPNオプションの下のスライダーを押下して、Nord VPNサーバに接続する。&amp;lt;br&amp;gt;VPN接続が開始されると、スライダーは緑色に変化する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNソフトウェアの設定 ==&lt;br /&gt;
Nord VPNソフトウェアのメイン画面右上にある歯車のアイコンを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定項目は、[General]、[Auto Connect]、[Advanced]がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== General =====&lt;br /&gt;
Nord VPNの[General]項目において、重要な項目は以下の2つである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Start NordVPN on startup&lt;br /&gt;
* Internet Kill Switch&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Start NordVPN on startup]項目は、初期設定で有効化されている。&amp;lt;br&amp;gt;&lt;br /&gt;
OS起動時にNordVPNを動作させるため、[オン]にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Internet Kill Switch]項目は、VPNを経由しない通信をすべて遮断する。匿名性を向上させるため、[オン]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
注意点として、Nord VPNに接続していない状態では、一切ネットワーク接続できなくなる点である。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNを切断してVPN非経由でインターネット接続する場合は、[Internet Kill Switch]項目を[オフ]に設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Auto Connect =====&lt;br /&gt;
Nord VPNの[Auto Connect]項目では、自動接続設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNクライアントを起動した際、自動的にVPN接続する場合は、[Connect when app starts]項目を[オン]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、外出先でWi-Fiに接続する可能性がある場合は、[Connect on insecure wireless]項目を[オン]に設定するとよい。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動接続する国を選択したい場合は、[Auto connect to]項目で選択して、更に細かく指定する場合は[Preferred region]項目で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
通常は、[Preferred region]項目は[Automatically pick best]に設定することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Double VPNで接続する ==&lt;br /&gt;
NordVPNのメリットの1つに、匿名性を高めるDouble VPNが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
Double VPNを利用するとVPNサーバを2つ経由する。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザが利用するISPには、1つ目のVPNサーバと通信している記録が残るが、最終的な接続先から見ると2つ目のVPNサーバから接続している記録が残る。&amp;lt;br&amp;gt;&lt;br /&gt;
そして1つ目と2つ目のVPNサーバ間は通信を中継しているだけであるため、VPNサーバ間の通信記録にユーザの情報は残らない。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため極めて高い匿名性が確保される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
極めて高い匿名性を提供するDouble VPNであるが、利用方法は簡単である。&amp;lt;br&amp;gt;&lt;br /&gt;
# Nord VPNのソフトウェアを起動する。&amp;lt;br&amp;gt;メイン画面左にある[Double VPN]を選択すると、自動的にDouble VPNで接続できる。&lt;br /&gt;
# 接続するVPNサーバを指定する場合は、[Double VPN]の右側にある[...]を選択する。&lt;br /&gt;
# [Double VPN]画面が開くので、[Country:]プルダウンと[Server:]プルダウンを選択する。&amp;lt;br&amp;gt;初期設定では、最適な国とサーバが自動的に選択される。&lt;br /&gt;
# [Country:]プルダウンでは1番目のサーバを選択して、[Server:]プルダウンでは2番目のサーバを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ISPからTorの使用を隠蔽でき、Torの入口ノードにユーザの実IPアドレスが公開されない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNにはOnion Over VPNという組み込み機能があり、Tor over VPNを自動的に実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
この機能を使用することにより、Torブラウザをインストールすることなく.onionサイトにアクセスすることが可能となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Onion Over VPN対応サーバの所在地はオランダおよびスイスであり、プロトコルはOpenVPNのみ対応している。(NordLynxは不可)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Onion Over VPN機能を使用する方法 ====&lt;br /&gt;
NordVPNアプリのOnion Over VPN機能を使用する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# NordVPNのソフトウェアを起動する。&lt;br /&gt;
# サーバーリスト内の[Specialty servers]を選択する。&lt;br /&gt;
# [Onion Over VPN]を選択して接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Onion Over VPN機能をLinux CLIから使用する方法 ====&lt;br /&gt;
以下に示すコマンドを実行することにより、Onion Over VPNに接続できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect onion_over_vpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 通常VPN接続にTorブラウザを組み合わせる方法 ====&lt;br /&gt;
Onion Over VPN機能を使用せず、NordVPNの任意のサーバに接続した後にTorブラウザを起動する方法でもTor over VPNを実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# NordVPNのソフトウェア または NetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&lt;br /&gt;
#: Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、ダブルエンクリプションと複数のサーバホップにより、インターネット速度が大幅に低下する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPN over Torとは、VPNサーバへの接続にTorネットワークを使用する構成である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPアドレスをVPNプロバイダに公開することなく、VPNに接続できる。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、NordVPNはVPN over Torを公式にはサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNおよびTor Projectともに一般ユーザへの使用は非推奨としており、設定誤りによるセキュリティリスクにも注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
技術的には、OpenVPN設定ファイルを手動編集することでVPN over Torを実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、速度の大幅な低下が発生するため、実用上の使用は困難を伴う場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 手動設定による接続手順 ====&lt;br /&gt;
&amp;lt;u&amp;gt;以下に示す手順は公式サポート対象外であり、設定誤りのリスクがある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、十分に理解した上で実施すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Torブラウザをインストールして起動して、Torネットワークへの接続を確立する。&lt;br /&gt;
# NordVPNの[https://nordvpn.com/ovpn/ OpenVPN設定ファイル]をダウンロードする。&lt;br /&gt;
# ダウンロードしたOpenVPN設定ファイル (.ovpn拡張子) ファイルをテキストエディタで開いて、以下に示す設定を追記する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/pre&amp;gt;&lt;br /&gt;
# 編集した設定ファイルを使用して、OpenVPNクライアントから接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_ExpressVPN&amp;diff=14599</id>
		<title>VPN - ExpressVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_ExpressVPN&amp;diff=14599"/>
		<updated>2026-03-24T16:55:49Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == ExpressVPNは、英領バージン諸島 (BVI) に登録されたVPNサービスプロバイダである。&amp;lt;br&amp;gt; 105カ国以上にサーバを展開しており、AES-256暗号化、独自プロトコルのLightway、TrustedServer技術を採用している。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Windows、MacOS、Linux、Android、iOS、ルーター等に対応しており、最大8台のデバイスを同時接続することができる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 2009年に設立され、2021…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
ExpressVPNは、英領バージン諸島 (BVI) に登録されたVPNサービスプロバイダである。&amp;lt;br&amp;gt;&lt;br /&gt;
105カ国以上にサーバを展開しており、AES-256暗号化、独自プロトコルのLightway、TrustedServer技術を採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linux、Android、iOS、ルーター等に対応しており、最大8台のデバイスを同時接続することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2009年に設立され、2021年にKape Technologiesが約9.36億ドルで買収した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ExpressVPNのメリットとデメリット&lt;br /&gt;
|-&lt;br /&gt;
! メリット !! デメリット&lt;br /&gt;
|-&lt;br /&gt;
| 高速通信と広いサーバネットワーク(105カ国以上) || 高価格帯 (競合他社と比較して割高)&lt;br /&gt;
|-&lt;br /&gt;
| 業界最多水準の第三者監査実績(19〜23件) || Kape Technologies買収による組織的信頼性への懸念&lt;br /&gt;
|-&lt;br /&gt;
| TrustedServer(RAMオンリー)技術によるデータ保護 || Project Raven問題 (元CIOの監視プログラム関与)&lt;br /&gt;
|-&lt;br /&gt;
| 30日間返金保証 ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、ExpressVPNの特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ExpressVPNの主な技術的特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| TrustedServer技術 || 全サーバがRAMのみで動作し、再起動時に全データが消去される仕組みである。&amp;lt;br&amp;gt;ディスクにデータが書き込まれないため、サーバが押収されてもユーザデータが残らない。&lt;br /&gt;
|-&lt;br /&gt;
| Lightwayプロトコル || ExpressVPNが独自開発したVPNプロトコルである。&amp;lt;br&amp;gt;wolfSSLをベースとした高速・軽量・安全な接続を実現している。&lt;br /&gt;
|-&lt;br /&gt;
| AES-256暗号化 || 軍事レベルの暗号化技術を採用している。&lt;br /&gt;
|-&lt;br /&gt;
| 幅広いデバイス対応 || Windows、MacOS、Linux、Android、iOS、ルーター等、主要なプラットフォームに対応している。&lt;br /&gt;
|-&lt;br /&gt;
| 第三者監査 || 業界最多水準の独立した監査を継続して受けている。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ExpressVPNの料金は、月額6.67ドルからである。(2026年時点、30日間返金保証付き)&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
ExpressVPNはノーログVPNを標榜しており、英領バージン諸島の法制度とTrustedServer技術を根拠として、データログを保存または共有していないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
ExpressVPNの公式プライバシーポリシーでは、以下のデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アクティビティログ&lt;br /&gt;
** ブラウジング履歴&lt;br /&gt;
** トラフィック宛先&lt;br /&gt;
** データ内容&lt;br /&gt;
** DNSクエリ&lt;br /&gt;
* コネクションログ&lt;br /&gt;
** ユーザのIPアドレス&lt;br /&gt;
** 発信VPN IPアドレス&lt;br /&gt;
** 接続タイムスタンプ&lt;br /&gt;
** セッション継続時間&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集されるデータは、アカウント管理に必要な最小限の情報 (メールアドレス、支払い情報) のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
TrustedServer技術により、全サーバがRAMのみで動作し、再起動時に全データが消去されるため、技術的にもログが残らない仕組みとなっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関への対応事例 ====&lt;br /&gt;
ExpressVPNのノーログポリシーは、実際の捜査機関との対応においても有効性が確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2017年トルコ・ロシア大使暗殺事件&lt;br /&gt;
*: 2016年12月、ロシア駐トルコ大使アンドレイ・カルロフが暗殺される事件が発生した。&lt;br /&gt;
*: 暗殺者がExpressVPNを使用していたとされ、トルコ当局がExpressVPNサーバを物理的に押収した。&lt;br /&gt;
*: 捜査官は指定IPアドレスを使用していたユーザの接続ログを求めたが、ExpressVPNは「接続ログを保持していない」と回答した。&lt;br /&gt;
*: トルコ当局はログが存在しないことを確認し、ノーログポリシーが物理的押収においても機能していることが実証された。&lt;br /&gt;
*: この事件以降、ExpressVPNはトルコ国内に物理サーバを設置せず、オランダのバーチャルサーバを提供している。&lt;br /&gt;
* 法執行機関からの要求と対応実績&lt;br /&gt;
*: 2024年: 333件の政府・法執行機関からの法的要求を受けたが、ユーザ関連データは一切提供しなかった。&lt;br /&gt;
*: 2025年上半期: 374件の正式な法執行機関要求を受けたが、一切のデータ提供を行わなかった。&lt;br /&gt;
*: 2024年のワラント (令状): 3件受領したが、データ開示なし。2025年上半期はワラント0件であった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者セキュリティ監査 ====&lt;br /&gt;
ExpressVPNは、業界最多水準の独立した第三者監査を継続して受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ExpressVPN 第三者セキュリティ監査実績&lt;br /&gt;
! 年月 !! 監査機関 !! 対象 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2019年6月 || PwC Switzerland || プライバシーポリシー、TrustedServer || ポリシー準拠を確認&lt;br /&gt;
|-&lt;br /&gt;
| 2022年 || KPMG || ノーログポリシー (第1次) || 問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年11月 || Cure53 || Aircoveルーター (第2次) || セキュリティ監査完了&lt;br /&gt;
|-&lt;br /&gt;
| 2025年2月 || KPMG || TrustedServer、ノーログポリシー (第2次) || 技術的保護に問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2025年6月 || KPMG || ノーログポリシー (第3次) || 合理的確証を提供&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Lightwayプロトコルに対するCure53の監査では、5件の低度な問題と4件の情報通知が確認されたが、重大・高度・中度の問題は検出されなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全ての監査はISAE (UK) 3000 Type 1に準拠している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、2025年にISO/IEC 27001、ISO 9001、ISO 18295-1 &amp;amp; 18295-2を取得している。&amp;lt;br&amp;gt;&lt;br /&gt;
業界で最も多くの独立監査を実施しており、その件数は19〜23件に及ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する情報 ====&lt;br /&gt;
ExpressVPNの拠点である英領バージン諸島 (BVI) は、VPNプロバイダにとってプライバシー上有利な管轄法域とされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* データ保持に関する法律がない。&lt;br /&gt;
* 5 Eyes、9 Eyes、14 Eyes監視協定のいずれにも加盟していない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらの条件により、政府からの強制的なデータ開示命令を受けるリスクが低い環境となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ExpressVPNの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2009年 || 英領バージン諸島で設立&lt;br /&gt;
|-&lt;br /&gt;
| 2019年12月 || Daniel GerickeをCIOとして採用&lt;br /&gt;
|-&lt;br /&gt;
| 2021年9月 || Kape Technologiesが約9.36億ドルで買収を発表&lt;br /&gt;
|-&lt;br /&gt;
| 2021年9月 || Daniel GerickeのUAE秘密監視プログラム「Project Raven」への関与が発覚。$335,000の罰金&lt;br /&gt;
|-&lt;br /&gt;
| 2023年7月 || Daniel GerickeがExpressVPNを離職&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Kape Technologies問題について、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* かつて、Crossriderとして知られており、2018年に名称変更した。&lt;br /&gt;
* カリフォルニア大学バークレー校とGoogleの共同研究 (2015年) において、広告注入ツールの主要関連企業として特定された。&lt;br /&gt;
* セキュリティコミュニティから、&amp;quot;マルウェア開発者がVPNを買収した&amp;quot;という懸念が提起された。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Daniel Gericke / Project Raven問題について、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* GerickeはUAE政府の秘密監視プログラム &amp;quot;Project Raven&amp;quot; に関与していた。&lt;br /&gt;
* 米国人、活動家、各国首脳のハッキングを含む作戦に参加していた。&lt;br /&gt;
* ゼロクリックエクスプロイトをKarmaというハッキングシステムに組み込んだ。&lt;br /&gt;
* $335,000の罰金を支払い、米国安全保障クリアランスを生涯剥奪された。&lt;br /&gt;
* ExpressVPNはGerickeの過去の「主要な事実」を事前に認識していたと主張している。&lt;br /&gt;
* 40人以上のExpressVPN従業員が内部で抗議した。&lt;br /&gt;
* Edward SnowdenがExpressVPNの使用中止を勧告した。&lt;br /&gt;
* Gerickeは2023年7月に離職した。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 最新動向 (2024年〜2026年) ====&lt;br /&gt;
* 2025年4月&lt;br /&gt;
*: Windows版アプリの脆弱性 (RDPトラフィックがVPNトンネルを迂回するバグ) が報告され、バージョン12.101.0.45で修正された。&lt;br /&gt;
* 透明性レポート&lt;br /&gt;
*: 半年ごとに発行を継続している。(2024年下半期: 333件の政府要求、2025年上半期: 374件)&lt;br /&gt;
* Bug Bountyプログラム&lt;br /&gt;
*: 2025年Q2は82件応募があり、5件が有効な脆弱性として確認された。&lt;br /&gt;
* ISO認証&lt;br /&gt;
*: ISO/IEC 27001、ISO 9001、ISO 18295-1 &amp;amp; 18295-2を取得した。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
ExpressVPNのノーログポリシーの技術的実装は、サーバ押収事件と複数の第三者監査によって裏付けられており、高い信頼性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一方、Kape Technologies買収やProject Raven問題により、組織としての信頼性には相当な懸念が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
Edward Snowden等信頼できるセキュリティ専門家がExpressVPNの利用を推奨していない点も留意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
技術は信頼できるが、組織への信頼は分かれているというのが現状の評価である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ExpressVPNの契約方法 ==&lt;br /&gt;
# [https://www.expressvpn.com ExpressVPNの公式Webサイト]にアクセスする。&lt;br /&gt;
# 1ヶ月、6ヶ月、12ヶ月のいずれかのプランを選択する。&lt;br /&gt;
# メールアドレスを入力して、アカウントを作成する。&lt;br /&gt;
# 支払い方法を選択する。&amp;lt;br&amp;gt;クレジットカード、PayPal、Bitcoin、その他の暗号通貨が使用できる。&lt;br /&gt;
# 支払い完了後、ソフトウェアをダウンロードしてインストールする。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この方式では、ユーザのトラフィックはまずExpressVPNサーバーを経由し、その後Torネットワークに入る。&amp;lt;br&amp;gt;&lt;br /&gt;
ISP (インターネットサービスプロバイダ) からはTorの使用が隠蔽され、Torの入口ノードからはユーザの実際のIPアドレスが隠蔽される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# ExpressVPNアプリを起動して、VPNサーバーに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tor over VPN方式のメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ISPからTorの使用を隠すことができる。&lt;br /&gt;
* Torの入口ノードにユーザの実際のIPアドレスが公開されない。&lt;br /&gt;
* 設定が簡単であり、特別な設定は不要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tor over VPN方式のデメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Torの出口ノードからはトラフィックが見える可能性がある。(HTTPS通信の場合は暗号化されている)&lt;br /&gt;
* VPNプロバイダ (ExpressVPN) は、ユーザの実際のIPアドレスを知ることができる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPNサーバへの接続にTorネットワークを使用する方式を、VPN over Tor、あるいは、VPN through Torと呼ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ExpressVPNは、VPN over Torの構成を公式にサポートしておらず、非推奨としている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ExpressVPNがVPN over Torを非推奨とする理由を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* Torの出口ノードの代わりにVPNプロバイダがトラフィックを見ることになるため、匿名性の向上がない。&lt;br /&gt;
* 信頼不要であるTorの設計に、VPNプロバイダという信頼要件を再導入してしまう。&lt;br /&gt;
* Torの速度低下というデメリットのみが残り、セキュリティ上のメリットがない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ExpressVPNでTorを利用する場合は、上記のTor over VPN方式を使用すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Surfshark&amp;diff=14598</id>
		<title>VPN - Surfshark</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Surfshark&amp;diff=14598"/>
		<updated>2026-03-24T16:06:22Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Surfsharkは、2018年にリトアニアで設立されたVPNサービスである。(現在の法人所在地はオランダ)&amp;lt;br&amp;gt; 運営会社はSurfshark B.V.であり、2022年にNord Security傘下に入りCyberspace B.V.として統合されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 100カ国以上に3,200以上のサーバを展開しており、AES-256-GCM暗号化、WireGuard / OpenVPN / IKEv2プロトコルに対応している。&amp;lt;br&amp;gt; デバイスの同時接続数…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Surfsharkは、2018年にリトアニアで設立されたVPNサービスである。(現在の法人所在地はオランダ)&amp;lt;br&amp;gt;&lt;br /&gt;
運営会社はSurfshark B.V.であり、2022年にNord Security傘下に入りCyberspace B.V.として統合されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
100カ国以上に3,200以上のサーバを展開しており、AES-256-GCM暗号化、WireGuard / OpenVPN / IKEv2プロトコルに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
デバイスの同時接続数が無制限であることも大きな特徴の1つである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応OSは、Windows、MacOS、Linux、Android、iOS、Amazon Fire TVである。&amp;lt;br&amp;gt;&lt;br /&gt;
料金は、月額1.99ドルからである。(2026年時点)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全サーバがRAM-only構成であり (2020年に完全移行)、Deloitte (Big Four) による独立監査でノーログポリシーが検証済みである。(2023年および2025年)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Surfsharkのメリットとデメリット&lt;br /&gt;
|-&lt;br /&gt;
! メリット !! デメリット&lt;br /&gt;
|-&lt;br /&gt;
| コストパフォーマンスが高い。 || 設立が比較的新しい。(2018年)&lt;br /&gt;
|-&lt;br /&gt;
| デバイス接続台数が無制限である。 || Nine Eyes加盟国(オランダ)に所在している。&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバを採用している。 || Nord Security傘下であり、独立性への懸念がある。&lt;br /&gt;
|-&lt;br /&gt;
| 第三者機関による監査が実施済みである。 || 一部のサーバでCAPTCHAが頻発するとの報告がある。&lt;br /&gt;
|-&lt;br /&gt;
| 100カ国以上にサーバが展開されている。 || 接続が不安定になるとの報告がある。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Surfsharkの主な特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ VPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシー || Deloitteによる第三者監査でノーログポリシーが検証されている。&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバ || 全3,200以上のサーバがRAM (揮発性メモリ) のみで動作する。&amp;lt;br&amp;gt;再起動時にデータが物理的に消去される。&lt;br /&gt;
|-&lt;br /&gt;
| 無制限デバイス接続 || 1つのアカウントで接続台数の制限なく使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| AES-256-GCM暗号化 || 米国政府および軍事機関でも採用されている最高レベルの暗号化技術を使用している。&lt;br /&gt;
|-&lt;br /&gt;
| MultiHop機能 || 2つのVPNサーバを経由する二重VPN接続が可能である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
SurfsharkはノーログVPNを標榜しており、RAM-onlyサーバおよびDeloitteによる第三者監査を根拠として、ユーザデータを記録・保存しないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
Surfsharkの公式プライバシーポリシーでは、以下に示すデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* IPアドレス (ユーザの本来のIPアドレス)&lt;br /&gt;
* 閲覧履歴およびDNSクエリ&lt;br /&gt;
* セッション情報 (接続時刻、切断時刻、セッション継続時間)&lt;br /&gt;
* 帯域幅使用量&lt;br /&gt;
* 通信プロトコルおよびポート番号&lt;br /&gt;
* 接続先サーバのIPアドレス&lt;br /&gt;
* ネットワークトラフィック&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集・保持されるデータは、以下に示す最小限の情報のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アカウント情報 (メールアドレス、暗号化されたパスワード)&lt;br /&gt;
* 課金および購入履歴&lt;br /&gt;
* 一時的な接続メタデータ (ユーザID、IPアドレス、接続タイムスタンプ) --&amp;gt; セッション終了後15分以内に自動削除&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、アカウントデータはサービス利用期間中および最後のログインから2年間保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実施状況 ====&lt;br /&gt;
Surfsharkは、透明性の確保とセキュリティの改善のために、定期的に第三者機関による独立した監査を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Surfshark セキュリティ監査実績&lt;br /&gt;
! 年月 !! 監査機関 !! 対象 !! 基準 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2023年 || Deloitte || ノーログポリシー || ISAE 3000 || 合格&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || Cure53 || サーバインフラ / ブラウザ拡張機能 || - || 深刻な問題なし&amp;lt;br&amp;gt;堅牢と評価&lt;br /&gt;
|-&lt;br /&gt;
| 2025年4月 || SecuRing || Webアプリ / デスクトップアプリ / モバイルアプリ / ブラウザプラグイン || - || 重大な脆弱性なし&lt;br /&gt;
|-&lt;br /&gt;
| 2025年6月 || Deloitte || ノーログポリシー (2回目) || ISAE 3000 || 合格&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全ての監査報告書はSurfsharkのTrust Centerで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関への対応事例 ====&lt;br /&gt;
Surfsharkのノーログポリシーに関する捜査機関への対応状況は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 令状カナリー (2025年12月15日時点)&lt;br /&gt;
*: 国家安全保障文書: 0件&lt;br /&gt;
*: 緘黙命令: 0件&lt;br /&gt;
*: 政府機関からの令状: 0件&lt;br /&gt;
* 2024年4月〜6月の政府機関からの問い合わせ&lt;br /&gt;
*: 政府機関から45件の問い合わせを受けたが、いずれもユーザデータの開示には至っていない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全期間を通じて、ユーザデータの捜査機関への提出事例はゼロである。&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログ + RAM-onlyの構成により、要求があっても提供できるデータが物理的に存在しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、2024年8月に令状カナリーページの更新で一時的に懸念が発生した。&amp;lt;br&amp;gt;&lt;br /&gt;
Surfsharkはシステム不具合と説明しており、その後、透明性レポート制度に移行している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
裁判所でノーログポリシーが正式に検証された事例は確認されていない。(監査による検証のみ)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的なプライバシー保護 ====&lt;br /&gt;
Surfsharkは、ユーザのプライバシーを保護するために、以下に示す技術的な仕組みを採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 技術的なセキュリティ対策&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| RAM-onlyサーバ || 全3,200以上のサーバがRAMのみで動作する。(2020年に完全移行)&amp;lt;br&amp;gt;電源オフまたは再起動時にデータが物理的に消去される。&amp;lt;br&amp;gt;2024年に全サーバを10Gbps速度にアップグレードしている。&lt;br /&gt;
|-&lt;br /&gt;
| プロトコルのカスタマイズ || WireGuardとOpenVPNをカスタマイズして、セッション後のファイル作成を排除している。&lt;br /&gt;
|-&lt;br /&gt;
| 暗号化 || AES-256-GCMを採用しており、米国政府および軍事機関でも採用されている暗号化技術である。&lt;br /&gt;
|-&lt;br /&gt;
| セッションキー || セッション中のみメモリに存在しており、セッション終了時に破棄される。&lt;br /&gt;
|-&lt;br /&gt;
| Port Shadow攻撃への耐性 || Port Shadow攻撃への耐性が確認済みである。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する考慮事項 ====&lt;br /&gt;
Surfshark B.V.はオランダに本社を置いている。(2021年にイギリス領バージン諸島から移転)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
オランダは9 Eyes情報共有同盟に所属しているが、オランダにはVPNプロバイダに対する強制的なデータ保持義務は存在しない。&amp;lt;br&amp;gt;&lt;br /&gt;
また、EU GDPRに準拠しており、&amp;lt;u&amp;gt;忘れられる権利&amp;lt;/u&amp;gt; が全ユーザに適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2022年にNord Security傘下に入りCyberspace B.V.として統合されている。&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPN (パナマ本社) と同じ親会社であるが、サービスは独立して運営されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord Security傘下入り後のデータ共有の証拠は報告されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログVPN 比較&lt;br /&gt;
! VPN !! ノーログ監査 !! 監査企業 !! サーバ構成 !! 設立年 !! 管轄法域 !! 評価傾向&lt;br /&gt;
|-&lt;br /&gt;
| Surfshark || あり (2回) || Deloitte, Cure53 || RAM-only || 2018年 || オランダ (9 Eyes) || コスパ優秀だが信頼度はやや低い&lt;br /&gt;
|-&lt;br /&gt;
| Mullvad || あり (複数回) || Cure53, X41 D-Sec, Assured Security等 || RAM-only || 2009年 || スウェーデン (14 Eyes) || 最高のプライバシー評価&lt;br /&gt;
|-&lt;br /&gt;
| ProtonVPN || あり || 複数実施 || 非RAM-only || 2014年 || スイス || 法的信頼度が高い&lt;br /&gt;
|-&lt;br /&gt;
| ExpressVPN || あり (限定的) || - || RAM-only || 2009年 || イギリス領バージン諸島 || サーバ数多だが透明度への批判あり&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
Surfsharkのノーログポリシーに関する留意点を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 15分以内に自動削除という実装&lt;br /&gt;
*: 完全なノーログではなく、接続メタデータについてはセッション終了後15分以内に自動削除される仕組みである。&lt;br /&gt;
*: 完全にゼロログの構成ではないことに注意する。&lt;br /&gt;
* 監査はスナップショットである。&lt;br /&gt;
*: 監査は特定時点の状態を評価したものであり、継続的な遵守を保証するものではない。&lt;br /&gt;
* 実地検証の事例がない。&lt;br /&gt;
*: 裁判等でノーログポリシーが公式に検証された事例はまだない。(Mullvadは2023年に家宅捜索で実証済み)&lt;br /&gt;
* 企業統治の透明性&lt;br /&gt;
*: Nord Security傘下の企業統治について、出資構造が完全に透明化されていない。&lt;br /&gt;
* 設立年が比較的新しい。&lt;br /&gt;
*: 2018年設立であり、Mullvad (2009年) や ProtonVPN (2014年) と比較して実績が浅い。&lt;br /&gt;
* CAPTCHAの問題&lt;br /&gt;
*: GoogleをはじめとするサービスがSurfsharkの一部サーバをブロックリストに含めており、CAPTCHA認証を頻繁に求められるとの報告がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Surfsharkの契約方法 ==&lt;br /&gt;
# [https://surfshark.com/pricing Surfsharkの公式Webサイト]にアクセスして、[Surfsharkを入手する]ボタンを押下する。&lt;br /&gt;
# プランを選択する。&lt;br /&gt;
#: 2026年時点で利用可能なプランは以下の通りである。&lt;br /&gt;
#* Surfshark Starter&lt;br /&gt;
#*: 基本的なVPN機能とAlternative ID機能を含むプランである。&lt;br /&gt;
#*: 2年契約で月額約1.99ドルから利用可能である。&lt;br /&gt;
#* Surfshark One&lt;br /&gt;
#*: VPN機能に加えて、複数のセキュリティツールを統合したサイバーセキュリティバンドルである。&lt;br /&gt;
#* Surfshark One+&lt;br /&gt;
#*: Incogni (データ削除ツール) を含む最上位のプランである。&lt;br /&gt;
# メールアドレスを入力して、パスワードを設定する。&amp;lt;br&amp;gt;または、GoogleアカウントもしくはAppleアカウントで連携することも可能である。&lt;br /&gt;
# 支払い方法を選択する。&lt;br /&gt;
#: 以下に示す支払い方法が利用可能である。&lt;br /&gt;
#* クレジットカード (VISA、MasterCard、American Express、DISCOVER)&lt;br /&gt;
#* PayPal&lt;br /&gt;
#* Google Pay / Apple Pay / Amazon Pay&lt;br /&gt;
#* 暗号通貨 (ビットコイン、イーサリアム、リップル)&lt;br /&gt;
# 支払いを完了すると、アカウントが即座に有効化される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全プラン共通で、デバイスの同時接続台数は無制限であり、30日間の返金保証が付与されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、返金を受けるには単なる解約だけでは不十分であり、必ずカスタマーサポート (ライブチャット推奨) へ返金リクエストを提出する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
App StoreやAmazon等の小売店経由で購入した場合は、返金窓口は購入元となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;JCBカードには対応していないため注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPN over Torとは、VPNサーバへの接続にTorネットワークを使用する構成である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPアドレスをVPNプロバイダに公開することなく、VPNに接続できる。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、SurfsharkはVPN over Torに対応していない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
SurfsharkはSOCKS5プロキシサービスを提供しておらず、OpenVPN設定ファイルを介したTor経由の接続も公式にはサポートしていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ISPからTorの使用を隠蔽でき、Torの入口ノードにユーザの実IPアドレスが公開されない。&amp;lt;br&amp;gt;&lt;br /&gt;
Surfsharkのソフトウェア または NetworkManager等でVPNに接続した後、Torブラウザを起動するだけで実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# SurfsharkのソフトウェアまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&lt;br /&gt;
#: Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、ダブルエンクリプションと複数のサーバホップにより、インターネット速度が大幅に低下する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SurfsharkにはMultiHop機能が搭載されており、2つのVPNサーバを経由する二重VPN接続も可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
MultiHopを使用することにより、Tor出口ノードへのルーティングに類似したプライバシー保護効果を得ることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PrivateVPN&amp;diff=14597</id>
		<title>VPN - PrivateVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PrivateVPN&amp;diff=14597"/>
		<updated>2026-03-24T15:30:04Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* VPN over Tor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PrivateVPNは、200以上のサーバからなる小規模なネットワークを運営しており、これらは63カ国以上に配置されている。&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、ラグフリーストリーミングのための高速な接続を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
256ビットAES暗号化、DNSリークからの保護、キルスイッチが用意されており、その厳格なノーログポリシーによって、ユーザのプライバシーを保護する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxにおいて、PrivateVPNの設定に問題がある場合、ライブチャットと電子メールサポートを利用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、無料のリモートヘルプとインストールも利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは、現在、Linux向けのCLIソフトウェアをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
高速で安定した接続と、地理的制限のあるコンテンツの確実なブロック解除が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxの他にも、Windows、MacOS、Android、iOS、Amazon Fire TV用のPrivateVPNソフトウェアが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、個別の無線ルータで動作するように手動で設定することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、PrivateVPNは2009年にMartin Muller氏によりスウェーデンで設立された。(運営会社: Privat Kommunikation Sverige AB)&amp;lt;br&amp;gt;&lt;br /&gt;
2022年6月にWebホスティング企業であるMiss Groupに買収されており、創業者は離任している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの長所&lt;br /&gt;
** セットアップガイドとカスタマーサポートでユーザフレンドリーである。&lt;br /&gt;
** ストリーミングとトレント用の高速サーバーが存在する。&lt;br /&gt;
** 人気のあるストリーミングプラットフォームの一貫したブロック解除ができる。&lt;br /&gt;
** 厳格なノーログポリシーによるオンラインの匿名性。&lt;br /&gt;
** 30日間返金保証。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの短所&lt;br /&gt;
** サーバのネットワークが小さい。(全部で200程度しかない)&lt;br /&gt;
** ライブチャットが24時間利用できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: スウェーデンに会社があり、スウェーデンの個人情報保護法では、政府によって押収されるようなトラフィックログを保存することはない。&lt;br /&gt;
* 無制限の帯域幅と速度&lt;br /&gt;
*: 他のVPNで見られるような、ビデオのバッファリング、低速なダウンロード、ルーティングホップによるタイムアウトは無い。&lt;br /&gt;
* 無料リモートヘルプとインストール&lt;br /&gt;
*: サービスに関する問題やヘルプが必要な場合、リモートサポートは無料で行うことができる。&lt;br /&gt;
* 10台同時接続&lt;br /&gt;
*: 最大10台のデバイスを同時に接続できるVPNであり、全て固有のIPアドレスで接続できる。&lt;br /&gt;
* ポートフォワード&lt;br /&gt;
*: Torrentに不可欠なオープンポートを少なくとも1つ提供している。&lt;br /&gt;
* AES-256による2048ビットの暗号化&lt;br /&gt;
*: 軍事でも使用されている最高レベルの暗号化技術を使用している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;PrivateVPNの料金は、月額2.00ドルからである。(2025年時点、30日間返金保証付き)&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
PrivateVPNはノーログVPNを標榜しており、スウェーデンの強力なプライバシー法を根拠として、データログを保存または共有する法的義務がないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
PrivateVPNの公式プライバシーポリシーでは、以下のデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウジング履歴およびトラフィック宛先&lt;br /&gt;
* 接続タイムスタンプ&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
* IPアドレス (割り当てIP、接続IP両方)&lt;br /&gt;
* データコンテンツ&lt;br /&gt;
* 帯域幅使用量&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集されるデータは、ログインメールアドレス、パスワード、支払い方法情報等のアカウント管理に必要な最小限の情報のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 過去の捜査機関へのデータ提供 ====&lt;br /&gt;
2025年時点の公開情報において、PrivateVPNが法執行機関にユーザデータを提供した具体的な事例、裁判記録、またはリークは確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは &amp;quot;ノーログポリシーを採用しているため、有事の場合でも提出できるデータが存在しない&amp;quot; という立場をとっている。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、この主張は第三者監査によって検証されていないことに注意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
PrivateVPNは、独立した外部監査を一度も受けていない。&amp;lt;br&amp;gt;&lt;br /&gt;
これは業界内での重大な弱点と見なされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
競合他社との比較として、NordVPNはDeloitteによる監査 (2024年)、IPVanishはSchellman Compliance LLCによる監査 (2025年) を受けており、&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログポリシーの検証において、PrivateVPNは遅れをとっている状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する懸念 ====&lt;br /&gt;
PrivateVPNの拠点であるスウェーデンは、14 Eyes監視協定に加盟している。&amp;lt;br&amp;gt;&lt;br /&gt;
14 Eyes構成国間では、情報機関が収集した情報を共有する枠組みが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、スウェーデンのプライバシー法により、ノーログポリシーを採用しているVPNプロバイダに対するデータ保持義務は課されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、ノーログポリシーが正しく実装されている場合、14 Eyesの影響は限定的であると考えられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2009年 || Martin Muller氏によりスウェーデンで設立 (運営会社: Privat Kommunikation Sverige AB)&lt;br /&gt;
|-&lt;br /&gt;
| 2022年6月 || Webホスティング企業のMiss Groupが買収。創業者Martin Muller氏は離任&lt;br /&gt;
|-&lt;br /&gt;
| 現在 || Miss Group傘下で運営。Miss GroupはPerwyn (プライベートエクイティ企業) が支援&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門家の評価 ====&lt;br /&gt;
2025年から2026年時点における専門家の評価は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの専門家評価&lt;br /&gt;
! 評価サイト !! スコア !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| VPNMentor || 9.2/10 (193中7位) || ストリーミング性能、価格を評価&lt;br /&gt;
|-&lt;br /&gt;
| Trustpilot || 4.9/5 || 高い顧客満足度&lt;br /&gt;
|-&lt;br /&gt;
| TechRadar || 非推奨 || 投資不足による遅れを指摘&lt;br /&gt;
|-&lt;br /&gt;
| TheBestVPN || 30中22位 || 非推奨&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な強みとして、価格競争力 (月額 $2.00から)、ストリーミング性能、基本的なプライバシー保護が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
一方、主な弱みとして、第三者監査の欠落、限定されたサーバネットワーク、Linuxアプリの未提供、スプリットトンネリングおよび二重VPN機能の未対応が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 契約手順 ==&lt;br /&gt;
# [https://privatevpn.com/prices/comparitech PrivateVPNの公式Webサイト]にアクセスする。&lt;br /&gt;
# 1ヶ月、3ヶ月、3年のいずれかのプランを選択する。&lt;br /&gt;
# E-mailアドレスおよびパスワードを入力してログイン、または、PrivateVPNのアカウントを作成する。&lt;br /&gt;
# 支払い方法を選択する。&amp;lt;br&amp;gt;クレジットカード、Paypal、Bitcoinが使用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
PrivateVPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                 # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm-openvpn                            # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ネットワークマネージャトンネルを使用する場合 (推奨) ==&lt;br /&gt;
まず、以下に示す2つのファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
* 証明書ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ca.crt&lt;br /&gt;
* 鍵ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ta.key&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[OpenVPN]を選択して、[Create]ボタンを押下する。&lt;br /&gt;
# 以下に示す情報を入力する。&amp;lt;br&amp;gt;もし、Linuxの起動時にVPNを自動的に接続する場合は、[自動的に接続する]を選択する。&lt;br /&gt;
#* 接続名&lt;br /&gt;
#*: PrivateVPN&lt;br /&gt;
#* ゲートウェイ&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#* タイプ&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* ユーザ名&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* パスワード&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
#* CA証明書&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [LZOデータ圧縮を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [仮想デバイスの種類を設定]チェックボックスにチェックを入力して、[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [セキュリティタブ]を選択する。&lt;br /&gt;
#*: [暗号]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC認証]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS認証]タブを選択する。&lt;br /&gt;
#*: [相手（サーバ）の証明書使用状況の署名を確認する]チェックボックスにチェックを入力して、プルダウンから[サーバ]を選択する。&lt;br /&gt;
#*: [追加のTLS認証を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [キーファイル]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction]プルダウンから[1]を選択する。&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[VPN接続] - [PrivateVPN]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストから[OpenVPN]を選択して[作成]ボタンを押下する。&lt;br /&gt;
# [新しい接続]画面が開くので、以下に示す情報を入力する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意でよい。&lt;br /&gt;
#*: 例. PrivateVPN&lt;br /&gt;
#* [ゲートウェイ]&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#*: 例. スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: パスワードを選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [Use Compression]チェックボックスにチェックを入力して、プルダウンから[LZO]を選択する。&lt;br /&gt;
#*: [Set virtual device type:]チェックボックスにチェックを入力して、プルダウンから[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [Security]タブを選択する。&lt;br /&gt;
#*: [Cipher:]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC Authentication:]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS Settings]タブを選択する。&lt;br /&gt;
#*: [Verify peer（server） certificate usage signature]チェックボックスにチェックを入力して、プルダウンから[Server]を選択する。&lt;br /&gt;
#*: [Mode:]プルダウンから[TLS-Auth]を選択する。&lt;br /&gt;
#*: [Key File:]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction:]プルダウンから[Client(1)]を選択する。&lt;br /&gt;
# [OK]ボタンを押下して、[OpenVPN Advanced Options]画面を閉じる。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。(この設定は不要の可能性あり)&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、PrivateVPNのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PrivateVPN CLIを使用する場合 ==&lt;br /&gt;
# [https://privatevpn.com/client/install.sh PrivateVPNの公式Webサイト]から、CLIソフトウェアのインストーラをダウンロードする。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;コマンド等を使用してダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://privatevpn.com/client/install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたインストーラに実行権限を付加する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod u+x install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# スーパーユーザ権限でインストーラを実行する。&amp;lt;br&amp;gt;スーパーユーザ権限で実行する理由は、OpenVPNの接続時において、トンネルインターフェイスを作成するためである。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo ./install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# /etc/openvpn/privatvpn.confファイルを編集して、接続先のVPNサーバを変更することができる。&amp;lt;br&amp;gt;サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuardの使用 ==&lt;br /&gt;
# WireGuardの接続に必要なツールをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install wireguard-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にアクセスして、ログインする。&lt;br /&gt;
# [https://privatevpn.com/control-panel PrivateVPNのコントロールパネル]にアクセスする。&lt;br /&gt;
# コントロールパネル画面左にある[WireGuard Config]から、使用するVPNサーバを選択するため、[Generate Config]ボタンを押下する。&lt;br /&gt;
# コントロールパネルにWireGuardの設定が生成および表示されるので、ダウンロードアイコンを押下する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# WireGuardを使用してVPNネットワークに接続する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick up &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 正常にVPNネットワークに接続しているかどうかを確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg show&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# VPNネットワークを切断する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick down &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNSリーク ==&lt;br /&gt;
IPv6を使用する場合、DNSリークを起こす可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、IPv6を無効にすることにより、DNSリークを起こさないようにすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、WebブラウザがChromium系ブラウザ(Vivaldiも含む)の場合、以下の設定を行ってもDNSリークが起きることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6を無効にする手順を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6を無効にするため、/etc/sysctl.confファイルに以下に示す設定を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo vi /etc/sysctl.d/00-ipv6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# /etc/sysctl.d/00-ipv6.confファイル&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.all.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.default.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.lo.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記の設定を反映する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo sysctl -p&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6が正常に無効化されたかどうかを確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;と表示される場合、IPv6は正常に無効化されている。&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat /proc/sys/net/ipv6/conf/all/disable_ipv6&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すURLにアクセスして、IPv6が無効化されているかどうかを確認する。&lt;br /&gt;
#: https://www.whatismyip.com/&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt;は、以下に示す場所から設定を読み込む。&amp;lt;br&amp;gt;&lt;br /&gt;
初期設定を無効化または上書きする場合は、/etc/sysctl.dディレクトリに同名のファイルを作成して配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
* /boot/sysctl.conf-&amp;lt;kernelversion&amp;gt;&lt;br /&gt;
* /lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/local/lib/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.d/*.conf&lt;br /&gt;
* /run/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torブラウザのプロキシ設定 ==&lt;br /&gt;
==== SOCKS5プロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: SOCKS 5&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 1080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== HTTP / HTTPSプロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: HTTP / HTTPS&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 8080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPNサーバへの接続にTorネットワークを使用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
これを、VPN over Tor、あるいは、VPN through Torと呼ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPをPrivateVPNに公開することなく、PrivateVPNに接続することを意味する。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、Torネットワークに接続する。&lt;br /&gt;
# Torブラウザで任意のWebサイトを開いて、Torブラウザのアドレスバーの左側にある鍵アイコンを選択する。&lt;br /&gt;
# &amp;quot;ガードノード(エントリーノード)&amp;quot;、&amp;quot;中間&amp;quot;、&amp;quot;出口ノード&amp;quot;を含むTorネットワークの現在の回線情報が表示される。&amp;lt;br&amp;gt;この時、ガードノード(エントリーノード)のIPアドレスをコピーする。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;最初のノードは、ガードノード(エントリーノード)と呼ばれており、これは頻繁に変更されない。&amp;lt;br&amp;gt;ただし、暫く時間が経って変更された場合、または、Torブラウザをアップデートした場合は、ガードノード(エントリーノード)のIPアドレスが変更されるため、&amp;lt;br&amp;gt;都度、OpenVPN設定ファイル内の値を変更する必要がある。&lt;br /&gt;
#  [https://privatevpn.com/client/PrivateVPN-TUN.zip PrivateVPNの公式Webサイト]にアクセスして、PrivateVPNのOpenVPN設定ファイルをダウンロードする。&amp;lt;br&amp;gt;ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;TorブラウザはTCPプロトコル(443番ポート)のみで動作するため、TCPディレクトリからPrivatVPN-&amp;lt;国名&amp;gt;-&amp;lt;都市名&amp;gt;-TUN-443.ovpnを使用する必要がある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 使用するOpenVPN設定ファイルを開いて、以下に示す内容を追記する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # Windowsの場合&lt;br /&gt;
 # tor options&lt;br /&gt;
 socks-proxy 127.0.0.1 9150&lt;br /&gt;
 route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 net_gateway&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # Linuxの場合&lt;br /&gt;
 # tor options&lt;br /&gt;
 socks-proxy 127.0.0.1 9150&lt;br /&gt;
 route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 &amp;lt;自宅のデフォルトゲートウェイのIPアドレス&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Torネットワーク経由でPrivateVPNのOpenVPNサーバに接続する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;上記で編集したOpenVPN設定ファイルをOpenVPNクライアントにインポートして接続する。&amp;lt;br&amp;gt;Torブラウザが起動していることを確認して、問題なく動作しているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PrivateVPN CLIまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentとの連携 ==&lt;br /&gt;
# まず、PrivateVPNサーバに接続する。&amp;lt;br&amp;gt;この時、[Port forwarding]項目に記載されているポート番号をコピーする。&lt;br /&gt;
# 次に、qBittorrentを起動して、[設定] - 画面左の[接続] - [受信接続に使用するポート]において、上記でコピーしたポート番号を入力する。&lt;br /&gt;
# 最後に、[ツール] - [設定] - [設定]画面左ペインにある[高度]を選択する。&amp;lt;br&amp;gt;[設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* PrivateVPNソフトウェアからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* NetworkManagerからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* PrivateVPNソフトウェアからWireGuardで接続している場合&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPNのログ ==&lt;br /&gt;
VPN接続に問題がある場合は、接続ログを送信することにより、問題を迅速に特定して、適切な解決策を得られる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Network Manager ====&lt;br /&gt;
# VPN接続のログを表示して、生成されたログをコピーする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog&amp;lt;/code&amp;gt;&lt;br /&gt;
#: または&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog &amp;gt; &amp;lt;任意のログファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/chat PrivateVPNの公式Webサイトにあるチャット]にアクセスして、チャットボックスから[Send us a message]ボタンを押下する。&lt;br /&gt;
# 上記で取得したVPN接続のログをチャットに貼り付けて、ユーザのEメールアドレスを入力する。&lt;br /&gt;
# [send]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Mullvad&amp;diff=14596</id>
		<title>VPN - Mullvad</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Mullvad&amp;diff=14596"/>
		<updated>2026-03-24T15:10:56Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Mullvadは、AirVPNと同様に、プライバシーと技術に非常に強い焦点を当てている、スウェーデンに拠点を置くログなしのVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
プライバシーと技術に非常に強い関心を寄せており、他のプラットフォームのユーザが利用できる完全なオープンソースのGUI Linux VPNクライアントを提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
(14日間の返金保証も付いている)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらの機能には、完全なDNS保護(IPv6サポート付き)、キルスイッチ、ポートフォワーディングが含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
Torを介したVPNは、手動設定によりサポートされている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DEB形式とRPM形式のインストールファイルは、Mullvadの公式Webサイトからダウンロードできる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ビルド手順を含むソースコードは、[https://github.com/mullvad/mullvadvpn-app MullvadのGitHub]から入手可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windows、MacOS、Linux、Android、iOSに対応しており、最大5台のデバイスを同時に接続することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadは、以下に示す特徴がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Mullvad VPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 匿名アカウント || 個人情報 (Eメールさえも) を求めず、現金や暗号通貨による匿名での支払いを推奨している。&lt;br /&gt;
|-&lt;br /&gt;
| ノーログ || ユーザのプライバシーを守るために、Mullvadはユーザの行動を記録しない。&amp;lt;br&amp;gt;Mullvadの長期的な目標は、支払いの詳細も保存しないことである。&lt;br /&gt;
|-&lt;br /&gt;
| 外部監査 || Mullvadは、透明性を提供し、セキュリティの慣行を改善するために、&amp;lt;br&amp;gt;Mullvadのソフトウェアとインフラストラクチャの独立した監査を要求する。&lt;br /&gt;
|-&lt;br /&gt;
| 安全な司法権 || スウェーデンに拠点を置くVPNプロバイダとして、&amp;lt;br&amp;gt;Mullvadに関連する法律は、Mullvadの場所とユーザのプライバシーにとって安全な場所となっている。&lt;br /&gt;
|-&lt;br /&gt;
| 内蔵キルスイッチ || Mullvadがオンの状態で接続に問題が発生した場合、&amp;lt;br&amp;gt;内蔵のキルスイッチが自動的に全てのネットワークトラフィックを停止する。&lt;br /&gt;
|-&lt;br /&gt;
| 有料レビューは存在しない || Mullvadは、有料レビューやアフィリエイトを排除している。&lt;br /&gt;
|-&lt;br /&gt;
| 自社サポートチーム || Mullvadは、ユーザの問題を外部に委託することはない。&amp;lt;br&amp;gt;専任のサポートチームが開発者とともに回答する。&lt;br /&gt;
|-&lt;br /&gt;
| アーリーアダプタ || VPNサービスの標準とされている多くの技術やセキュリティ機能を、常に先駆けて導入している。&lt;br /&gt;
|-&lt;br /&gt;
| 簡単設定 || 初めて使用するユーザでも安心して使用できるように、ソフトウェアの設定は簡単である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デメリットとしては、以下のことが挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
* サーバの種類が少ない。&lt;br /&gt;
* 無料トライアルが非常に限定的である。&lt;br /&gt;
* 競合他社に比べ少し高価である。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvadのノーログポリシーと信頼性 ==&lt;br /&gt;
==== ノーログポリシーの技術的実装 ====&lt;br /&gt;
Mullvadは、ユーザのプライバシーを保護するために、以下に示す技術的な仕組みを採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* RAMオンリーサーバー&lt;br /&gt;
*: 2024年9月に全サーバーで完全移行した。&lt;br /&gt;
*: 揮発性メモリのみで動作し、電源オフでデータが消滅する。&lt;br /&gt;
*: ディスクにデータが残らない仕組みである。&lt;br /&gt;
* 匿名アカウント制&lt;br /&gt;
*: 16桁のランダムなアカウント番号のみで利用できる。&lt;br /&gt;
*: メールアドレス、名前、パスワードは一切不要である。&lt;br /&gt;
* 匿名支払い対応&lt;br /&gt;
*: 現金 (10通貨対応)、Monero、Bitcoin、Bitcoin Cash等による匿名支払いが可能である。&lt;br /&gt;
*: 暗号通貨での支払いは10%割引が適用される。&lt;br /&gt;
* オープンソース&lt;br /&gt;
*: VPNクライアントソフトウェアはGPLv3ライセンスで全コードが公開されている (GitHub)。&lt;br /&gt;
*: バックドアやセキュリティ脆弱性がないことを誰でも検証できる。&lt;br /&gt;
* ワラント・カナリー&lt;br /&gt;
*: 定期的に更新されるページで、秘密の捜査令状が存在しないことを示唆する仕組みを採用している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者セキュリティ監査 ====&lt;br /&gt;
Mullvadは、透明性の確保とセキュリティの改善のために、定期的に第三者機関による独立した監査を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Mullvad セキュリティ監査実績&lt;br /&gt;
! 年月 !! 監査機関 !! 対象 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2020年 || Cure53 || インフラ || 問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2023年 || Cure53 || インフラ || 問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年6月 || Cure53 || インフラ (4回目) || ユーザの匿名性を損なう問題なし&lt;br /&gt;
|-&lt;br /&gt;
| 2024年10月-11月 || X41 D-Sec || 全プラットフォーム || 脆弱性6件 (重大なし)。良好なセキュリティレベルと評価&lt;br /&gt;
|-&lt;br /&gt;
| 2025年3月 || NCC Group || Androidアプリ || 修正不要で全基準クリア&lt;br /&gt;
|-&lt;br /&gt;
| 2025年8月 || Assured Security || Webアプリ || 重大・高度・中度の脆弱性なし。ノーログ再確認&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全ての監査報告書は、Mullvad公式Webサイトで公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関への対応事例 ====&lt;br /&gt;
Mullvadのノーログポリシーは、実際の捜査機関との対応においても有効性が確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2023年4月18日の家宅捜索&lt;br /&gt;
*: ドイツの恐喝事件に関連した国際司法共助要請を受けたスウェーデン警察国家作戦部門 (NOA) が、6名以上でゴーテンボルグのMullvadオフィスを家宅捜索した。&lt;br /&gt;
*: 目的は、顧客データを含むコンピュータの押収であった。&lt;br /&gt;
*: 結果として、警察は何も押収できなかった。&lt;br /&gt;
*: Mullvadがノーログの仕組みを実地で説明し、検事と協議の上、捜査官は手ぶらで帰った。&lt;br /&gt;
*: Mullvadの弁護士は、&amp;quot;見つかると期待する理由がないものを押収することはスウェーデン法に違反する&amp;quot; と主張した。&lt;br /&gt;
*: これは、創業14年間で初めての捜査令状であった。&lt;br /&gt;
* ユーザデータ提供実績&lt;br /&gt;
*: 2024年〜2026年を含む全期間を通じて、ユーザデータの捜査機関への提出事例はゼロである。&lt;br /&gt;
* Mullvadの公式方針&lt;br /&gt;
*: 政府がユーザを秘密裏に監視するよう強制することに成功した場合、その司法管轄区域でのサービス停止を宣言している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 最新動向 (2024年〜2026年) ====&lt;br /&gt;
* OpenVPN廃止&lt;br /&gt;
*: 2026年1月15日にOpenVPNサポートを完全廃止した。&lt;br /&gt;
*: 全ユーザをWireGuardに統一した。廃止時点で利用者の93%以上が既にWireGuardを使用していた。&lt;br /&gt;
* DAITA (Defense Against AI-guided Traffic Analysis)&lt;br /&gt;
*: AIによるトラフィック分析に対抗する防御機能である。&lt;br /&gt;
*: パケットサイズの統一、ダミートラフィックの挿入、トラフィックパターンの歪曲を行う。&lt;br /&gt;
*: 2025年3月にv2をリリースした。Windows、Linux、macOS、iOS、Androidに対応している。&lt;br /&gt;
* Mullvad Browser&lt;br /&gt;
*: Tor Projectとの共同開発ブラウザである。&lt;br /&gt;
*: Tor Browserのプライバシー強化技術を搭載しつつ、Tor Networkは使用しない。&lt;br /&gt;
*: VPN契約不要で無料利用可能であり、オープンソースである。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 留意点 ====&lt;br /&gt;
* スウェーデン会計法により、決済記録は会計年度終了から7年間の保持が義務付けられている。これはVPN活動ログではなく、あくまで会計上の記録である。&lt;br /&gt;
* 従来型の定期的な透明性レポートは未発行である。重大事件のみ公式ブログで公開されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvadの契約 ==&lt;br /&gt;
Mullvadの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://mullvad.net/ja/ Mullvadの公式Webサイト]へアクセスして、ページ右上にある[使用開始]を選択する。&lt;br /&gt;
# [Mullvadの使用開始手順]ページが開くので、アカウント番号を生成および取得する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;アカウント番号は、ユーザが大切に保管すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# クレジットカード、PayPal、ビットコイン等のいずれかを選択して、金額を支払う。&lt;br /&gt;
# [https://mullvad.net/ja/download/linux/ Mullvadの公式Webサイト]にアクセスして、Mullvadソフトウェアをダウンロードする。&amp;lt;br&amp;gt;Mullvadソフトウェアは、Windows、macOS、Linux、Android、iOSに対応している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadでは、1ヶ月5ユーロの料金である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvad GUIのインストール ==&lt;br /&gt;
==== Mullvad GUIの概要 ====&lt;br /&gt;
Systemdを搭載したLinux (x64) ディストリビューションの多くで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、Linuxカーネル 4.19以降が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GPGキーの署名 (RPMファイルから直接インストールする場合) ====&lt;br /&gt;
署名キーをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadの署名キーのフィンガープリントは、&amp;lt;code&amp;gt;A1198702FC3E0A09A9AE5B75D5A1D4F266DE8DDF&amp;lt;/code&amp;gt;であり、&amp;lt;br&amp;gt;&lt;br /&gt;
これは、キーサーバまたはMullvadの公式webサイトから直接ダウンロードすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
 wget https://mullvad.net/media/mullvad-code-signing.asc&lt;br /&gt;
 gpg --import mullvad-code-signing.asc&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
署名鍵の信頼設定&lt;br /&gt;
署名キーをダウンロードしたら、信頼レベルを&amp;lt;code&amp;gt;ultimate&amp;lt;/code&amp;gt;に設定して、署名キーにより署名された全ての鍵を自動的に検証できるようにする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この設定は省略可能であるが、省略する場合は、各ファイルの検証時にその鍵が信頼できる署名で認証されていないことを示す警告が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GnuPGを実行して、鍵の編集を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
 gpg --edit-key A1198702FC3E0A09A9AE5B75D5A1D4F266DE8DDF&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 gpg (GnuPG) 2.1.13; Copyright (C) 2016 Free Software Foundation, Inc.&lt;br /&gt;
 This is free software: you are free to change and redistribute it.&lt;br /&gt;
 There is NO WARRANTY, to the extent permitted by law.&lt;br /&gt;
 &lt;br /&gt;
 pub  rsa4096/D5A1D4F266DE8DDF&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: SC &lt;br /&gt;
      trust: unknown       validity: unknown&lt;br /&gt;
 sub  rsa4096/C187D22C089EF64E&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: E  &lt;br /&gt;
 sub  rsa4096/A26581F219C8314C&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: S  &lt;br /&gt;
 [ unknown] (1). Mullvad (code signing) &amp;lt;admin@mullvad.net&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
鍵の信頼設定を入力する。&amp;lt;br&amp;gt;&lt;br /&gt;
 gpg&amp;gt; trust&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 pub  rsa4096/D5A1D4F266DE8DDF&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: SC&lt;br /&gt;
      trust: unknown       validity: unknown&lt;br /&gt;
 sub  rsa4096/C187D22C089EF64E&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: E &lt;br /&gt;
 sub  rsa4096/A26581F219C8314C&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: S &lt;br /&gt;
 [ unknown] (1). Mullvad (code signing) &amp;lt;admin@mullvad.net&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Please decide how far you trust this user to correctly verify other users&#039; keys&lt;br /&gt;
 (by looking at passports, checking fingerprints from different sources, etc.)&lt;br /&gt;
 &lt;br /&gt;
   1 = I don&#039;t know or won&#039;t say&lt;br /&gt;
   2 = I do NOT trust&lt;br /&gt;
   3 = I trust marginally&lt;br /&gt;
   4 = I trust fully&lt;br /&gt;
   5 = I trust ultimately&lt;br /&gt;
   m = back to the main menu&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
信頼レベルを&amp;lt;code&amp;gt;Ultimate&amp;lt;/code&amp;gt;に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 Your decision? 5&lt;br /&gt;
 Do you really want to set this key to ultimate trust? (y/N) y&lt;br /&gt;
 &lt;br /&gt;
 # 出力例&lt;br /&gt;
 pub  rsa4096/D5A1D4F266DE8DDF      created: 2016-10-27  expires: never       usage: SC&lt;br /&gt;
      trust: ultimate      validity: unknown&lt;br /&gt;
 sub  rsa4096/C187D22C089EF64E&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: E &lt;br /&gt;
 sub  rsa4096/A26581F219C8314C&lt;br /&gt;
      created: 2016-10-27  expires: never       usage: S &lt;br /&gt;
 [ unknown] (1). Mullvad (code signing) &amp;lt;admin@mullvad.net&amp;gt;&lt;br /&gt;
 Please note that the shown key validity is not necessarily correct&lt;br /&gt;
 unless you restart the program.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GnuPGを終了する。&amp;lt;br&amp;gt;&lt;br /&gt;
 gpg&amp;gt; q&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Mullvadソフトウェアのインストール ====&lt;br /&gt;
===== RPMファイルから直接インストールする場合 =====&lt;br /&gt;
[https://mullvad.net/ja/download/linux/ Mullvadの公式Webサイト]から、Mullvad GUIをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install ./MullvadVPN-&amp;lt;バージョン&amp;gt;_x86_64.rpm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== RPMファイルを展開して手動でインストールする場合 (SUSE推奨) =====&lt;br /&gt;
[https://mullvad.net/ja/download/linux/ Mullvadの公式Webサイト]から、Mullvad GUIをダウンロードする。&lt;br /&gt;
ダウンロードしたRPMファイルを展開する。&lt;br /&gt;
 rpm2cpio MullvadVPN-&amp;lt;バージョン&amp;gt;_x86_64.rpm | cpio -id &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
展開したディレクトリを任意のインストールディレクトリに配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mv MullvadVPN-&amp;lt;バージョン&amp;gt;_x86_64 Mullvad_VPN&lt;br /&gt;
 mv Mullvad_VPN &amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadソフトウェアのmullvad-problem-report実行ファイルのシンボリックリンクを変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cd &amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;&lt;br /&gt;
 ln -sf /&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/opt/&#039;Mullvad VPN&#039;/resources/mullvad-problem-report \&lt;br /&gt;
        /&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/bin/mullvad-problem-report&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadソフトウェアのデーモンファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/systemd/system/mullvad-daemon.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # /etc/systemd/system/mullvad-daemon.serviceファイル&lt;br /&gt;
 &lt;br /&gt;
 # Systemd service unit file for the Mullvad VPN daemon&lt;br /&gt;
 # testing if new changes are added&lt;br /&gt;
 &lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Mullvad VPN daemon&lt;br /&gt;
 Before=network-online.target&lt;br /&gt;
 After=mullvad-early-boot-blocking.service NetworkManager.service systemd-resolved.service&lt;br /&gt;
 &lt;br /&gt;
 StartLimitBurst=5&lt;br /&gt;
 StartLimitIntervalSec=20&lt;br /&gt;
 RequiresMountsFor=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/opt/Mullvad\x20VPN/resources/&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Restart=always&lt;br /&gt;
 RestartSec=1&lt;br /&gt;
 ExecStart=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/bin/mullvad-daemon -v --disable-stdout-timestamps&lt;br /&gt;
 Environment=&amp;quot;MULLVAD_RESOURCE_DIR=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/opt/Mullvad VPN/resources/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/systemd/system/mullvad-early-boot-blocking.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # /etc/systemd/system/mullvad-early-boot-blocking.serviceファイル&lt;br /&gt;
 &lt;br /&gt;
 # Systemd service unit file to block all traffic during early boot.&lt;br /&gt;
 # This is required since almost no distributions use a `network-pre.target`,&lt;br /&gt;
 # which implies it&#039;s difficult to ensure that the daemon will start and block&lt;br /&gt;
 # traffic before any network configuration will be applied.&lt;br /&gt;
 #&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Mullvad early boot network blocker&lt;br /&gt;
 DefaultDependencies=no&lt;br /&gt;
 Before=basic.target mullvad-daemon.service&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=oneshot&lt;br /&gt;
 ExecStart=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/bin/mullvad-daemon --initialize-early-boot-firewall&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=mullvad-daemon.service&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デーモンファイルを再読み込みする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadソフトウェアのデスクトップエントリファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.local/share/applications/Mullvad_VPN.desktop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.local/share/applications/Mullvad_VPN.desktopファイル&lt;br /&gt;
 &lt;br /&gt;
 [Desktop Entry]&lt;br /&gt;
 Type=Application&lt;br /&gt;
 Name=Mullvad VPN&lt;br /&gt;
 Comment=Mullvad VPN client&lt;br /&gt;
 Exec=&amp;quot;/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/opt/Mullvad VPN/mullvad-vpn&amp;quot; %U&lt;br /&gt;
 Icon=/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/share/icons/hicolor/128x128/apps/mullvad-vpn.png&lt;br /&gt;
 Categories=Network;&lt;br /&gt;
 Keywords=internet;security;vpn;&lt;br /&gt;
 Terminal=false&lt;br /&gt;
 StartupWMClass=Mullvad VPN&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
~/.profileファイル等に、環境変数&amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;を追記する。&amp;lt;br&amp;gt;&lt;br /&gt;
 vi ~/.profile&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 # ~/.profileファイル&lt;br /&gt;
 &lt;br /&gt;
 export PATH=&amp;quot;/&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt;/usr/bin:$PATH&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadソフトウェアが正常に起動するかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
まず、Mullvadソフトウェアのデーモンを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl start mullvad-daemon.service&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、Mullvadソフトウェアを起動して、任意のMullvadのVPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Mullvadソフトウェアのアンインストール ====&lt;br /&gt;
===== RPMファイルから直接インストールしている場合 =====&lt;br /&gt;
Mullvad GUIをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper remove mullvad-vpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== RPMファイルを展開して手動でインストールしている場合 =====&lt;br /&gt;
Mullvadソフトウェアおよび設定ファイル等を削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo rm -r /etc/mullvad-vpn /etc/resolv.conf.mullvadbackup /etc/systemd/system/mullvad-daemon.service \&lt;br /&gt;
            /&amp;lt;Mullvadソフトウェアのインストールディレクトリ&amp;gt; \&lt;br /&gt;
            ~/.local/share/applications/Mullvad_VPN.deskop&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mullvad-daemonが起動しない場合 ====&lt;br /&gt;
まず、mullvad-daemonを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systemctl start mullvad-daemon&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
mullvad-daemonが起動しない場合、mullvad-daemonファイルに&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;オプションを付加して実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo /opt/&#039;Mullvad VPN&#039;/resources/mullvad-daemon -v&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== mullvad-daemon.serviceが見つからない場合 ====&lt;br /&gt;
これは、/optディレクトリを独自のパーティションにインストールした場合に発生する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この場合、/opt/Mullvad VPN/resources/mullvad-daemon.serviceファイルを、/etc/systemd/systemディレクトリにコピーする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # シンボリックリンクを削除する&lt;br /&gt;
 sudo rm /etc/systemd/systemmullvad-daemon.service&lt;br /&gt;
 &lt;br /&gt;
 # mullvad-daemon.serviceファイルをコピーする&lt;br /&gt;
 sudo cp /opt/&#039;Mullvad VPN&#039;/resources/mullvad-daemon.service /etc/systemd/system&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvadの使用手順 : NetworkManagerを使用する場合 ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Mullvadは2026年1月15日にOpenVPNサポートを廃止して、WireGuardに完全移行した。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す手順は、OpenVPN廃止以前の情報であり、現在はMullvadソフトウェアからWireGuardで接続することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvad(OpenVPN)を設定するには、以下の手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOME / KDE 共通&lt;br /&gt;
# [https://mullvad.net/account/#/openvpn-config/?platform=android Mullvadの公式Webサイト]にアクセスして、ログインする。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;プラットフォームは、&amp;quot;Android&amp;quot;を選択する必要があることに注意する。&amp;lt;/u&amp;gt;&lt;br /&gt;
# [OpenVPN 設定ファイルジェネレーター]ページが開くので、プラットフォーム、使用するサーバがある国名および都市名、ポートを選択する。&lt;br /&gt;
# [zipアーカイブをダウンロード]を選択して、OpenVPNファイルをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;unzip config.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルは、以下に示すファイルを含む。&amp;lt;br&amp;gt;接続先の国を変更する場合、再度、アカウントページで使用する場所を設定して、新しいOpenVPNの設定ファイルをダウンロードする必要がある。&lt;br /&gt;
#* mullvad_&amp;lt;接続先コード名&amp;gt;.ovpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&amp;lt;/pre&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&amp;lt;br&amp;gt;ここで、OpenVPNファイルの命名形式は、国-場所-サーバアドレスである。&amp;lt;br&amp;gt;例. UnitedStates.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#*: 例. &amp;lt;接続先コード名&amp;gt;.mullvad.net&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: Mullvadアカウント番号を（スペースなしで）入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;　と入力する。&lt;br /&gt;
#*: ［このユーザにのみパスワードを保存する(暗号化済み）]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.crt&amp;lt;/code&amp;gt;　とラベル付けされていることを確認する。&lt;br /&gt;
#* [ユーザ証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;client.crt&amp;lt;/code&amp;gt;　とラベル付けされていることを確認する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で追加したMullvadのOpenVPN設定が作成されて、MullvadのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&amp;lt;br&amp;gt;これは、[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&lt;br /&gt;
# IPアドレスが匿名かつプライベートなMullvadに変更されたことを確認する場合は、http://www.iplocation.net/ にアクセスする。&amp;lt;br&amp;gt;IPロケーションオンラインサービスにアクセスする前に、Webブラウザのキャッシュとクッキーを削除することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&amp;lt;/pre&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&amp;lt;br&amp;gt;例. mullvad_&amp;lt;接続先コード名&amp;gt;.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にMullvadのVPN接続が表示されるので、MullvadのVPN接続を選択する。&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#*: 例. &amp;lt;接続先コード名&amp;gt;.mullvad.net&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: Mullvadアカウント番号を（スペースなしで）入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;と入力する。&lt;br /&gt;
#*: ［このユーザにのみパスワードを保存する(暗号化済み）]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.crt&amp;lt;/code&amp;gt;とラベル付けされていることを確認する。&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、MullvadのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
もし、接続に問題がある場合、&amp;lt;u&amp;gt;/etc/NetworkManager/NetworkManager.conf&amp;lt;/u&amp;gt; ファイルを開いて、&amp;lt;code&amp;gt;dns=dnsmasq&amp;lt;/code&amp;gt;　の行をコメントする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/NetworkManager/NetworkManager.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/NetworkManager/NetworkManager.confファイル&lt;br /&gt;
 &lt;br /&gt;
 # 編集前&lt;br /&gt;
 dns=dnsmasq&lt;br /&gt;
 &lt;br /&gt;
 # 編集後&lt;br /&gt;
 #dns=dnsmasq&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Network Managerを再起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo systtemctl restart network-manager&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mullvadのコマンド ==&lt;br /&gt;
ターミナルを起動して、&amp;lt;code&amp;gt;mullvad&amp;lt;/code&amp;gt; コマンドを実行することにより、サブコマンドの全リストとその使用法が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvadの一般的なコマンドを、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Mullvadアカウントの指定 ====&lt;br /&gt;
また、&amp;lt;code&amp;gt;mullvad account&amp;lt;/code&amp;gt; コマンドを実行することにより、他のアカウント関連コマンドの一覧が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad account &amp;lt;Mullvadアカウント&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アカウント情報の表示 ====&lt;br /&gt;
ユーザのアカウント番号とアカウントの有効期限が表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad account get&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サーバロケーションの一覧表示 ====&lt;br /&gt;
利用可能な国および都市のリストを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad relay list&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続先の選択 ====&lt;br /&gt;
 mullvad relay set location &amp;lt;国名&amp;gt; &amp;lt;都市名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 例. スウェーデン（se）のマルメ市（mma）にあるサーバに接続&lt;br /&gt;
 mullvad relay set location se mma&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 特定のサーバの選択する ====&lt;br /&gt;
 mullvad relay set location &amp;lt;国名&amp;gt; &amp;lt;都市名&amp;gt; &amp;lt;都市のグループに所属するサーバ名&amp;gt;&lt;br /&gt;
 または&lt;br /&gt;
 mullvad relay set hostname &amp;lt;都市のグループに所属するサーバ名&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # 例.  スウェーデン（se）のマルメ市（mma）にあるse-mma-001サーバに接続&lt;br /&gt;
 mullvad relay set location se mma se-mma-001&lt;br /&gt;
 または&lt;br /&gt;
 mullvad relay set hostname se-mma-001&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPNに接続 ====&lt;br /&gt;
選択したサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPNの切断 ====&lt;br /&gt;
 mullvad disconnect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サーバリストの強制更新 ====&lt;br /&gt;
 mullvad relay update&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続状態の確認 ====&lt;br /&gt;
 mullvad status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PCの起動時に自動接続する ====&lt;br /&gt;
PCの起動時にMullvadを起動および接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad auto-connect set on&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動接続の設定を無効にする。&amp;lt;Br&amp;gt;&lt;br /&gt;
 mullvad auto-connect set off&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== LANアクセスを有効にする ====&lt;br /&gt;
 mullvad lan set allow&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 問題を報告する ====&lt;br /&gt;
まず、匿名化されたログファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvad社に送信する前に、ログファイルを見ることができるオプションがある。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad-problem-report collect --output report.log&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、ログファイルを送信する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad-problem-report send --report report.log --email your@email.address --message &amp;quot;Write a description of your problem.&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
任意ではあるが、問題の詳細を記入されることを強く推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、メールアドレスの記入は必要無いが、Mullvad社からの返信を希望する場合は、メールアドレスの記入が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スプリットトンネリング (Linuxのみ) ====&lt;br /&gt;
スプリットトンネリングは、一部のソフトウェアをVPNから除外して、通常のインターネット接続を使用するものである。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、例えば、VPNサービスをブロックしている一部のWebサイトにアクセスできるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* mullvad-excludeを使用する場合&lt;br /&gt;
*: Mullvadから除外された新しいプロセスを開始する場合、以下のコマンドを実行する。&lt;br /&gt;
*: &amp;lt;pre&amp;gt;mullvad-exclude &amp;lt;プログラム名&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* mullvad split-tunnelを使用する場合&lt;br /&gt;
*: これは、プログラムのPID(プロセスID)を使用して動作する。&lt;br /&gt;
*: 実行中のプログラムのPIDを調べる場合、&amp;lt;code&amp;gt;pgrep&amp;lt;/code&amp;gt; コマンドを実行する。&lt;br /&gt;
** 既に実行中のプロセスをMullvadから除外する。&lt;br /&gt;
**: &amp;lt;pre&amp;gt;mullvad split-tunnel pid add &amp;lt;PID&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** 現在除外されている全てのPIDの一覧を表示する。&lt;br /&gt;
**: &amp;lt;pre&amp;gt;mullvad split-tunnel pid list&amp;lt;/pre&amp;gt;&lt;br /&gt;
** 以前に除外したプロセスを復元する。&lt;br /&gt;
**: &amp;lt;pre&amp;gt;mullvad split-tunnel pid delete &amp;lt;PID&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** 以前に除外したプロセスを全て復元する。&lt;br /&gt;
**: &amp;lt;pre&amp;gt;mullvad split-tunnel pid clear&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 広告、トラッカー、マルウェアをブロックする ====&lt;br /&gt;
広告、トラッカー、マルウェアのDNSフィルタリングを有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ヘルプを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set default --help&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全てのフィルタを有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
いくつかのフィルターのみを有効にする場合、引数のいくつかを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set default --block-ads --block-malware --block-trackers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
フィルタリングをリセットする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set default&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムDNSサーバを使用する ====&lt;br /&gt;
カスタムDNSサーバを設定すると、広告、トラッカー、マルウェアのブロックが上書きできる。&amp;lt;br&amp;gt;&lt;br /&gt;
パブリックDNSサーバは、WireGuardプロトコルを使用している場合のみ使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムDNSサーバを設定するには、1.1.1.1(Cloudfrare)を使用するサーバIPに置き換える。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set custom 1.1.1.1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムDNSサーバの設定をリセットする。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad dns set default&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Mullvadの設定のリセット ====&lt;br /&gt;
これは、全ての設定を工場出荷時の状態に戻して、ソフトウェアのログとキャッシュファイルを削除する。そして、VPNを切断して、ログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
また、リセットする前に、確認画面が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
 mullvad factory-reset&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Mullvadは2026年1月15日にOpenVPNサポートを廃止した。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す手順はOpenVPN廃止以前の情報であり、現在は使用できない可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
他のソフトウェアがTorブラウザのプロキシ経由でインターネットに接続できるように連携する。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、&amp;lt;u&amp;gt;Tor経由でMullvadに接続するTor経由のVPN&amp;lt;/u&amp;gt;であり、Mullvadは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、MullvadのSOCKS5プロキシを使用するように設定されていないソフトウェアは、VPNやTorを全く使用せずに直接インターネットに接続される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# OpenVPNをインストールする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo zypper install openvpn&amp;lt;/pre&amp;gt;&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# TorブラウザのインストールディレクトリにあるTor/TorBrowser/Data/Tor/torrc-defaultsファイルを開いて、&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;CookieAuthentication 1&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;CookieAuthentication 0&amp;lt;/code&amp;gt; に編集する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 cd /&amp;lt;Torブラウザのインストールディレクトリ&amp;gt;/Tor/TorBrowser/Data/Tor&lt;br /&gt;
 &lt;br /&gt;
 vi torrc-defaults&lt;br /&gt;
 &lt;br /&gt;
 # 編集前&lt;br /&gt;
 CookieAuthentication 1&lt;br /&gt;
 &lt;br /&gt;
 # 編集後&lt;br /&gt;
 CookieAuthentication 0&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# MullvadのOpenVPN設定ファイルを[https://mullvad.net/account/#/openvpn-config/?platform=linux Mullvadの公式Webサイト]からダウンロードする。&amp;lt;br&amp;gt;この時、プラットフォームはLinux、ポートはTCP 443番を選択する。&amp;lt;br&amp;gt;これは、TorはTCPでのみ動作するためである。&lt;br /&gt;
# ダウンロードしたファイルを解凍して、OpenVPN設定ファイルに以下に示す内容を追記する。&amp;lt;br&amp;gt;この時、OpenVPN設定ファイルをmullvad_tor.confのような一意の名前に変更することを推奨する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;vi mullvad_XX.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 route-nopull&lt;br /&gt;
 route 10.8.0.1 255.255.255.255&lt;br /&gt;
 socks-proxy 127.0.0.1 9150&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# ダウンロードしたMullvadのOpenVPN設定ファイルにある &amp;lt;u&amp;gt;update-resolv-conf&amp;lt;/u&amp;gt; ファイルを、&amp;lt;u&amp;gt;/etc/openvpn&amp;lt;/u&amp;gt; ディレクトリにコピーする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo cp update-resolv-conf /etc/openvpn&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Torブラウザを起動する。&lt;br /&gt;
# 上記で編集したOpenVPN設定ファイルを使用して、OpenVPNを&amp;lt;u&amp;gt;コマンドから&amp;lt;/u&amp;gt;起動する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 sudo openvpn --config &amp;lt;OpenVPNの設定ファイル&amp;gt;&lt;br /&gt;
 # 例. &amp;lt;code&amp;gt;sudo openvpn --config mullvad_sg_sin_tor.conf&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://mullvad.net/guides/socks5-proxy/ SOCKS5のガイド]に従って、FireFoxのSocks5プロキシを設定する。&lt;br /&gt;
# &amp;lt;u&amp;gt;Firefox (Torブラウザではないことに注意する)&amp;lt;/u&amp;gt; から[https://mullvad.net/check Connection check]にアクセスして、自身のIPアドレスがMullvadのIPアドレスを示していることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VivaldiからVPN over Tor接続を行う場合の手順を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、この方法は、VPN over Tor接続を切断した後、ネットワークマネージャを再起動する手順が必要となることに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# まず、&amp;lt;code&amp;gt;resolvconf&amp;lt;/code&amp;gt; コマンドをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo zypper install openresolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、ダウンロードしたMullvadのOpenVPN設定ファイルにある&amp;lt;u&amp;gt;update-resolv-confファイル&amp;lt;/u&amp;gt;を編集する。&amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sed -e &amp;quot;s/\/sbin\/resolvconf/\/usr\/sbin\/resolvconf/g&amp;quot; update-resolv-conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;u&amp;gt;update-resolv-conf&amp;lt;/u&amp;gt; ファイルを &amp;lt;u&amp;gt;/etc/openvpn&amp;lt;/u&amp;gt; ディレクトリにコピーする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;sudo cp update-resolv-conf /etc/openvpn&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Vivaldiに拡張機能である[https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif?hl=ja Proxy SwitchyOmega]をインストールする。&lt;br /&gt;
# Proxy SwitchyOmegaのアイコンから[Options]を選択する。&lt;br /&gt;
# Proxy SwitchyOmegaの設定ページ左にある[proxy] - 設定ページ右にある[Proxy servers]から、以下に示す設定を行う。&lt;br /&gt;
#* [Protocol]プルダウン&lt;br /&gt;
#*: SOCKS5&lt;br /&gt;
#* [Server]&lt;br /&gt;
#*: 10.8.0.1&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 1080&lt;br /&gt;
# Proxy SwitchyOmegaの設定ページ左にある[Apply changes]を選択する。&lt;br /&gt;
# Proxy SwitchyOmegaのアイコンから[proxy]を選択する。&lt;br /&gt;
# [https://mullvad.net/check Connection check]にアクセスして、自身のIPアドレスがMullvadのIPアドレスを示していることを確認する。&lt;br /&gt;
# &amp;lt;u&amp;gt;VPN over Tor接続を切断した後、ネットワークマネージャを再起動する。&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MullvadソフトウェアまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentの使用 ==&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
Torrentプロトコルは、以下の手順でより安全に使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentクライアントの設定のみ記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、uTorrent、Vuze、BitComet等のクライアントは、オープンソースではなく、アドウェアやジャンクウェアが含まれていたり、優れたプライバシー設定が施されていないためである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardとOpenVPNを切り替えた場合、ネットワークインターフェイスを再バインドして、qBittorrentを再起動する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;また、SOCKS5を使用している場合は、WireGuardまたはOpenVPNの使用に応じて、IPアドレスを変更する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Mullvadアプリを起動して、VPNを接続する。&lt;br /&gt;
# qBittorrentを起動して、[ツール] - [設定] - [設定]画面左ペインにある[高度]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* OpenVPNを使用したMullvadソフトウェア (MullvadソフトウェアからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* OpenVPNスタンドアロン (NetworkManagerからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* WireGuardを使用したMullvadソフトウェア (MullvadソフトウェアからWireGuardで接続している場合)&lt;br /&gt;
#*: wg-mullvad&lt;br /&gt;
#* WireGuardユーザ空間を使用したMullvadソフトウェア&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* WireGuardスタンドアロン&lt;br /&gt;
#*: mlvd-xx&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mullvad GUIを使用している場合は、Mullvad GUIのメイン画面から[設定] - [詳細設定]から、[常にVPNを必要とする]を有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、誤って接続を解除した場合、インターネットを遮断することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== インターネットリークの確認 ====&lt;br /&gt;
[https://mullvad.net/ja/check/ Mullvadの接続確認ページ]にアクセスして、[Torrentチェック]タブを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
[UDP］および［HTTP］を選択して、インターネットリークのテストを開始する。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、Bittorrentクライアントにおいて、SOCKS5を使用している場合、このテストは機能しないことに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポートフォワーディング (ポート転送) ====&lt;br /&gt;
qBittorrentを起動して、[接続] - [受信接続に使用するポート]にポートを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、シードが向上する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、SOCKS5が有効な場合、この機能は無効になることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bittorrentクライアントへのポートフォワーディングの詳細を知りたい場合は、ポートフォワードガイドを参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== その他のエラー ====&lt;br /&gt;
qBittorrentにおいて、SOCKS5プロキシを有効にした場合、qBittorrentがオフラインと表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロトコルはポートフォワーディングをサポートしないため、トラッカーレスのTorrentを使用する場合は、DHTを有効にする必要があるかもしれない。&amp;lt;br&amp;gt;&lt;br /&gt;
そうでない場合は、SOCKS5プロキシを無効にする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Ivacy_VPN&amp;diff=14595</id>
		<title>VPN - Ivacy VPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Ivacy_VPN&amp;diff=14595"/>
		<updated>2026-03-24T14:47:22Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Ivacy VPNは、2007年にシンガポールの企業PMG Pte. Ltd.により創業されたVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
2010年にはVPN業界の定番となったスプリットトンネリングのような優れたセキュリティ機能を提供していた。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ivacy VPNは、100以上のロケーションに5700以上のサーバを提供しており、ユーザはセキュリティや匿名性を損なうことなく、オンライン上のあらゆるコンテンツにアクセスすることができた。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2024年8月、Ivacy VPNはPureVPNに買収・統合され、現在はIvacy Powered by PureVPNとして運営されている。&amp;lt;br&amp;gt;&lt;br /&gt;
これに伴い、Ivacy VPN単体での新規契約は終了しており、新規ユーザはPureVPNを通じて契約する形となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
既存のIvacyユーザはPureVPNの機能にアクセス可能であるが、ライフタイム購読を持つユーザは5年プランへの移行を求められている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、IvacyとPureVPNは、元々パキスタンの企業Gaditekが親会社であり、両社は以前から同じグループ企業として運営されていた。&amp;lt;br&amp;gt;&lt;br /&gt;
PMG Pte. Ltd.はシンガポール登記であるが、LinkedInに掲載されている従業員の大多数はパキスタン在住であり、実質的な運営拠点はパキスタンであるとの指摘がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Ivacy VPNの主な特徴&lt;br /&gt;
|-&lt;br /&gt;
! 特徴 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 256ビット暗号化 || 最大256ビットの暗号化を提供し、セキュリティの侵入を不可能にする。&amp;lt;br&amp;gt;インターネットトラフィックを暗号化し、サイバー犯罪者を寄せ付けないセキュリティプロトコルを楽しむことができる。&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシー || オンライン上のプライバシーを守るために、ログを残さないという明確なポリシーを持つ。&lt;br /&gt;
|-&lt;br /&gt;
| ISPスロッティングの回避 || ISPスロッティングを回避するため、IvacyはユーザのIPアドレスをマスクし、ISPスロットリングを回避する。&lt;br /&gt;
|-&lt;br /&gt;
| インターネットキルスイッチ || インターネットキルスイッチ機能は、接続が切断されたことを検出すると、直ちにインターネットを停止する。&amp;lt;br&amp;gt;これにより、常にプライベートな状態を保つことができる。&lt;br /&gt;
|-&lt;br /&gt;
| 専用IP || 専用IPでは、IPアドレスをホワイトリストに登録できる。&amp;lt;br&amp;gt;企業アカウントや一般的なオンラインアカウントへの不正アクセスを防止し、セキュリティを強化する。&lt;br /&gt;
|-&lt;br /&gt;
| スプリット・トンネリング || Ivacy VPNはスプリット・トンネリングのパイオニアである。&amp;lt;br&amp;gt;ローカルと海外のコンテンツに同時にアクセスできる。&amp;lt;br&amp;gt;ローカルLANを経由しながら、VPN経由でコンテンツにアクセスできる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
Ivacy VPNはゼロログポリシーを掲げており、オンライン上のプライバシーを守るために一切のログを残さないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、その信頼性には複数の懸念事項が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式のノーログポリシー ====&lt;br /&gt;
Ivacy VPNの公式プライバシーポリシーでは、以下に示すデータを記録しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* オンラインブラウジング活動&lt;br /&gt;
* 接続ログ&lt;br /&gt;
* 割り当てられたVPN IPアドレス&lt;br /&gt;
* 元のIPアドレス&lt;br /&gt;
* ブラウジング履歴&lt;br /&gt;
* 送受信トラフィック&lt;br /&gt;
* 接続時間&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 実際に収集されるデータ ====&lt;br /&gt;
一方、プライバシーポリシーでは以下に示すデータを収集すると明記されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 氏名、メールアドレス、支払い情報&lt;br /&gt;
* 接続元の国&lt;br /&gt;
* クラッシュレポートおよびパフォーマンスデータ (Firebase / Crashlytics経由)&lt;br /&gt;
* 合計帯域幅使用量&lt;br /&gt;
* ログイン失敗の試み&lt;br /&gt;
* Webサイトアクセスに関するGoogle Analyticsデータ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Firebase / Crashlyticsを経由したデータは米国に送信される可能性があり、Google Analyticsも米国法の対象となるため、&amp;lt;br&amp;gt;&lt;br /&gt;
完全なプライバシー保護とは言えない状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 独立監査の欠如 ====&lt;br /&gt;
Ivacy VPNは公式サイトで定期的に監査を受けていると主張しているが、公開された独立監査報告書は一切存在しない。&amp;lt;br&amp;gt;&lt;br /&gt;
複数のレビューサイトがIvacyに直接問い合わせたところ、監査の詳細や実施者の開示を拒否している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、競合VPNとの比較を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログ監査の比較&lt;br /&gt;
! VPNプロバイダ !! 独立監査 !! ワラントカナリー !! 透明性レポート&lt;br /&gt;
|-&lt;br /&gt;
| Ivacy VPN || なし || なし || なし&lt;br /&gt;
|-&lt;br /&gt;
| ExpressVPN || あり (KPMG) || なし || あり&lt;br /&gt;
|-&lt;br /&gt;
| Private Internet Access || あり (Deloitte) || なし || あり&lt;br /&gt;
|-&lt;br /&gt;
| Mullvad || あり || あり || あり&lt;br /&gt;
|-&lt;br /&gt;
| Proton VPN || あり || なし || あり&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、Ivacy VPNはIoXT (Internet of Secure Things) の認証を受けているが、これはAndroidアプリのセキュリティ基準の確認に限定されており、ノーログポリシーの検証ではない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2017年: PureVPNによるFBIへのログ提供事件 ====&lt;br /&gt;
Ivacy VPNの親会社グループであるPureVPNは、2017年にノーログポリシーに反してFBIにユーザログを提供した前科がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
事件の概要を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 2017年10月、米国マサチューセッツ州のRyan S. Linがサイバーストーキング罪で逮捕された。&lt;br /&gt;
* PureVPNは「ノーログポリシー」を掲げていたにもかかわらず、FBIの捜査に対してユーザのアクセスログを提供した。&lt;br /&gt;
* 具体的には、接続時刻、VPN接続元のIPアドレス、2つの異なる元IPアドレスから同一アカウントでアクセスされたことの確認情報が提出された。&lt;br /&gt;
* PureVPNは後に、&amp;quot;ユーザアクティビティはログしないが、IPアドレスは記録する&amp;quot; と弁明した。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IvacyとPureVPNは元々同じ親会社 (Gaditek) 傘下であり、同じサーバインフラを共有していたことが研究者により確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
2024年8月にIvacyがPureVPNに正式に買収・統合されたことで、PureVPNのデータ管理ポリシーがIvacyユーザにも適用される可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2023年: コード署名証明書の盗用事件 ====&lt;br /&gt;
2023年5月、Ivacy VPNの運営元であるPMG Pte. Ltd.のコード署名証明書が中国のAPTグループ Bronze Starlight により盗用されていることが判明した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 盗用された証明書は、東南アジアのギャンブル業界を標的としたマルウェア配布に使用された。&lt;br /&gt;
* SentinelLabsの分析によれば、PMG Pte. Ltd.の署名キーがどの時点かで盗まれたと推測されている。&lt;br /&gt;
* Ivacy VPNおよびPMG Pte. Ltd.は、この事件についていかなる公式声明も発表しておらず、証明書がどのように盗まれたかは不明のままである。&lt;br /&gt;
* 証明書はDigiCertにより無効化された。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件は、Ivacy VPNのセキュリティ管理能力そのものに疑問を投げかけるものである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 所有権の不透明性 ====&lt;br /&gt;
Ivacy VPNの企業構造には透明性の問題が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 公式にはシンガポールのPMG Pte. Ltd.が運営元と主張しているが、実質的にはパキスタンの企業Gaditek (またはDisrupt.com) が支配していた。&lt;br /&gt;
* GaditekはIvacy VPNとの関係をWebサイトから意図的に削除している。&lt;br /&gt;
* 2019年にIvacy VPNが公開した透明性ページは、架空のPRマネージャーとジャーナリストの対話を記載したものであり、セキュリティ専門家やレビューサイトから &amp;quot;明らかに虚構&amp;quot; と批判された。&lt;br /&gt;
* Ivacy VPNが複数のVPNレビューサイトを運営し、有利な評価と引き換えにライフタイム契約を提供していた疑惑も存在する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 5 Eyes同盟との関係 ====&lt;br /&gt;
Ivacy VPNの本社所在地であるシンガポールは、Five Eyes / Nine Eyes / Fourteen Eyes同盟の正式なメンバーではない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、スノーデンによるリーク文書により、シンガポールはFive Eyesとの実質的な情報共有協力を行っている第三者貢献国であることが示唆されている。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため、シンガポールの法的管轄権に基づく情報開示要求に対して、完全な独立性は期待できない可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
以上に示す調査結果から、Ivacy VPNのノーログポリシーの信頼性には重大な懸念がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 独立した第三者監査が一切公開されておらず、ノーログポリシーの検証が不可能である。&lt;br /&gt;
* 親会社グループのPureVPNが「ノーログ」を偽りFBIにログを提供した前科がある。&lt;br /&gt;
* 企業構造の不透明性と所有権の隠蔽が指摘されている。&lt;br /&gt;
* ワラントカナリーおよび透明性レポートが存在しない。&lt;br /&gt;
* コード署名証明書の盗用事件により、セキュリティ管理能力に疑問がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プライバシーを重視する場合は、独立監査済みかつ透明性の高い代替VPN (Mullvad、Proton VPN、ExpressVPN等) の検討を推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ivacy VPNの契約 ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;2024年8月のPureVPNとの統合により、Ivacy VPN単体での新規契約は終了している。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;そのため、新規ユーザはPureVPN (https://www.purevpn.com/) を通じて契約する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;以下に示す契約手順は、統合前の契約手順を参考として記載するものである。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ivacy VPNの契約手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.ivacy.com/ Ivacy VPNの公式Webサイト]へアクセスして、ページにある[GET STARTED]を選択する。&lt;br /&gt;
# [Select Ivacy&#039;s exclusive pricing plan]では、月間または年間のプランを選択する。&lt;br /&gt;
# [Create Your Account]では、Eメールアドレスを入力する。&lt;br /&gt;
# [Security Add-Ons]はオプションである。飛ばしても構わない。&lt;br /&gt;
# [Select Payment Method]では、支払い方法 (クレジットカード、PayPal、Bitpay等) を入力して、[PROCEED TO PAYMENT]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ivacy VPNの料金は、年間47.76ドル(更新時も同様)、5年60ドル、1ヶ月9.95ドルであった。(2023年7月時点)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、既存のIvacyユーザはPureVPNへの移行が行われており、ライフタイム購読を持つユーザは5年プランへの移行を求められている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ivacy VPNの設定 ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;2024年8月のPureVPNとの統合により、以下の設定手順やダウンロードURLが変更されている可能性がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;最新の設定方法はPureVPNの公式サイトを確認すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ivacy VPN (OpenVPN) を設定するには、以下に示す手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== NetworkManagerを使用する場合 ====&lt;br /&gt;
===== GNOMEの場合 =====&lt;br /&gt;
# [https://www.ivacy.com/ Ivacy VPNの公式Webサイト]にアクセスして、OpenVPN設定ファイルをダウンロードする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget https://ivacy.s3.amazonaws.com/support/OpenVPN-Configs-with-certificate.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;unrar OpenVPN-Configs-with-certificate.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[有線接続]プルダウンから[有線設定]を選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&lt;br /&gt;
#: OpenVPNファイルの命名形式は、国-&amp;lt;TCP&amp;gt;、または、国-OB-&amp;lt;UDP&amp;gt;である。&lt;br /&gt;
#: 例. SG_TCP.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: IvacyVPN OpenVPN&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: [https://support.ivacy.com/servers-list/ Ivacy VPNの公式Webサイト]を確認して、ゲートウェイを入力する。(例: de2-ovpn-udp.dns2use.com)&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: Ivacy VPNのログインユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: Ivacy VPNのログインパスワードを入力する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
# [VPNの追加]画面にある[IPv6]タブを選択して、[無効]ボタンを選択する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で選択したIvacy VPNのOpenVPN設定が作成されて、Ivacy VPNのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&amp;lt;br&amp;gt;これは、[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&lt;br /&gt;
# IPアドレスが匿名かつプライベートなIvacy VPNに変更されたことを確認する場合は、http://ipchicken.com にアクセスする。&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== KDEの場合 =====&lt;br /&gt;
# [https://support.ivacy.com/vpnusecases/openvpn-files-windows-routers-ios-linux-and-mac/ Ivacy VPNの公式Webサイト]にアクセスして、&amp;lt;br&amp;gt;OpenVPN設定ファイル (OpenVPN Files with Certificates) をダウンロードする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget https://ivacy.s3.amazonaws.com/support/OpenVPN-Configs-with-certificate.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;unrar OpenVPN-Configs-with-certificate.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install openvpn NetworkManager-openvpn plasma-nm-openvpn&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&amp;lt;br&amp;gt;例. SG_TCP.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にIvacy VPNのVPN接続が表示されるので、IvacyVPNと入力する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、以下に示す設定を行う。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: Ivacy VPNのログインユーザ名を入力する。&lt;br /&gt;
#*: &amp;lt;u&amp;gt;これは、登録したメールアドレスではなく、ivacy0s〇〇〇〇のような名前のユーザ名であることに注意する。&amp;lt;/u&amp;gt;&lt;br /&gt;
#*: &amp;lt;u&amp;gt;もし、ユーザ名が分からない場合は、[https://www.ivacy.com/ Ivacy VPNの公式Webサイト]にアクセスして、ライブチャット (画面右下に表示される) で問い合わせること。&amp;lt;/u&amp;gt;&lt;br /&gt;
#*: または、https://member.ivacy.com/manual-configration にアクセスして、各ファイルのダウンロード時に表示されるユーザ名を使用する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: Ivacy VPNのログインパスワードを入力する。&lt;br /&gt;
#*: これは、アカウント開設時のパスワードである。&lt;br /&gt;
#*: [このユーザーのみにパスワードを保存する]、または、[すべてのユーザーにパスワードを保存]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: Ivacy VPNのOpenVPNファイルをインポートした時に自動生成されるpemファイルを選択する。(OpenVPNファイルごとにpemファイルが生成されることに注意する)&lt;br /&gt;
#*: このファイルは、&amp;lt;u&amp;gt;~/.cert/nm-openvpn/&amp;lt;/u&amp;gt; ディレクトリに存在し、&amp;lt;u&amp;gt;&amp;lt;接続先ロケーション&amp;gt;_TCP-ca.pem&amp;lt;/u&amp;gt; という名前のファイルである。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [カスタムゲートウェイポートを使用する]をチェックする。&lt;br /&gt;
#*: TCPの場合は、80番、または、1194番を入力する。&lt;br /&gt;
#*: &amp;lt;u&amp;gt;ただし、1194番を入力する場合は、[VPN (openvpn)]タブの[ゲートウェイ]項目のサフィックスを&amp;quot;:1194&amp;quot;へ変更すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
#*: UDPの場合は、53番を入力する。&lt;br /&gt;
#*: &amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&lt;br /&gt;
#*: &amp;lt;u&amp;gt;TCP接続の場合は、[Use a TCP Connection......]を選択する。&amp;lt;/u&amp;gt;&lt;br /&gt;
#* [セキュリティ］タブを選択して、以下に示すオプションを選択する。&lt;br /&gt;
#*: [暗号]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC認証]プルダウンから[SHA-1]、または、[Default]を選択する。&lt;br /&gt;
#* [TLS認証]タブを選択する。&lt;br /&gt;
#*: [Verify peer (server) certificate usage signature]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [Remote peer certificate TLS type]プルダウンから[Server]を選択する。&lt;br /&gt;
#*: [Mode:]プルダウンから[TLS-Auth]を選択する。&lt;br /&gt;
#*: [キーファイル]には、OpenVPNファイルを追加した時に自動生成されるtls-auth.pemファイルを選択する。&lt;br /&gt;
#*: このファイルは、~/.cert/nm-openvpn/&amp;lt;接続先ロケーション&amp;gt;_TCP-tls-auth.pemファイルである。&lt;br /&gt;
#*: [Key Direction]プルダウンから[Client (1)]を選択する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、上記のセクションで作成したOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
# [VPN secrets (openvpn) dialog]ダイアログが表示されてパスワードの入力を促される場合は、再度、Ivacy VPNのパスワードを入力する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# IPアドレスが匿名かつプライベートなIvacy VPNに変更されたことを確認する場合は、http://ipchicken.com にアクセスする。&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenVPNコマンドを使用する場合 ====&lt;br /&gt;
# [https://support.ivacy.com/vpnusecases/openvpn-files-windows-routers-ios-linux-and-mac/ Ivacy VPNの公式Webサイト]にアクセスして、OpenVPN設定ファイルをダウンロードする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;wget https://ivacy.s3.amazonaws.com/support/OpenVPN-Configs.rar&amp;lt;/pre&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;解凍したディレクトリには、OpenVPNファイルと証明書ファイル(.crt拡張子)の2つがある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記で編集したOpenVPN設定ファイルを使用して、OpenVPNをコマンドから起動する。&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 cd &amp;lt;OpenVPNの設定ファイルがあるディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 sudo openvpn --config &amp;lt;OpenVPNの設定ファイルのパス&amp;gt;&lt;br /&gt;
 # または&lt;br /&gt;
 sudo openvpn --config &amp;lt;OpenVPNの設定ファイルのパス&amp;gt; --ca &amp;lt;証明書ファイルのパス&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;Ivacy VPNは、VPN over TORをサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [[VPN_-_Ivacy_VPN#Ivacy_VPNの設定|&amp;quot;Ivacy VPNの設定&amp;quot;]]セクションを参照して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentの使用 ==&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
Torrentプロトコルは、以下の手順でより安全に使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentクライアントの設定のみ記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、uTorrent、Vuze、BitComet等のクライアントは、オープンソースではなく、アドウェアやジャンクウェアが含まれていたり、優れたプライバシー設定が施されていないためである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardとOpenVPNを切り替えた場合、ネットワークインターフェイスを再バインドして、qBittorrentを再起動する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;また、SOCKS5を使用している場合は、WireGuardまたはOpenVPNの使用に応じて、IPアドレスを変更する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Ivacy VPNを接続する。&lt;br /&gt;
# qBittorrentを起動して、[ツール]メニューバー - [設定]メニューを選択する。&lt;br /&gt;
# [設定]画面左ペインにある[高度]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* OpenVPNを使用したIvacy VPNソフトウェア (Ivacy VPNソフトウェアからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* OpenVPNスタンドアロン (NetworkManagerからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* WireGuardを使用したIvacy VPNソフトウェア (Ivacy VPNソフトウェアからWireGuardで接続している場合)&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [バインドする任意のIPアドレス]プルダウンから、Ivacy VPNで接続しているIPアドレスを選択する。&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択してqBittorrentを終了して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポートフォワーディング (ポート転送) ====&lt;br /&gt;
qBittorrentを起動して、[接続] - [受信接続に使用するポート]にポートを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、シードが向上する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、SOCKS5が有効な場合、この機能は無効になることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bittorrentクライアントへのポートフォワーディングの詳細を知りたい場合は、ポートフォワードガイドを参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== その他のエラー ====&lt;br /&gt;
qBittorrentにおいて、SOCKS5プロキシを有効にした場合、qBittorrentがオフラインと表示される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SOCKS5プロトコルはポートフォワーディングをサポートしないため、トラッカーレスのTorrentを使用する場合は、DHTを有効にする必要があるかもしれない。&amp;lt;br&amp;gt;&lt;br /&gt;
そうでない場合は、SOCKS5プロキシを無効にする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Nord_VPN&amp;diff=14594</id>
		<title>VPN - Nord VPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Nord_VPN&amp;diff=14594"/>
		<updated>2026-03-24T14:24:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
NordVPNは、通信に関するログを取らないVPNサービスであり、ユーザが使用したローカルまたは割り当てられたIPアドレス、接続履歴、トラフィックログ、DNSクエリを保持しない。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、アカウント管理目的でメールアドレスおよび支払い情報は保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNの特徴を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ロケーション&lt;br /&gt;
*: NordVPNは、プライバシーの安全な場所であるパナマに本社を構えており、パナマには、EU、イギリス、オーストラリアのようなデータを保持する法律がない。&lt;br /&gt;
*: また、パナマは5つの目、9つの目、または14の目の国のメンバーではない。&lt;br /&gt;
* セキュリティ&lt;br /&gt;
*: NordVPNは、256ビットAESのデータ暗号化を提供している。&lt;br /&gt;
*: これは、優れたファイアウォールと保護されたサーバと一緒に、NordVPNの安全性を最高級に保護している。&lt;br /&gt;
* 通信速度&lt;br /&gt;
*: 以前、通信速度がNordVPNの弱点であったが、現在は最速のVPNサービスの1つになってきている。&lt;br /&gt;
*: また、P2PやTorrentの速度も非常に優れており、Netflixのようなコンテンツをアンロックすることも可能である。&lt;br /&gt;
* 契約&lt;br /&gt;
*: Eメール、支払い方法、パスワードのみで、アカウントを作成することができる。&lt;br /&gt;
*: つまり、ProtonMailのような匿名のメールサービスとBitcoinのような安全な支払い方法を用いることにより、NordVPNは完全な匿名性を求める人に提供できる可能性がある。&lt;br /&gt;
*: クレジットカードや銀行振込等、別の支払い方法を利用する場合は、個人の銀行情報を提供する必要がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
==== 記録しないデータ ====&lt;br /&gt;
NordVPNが記録しないとしているデータは、以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザの実際のIPアドレス&lt;br /&gt;
* インターネットアクティビティログ (訪問したWebサイト、ダウンロード内容)&lt;br /&gt;
* トラフィックデータ (通信内容)&lt;br /&gt;
* DNS照会記録&lt;br /&gt;
* VPN接続ログ (接続先サーバ、接続時刻等)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このノーログポリシーは、Standard VPN、Double VPN、Onion Over VPN、難読化サーバ、P2Pサーバの全てのサーバタイプに適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 記録するデータ ====&lt;br /&gt;
一方、アカウント管理目的で以下のデータは保持される。&amp;lt;br&amp;gt;&lt;br /&gt;
* メールアドレス&lt;br /&gt;
* 支払い情報&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、NordVPNは一切のデータを保持しないわけではなく、&amp;lt;u&amp;gt;通信に関するログを保持しない&amp;lt;/u&amp;gt; という意味でのノーログVPNである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 技術的な裏付け - RAMオンリーサーバ ====&lt;br /&gt;
NordVPNは全サーバをRAMオンリー (ディスクレス) 構成に移行済みである。&amp;lt;br&amp;gt;&lt;br /&gt;
* メモリ (RAM) 上でのみデータを処理し、ハードディスクにはデータを保存しない&lt;br /&gt;
* サーバがシャットダウンまたは再起動された時点で、全てのデータが自動削除される&lt;br /&gt;
* 不正アクセスやハードウェア押収が発生した場合でも、データ抽出が不可能&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実施状況 ====&lt;br /&gt;
NordVPNのノーログポリシーは、以下の通り複数回の独立した第三者監査で検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー監査履歴&lt;br /&gt;
! 回 !! 年 !! 監査機関 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 第1回 || 2018年 || PricewaterhouseCoopers AG Switzerland (PwC) || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第2回 || 2020年 || PricewaterhouseCoopers AG Switzerland (PwC) || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第3回 || 2022年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第4回 || 2023年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第5回 || 2024年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|-&lt;br /&gt;
| 第6回 || 2025年 || Deloitte Audit Lithuania || ノーログポリシーの遵守を確認&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2024年の第5回監査 (2024年11月18日〜12月20日) では、ISAE 3000基準に基づき、ユーザの活動をユーザ個人に関連付けることが不可能な状態であることが検証された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法的立場 ====&lt;br /&gt;
NordVPNはパナマに本社 (Nordvpn S.A.) を置いており、以下の法的優位性を持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
* パナマにはVPNプロバイダに対する強制的なデータ保持法が存在しない&lt;br /&gt;
* パナマは5 Eyes、9 Eyes、14 Eyesのいずれの国際情報共有同盟にも属していない&lt;br /&gt;
* 他国政府がNordVPNに対してデータ提供を強制するための法的メカニズムが制限されている&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、パナマの検察官から法的拘束力のある令状が発行された場合は、保持しているデータの開示に応じる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関へのデータ提出事例 ====&lt;br /&gt;
NordVPNが法執行機関にデータを提出した事例と、他社VPNの事例を以下に整理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2024年10月: パナマ検察からの令状 =====&lt;br /&gt;
NordVPNはパナマの検察官から法的拘束力のある令状を受け、ユーザデータの開示に応じた。&amp;lt;br&amp;gt;&lt;br /&gt;
* 提供されたデータは、支払い情報およびアカウント存在確認のみ&lt;br /&gt;
* トラフィックログ、接続ログ等は保持していないため提供不可能であった。&lt;br /&gt;
* この事例を契機に、Warrant CanaryからTransparency Report (透明性レポート) への移行を開始&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2024年1月〜4月の統計 =====&lt;br /&gt;
* 政府機関からの問い合わせ: 81件&lt;br /&gt;
* DMCA請求: 約242万件&lt;br /&gt;
* いずれもユーザ情報の開示には至らなかったと報告されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 他社VPNの事例との比較 =====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 他社VPNのログ提出事例との比較&lt;br /&gt;
! プロバイダ !! 事例 !! 実態&lt;br /&gt;
|-&lt;br /&gt;
| PureVPN (2017年) || FBIにサイバーストーキング事件のログを提供 || ノーログと謳いながら詳細な接続ログを保持していた。&lt;br /&gt;
|-&lt;br /&gt;
| HideMyAss (2011年) || FBIにLulzSecハッカーの接続データを提供 || 同様にログを保持していた。&lt;br /&gt;
|-&lt;br /&gt;
| NordVPN (2024年) || パナマ検察に支払い情報のみ提供 || トラフィックログは実際に存在せず提供不可能であった。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNやHideMyAssは、ノーログを謳いながら実際には詳細なログを保持していたのに対し、&amp;lt;br&amp;gt;&lt;br /&gt;
NordVPNは第三者監査および実際の法的事例により、トラフィックログを保持していないことが裏付けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティインシデント ====&lt;br /&gt;
===== 2019年: サーバ侵害事件 =====&lt;br /&gt;
2018年3月、フィンランドのCreanova Datacenterから借用していた約3,000台中1台のサーバが侵害された。&amp;lt;br&amp;gt;&lt;br /&gt;
* 原因&lt;br /&gt;
*: データセンター側がIPMI (Intelligent Platform Management Interface) アカウントを未開示のまま放置していた。&lt;br /&gt;
* ユーザのパスワード、課金情報、VPNログの流出はなし&lt;br /&gt;
* 侵害の発見は2019年4月 (事件発生から約1年後)、公開は2019年10月 (発見からさらに6ヶ月後)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件を受けて、NordVPNは以下の改善策を実施した。&amp;lt;br&amp;gt;&lt;br /&gt;
* Creanovaとの契約を即座に解除&lt;br /&gt;
* 全サーバをRAMオンリー (ディスクレス) 構成に移行&lt;br /&gt;
* 自社管理コロケーションサーバの導入 (2020年10月〜)&lt;br /&gt;
* バグバウンティプログラムの開始 (2019年10月〜)&lt;br /&gt;
* VPN Trust Initiativeの創設メンバーとして参加&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 親会社に関する懸念 =====&lt;br /&gt;
NordVPNの親会社であるNord Security (リトアニア) は、Tesonetというスタートアップインキュベーターの傘下にある。&amp;lt;br&amp;gt;&lt;br /&gt;
* Tesonetはデータ収集企業Oxylabsも保有しており、利益相反の可能性が指摘されている。&lt;br /&gt;
* 企業構造の不透明さが批判されることがある。&lt;br /&gt;
* ただし、複数の独立監査によりユーザデータが外部と共有されていないことは検証されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
下表に、NordVPNのノーログポリシーに関する総合評価を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー総合評価&lt;br /&gt;
! 観点 !! 評価&lt;br /&gt;
|-&lt;br /&gt;
| ノーログの真正性 || 6回の独立監査で検証済み。&amp;lt;br&amp;gt;2024年の令状事例でも実際にログが存在しないことが裏付けられた。&lt;br /&gt;
|-&lt;br /&gt;
| 捜査機関への対応 || 法的令状には応じるが、提供可能データは支払い情報のみ&lt;br /&gt;
|-&lt;br /&gt;
| 他社VPNとの違い || PureVPN、HideMyAssはノーログを詐称していたが、NordVPNは監査で裏付けあり&lt;br /&gt;
|-&lt;br /&gt;
| 懸念事項 || 親会社Tesonetの企業構造の不透明さ、2019年侵害事件の公表遅延&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNの契約 ==&lt;br /&gt;
Nord VPNの契約方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# まず、Nord VPNの公式Webサイトへアクセスして、画面上にある[価格]を選択する。&lt;br /&gt;
# 価格画面からプランを選択する。&lt;br /&gt;
#: プランはスタンダード、プラス、コンプリートの3つのティアがあり、それぞれ1ヶ月、1年、2年の契約期間を選択できる。&lt;br /&gt;
#: 最もコストパフォーマンスが良いのは2年プランである。(3年プランは廃止されている)&lt;br /&gt;
#: プランを選択後、アカウントの作成と支払い方法の選択をする。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;NordVPNはパナマ所在の企業であるため、クレジットカード会社が海外購入として制限を掛け、否決される可能性がある。&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;u&amp;gt;PayPalまたは暗号通貨 (ビットコイン、イーサリアム、ライトコイン) での支払いを推奨する。&amp;lt;/u&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、[消費税適用外]項目から[日本]を選択して、[続ける]ボタンを押下する。&lt;br /&gt;
# ここでは、PayPalで決済するため、[Pay with PayPal]を選択して支払いを進める。&amp;lt;br&amp;gt;支払いが完了すると、支払い受付画面に移動する。&lt;br /&gt;
# Nord VPNからE-mailが3通届くので、アカウントを有効化するために&amp;quot;NordVPN account activation&amp;quot;という件名のメールを開く。&lt;br /&gt;
# [Set Password and Activate Account]ボタンを押下すると、Nord VPNのWebサイトへ移動するので、パスワード設定とアカウントの有効化を行う。&amp;lt;br&amp;gt;ここで入力するパスワードは、VPN接続する時のパスワードとなる。&lt;br /&gt;
# パスワードを設定すると、自動的にNord VPNソフトウェアのダウンロードが開始される。&amp;lt;br&amp;gt;または、[https://nordvpn.com/ja/download/ Nord VPNの公式Webサイト]でも個別にダウンロードできる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNソフトウェアのインストール ==&lt;br /&gt;
===== RHEL =====&lt;br /&gt;
ターミナルを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo wget -qnc https://repo.nordvpn.com/yum/nordvpn/centos/noarch/Packages/n/nordvpn-release-1.0.0-1.noarch.rpm&lt;br /&gt;
 sudo dnf update&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo dnf install nordvpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自分のNord VPNアカウントにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn login&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect&lt;br /&gt;
 または&lt;br /&gt;
 nordvpn c&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== SUSE =====&lt;br /&gt;
ターミナルを起動して、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo rpm -v --import https://repo.nordvpn.com/gpg/nordvpn_public.asc&lt;br /&gt;
 sudo zypper install https://repo.nordvpn.com/yum/nordvpn/centos/noarch/Packages/n/nordvpn-release-1.0.0-1.noarch.rpm&lt;br /&gt;
 sudo zypper addrepo /etc/yum.repos.d/nordvpn.repo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアをインストールするため、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo zypper install nordvpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自分のNord VPNアカウントにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn login&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn connect&lt;br /&gt;
 または&lt;br /&gt;
 nordvpn c&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== LinuxにおけるNord VPNコマンド =====&lt;br /&gt;
 nordvpn login                  - ログイン&lt;br /&gt;
 nordvpn login --token [トークン] - トークンを使用してログイン (GUI無し環境用)&lt;br /&gt;
 nordvpn connect or nordvpn c   - VPNに接続する。特定のサーバに接続する場合は nordvpn connect &amp;lt;country_code server_number&amp;gt; (例: nordvpn connect uk715)&lt;br /&gt;
 nordvpn disconnect or nordvpn d - VPNから切断する&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn set or nordvpn s - 設定オプション:&lt;br /&gt;
 nordvpn set threatprotectionlite on or off - Threat Protection Lite (DNSフィルタリング・広告ブロック) の有効化/無効化 (旧: cybersec)&lt;br /&gt;
 nordvpn set killswitch on or off            - Kill Switchの有効化/無効化&lt;br /&gt;
 nordvpn set autoconnect on or off           - 自動接続の有効化/無効化。特定サーバの自動接続: nordvpn set autoconnect on us2435&lt;br /&gt;
 nordvpn set dns 1.1.1.1 1.0.0.1             - カスタムDNSの設定 (1つまたは2つ指定可能)&lt;br /&gt;
 nordvpn set technology nordlynx or openvpn   - VPNプロトコルの切り替え&lt;br /&gt;
 nordvpn set obfuscate on or off              - 難読化サーバの有効化/無効化&lt;br /&gt;
 nordvpn set firewall on or off               - ファイアウォールの有効化/無効化&lt;br /&gt;
 nordvpn set ipv6 on or off                   - IPv6サポートの有効化/無効化&lt;br /&gt;
 nordvpn set lan_discovery on or off          - LANデバイス検出の有効化/無効化&lt;br /&gt;
 nordvpn set post_quantum_vpn on or off       - ポスト量子暗号の有効化/無効化&lt;br /&gt;
 nordvpn set notify on or off                 - 通知の有効化/無効化&lt;br /&gt;
 nordvpn set tray on or off                   - システムトレイアイコンの有効化/無効化&lt;br /&gt;
 nordvpn set defaults                         - デフォルト設定にリセット&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn allowlist add port 22                          - ポート22をVPN例外リストに追加 (旧: whitelist)&lt;br /&gt;
 nordvpn allowlist add port 22 protocol TCP             - プロトコル指定でポートを追加&lt;br /&gt;
 nordvpn allowlist remove port 22                       - ポート22のルールを削除&lt;br /&gt;
 nordvpn allowlist add subnet 192.168.0.0/16            - サブネットをVPN例外リストに追加&lt;br /&gt;
 nordvpn allowlist remove subnet 192.168.0.0/16         - サブネットのルールを削除&lt;br /&gt;
 nordvpn allowlist remove all                           - VPN例外リストの全ルールを削除&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 nordvpn settings  - 現在の設定を表示&lt;br /&gt;
 nordvpn status    - 接続状態を表示&lt;br /&gt;
 nordvpn account   - アカウント情報を表示&lt;br /&gt;
 nordvpn countries - 利用可能な国一覧を表示&lt;br /&gt;
 nordvpn cities    - 利用可能な都市一覧を表示&lt;br /&gt;
 nordvpn groups    - 利用可能なサーバグループ一覧を表示&lt;br /&gt;
 nordvpn version   - アプリケーションバージョンを表示&lt;br /&gt;
 nordvpn logout    - ログアウト&lt;br /&gt;
 nordvpn help or nordvpn h - コマンド一覧またはヘルプを表示&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;man nordvpn&amp;lt;/code&amp;gt;コマンドを使用して、コマンドの全リストを見ることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Windows =====&lt;br /&gt;
Nord VPNソフトウェアのインストール手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
# 上記セクションでダウンロードしたNordVPNSetup.exeを実行する。&lt;br /&gt;
# インストール先を選択するダイアログが表示されるので、必要であればフォルダを変更して[Next]ボタンを押下する。&lt;br /&gt;
# [Install]ボタンを押下してインストールを始める。&lt;br /&gt;
# [Finish]ボタンを押下してインストールを完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nord VPNソフトウェアを起動手順を記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
# Nord VPNソフトウェアの起動後、ログイン画面が表示されるので、Nord VPNで登録したメールアドレスとパスワードを入力して[Sign In]ボタンを押下する。&lt;br /&gt;
# ログインに成功すると、VPNサーバを選択する画面が表示される。&amp;lt;br&amp;gt;メイン画面下の[Quick connect]ボタンを押下すると、近距離にあるVPNサーバが選択される。(日本国内から接続すれば、日本のVPNサーバが選択される)&lt;br /&gt;
# 接続したい国があれば、世界地図の上から選択する事もできる。&amp;lt;br&amp;gt;例えば、ブラジルのVPNサーバに接続する場合、ブラジルを選択してから[Quick connect]ボタンを押下する。&amp;lt;br&amp;gt;あるいは、メイン画面左から接続したい国を選択して接続することもできる。&lt;br /&gt;
# 接続が成功すると、国のアイコンが緑色に変化する。また、接続状態も[UNCONECTED]から[PROTECTED]に変化して[Connected to Brazil]と表示される。&lt;br /&gt;
# 切断する場合は、[Disconnect]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Network Managerを使用したNord VPNの接続 ==&lt;br /&gt;
# Nord VPNの公式Webサイトから、[https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip OpenVPN構成ファイルパッケージ]をダウンロードして解凍する。&lt;br /&gt;
# Network Managerの設定画面を起動する。(GNOMEの場合は、[VPNオフ]を選択後、ドロップダウンから[VPN設定]を選択する)&lt;br /&gt;
# 設定画面下にある[+]ボタンを押下する。(GNOMEの場合は、 [VPN]項目横にある[+]ボタンを押下する)&lt;br /&gt;
# 接続タイプは、[VPN接続をインポート...]を選択する。(GNOMEの場合は、[ファイルからインポート...]を選択する)&lt;br /&gt;
# 上記でダウンロードしたファイルから1つを選択して、[開く]ボタンを押下する。&lt;br /&gt;
# ポップアップウィンドウにNord VPNで取得したのユーザ名とパスワードを入力して、[追加]ボタンを押下する。&lt;br /&gt;
# 追加したNord VPNサービスの資格情報は、Nordアカウントダッシュボードで確認できる。右側のボタンを使用して認証情報をコピーします。&lt;br /&gt;
# 最後に、Network Managerの設定画面から、VPNオプションの下のスライダーを押下して、Nord VPNサーバに接続する。&amp;lt;br&amp;gt;VPN接続が開始されると、スライダーは緑色に変化する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nord VPNソフトウェアの設定 ==&lt;br /&gt;
Nord VPNソフトウェアのメイン画面右上にある歯車のアイコンを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定項目は、[General]、[Auto Connect]、[Advanced]がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== General =====&lt;br /&gt;
Nord VPNの[General]項目において、重要な項目は以下の2つである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Start NordVPN on startup&lt;br /&gt;
* Internet Kill Switch&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Start NordVPN on startup]項目は、初期設定で有効化されている。&amp;lt;br&amp;gt;&lt;br /&gt;
OS起動時にNordVPNを動作させるため、[オン]にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Internet Kill Switch]項目は、VPNを経由しない通信をすべて遮断する。匿名性を向上させるため、[オン]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
注意点として、Nord VPNに接続していない状態では、一切ネットワーク接続できなくなる点である。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNを切断してVPN非経由でインターネット接続する場合は、[Internet Kill Switch]項目を[オフ]に設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Auto Connect =====&lt;br /&gt;
Nord VPNの[Auto Connect]項目では、自動接続設定を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNクライアントを起動した際、自動的にVPN接続する場合は、[Connect when app starts]項目を[オン]に設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、外出先でWi-Fiに接続する可能性がある場合は、[Connect on insecure wireless]項目を[オン]に設定するとよい。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動接続する国を選択したい場合は、[Auto connect to]項目で選択して、更に細かく指定する場合は[Preferred region]項目で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
通常は、[Preferred region]項目は[Automatically pick best]に設定することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Double VPNで接続する ==&lt;br /&gt;
NordVPNのメリットの1つに、匿名性を高めるDouble VPNが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
Double VPNを利用するとVPNサーバを2つ経由する。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザが利用するISPには、1つ目のVPNサーバと通信している記録が残るが、最終的な接続先から見ると2つ目のVPNサーバから接続している記録が残る。&amp;lt;br&amp;gt;&lt;br /&gt;
そして1つ目と2つ目のVPNサーバ間は通信を中継しているだけであるため、VPNサーバ間の通信記録にユーザの情報は残らない。&amp;lt;br&amp;gt;&lt;br /&gt;
そのため極めて高い匿名性が確保される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
極めて高い匿名性を提供するDouble VPNであるが、利用方法は簡単である。&amp;lt;br&amp;gt;&lt;br /&gt;
# Nord VPNのソフトウェアを起動する。&amp;lt;br&amp;gt;メイン画面左にある[Double VPN]を選択すると、自動的にDouble VPNで接続できる。&lt;br /&gt;
# 接続するVPNサーバを指定する場合は、[Double VPN]の右側にある[...]を選択する。&lt;br /&gt;
# [Double VPN]画面が開くので、[Country:]プルダウンと[Server:]プルダウンを選択する。&amp;lt;br&amp;gt;初期設定では、最適な国とサーバが自動的に選択される。&lt;br /&gt;
# [Country:]プルダウンでは1番目のサーバを選択して、[Server:]プルダウンでは2番目のサーバを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_AirVPN&amp;diff=14593</id>
		<title>VPN - AirVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_AirVPN&amp;diff=14593"/>
		<updated>2026-03-24T14:00:02Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
AirVPNは、イタリアのペルージャを拠点とするプライバシー重視のVPNサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2010年にアクティビスト、ハッカー、弁護士からなるグループによって設立され、2012年に専用企業「Air」として法人化された。&amp;lt;br&amp;gt;&lt;br /&gt;
現在の代表はPaolo Briniが務めている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2026年3月現在、23カ国に514台以上のサーバを展開しており、OpenVPN および WireGuard (2024年よりデフォルト) に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
暗号化方式はAES-256-GCMおよびChaCha20-Poly1305を採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
クライアントソフトウェアであるEddieは、オープンソース (GPLv3ライセンス) として公開されており、VPN over Torに対応した数少ないVPNサービスの1つである。&amp;lt;br&amp;gt;&lt;br /&gt;
全てのサーバはRAMベースで動作しており、再起動時にデータが完全に削除される設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AirVPNのメリットは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* オープンソースのEddieクライアント (GPLv3)&lt;br /&gt;
*: クライアントのソースコードが公開されており、第三者によるコード監査が可能。&lt;br /&gt;
* VPN over Tor対応&lt;br /&gt;
*: Torネットワーク経由でVPNに接続することで、さらに高い匿名性を実現できる。&lt;br /&gt;
* RAMベースのサーバ設計&lt;br /&gt;
*: サーバ再起動時に全データが物理的に消去される。&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: 接続ログやIPアドレスを記録しない設計。&lt;br /&gt;
* ポートフォワーディング対応&lt;br /&gt;
*: P2P接続やリモートアクセス用途に使用できる。&lt;br /&gt;
* 暗号資産での支払いに対応&lt;br /&gt;
*: ビットコインその他の暗号資産で匿名支払いが可能。&lt;br /&gt;
* 検閲回避機能 (OpenVPN over SSH/SSL)&lt;br /&gt;
*: 深刻な検閲環境下でもVPN通信を偽装して接続できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AirVPNのデメリットは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14 Eyes同盟加盟国 (イタリア) に拠点&lt;br /&gt;
*: 情報共有の枠組みを持つ同盟加盟国に管轄されている。&lt;br /&gt;
* 独立した第三者監査が未実施&lt;br /&gt;
*: ノーログポリシーの技術的実装が外部から検証されていない。&lt;br /&gt;
* サーバ数が少ない (514台、大手は数千台以上)&lt;br /&gt;
*: 他の大手VPNサービスと比較してサーバ数が限られる。&lt;br /&gt;
* iOSの公式アプリが無い&lt;br /&gt;
*: iPhone / iPadユーザはOpenVPN Connectなどのサードパーティアプリを使用する必要がある。&lt;br /&gt;
* ライブチャットサポートが無い&lt;br /&gt;
*: サポートはフォーラムまたはチケット制のみとなる。&lt;br /&gt;
* ストリーミング対応が限定的&lt;br /&gt;
*: NetflixやDisney+などの地域制限コンテンツへのアクセスが保証されていない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 技術仕様 ==&lt;br /&gt;
==== 暗号化とプロトコル ====&lt;br /&gt;
AirVPNは、AES-256-GCM および ChaCha20-Poly1305による強力な暗号化を採用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
OpenVPNの仕様は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* TLS制御チャネルで強力な暗号化を実装している&lt;br /&gt;
* 対応TLS暗号スイート&lt;br /&gt;
*: TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256&lt;br /&gt;
*: TLS-DHE-RSA-WITH-AES-256-GCM-SHA384&lt;br /&gt;
* AES-128は非対応であり、デフォルトのOpenVPN設定よりも強力な暗号強度を維持している&lt;br /&gt;
* Diffie-Hellman鍵交換 (DHE) を採用し、4096ビットのDH/RSA鍵を使用している&lt;br /&gt;
* Perfect Forward Secrecy (PFS) を実装しており、60分ごとに鍵を再生成 (rekeying) する&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuardの仕様は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 2021年10月にベータ版として導入された。&lt;br /&gt;
* 2024年2月にデフォルトプロトコルへ昇格した。&lt;br /&gt;
* ChaCha20-Poly1305による高速かつ強力な暗号化を提供する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== サーバ構成 ====&lt;br /&gt;
AirVPNのサーバ構成の詳細は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ AirVPNのサーバ構成&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 詳細&lt;br /&gt;
|-&lt;br /&gt;
| 展開規模 || 23カ国に514台以上のサーバ(2026年3月現在)&lt;br /&gt;
|-&lt;br /&gt;
| RAMベース設計 || 全サーバがRAM上でのみ動作し、再起動時に全データが物理的に消去される。&lt;br /&gt;
|-&lt;br /&gt;
| サーバ形態 || 物理サーバのみを使用し、仮想サーバは使用しない。&lt;br /&gt;
|-&lt;br /&gt;
| 接続ポート || 53, 80, 443, 1194, 2018等に対応&lt;br /&gt;
|-&lt;br /&gt;
| プロトコル || OpenVPN TCP/UDPの両方に対応&lt;br /&gt;
|-&lt;br /&gt;
| 追加トンネル層 || SSL、SSHによる追加カプセル化に対応 (検閲回避機能)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Eddieクライアントの機能 ====&lt;br /&gt;
下表に、Eddieクライアントが提供する主な機能を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 機能名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Network Lock (キルスイッチ) || VPN接続が確立されていない場合、デバイスのインターネット通信を完全にブロックする。&amp;lt;br&amp;gt;意図しないIPアドレスの漏洩を防止する。&lt;br /&gt;
|-&lt;br /&gt;
| DNS保護 || AirVPNが管理するDNSサーバにリクエストを送信する。&amp;lt;br&amp;gt;第三者のDNSサーバは関与しない。&lt;br /&gt;
|-&lt;br /&gt;
| DNS漏洩検出 || システムが正しくDNSサーバをクエリしているかを確認し、DNS漏洩が発生していないことを検証する。&lt;br /&gt;
|-&lt;br /&gt;
| スプリットトンネリング || 特定のアプリケーションまたはドメインをVPN経由ではなく直接接続するよう設定できる。&lt;br /&gt;
|-&lt;br /&gt;
| ポートフォワーディング || P2P接続やリモートアクセスのためにポートを開放する設定が可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Eddieクライアントの対応プラットフォームは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* デスクトップ&lt;br /&gt;
*: Windows、MacOS、Linux&lt;br /&gt;
*: 最新バージョン&lt;br /&gt;
*: 2.24.6 (2025年1月)&lt;br /&gt;
* モバイル&lt;br /&gt;
*: Android 5.1以上&lt;br /&gt;
*: 最新バージョン: 3.3.0&lt;br /&gt;
* iOS&lt;br /&gt;
*: 公式アプリなし&lt;br /&gt;
*: OpenVPN Connectなどのサードパーティアプリを使用する必要がある&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AirVPNのノーログポリシーと信頼性 ==&lt;br /&gt;
==== ノーログポリシーの内容 ====&lt;br /&gt;
AirVPNが記録しないデータは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* VPN接続ログ&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* VPN IPアドレス&lt;br /&gt;
* 閲覧履歴&lt;br /&gt;
* トラフィック宛先&lt;br /&gt;
* データ内容&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
技術的な設計の詳細は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 接続に必要な技術データはRAMのみに一時保存され、接続終了時に自動削除される。&lt;br /&gt;
* マスストレージデバイス (SSD、HDD等) への記録は一切行わない。&lt;br /&gt;
* サーバ再起動時に全データが物理的に削除される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
独立監査については、現時点では未実施である。&amp;lt;br&amp;gt;&lt;br /&gt;
第三者による検証がなく、ノーログポリシーの技術的実装は外部から確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ワラントカナリアについては非公開となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザからの導入要望はあるが、2026年3月現在も未実装である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関へのデータ提供事例 ====&lt;br /&gt;
下表に、AirVPNに関連する捜査機関によるデータ提供の事例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 年 !! 事件 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2015年 || トロント警察サーバ押収 || 押収されたサーバからデータ回収なし。&amp;lt;br&amp;gt;ただし顧客への通知が大幅に遅延し、関連フォーラムスレッドが後に削除された。&lt;br /&gt;
|-&lt;br /&gt;
| 2020年 || FBIペンレジスター事件 || United States v. Klyushin事件で、FBIがAirVPNサーバにペンレジスター (接続記録装置) を設置した。&amp;lt;br&amp;gt;法廷証拠として使用された。&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || Piracy Shield拒否 || イタリアの海賊版対策規制 (Piracy Shield) への準拠を拒否し、イタリア市場から自発的に撤退した。&amp;lt;br&amp;gt;CEO Paolo Brini氏は「適切な司法命令なしに通信原則を侵害すべきではない」と明言した。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== イタリアの法的管轄 ====&lt;br /&gt;
AirVPNがイタリアに拠点を置くことによる法的管轄の影響は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* イタリアは14 Eyes同盟に加盟しており、他の加盟国 (米国等) と情報共有の枠組みがある。&lt;br /&gt;
* イタリアのISPは検索履歴を最大6年間保存する義務がある。&lt;br /&gt;
* AirVPNはGDPRに完全準拠する義務を負う。&lt;br /&gt;
* AirVPNは「政府要求に対してはEU裁判所に提訴する」と公言しているが、実際の訴訟実績は確認されていない。&lt;br /&gt;
* ノーログ設計のため、サーバ押収が発生しても提供可能なデータは存在しない可能性が高い。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
下表に、AirVPNと他の主要ノーログVPNサービスとの比較を示す。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! サービス名 !! 拠点 !! 情報共有同盟 !! 独立監査 !! 信頼性の根拠&lt;br /&gt;
|-&lt;br /&gt;
| Mullvad || スウェーデン || 9 Eyes || あり (2025年) || 警察捜索でデータなしを実証 (最強の実証)&lt;br /&gt;
|-&lt;br /&gt;
| Proton VPN || スイス || 非加盟 || あり (4年連続) || Securitumによる本番サーバ検査で準拠確認&lt;br /&gt;
|-&lt;br /&gt;
| NordVPN || パナマ || 非加盟 || あり (5回) || Deloitte等による監査&lt;br /&gt;
|-&lt;br /&gt;
| AirVPN || イタリア || 14 Eyes || なし || オープンソースだが外部検証なし&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
AirVPNのノーログポリシーに関する総合評価は以下の通りである。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
信頼性を支持する要素は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* RAMベースのサーバ設計により、物理的にログ保存が困難な構造となっている。&lt;br /&gt;
* 完全オープンソースのクライアントにより、コード監査が可能&lt;br /&gt;
* 2015年のサーバ押収時にデータ回収不可だった実績がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
信頼性を損なう要素は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 14 Eyes加盟国 (イタリア) に拠点を置いている。&lt;br /&gt;
* 独立した第三者監査が実施されていない。&lt;br /&gt;
* 透明性レポートが公開されていない。&lt;br /&gt;
* ワラントカナリアが実装されていない。&lt;br /&gt;
* 2020年にFBIがサーバにペンレジスターを設置した事例がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AirVPNの契約 ==&lt;br /&gt;
AirVPNの料金プランは以下の通りである。(2026年3月現在、支払いはユーロ建て)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! プラン期間 !! 料金&lt;br /&gt;
|-&lt;br /&gt;
| 3日 || 2ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 1ヶ月 || 7ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 3ヶ月 || 15ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 1年 || 49ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 2年 || 79ユーロ&lt;br /&gt;
|-&lt;br /&gt;
| 3年 || 99ユーロ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
支払い方法はクレジットカード、PayPal、Stripe、Amazon Pay、ビットコインおよびその他暗号資産に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、30日間の返金保証が設けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AirVPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://airvpn.org AirVPNの公式Webサイト]へアクセスして、[Get AirVPN]を選択する。&lt;br /&gt;
# もし、アカウントを持っている場合はログインする。アカウントが無ければ、[Create an account]を選択してアカウントを作成する。&lt;br /&gt;
# アカウントの作成後、再度、[Get AirVPN]を選択して、[Subscribe]を選択する。&lt;br /&gt;
# プランを選択する画面に遷移するので、プランを選択して[Proceed to Checkout]を選択する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;支払いは円やドルではなくてユーロとなることに注意すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# 支払い画面に遷移するので、支払い方法を選択する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;※注意&amp;lt;br&amp;gt;クレジットカードは否決される可能性があるため、PayPalか仮想通貨での支払いを推奨する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# 各OS用のAirVPNソフトウェアをダウンロードする。&amp;lt;br&amp;gt;32ビットまたは64ビットの選択、インストーラまたはポータブル、GUIまたはCUIを選択して、[DOWNLOAD]を選択する。&amp;lt;br&amp;gt;または、[https://airvpn.org/download/ 公式Webサイト]から個別にダウンロードすることもできる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AirVPNソフトウェアのインストール ==&lt;br /&gt;
AirVPNソフトウェアのインストール手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# 上記のセクションでダウンロードしたAirVPNソフトウェアをインストールおよび実行する。&lt;br /&gt;
#: Eddie-UIファイルがAirVPNソフトウェアである。&lt;br /&gt;
# AirVPNソフトウェアを実行すると、ログイン名とパスワードを入力する画面が表示される。&lt;br /&gt;
#: ログイン情報を入力して、[Login]ボタンを押下する。&lt;br /&gt;
# 利用規約が表示されるので、了承する場合はチェックボックスにチェックを入力して、[Accept]ボタンを押下する。&lt;br /&gt;
# メイン画面左にある[Servers]タブを選択すると、利用可能なVPNサーバが表示される。([Letency]でソートすると日本のサーバが一番上に現れる)&lt;br /&gt;
# メイン画面左にある[Countries]タブを選択すると、VPNサーバのロケーションからも選択することができる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AirVPNの設定 ==&lt;br /&gt;
AirVPNには、最初からVPN over Torおよび検閲回避機能のための設定項目がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VPN over Torの設定 ====&lt;br /&gt;
VPN over Torとは、Torネットワーク経由でVPNサーバに接続する方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
通常のVPN接続では「ユーザ → VPN → インターネット」の経路となるが、VPN over Torでは「ユーザ → Tor → VPN → インターネット」の経路となる。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、VPNプロバイダであるAirVPNに対してもユーザの実際のIPアドレスを隠すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN over Torの設定手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# AirVPNソフトウェアのメイン画面左下にある設定アイコンを選択する。&lt;br /&gt;
# 設定画面左にある[Proxy / Tor]タブを選択して、[Type:]プルダウンから[Tor]を選択する。&lt;br /&gt;
# 設定画面下にある[Save]ボタンを押下して、設定を保存する。&lt;br /&gt;
# 設定の保存後、[Test]ボタンを押下して、&amp;quot;Successfull test&amp;quot;メッセージが出力されれば正常に動作している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 検閲回避機能 (OpenVPN over SSH/SSL) の設定 ====&lt;br /&gt;
OpenVPN over SSH/SSL は、VPN通信をSSHまたはSSLトンネルでカプセル化することで、深刻な検閲環境下でもVPN接続を維持するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNポートをブロックするファイアウォールやDPI (Deep Packet Inspection) を回避する目的で使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# AirVPNソフトウェアのメイン画面左下にある設定アイコンを選択する。&lt;br /&gt;
# 設定画面左にある[Protocols]タブを選択する。&lt;br /&gt;
# 接続プロトコルの一覧から、[OpenVPN over SSH] または [OpenVPN over SSL]を選択する。&lt;br /&gt;
# 設定画面下にある[Save]ボタンを押下して、設定を保存する。&lt;br /&gt;
# メイン画面から任意のサーバを選択して接続し、正常に接続できることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Windscribe_VPN&amp;diff=14592</id>
		<title>VPN - Windscribe VPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Windscribe_VPN&amp;diff=14592"/>
		<updated>2026-03-24T13:30:11Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Windscribe VPNは、カナダに本社があり、プライバシーを守りながらインターネットを利用できるようにサポートすると約束している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、無料版のVPNサービスも提供しており、毎月のデータ通信量が10[GB]なので多数のユーザが使用している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pro版(有料版)では、データ通信量に制限が無く、サーバは69か国以上、115都市以上に配置されている。&amp;lt;br&amp;gt;&lt;br /&gt;
また、Pro版では、ポートフォワーディング機能も利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
R.O.B.E.R.Tという高度な機能も存在しており、ドメインを任意のIPアドレスに変更でき、信頼できないIPアドレスやIPネットワークをブロックすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
TorrentやTor over VPNも使用でき、アメリカのNetflixをストリーミングすることもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Netflixのストリーミングについては、以前はアメリカのNetflixのみ対応していたが、2026年現在では32以上のNetflix地域に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Windscribe VPNの特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windscribe VPNの主な機能&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 大規模ネットワーク || 69カ国以上、115都市以上にサーバを設置&lt;br /&gt;
|-&lt;br /&gt;
| R.O.B.E.R.T. || 全てのデバイスで選択したIPとドメイン (広告) をブロック&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシー || IPとタイムスタンプから個人を特定することはできない。&amp;lt;br&amp;gt;2025年4月のギリシャ法廷において、ノーログポリシーが法的に実証されている。&amp;lt;br&amp;gt;詳細は、[[VPN_-_Windscribe_VPN#ノーログポリシーの検証|&amp;quot;ノーログポリシーの検証&amp;quot;]]セクションを参照すること。&lt;br /&gt;
|-&lt;br /&gt;
| 暗号化 || AES 256暗号とSHA512認証、4096ビットのRSA鍵を使用している。&lt;br /&gt;
|-&lt;br /&gt;
| 設定ジェネレータ || 全てのデバイス用にOpenVPN、IKEv2、WireGuard設定を生成する。&lt;br /&gt;
|-&lt;br /&gt;
| ポートフォワード || 社内リソースに安全にアクセスする。&lt;br /&gt;
|-&lt;br /&gt;
| スプリットトンネリング || VPNを経由するアプリと経由しないアプリを選択が可能である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribeが収集している情報は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 30日間で送受信されたデータ量(バイト)&lt;br /&gt;
* Windscribeネットワークでの最後の利用のタイムスタンプ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このようなデータが収集される理由は、無料ユーザの通信量を制限するためとネットワークの悪用を防ぐためである。(標準的なプライバシーポリシー)&amp;lt;br&amp;gt;&lt;br /&gt;
また、Windscribeは、個人を特定できる情報を入力しなくてもいいようにしており、アカウント作成に必要な情報はユーザ名とパスワードのみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2021年以降、Windscribeは全サーバをRAM-only構成 (FreshScribeインフラ) に移行しており、&amp;lt;br&amp;gt;&lt;br /&gt;
サーバが押収または再起動された場合、全てのデータが自動的に消去される設計となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
Windscribe VPNはノーログVPNを謳っているが、その信頼性は複数の観点から検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 記録するデータと記録しないデータ ====&lt;br /&gt;
Windscribeの公式プライバシーポリシーでは、以下に示すデータを記録しないと宣言している。&amp;lt;br&amp;gt;&lt;br /&gt;
* 接続ログ (Connection logs)&lt;br /&gt;
* IPアドレスとタイムスタンプ (IP timestamps)&lt;br /&gt;
* セッションログ (Session logs)&lt;br /&gt;
* 閲覧履歴 (Browsing history)&lt;br /&gt;
* 個人識別情報 (Personally identifiable information)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一方、以下の最小限のデータのみを保持している。&amp;lt;br&amp;gt;&lt;br /&gt;
* 30日間で送受信されたデータ量 (バイト)&lt;br /&gt;
*: 無料プランのデータ制限を実施するために必要である。&lt;br /&gt;
* 最終アクセス日時&lt;br /&gt;
*: アカウント管理目的で使用される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続中は、サーバ側で接続ユーザ名、接続時間、データ転送量を一時的に保有するが、接続が切断された直後に即座に破棄される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法廷での実証 (2025年4月 ギリシャ) ====&lt;br /&gt;
2025年4月、ギリシャのアテネ裁判所において、Windscribeのノーログポリシーが法的に実証された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件では、未知のユーザがWindscribeのフィンランドサーバを使用してギリシャ国内のWebサイトに不正アクセスおよびスパムメール送信を行った疑いがあり、&amp;lt;br&amp;gt;&lt;br /&gt;
WindscribeのCEOであるYegor Sakが告発された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2年間の訴訟の結果、WindscribeがユーザのIPアドレスやアクティビティのログを保持しておらず、ユーザを特定するデータが存在しないことが証明され、ケースは却下された。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、ノーログポリシーが有効な法的防御として機能することが法的に検証された画期的な判例となった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性レポート ====&lt;br /&gt;
Windscribeは、リアルタイムで更新される[https://windscribe.com/transparency 透明性レポート]を公開している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2018年以降、100件以上の法執行機関からのデータ要求を受領しているが、ユーザデータの提出実績は0件である。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、記録していないデータを提供することが不可能であるためである。&amp;lt;br&amp;gt;&lt;br /&gt;
DMCA (デジタルミレニアム著作権法) に基づくデータ要求に対しても、同様に0件の提出実績である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、Windscribeはワラントカナリーを採用しておらず、代わりにリアルタイムの透明性レポートで対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査 ====&lt;br /&gt;
Windscribeは複数の第三者監査を実施しており、結果は公開されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Windscribeの第三者監査実績&lt;br /&gt;
! 実施時期 !! 監査機関 !! 対象 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| 2021年9月 || Leviathan Security Group || デスクトップアプリケーション || 指摘事項5件 - 全て解決済み&lt;br /&gt;
|-&lt;br /&gt;
| 2022年3月 || Leviathan Security Group || モバイルアプリケーション (Android / iOS) || 指摘事項あり - 全て解決済み&lt;br /&gt;
|-&lt;br /&gt;
| 2024年6月 || Packetlabs || FreshScribeインフラ (約80,000行のコード、20のリポジトリ) || ノーログポリシーへの意図的な破壊は検出されず&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全アプリケーションのソースコードは[https://github.com/Windscribe GitHub]で公開されており、透明性が確保されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティインシデント ====&lt;br /&gt;
===== ウクライナサーバ押収 (2021年6月) =====&lt;br /&gt;
2021年6月、ウクライナ当局がWindscribeのウクライナ拠点のVPNサーバ2台を押収した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この事件では、以下の深刻なセキュリティ上の欠陥が明らかになった。&amp;lt;br&amp;gt;&lt;br /&gt;
* サーバディスク上にOpenVPN秘密鍵が平文で保存されていた。&lt;br /&gt;
* X.509証明書検証が未実装であり、攻撃者が任意のWindscribeサーバになりすまし可能な状態であった。&lt;br /&gt;
* サーバ自体のディスク暗号化が実装されていなかった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザデータそのものはノーログポリシーにより危険にさらされなかったが、特定の条件下では通信内容のリアルタイム傍受が可能な状態であったことが問題視された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribeはインシデント後4週間以内に以下の改善措置を実施した。&amp;lt;br&amp;gt;&lt;br /&gt;
* 全VPNサーバをRAM-only (メモリのみ) 構成に移行&lt;br /&gt;
* 新しいOpenVPN認証局 (CA) の導入&lt;br /&gt;
* サーバ証明書の有効期限を90日に短縮し、75日ごとにローテーション&lt;br /&gt;
* X.509拡張キー属性検証をクライアントレベルで実装&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== オランダサーバ押収 (2026年2月) =====&lt;br /&gt;
2026年2月、オランダ当局がWindscribeのサーバ1台を令状なしで押収した。&amp;lt;br&amp;gt;&lt;br /&gt;
2021年の事件とは異なり、RAM-onlyサーバ構成であったため、押収されたサーバから回収されたデータは標準的なUbuntuインストールのみであった。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザデータの漏洩は確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、Citizen Labのセキュリティ研究者は、RAM-onlyサーバの技術的限界として、&amp;lt;br&amp;gt;&lt;br /&gt;
ホットプラグインターフェースを使用すれば電源を遮断せずにサーバを押収でき、メモリダンプによりセッションデータを抽出できる可能性を指摘している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Five Eyes同盟国としてのカナダ管轄 ====&lt;br /&gt;
Windscribeはカナダ (オンタリオ州) に本社を置いており、カナダはFive Eyes (米国、カナダ、英国、オーストラリア、ニュージーランド) 同盟国の1つである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Five Eyesに関する懸念と、Windscribeの公式見解を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* カナダの法律はVPNプロバイダにデータ保持を義務付けていない。&lt;br /&gt;
*: Five Eyes加盟国のデータ保持指令はISPに適用されるものであり、VPNプロバイダには適用されない。&lt;br /&gt;
* データが存在しなければ提供不可能&lt;br /&gt;
*: ノーログポリシーの実装により、法的要求があってもユーザデータを提供できない。&lt;br /&gt;
* 法律が変更される可能性&lt;br /&gt;
*: CEO自身が「プライバシーポリシーを維持できなければカナダを離れる」と述べている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、最高レベルのプライバシーを求める場合は、5 Eyes管轄外のVPN (例: Mullvad / スウェーデン、ProtonVPN / スイス) も選択肢として検討する価値がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他社VPNのノーログ違反事例との比較 ====&lt;br /&gt;
VPN業界では、ノーログを謳いながら実際に法執行機関にユーザデータを提供した事例が複数存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribeはこれらの事例には含まれておらず、法廷でノーログが証明された数少ないVPNの1つである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログ違反が確認されたVPN事例&lt;br /&gt;
! VPN !! 年 !! 事件概要&lt;br /&gt;
|-&lt;br /&gt;
| PureVPN || 2017年 || FBIにサイバーストーカー容疑者のIP・接続ログを提供&lt;br /&gt;
|-&lt;br /&gt;
| IPVanish || 2016年 || 米国国土安全保障省に児童ポルノ容疑者の接続ログ・メール・氏名を提供&lt;br /&gt;
|-&lt;br /&gt;
| HideMyAss || 2012年 || 英国法院命令によりLulzSecメンバーの接続ログを提供&lt;br /&gt;
|-&lt;br /&gt;
| EarthVPN || 2014年 || オランダ警察がデータセンターのIP転送ログから爆弾脅迫犯を特定&lt;br /&gt;
|-&lt;br /&gt;
| UFO VPN || 2020年 || 数百万件のユーザログ (IPアドレス、メール、パスワード) がオンラインに露出&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windscribe VPNの契約方法 ==&lt;br /&gt;
Windscribe VPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://windscribe.com/ Windscribe VPNの公式Webサイト]へアクセスして、アカウント作成またはログインする。&lt;br /&gt;
# トップページ上部にある[Pricing]を選択する。&lt;br /&gt;
# 月間または年間のプランを選択して、[Buy Now]を選択する。&lt;br /&gt;
# [Select Payment Method]では、支払い方法(クレジットカード、PayPal、仮想通貨等)を選択して、[Continue]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribe VPNの料金は、年間69ドル (月額換算で約5.75ドル)、1ヶ月9ドルである。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
また、カスタムプラン (Build A Plan) として、1ロケーションあたり月額1ドルで最低3ドルから購入可能なプランも存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windscribe VPNの返金保証 ==&lt;br /&gt;
Windscribe VPNの返金保証は他社と比較するとかなり制限が厳しい。&amp;lt;br&amp;gt;&lt;br /&gt;
サービスに加入してから3日以内に返金を請求しないといけない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
返金を請求するにはプランを購入してから3日以内にサポートデスクからリクエストを送信する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
また、10[GB]以上データ通信してしまうと返金の対象外になるので注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windscribe VPNソフトウェアのインストール ==&lt;br /&gt;
==== RPMファイルから直接インストールする場合 ====&lt;br /&gt;
[https://windscribe.com/guides/linux/ Windscribe VPNの公式Webサイト]から、GUIソフトウェアをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install ./windscribe_&amp;lt;バージョン&amp;gt;_x86_64.rpm&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install ./windscribe_&amp;lt;バージョン&amp;gt;_x86_64.rpm&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ソースコードからインストールする場合 ====&lt;br /&gt;
Windscribe VPNのGUIソフトウェアのビルドに必要なライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
RHELでは、一部のパッケージがCRB (Code Ready Builder) リポジトリに含まれるため、事前にリポジトリを有効化する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 ## RHEL 9&lt;br /&gt;
 sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms&lt;br /&gt;
 &lt;br /&gt;
 ## RHEL 10&lt;br /&gt;
 sudo subscription-manager repos --enable codeready-builder-for-rhel-10-x86_64-rpms&lt;br /&gt;
 &lt;br /&gt;
 sudo dnf install make cmake pkg-config autoconf libtool fakeroot golang python3 python3-pip python3-colorama python3-pyyaml \&lt;br /&gt;
                  libcap-ng-devel fontconfig-devel freetype-devel libnl3-devel pam-devel mesa-libGL-devel                    \&lt;br /&gt;
                  libX11-devel libXext-devel libXfixes-devel libXi-devel libXrender-devel libxcb-devel libXcursor-devel xcb-util-cursor-devel            \&lt;br /&gt;
                  xcb-util-keysyms-devel xcb-util-image-devel xcb-util-wm-devel libXfixes-devel libXrandr-devel xcb-util-renderutil-devel xcb-util-devel \&lt;br /&gt;
                  libXinerama-devel libxkbcommon-devel libxkbcommon-x11-devel&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install make cmake pkg-config autoconf libtool fakeroot go python3 python3-pip python3-colorama python3-PyYAML \&lt;br /&gt;
                     libcap-ng-devel fontconfig-devel freetype2-devel libnl3-devel pam-devel Mesa-libGL-devel               \&lt;br /&gt;
                     libX11-devel libXext-devel libXfixes-devel libXi-devel libXrender-devel libxcb-devel libXcursor-devel xcb-util-cursor-devel            \&lt;br /&gt;
                     xcb-util-keysyms-devel xcb-util-image-devel xcb-util-wm-devel libXfixes-devel libXrandr-devel xcb-util-renderutil-devel xcb-util-devel \&lt;br /&gt;
                     libXinerama-devel libxkbcommon-devel libxkbcommon-x11-devel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/Windscribe/Desktop-App/ Windscribe VPNのGithub]にアクセスして、GUIソフトウェアのソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf Desktop-App-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd  Desktop-App-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
tools/depsに移動して、以下に示すシェルスクリプトを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
ビルドされたライブラリは build-libsディレクトリに配置される。&amp;lt;br&amp;gt;&lt;br /&gt;
Qt 6をビルドする場合、check_for_ulimitに関するエラーが発生する場合は、CMakeのバージョンを3.24にダウングレードすること。&amp;lt;br&amp;gt;&lt;br /&gt;
 install_openssl_ech_draft&lt;br /&gt;
 install_qt&lt;br /&gt;
 install_cares&lt;br /&gt;
 install_curl&lt;br /&gt;
 install_boost&lt;br /&gt;
 install_lzo&lt;br /&gt;
 install_openvpn&lt;br /&gt;
 install_wireguard&lt;br /&gt;
 install_stunnel&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
toolsディレクトリに移動して、build_allファイルを実行する。ビルドされたインストーラがbuild-exeディレクトリに配置される。&amp;lt;br&amp;gt;&lt;br /&gt;
その他のビルドオプションについては、&amp;lt;code&amp;gt;build_all --help&amp;lt;/code&amp;gt;コマンドを実行して参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribe VPNのGUIソフトウェアは、/opt/windscribeディレクトリにインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このソフトウェアの動作ログは ~/.local/share/Windscribe/Windscribe2ディレクトリに保存されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuard ==&lt;br /&gt;
WireGuardは、プロ版の機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
[https://nld.windscribe.com/getconfig/wireguard Windscribeの公式Webサイト]にあるページ上部からログインすること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ポートフォワーディング ==&lt;br /&gt;
ポートフォワーディング機能により、Windscribeに接続したまま、ユーザのデバイスやホームネットワーク上のサービスにリモートでアクセスすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
これには以下のようなものが含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Plexサーバ&lt;br /&gt;
* ホームセキュリティカメラ&lt;br /&gt;
* NAS&lt;br /&gt;
* Torrentクライアント&lt;br /&gt;
* Webサーバ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ポートフォワーディングには複数のメリットがある。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザの接続の保護&lt;br /&gt;
*: ユーザは、Windscribeのクライアントに接続したままで、全てのメリットを得ることができる。&lt;br /&gt;
* 外部IPが公開されない&lt;br /&gt;
*: リソースにアクセスするためにISPから割り当てられたIPを使用する必要がない。&lt;br /&gt;
*: これらのIPは常に変更される。静的IPはそうではない。&lt;br /&gt;
* 無料のDDoS保護&lt;br /&gt;
*: DDoS攻撃を受けても、Windscribeのサーバが攻撃を防御する。&lt;br /&gt;
* Torrentシーディング&lt;br /&gt;
*: 最適なアップロード速度を得るには、ポートフォワーディング機能が必要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全てのプロ版ユーザは、一時的なポートフォワーディングを利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
恒久的なポートフォワーディングを利用するには、[https://windscribe.com/staticips 静的IP]または[https://windscribe.com/staticips レジデンシャルIP]を購入する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
その後、Windscribe VPNのCUI / GUIソフトウェアを使用するか、または、手動で設定するかの2つの方法がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ポートフォワーディング機能の設定の詳細を知りたい場合は、[https://windscribe.com/knowledge-base/articles/setting-up-port-forwarding Windscribeの公式Webサイト]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※免責事項&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;設定したIPとポートにアクセスできるのは、許可された当事者だけであることを確認するのはユーザの責任である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ローカルデバイスで認証を行わずにポート転送を使用した場合、単純なポートスキャンによってインターネット上の誰でもデバイスにアクセスすることができる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Windscribeは、ユーザの内部サービスにおいて、認証が不十分であることにより発生する損失や損害に対して責任を負わない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [[VPN_-_Windscribe_VPN#Windscribe_VPNの設定|&amp;quot;Windscribe VPNの設定&amp;quot;]]セクションを参照して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;Windscribe VPNは、VPN over TORをサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentの使用 ==&lt;br /&gt;
Windscribe VPNは、ほとんどの接続先サーバでトレントを許可している。&amp;lt;br&amp;gt;&lt;br /&gt;
サーバ選択メニューでは、P2Pファイル共有に使用してはいけないサーバが明記されており、このようなサーバはP2PアイコンにX印が付いている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定 ====&lt;br /&gt;
Torrentプロトコルは、以下の手順でより安全に使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentクライアントの設定のみ記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、uTorrent、Vuze、BitComet等のクライアントは、オープンソースではなく、アドウェアやジャンクウェアが含まれていたり、優れたプライバシー設定が施されていないためである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardとOpenVPNを切り替えた場合、ネットワークインターフェイスを再バインドして、qBittorrentを再起動する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;また、SOCKS5を使用している場合は、WireGuardまたはOpenVPNの使用に応じて、IPアドレスを変更する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Windscribe VPNを接続する。&lt;br /&gt;
# qBittorrentを起動して、[ツール]メニューバー - [設定]メニューを選択する。&lt;br /&gt;
# [設定]画面左ペインにある[高度]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* OpenVPNを使用したWindscribe VPNソフトウェア (Windscribe VPNソフトウェアからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* OpenVPNスタンドアロン (NetworkManagerからOpenVPNで接続している場合)&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* WireGuardを使用したWindscribe VPNソフトウェア (Windscribe VPNソフトウェアからWireGuardで接続している場合)&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [バインドする任意のIPアドレス]プルダウンから、Windscribe VPNで接続しているIPアドレスを選択する。&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択してqBittorrentを終了して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポートフォワーディング (ポート転送) ====&lt;br /&gt;
qBittorrentを起動して、[接続] - [受信接続に使用するポート]にポートを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、シードが向上する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、SOCKS5が有効な場合、この機能は無効になることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Bittorrentクライアントへのポートフォワーディングの詳細を知りたい場合は、ポートフォワードガイドを参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
==== Windscribe VPNは中国で利用可能 ====&lt;br /&gt;
近年では、中国政府は中国国内でのVPNの使用を厳しく取り締まっており、結果的に中国のファイアウォールを通過できるVPNは少なくなっている。&amp;lt;br&amp;gt;&lt;br /&gt;
多くのユーザから、Windscribeは中国で利用できるという声が届いており、中国のような規制の厳しい環境でも接続できる機能がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windscribeは、OpenVPN通信を安全なTLSで隠すステルスVPNモードがあり、中国で利用する場合はこのモードを有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
中国で他のプロトコルが利用できない場合、WindscribeはWstunnelモードがあり、これはOpenVPN通信をWebソケットで覆うモードである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2026年2月には、ディープパケット検査 (DPI) を迂回するために設計された新しいステルスVPNアプリが開発されている。&amp;lt;br&amp;gt;&lt;br /&gt;
このアプリはAmneziaWG (Amnezia WireGuard) のネイティブサポートを採用しており、イランやロシア等の検閲が厳しい地域での利用を主な目的としている。&amp;lt;br&amp;gt;&lt;br /&gt;
2026年3月現在、Androidベータ版として提供されている段階である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WindscribeのFAQでは、中国でVPNが使用できない場合は、サポートに問い合わせるように推奨している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Proton_VPN&amp;diff=14591</id>
		<title>VPN - Proton VPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_Proton_VPN&amp;diff=14591"/>
		<updated>2026-03-24T12:55:09Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Proton VPNは、プライバシーを重視した多彩なアーキテクチャ、高度なセキュリティ特性、確かな性能を備えた機能豊富なVPNである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WindowsおよびMac OSと同様、Linux向けにもGUIソフトウェアを提供しており、機能の有効化とサーバへの接続を簡単に行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
GUIソフトウェアは、全ての主要なLinuxディストリビューション（RedHat系、Debian系、Manjaro、Arch系）に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2026年3月現在、Proton VPNは、110カ国以上で18,000台以上のサーバを提供しており、プライバシーに配慮したスイスに拠点を置いている。&amp;lt;br&amp;gt;&lt;br /&gt;
それは、トラフィックが厳格なプライバシー法で保護されている多数の厳しいサーバを通過することを意味する安全な接続を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
それらの機能には、厳格なノーログポリシー、キルスイッチ、広告ブロッカー等も含まれている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
高レベルのセキュリティとともに、Proton VPNは、ユーザのオンラインアクティビティを傍受しないことを確認する暗号化の業界標準形式であるAES-256暗号を実装している。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、ユーザの匿名性を維持するだけでなく、地理的に制限されたストリーミングプラットフォームや他のコンテンツのブロックを解除するのに役立つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNのメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 直感的なユーザインターフェイス&lt;br /&gt;
* 広告ブロック機能(NetShield)&lt;br /&gt;
* 厳格なノーログポリシー&lt;br /&gt;
* DNSリーク防止機能&lt;br /&gt;
* キルスイッチ&lt;br /&gt;
* 30日間返金保証&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNのデメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ライブチャットは有料プランのみ対応 (無料プランは非対応)&lt;br /&gt;
* 無料サーバはTorrentをサポートしない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proton VPNのノーログポリシーと信頼性 ==&lt;br /&gt;
Proton VPNは厳格なノーログポリシーを掲げており、独立した第三者機関による監査によってその実態が検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
ここでは、ノーログポリシーの内容、捜査機関への対応実績、法的管轄の特性、および他社との比較について記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ノーログポリシーの内容 ====&lt;br /&gt;
Proton VPNが記録しないデータを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* VPN接続ログ&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* セッション長&lt;br /&gt;
* 位置情報&lt;br /&gt;
* ネットワークトラフィック内容&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例外的に記録される可能性があるデータを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 不正行為対策の一時的IPログ (期間限定)&lt;br /&gt;
* 利用規約違反 (DDoS、スパム等) 検出時のIPアドレス (永続的)&lt;br /&gt;
* ユーザが自ら有効化した認証ログ (デフォルトOFF)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
独立監査については、Securitum (ポーランド) による4年連続の監査に合格している。(最新: 2025年8月)&amp;lt;br&amp;gt;&lt;br /&gt;
本番サーバへの直接アクセスによる技術検証で &amp;lt;u&amp;gt;ノーログポリシーに完全準拠&amp;lt;/u&amp;gt; と結論付けられた。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
監査で確認された管理体制を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 自動化検出ツール (Infra Auditシステム)&lt;br /&gt;
* デュアルコントロール変更管理 (2名のシニアエンジニア承認必須)&lt;br /&gt;
* 自動構成管理&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 捜査機関へのデータ提供事例 ====&lt;br /&gt;
重要な前提として、問題が起きたのは全てProton Mail側であり、Proton VPN側では提供できるデータがないため事例は報告されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Proton Mail側の事例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 年 !! 事件名 !! 概要&lt;br /&gt;
|-&lt;br /&gt;
| 2021年 || フランス活動家事件 || ProtonMailユーザのIPアドレスを提供&amp;lt;br&amp;gt;フランス警察→Europol→スイス当局→Protonの経路で法的命令。&amp;lt;br&amp;gt;事件後、Protonは「IPアドレスを記録しない」という記載をWebサイトから削除&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || カタルーニャ独立活動家事件 || 復旧用メールアドレス (Apple iCloud) を提供&amp;lt;br&amp;gt;Apple経由で本名・住所が特定された。&lt;br /&gt;
|-&lt;br /&gt;
| 2024年 || Stop Cop City事件 (米国) || 支払いデータ (クレジットカード識別子) を提供&amp;lt;br&amp;gt;MLAT (相互法的支援条約) 経由でFBIが身元特定&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPN側の実績として、2025年6月までに29件の法執行機関からの要求があったが、全て &amp;lt;u&amp;gt;提供できるデータなし&amp;lt;/u&amp;gt; として却下している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
透明性レポートによると、2017〜2025年の累計で45,667件の要求を受け、40,389件に対応している (対応率約90%)。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし対応したのはメール等のメタデータであり、VPN接続ログは含まれない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スイスの法的管轄 ====&lt;br /&gt;
スイスの法的管轄に関する特性を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* スイスは14 Eyes同盟に非加盟&lt;br /&gt;
* 現行スイス法ではVPNプロバイダーにデータ保持義務なし&lt;br /&gt;
* スイス当局からの正式な法的命令には従う義務あり (スイス刑法第271条)&lt;br /&gt;
* ただしスイス連邦情報局 (NDB) は100以上の国際情報機関と接触を保有&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== VÜPF改正 ====&lt;br /&gt;
スイス司法警察省が推進中の郵便・電気通信トラフィック監視令 (VÜPF) の改正が、現在最大の懸念事項となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提案内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザ数5,000人以上のVPN / メールサービスに対して以下を義務化&lt;br /&gt;
*: IPアドレスログの6ヶ月保持&lt;br /&gt;
*: ユーザ識別&lt;br /&gt;
*: 当局要請時の復号化能力 (バックドア) 構築&lt;br /&gt;
* 議会での標準的な議論をスキップし行政令として推進&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Protonの対応として、国連フォーラムで本改正案を批判するとともに、インフラの大部分をスイス国外へ移転する段階的計画を2025年に開始している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 他のノーログVPNとの比較 ====&lt;br /&gt;
下表に、主要なノーログVPNの比較を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! サービス名 !! 拠点 !! 信頼性の根拠&lt;br /&gt;
|-&lt;br /&gt;
| Mullvad || スウェーデン || 2023年に警察が本社を強制捜索&amp;lt;br&amp;gt;データ一切なし (最強の実証)&lt;br /&gt;
|-&lt;br /&gt;
| Proton VPN || スイス || 4年連続の第三者監査合格&amp;lt;br&amp;gt;ただしVÜPF改正リスクあり&lt;br /&gt;
|-&lt;br /&gt;
| NordVPN || パナマ || 複数回の独立監査合格&amp;lt;br&amp;gt;14 Eyes同盟の影響外&lt;br /&gt;
|-&lt;br /&gt;
| ExpressVPN || 英領ヴァージン諸島 || 2016年トルコ政府のサーバ押収時にデータ提供不可を実証&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合評価 ====&lt;br /&gt;
Proton VPNに関する総合評価を以下に示す。(2026年3月現在の情報)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Proton VPNは、現時点では、本当のノーログVPNと言える。&lt;br /&gt;
* 4年連続の独立監査で検証済み、VPN側で捜査機関にデータを提供した事例なし&lt;br /&gt;
* Proton MailとVPNは別サービス (Mailでは複数回データ提供実績あり)&lt;br /&gt;
* スイスのVÜPF改正法が最大のリスク (施行されればノーログポリシー維持が法的に不可能)&lt;br /&gt;
* メタデータ (支払い情報、復旧メール等) は保護対象外&lt;br /&gt;
* 最強の実績を求めるならMullvad VPNが最も実証済み&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proton VPNの契約 ==&lt;br /&gt;
Proton VPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://protonvpn.com Proton VPNの公式Webサイト]へアクセスして、ページ右上にある[Create free account]を選択する。&lt;br /&gt;
# VPNのプランを選択する。&lt;br /&gt;
# Protonのアカウントを作成する。&lt;br /&gt;
# クレジットカード、PayPal、ビットコイン等のいずれかを選択して、金額を支払う。&lt;br /&gt;
# Eメールアドレスを入力して、[購入を完了]または[〜へ進む]を選択する。&lt;br /&gt;
# 支払いが完了した後、遷移先のページにユーザ名とパスワードが表示される。&amp;lt;br&amp;gt;入力したEメールアドレスがアカウントのIDとして登録される。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;また、Eメールアドレスにサブスクリプションを回復する時のトークンが送付されるので、大切に保管すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# アカウントのパスワードの変更画面が自動的に立ち上がるため、任意のパスワードに変更する。&lt;br /&gt;
#: パスワードにおいて、&amp;lt;u&amp;gt;$&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;*&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;%&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;[&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;]&amp;lt;/u&amp;gt; の文字は使用できない。&lt;br /&gt;
# 自動的にアカウントページに遷移するので、[アプリをダウンロード]を選択して、Proton VPNソフトウェアをダウンロードする。&lt;br /&gt;
#: Proton VPNソフトウェアは、Windows、MacOS、Linux、Android、iOSに対応している。&lt;br /&gt;
#: また、ブラウザの拡張機能はChrome、Firefoxが対応している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNでは、1ヶ月9.99ドル、1年間47.88ドル (月あたり3.99ドル)、2年間71.76ドル (月あたり2.99ドル) の料金である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proton VPNのインストール ==&lt;br /&gt;
==== ビルドに必要なライブラリのインストール ====&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install gtk3-devel gobject-introspection-devel python3-devel libsecret-devel systemd-devel \&lt;br /&gt;
                  libappindicator-gtk3 gnome-keyring \&lt;br /&gt;
                  python3-requests python3-pyOpenSSL python3-bcrypt python3-cairo python3-gobject \&lt;br /&gt;
                  python3-psutil python3-pyxdg \&lt;br /&gt;
                  python3-keyring python3-jinja2 python3-distro python3-gnupg python3-dbus python3-systemd&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install gtk3-devel gobject-introspection-devel python3-devel libsecret-devel systemd-devel \&lt;br /&gt;
                     libappindicator3-1 gnome-keyring \&lt;br /&gt;
                     python3-requests python3-pyOpenSSL python3-bcrypt python3-pycairo python3-gobject \&lt;br /&gt;
                     python3-gobject-cairo python3-psutil python3-dataclasses python3-pyxdg \&lt;br /&gt;
                     python3-keyring python3-Jinja2 python3-distro python3-python-gnupg python3-dbus-python python3-systemd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPNの実行に必要なライブラリのインストール ====&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install gtk3 dbus-x11 xdg-utils libsecret \&lt;br /&gt;
                  python3-requests python3-pyOpenSSL python3-bcrypt python3-cairo python3-gobject \&lt;br /&gt;
                  python3-psutil python3-pyxdg \&lt;br /&gt;
                  python3-keyring python3-jinja2 python3-distro python3-gnupg python3-dbus python3-systemd&lt;br /&gt;
                  # Proton VPN GUIの動作に必要&lt;br /&gt;
                  webkit2gtk3&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install libgtk-3-0 dbus-1-x11 xdg-utils libsecret-1-0 \&lt;br /&gt;
                     python3-requests python3-pyOpenSSL python3-bcrypt python3-pycairo python3-gobject \&lt;br /&gt;
                     python3-gobject-cairo python3-psutil python3-dataclasses python3-pyxdg \&lt;br /&gt;
                     python3-keyring python3-Jinja2 python3-distro python3-python-gnupg python3-dbus-python python3-systemd&lt;br /&gt;
                     # Proton VPN GUIの動作に必要&lt;br /&gt;
                     libwebkit2gtk-4_0-37 webkit2gtk-4_0-injected-bundles typelib-1_0-WebKit2-4_0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 前提条件 ====&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;code&amp;gt;pip3&amp;lt;/code&amp;gt;コマンドを使用せずにインストールする場合、先にインストールディレクトリを作成する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
この時、インストールディレクトリ名は、&amp;lt;u&amp;gt;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages&amp;lt;/u&amp;gt; としなければならない。&amp;lt;br&amp;gt;&lt;br /&gt;
 mkdir -p /&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages&lt;br /&gt;
 例. mkdir -p /&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python3.6/site-packages&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストールディレクトリを作成していない場合は、ビルドエラーが起きる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPNクライアントのインストール ====&lt;br /&gt;
[https://github.com/ProtonMail/proton-python-client Proton VPNクライアントのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf proton-python-client-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd proton-python-client-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;を使用して、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/ProtonMail/proton-python-client.git&lt;br /&gt;
 cd proton-python-client&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNクライアントをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages:$PYTHONPATH&amp;quot;&lt;br /&gt;
 python3 ./setup.py build&lt;br /&gt;
 python3 ./setup.py install --prefix=&amp;lt;Proton VPN GUIのインストールディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # または&lt;br /&gt;
 &lt;br /&gt;
 sudo pip3 install -e .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPNライブラリのインストール ====&lt;br /&gt;
[https://github.com/ProtonVPN/protonvpn-nm-lib Proton VPNライブラリのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf protonvpn-nm-lib-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd protonvpn-nm-lib-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;を使用して、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/ProtonVPN/protonvpn-nm-lib.git&lt;br /&gt;
 cd protonvpn-nm-lib&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPNライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages:$PYTHONPATH&amp;quot;&lt;br /&gt;
 python3 ./setup.py build&lt;br /&gt;
 python3 ./setup.py install --prefix=&amp;lt;Proton VPN GUIのインストールディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # または&lt;br /&gt;
 &lt;br /&gt;
 sudo pip3 install -e .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPN CLIのインストール ====&lt;br /&gt;
&amp;lt;u&amp;gt;Proton VPN CLIを使用する場合のみインストールする。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/ProtonVPN/linux-cli Proton VPN CLIのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf linux-cli-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd linux-cli-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;を使用して、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/ProtonVPN/linux-cli.git&lt;br /&gt;
 cd linux-cli&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPN CLIをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages:$PYTHONPATH&amp;quot;&lt;br /&gt;
 python3 ./setup.py build&lt;br /&gt;
 python3 ./setup.py install --prefix=&amp;lt;Proton VPN GUIのインストールディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # または&lt;br /&gt;
 &lt;br /&gt;
 sudo pip3 install -e .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Proton VPN GUIのインストール ====&lt;br /&gt;
&amp;lt;u&amp;gt;Proton VPN GUIを使用する場合のみインストールする。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/ProtonVPN/linux-app Proton VPN GUIのGithub]にアクセスして、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&lt;br /&gt;
 tar xf linux-app-&amp;lt;バージョン&amp;gt;.tar.gz&lt;br /&gt;
 cd linux-app-&amp;lt;バージョン&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
または、&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;を使用して、ソースコードをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
 git clone https://github.com/ProtonVPN/linux-app.git&lt;br /&gt;
 cd linux-app&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Proton VPN GUIをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/&amp;lt;Proton VPNのインストールディレクトリ&amp;gt;/lib/python&amp;lt;Pythonのバージョン&amp;gt;/site-packages:$PYTHONPATH&amp;quot;&lt;br /&gt;
 python3 ./setup.py build&lt;br /&gt;
 python3 ./setup.py install --prefix=&amp;lt;Proton VPN GUIのインストールディレクトリ&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # または&lt;br /&gt;
 &lt;br /&gt;
 sudo pip3 install -e .&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_CyberGhost&amp;diff=14590</id>
		<title>VPN - CyberGhost</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_CyberGhost&amp;diff=14590"/>
		<updated>2026-03-24T11:52:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
CyberGhostは、2011年にルーマニアで設立された企業であり、プライバシーに関して徹底したコミットメントを実践している。&amp;lt;br&amp;gt;&lt;br /&gt;
ルーマニア(本社)とドイツに拠点があり、EUのデータ保持法やスパイ法の対象とならないため、ユーザが影響を受けることはない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostの特徴を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 暗号化&lt;br /&gt;
*: 256ビットのAES暗号化アルゴリズム(財務、軍事、政府等の機密扱いの分野で使用されるのと同じ暗号化)を使用している。&lt;br /&gt;
* OpenVPNプロトコル&lt;br /&gt;
*: 高度なセキュリティや最高のパフォーマンスを実現するため、CyberGhost VPNソフトウェアはOpenVPNプロトコルを使用している。&lt;br /&gt;
* WireGuardプロトコル&lt;br /&gt;
*: 速度向上と最新の暗号化を希望されるユーザは、WireGuardプロトコルを選択すること。&lt;br /&gt;
*: OpenVPNより最大4倍高速であり、モバイルデバイスではデフォルトプロトコルとなっている。&lt;br /&gt;
* IKEv2プロトコル&lt;br /&gt;
*: MicrosoftおよびCiscoが開発した軽量プロトコルであり、モバイルおよび物理的に近いサーバとの接続に最適化されている。&lt;br /&gt;
* 厳格なノーログポリシー&lt;br /&gt;
*: CyberGhostのVPNサーバは、RAMのみで動作する構成を採用しており、ユーザのデータを一切保管しない。&lt;br /&gt;
*: Deloitteによる独立監査(2022年および2024年実施)において、ノーログポリシーへの準拠が確認されている。&lt;br /&gt;
*: 詳細については、後述の「ノーログポリシーと信頼性」セクションを参照すること。&lt;br /&gt;
* インターネットの制限無し&lt;br /&gt;
*: Netflix、HBO Now、Amazonプライム、、その他のサービスに無制限にアクセスできる。&lt;br /&gt;
*: CyberGhostでIPアドレスを変更することにより、地域的制限を迂回して、お気に入りのコンテンツやソーシャルメディアプラットフォーム、ゲーミングサイトのブロックを解除できる。&lt;br /&gt;
* 最大7台のデバイスを保護&lt;br /&gt;
*: CyberGhostは、全ての主要OSに対して最適化されている。1つのプランに契約するだけで、インターネットに接続するデバイスを最大7台まで保護できる。&lt;br /&gt;
* 24時間365日のライブチャットサポート&lt;br /&gt;
*: CyberGhostでは、ライブチャットまたはメールを通じて1日24時間 / 週7日のサポートを提供している。&lt;br /&gt;
*: なお、対応言語は、英語、ドイツ語、フランス語、ルーマニア語である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostが提供しているもう1つの便利な機能は、地域制限を回避できることである。&amp;lt;br&amp;gt;&lt;br /&gt;
世界中40以上のストリーミングサービスへアクセスすることができるため、BBC iPlayerやHuluを簡単に閲覧することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
Cyber Ghostの最大の特徴は、100%機能するという保証があることである。&amp;lt;br&amp;gt;&lt;br /&gt;
通常、ストリーミングサービスはVPNサーバのIPアドレスをブロックしてコンテンツへのアクセスを制限しているが、CyberGhostは、閲覧したいWebサイトのブロックを解除をできるよう保証している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、CyberGhostのP2Pポリシーは、ファイル共有やTorrent等にも利用できるが、匿名トレントに最適化された指定サーバのみで使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linux向けのCyberGhost VPNソフトウェアは、Ubuntu 20.04 / 22.04、Fedora 29〜31、Linux Mint 19、Kali Linux、CentOS 7、PoP!_OSに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
なお、SUSE向けの公式インストールパッケージは提供されていないが、OpenVPN接続を手動で設定することにより使用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;CyberGhostは、Kape Technologies (旧Crossrider) というイスラエル出身の経営陣が率いる企業によって運営されていることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Kape Technologiesの経歴および懸念事項の詳細については、後述の [[#ノーログポリシーと信頼性]]セクションを参照すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーと信頼性 ==&lt;br /&gt;
==== ノーログポリシーの技術的裏付け ====&lt;br /&gt;
CyberGhostは、以下のデータを一切保持しないことを公式に明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
* 受信および送信IPアドレス&lt;br /&gt;
* 閲覧履歴およびDNSクエリ&lt;br /&gt;
* データ転送量&lt;br /&gt;
* VPNサーバの使用記録&lt;br /&gt;
* 接続日時および接続時間&lt;br /&gt;
* ダウンロードされたファイル&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
技術的な対策として、CyberGhostはRAMのみで動作するサーバ(RAMディスクサーバ)を採用しており、&amp;lt;br&amp;gt;&lt;br /&gt;
サーバの再起動時に全てのデータが自動的に消去される仕組みとなっている。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、閲覧活動がハードディスクに書き込まれることはなく、データ保持のリスクを最小化している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、国際的な監査企業であるDeloitteを招請して、サーバおよび管理システムの検査を実施している。&amp;lt;br&amp;gt;&lt;br /&gt;
Deloitteは2022年と2024年にそれぞれ監査を行い、CyberGhostのサーバがノーログポリシーに準拠していることを確認している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostがルーマニアを拠点としていることには、プライバシー保護の観点から以下の意義がある。&amp;lt;br&amp;gt;&lt;br /&gt;
* ルーマニア法では、VPNプロバイダーにユーザの閲覧活動をログに記録する法的義務がない。&lt;br /&gt;
* ルーマニアは5Eyes、9Eyes、14Eyesといった国際情報共有同盟に属していない。&lt;br /&gt;
* EUのGDPR、E-Privacy法、E-Commerce法により、厳格なデータ保護規制が存在する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性レポートと捜査機関への対応 ====&lt;br /&gt;
CyberGhostは、VPN業界で初めて四半期ごとの透明性レポートを発行している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2019年第1四半期(1月〜3月)の透明性レポートでは、以下の法的要求を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
* 総請求件数 : 22,595件&lt;br /&gt;
*: DMCA著作権侵害申し立て : 18,972件 (84%)&lt;br /&gt;
*: 悪意あるサイバー活動フラグ(DDoS、ボットネット、詐欺、不正アクセス報告) : 3,602件 (16%)&lt;br /&gt;
*: 警察および法執行機関からの要求 : 21件 (1%未満)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらの警察からの要求に対して、CyberGhostは全件「ユーザ情報を提供できない」と回答している。&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログポリシーにより提供すべきデータが存在しないためである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、ドイツ連邦刑事警察庁(BKA)からCyberGhostに対する具体的なデータ提出事例は、公開情報の範囲では確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 親会社 Kape Technologies の経歴 ====&lt;br /&gt;
CyberGhostの親会社であるKape Technologies (旧Crossrider) には、以下の懸念事項が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Crossrider時代 (2011年〜2018年) の問題点 :&amp;lt;br&amp;gt;&lt;br /&gt;
* Crossriderは、ブラウザ拡張機能の開発および配布プラットフォームを提供していた企業である。&lt;br /&gt;
* 一部の悪質なアクターがプラットフォームを悪用して、マルウェアおよびアドウェアの開発に利用した。&lt;br /&gt;
* SymantecやMalwarebytes等のセキュリティ企業が、CrossriderのSDKで作成されたソフトウェアをマルウェアと判定した。&lt;br /&gt;
* 問題の内容として、広告インジェクション、ユーザデータ収集、ブラウザハイジャッキングが挙げられている。&lt;br /&gt;
* Crossriderは2016年にプラットフォームを完全にシャットダウンした。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN企業の買収戦略 :&amp;lt;br&amp;gt;&lt;br /&gt;
* 2017年&lt;br /&gt;
*: CyberGhostを買収、その後、社名をKape Technologiesに改名した。&lt;br /&gt;
* 2018年&lt;br /&gt;
*: ZenMateを買収 (550万ドル)&lt;br /&gt;
* 2019年&lt;br /&gt;
*: Private Internet Access (PIA) を買収 (1億2,600万ドル)&lt;br /&gt;
* 2021年&lt;br /&gt;
*: ExpressVPNを買収 (9億3,600万ドル)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
経営陣の経歴 :&amp;lt;br&amp;gt;&lt;br /&gt;
* 創業者Koby Menachemi(元CEO) : イスラエル軍情報機関Unit 8200(イスラエルのNSA相当)出身&lt;br /&gt;
* 実質的支配者Teddy Sagi : 1996年に収賄および証券詐欺で有罪、マン島のシェルカンパニー経由で同社を支配&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レビューサイトの利益相反 :&amp;lt;br&amp;gt;&lt;br /&gt;
* KapeはVPN評価サイトであるVPN Mentor、Wizcase、Safety Detectivesも所有している。&lt;br /&gt;
* これらのレビューサイトが自社VPN製品を高く評価する利益相反の構造が指摘されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティインシデント ====&lt;br /&gt;
CyberGhostに関連する主なセキュリティインシデントを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2018年6月 : Typeformデータ漏洩&lt;br /&gt;
*: 第三者サービスプロバイダーであるTypeformのバックアップサーバが侵害された。&lt;br /&gt;
*: CyberGhostユーザのメールアドレス120件およびユーザ名14件が流出した。&lt;br /&gt;
*: パスワード、支払い情報、IPアドレスは流出していない(CyberGhostがこれらを第三者サーバに保存していないため)。&lt;br /&gt;
* 2024年 : パスワード漏洩&lt;br /&gt;
*: 83,600件のCyberGhostアカウントのパスワードが流出したと報告された。&lt;br /&gt;
*: 調査の結果、これらのパスワードは外部マルウェア攻撃によりユーザのデバイスから窃取されたものであり、CyberGhostのインフラストラクチャ自体の侵害ではないことが確認されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2026年の民営化と透明性の変化 ====&lt;br /&gt;
Kape Technologiesは2026年1月1日から完全に民営化され、ロンドン証券取引所での上場が廃止された。&amp;lt;br&amp;gt;&lt;br /&gt;
これにより、以下の懸念が生じている。&amp;lt;br&amp;gt;&lt;br /&gt;
* 企業のファイリング情報が公開されなくなった。&lt;br /&gt;
* 透明性レポートの公開状況が不確定となった。&lt;br /&gt;
* アナリストおよび一般市民が企業動向を監視できなくなった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 信頼性の総合評価 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ CyberGhost VPNの信頼性評価&lt;br /&gt;
! 評価項目 !! 状況&lt;br /&gt;
|-&lt;br /&gt;
| ノーログポリシーの技術的裏付け || Deloitte監査あり、RAMサーバ採用&lt;br /&gt;
|-&lt;br /&gt;
| 捜査機関へのデータ提出 || 確認された事例なし&lt;br /&gt;
|-&lt;br /&gt;
| 親会社の信頼性 || マルウェア企業からの転身、軍情報機関との関連&lt;br /&gt;
|-&lt;br /&gt;
| 透明性 || 2026年の民営化により大幅に低下&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostは技術的にはノーログを実現しており、実際にデータを提出した事例も確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、親会社Kape Technologiesの過去の経歴、経営陣の情報機関との関連、レビューサイト支配による利益相反、&amp;lt;br&amp;gt;&lt;br /&gt;
および2026年の民営化による透明性の喪失は、プライバシーを重視するユーザにとって無視できない懸念事項である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの契約 ==&lt;br /&gt;
CyberGhostの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]へアクセスして、ページ中央にある[今すぐ購入]を選択する。&lt;br /&gt;
# VPNのプランを選択する。&lt;br /&gt;
# [お支払い方法]では、クレジットカード、PayPal、ビットコインのいずれかを選択する。&amp;lt;br&amp;gt;なお、28ヶ月および6ヶ月プランでは45日間の返金保証があり、1ヶ月プランでは14日間の返金保証がある。&lt;br /&gt;
# Eメールアドレスを入力して、[購入を完了]または[〜へ進む]を選択する。&lt;br /&gt;
# 支払いが完了した後、遷移先のページにユーザ名とパスワードが表示される。&amp;lt;br&amp;gt;入力したEメールアドレスがアカウントのIDとして登録される。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;また、Eメールアドレスにサブスクリプションを回復する時のトークンが送付されるので、大切に保管すること。&amp;lt;/u&amp;gt;&lt;br /&gt;
# アカウントのパスワードの変更画面が自動的に立ち上がるため、任意のパスワードに変更する。&amp;lt;br&amp;gt;パスワードにおいて、&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;の文字は使用できない。&lt;br /&gt;
# 自動的にアカウントページに遷移するので、[アプリをダウンロード]を選択して、CyberGhost VPNソフトウェアをダウンロードする。&amp;lt;br&amp;gt;CyberGhost VPNソフトウェアは、Windows、macOS、Linux、Android、iOSに対応している。&amp;lt;br&amp;gt;また、ブラウザの拡張機能はChrome、Firefoxが対応している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhostでは、1ヶ月1,790円、6ヶ月1,000円/月(合計6,000円)、28ヶ月290円/月(初回合計8,120円)の料金である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
なお、28ヶ月および6ヶ月プランでは45日間の返金保証があり、1ヶ月プランでは14日間の返金保証がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
Cyber Ghost VPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                 # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm-openvpn                            # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの使用手順 : CyberGhost CLIを使用する場合 ==&lt;br /&gt;
==== CyberGhost CLIのインストール ====&lt;br /&gt;
&amp;lt;u&amp;gt;CyberGhost CLIで必要なのものは、CyberGhostのユーザ名とパスワードのみである。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右上にある[マイアカウント]からログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
# アカウントページ左にある[Donwload Hub] - アカウントページ右にある[CyberGhost VPN for Linux] - [Configure]を選択する。&lt;br /&gt;
# [SERVER DISTRIBUTION]プルダウンは[Fedora 32]を選択して、[Download App]を選択する。&lt;br /&gt;
# CyberGhost CLIをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍して、必要であれば、任意の名前に変更する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip cyberghostvpn-&amp;lt;ディストリビューション名&amp;gt;-&amp;lt;バージョン&amp;gt;.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;mv cyberghostvpn-&amp;lt;ディストリビューション名&amp;gt;-&amp;lt;バージョン&amp;gt; CyberGhost&amp;lt;/code&amp;gt;&lt;br /&gt;
# CyberGhost CLIをインストールする。&lt;br /&gt;
## &amp;lt;code&amp;gt;sudo ./install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
## SUSEを使用する場合、CyberGhost CLIの実行に必要な依存関係のライブラリは、事前にインストールしている必要がある。&amp;lt;br&amp;gt;そのため、Python 3とOpenVPNのインストールを求められたら、[N]を入力する。&lt;br /&gt;
## CyberGhost CLIのインストール時に、CyberGhostの&amp;lt;u&amp;gt;ユーザ名&amp;lt;/u&amp;gt;および&amp;lt;u&amp;gt;パスワード&amp;lt;/u&amp;gt;が求められるため、それぞれ入力する。&lt;br /&gt;
# インストールが正常に完了すると、&amp;lt;u&amp;gt;&amp;quot;Install completed ...&amp;quot;&amp;lt;/u&amp;gt;というメッセージが表示される。&lt;br /&gt;
# &amp;lt;code&amp;gt;cyberghostvpn&amp;lt;/code&amp;gt;コマンドを実行することにより、使用可能なコマンドのリストが表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CyberGhost CLIのコマンド ====&lt;br /&gt;
接続先の全ての国(国のコード)を確認するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --traffic --country-code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続先の国の都市(都市のコード)を確認するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --traffic --country-code &amp;lt;国のコード&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
1つの都市で利用可能なサーバ(接続先のサーバ名)のリストを取得するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --traffic --country-code &amp;lt;国のコード&amp;gt; --city &amp;quot;&amp;lt;都市のコード&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続先の国を選択するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --country-code &amp;lt;国のコード&amp;gt;&lt;br /&gt;
 例. cyberghostvpn --country-code DE&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
接続先の国の都市を選択するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --country-code &amp;lt;国のコード&amp;gt; --city &amp;quot;&amp;lt;都市のコード&amp;gt;&amp;quot;&lt;br /&gt;
 例. cyberghostvpn --country-code DE --city frankfurt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CyberGhost VPNに接続するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトでは、OpenVPNプロトコルを使用して接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
接続に成功すると、&amp;lt;u&amp;gt;&amp;quot;VPN connection established&amp;quot;&amp;lt;/u&amp;gt;というメッセージが表示される。&lt;br /&gt;
 sudo cyberghostvpn --connect&lt;br /&gt;
 # または&lt;br /&gt;
 sudo cyberghostvpn --country-code &amp;lt;国のコード&amp;gt; --city &amp;quot;&amp;lt;都市のコード&amp;gt;&amp;quot; --connect&lt;br /&gt;
 例. sudo cyberghostvpn --country-code DE --city frankfurt --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、接続先のサーバ名を知っている場合、特定のサーバに直接接続することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
接続に成功すると、&amp;lt;u&amp;gt;&amp;quot;VPN connection established&amp;quot;&amp;lt;/u&amp;gt;というメッセージが表示される。&lt;br /&gt;
 sudo cyberghostvpn --server &amp;lt;サーバ名&amp;gt; --connect&lt;br /&gt;
 例. sudo cyberghostvpn --server frankfurt-s402-i01 --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続が有効かどうかを確認するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続を終了するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --stop &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPアドレスが匿名かつプライベートなCyberGhostに変更されたことを確認する場合は、http://www.iplocation.net/ にアクセスする。&amp;lt;br&amp;gt;&lt;br /&gt;
IPロケーションオンラインサービスにアクセスする前に、Webブラウザのキャッシュとクッキーを削除することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== CyberGhost CLIのアンインストール ====&lt;br /&gt;
CyberGhost CLIをアンインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --uninstall&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ストリーミングを視聴する場合 ====&lt;br /&gt;
CyberGhostでは、ストリーミングに最適化されたVPNサーバを使用して、&amp;lt;br&amp;gt;&lt;br /&gt;
Netflix、Amazonプライムビデオ、BBC iPlayer等の地域制限のあるコンテンツにアクセスすることが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらのサービスのために、最適化されたVPNサーバの1つに接続する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
これは、CyberGhost CLIにストリーミング向けVPNサーバを経由して接続するよう指示することにより行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、サポートされているストリーミングサービス(Netflix DE、Hulu、Youtube等)のリストと国名(国のコード)を取得する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --streaming --country-code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、サーバータイプ&amp;quot;Streaming&amp;quot;、サービス&amp;quot;Netflix DE&amp;quot;、国(国コード)&amp;quot;DE&amp;quot;を指定して、VPN接続している。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --streaming &#039;Netflix DE&#039; --country-code DE --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;例えば、フランスで利用可能な全てのストリーミングサービスを確認する場合は、以下のコマンドを実行する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --streaming --country-code FR&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;対応するフランスのストリーミングサービスが全て表示されるので、希望するストリーミングサービスに接続する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;以下の例では、Canal+(フランスの有料民間テレビ局)向けに最適化されたVPNサーバに接続している。&amp;lt;/u&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --streaming &#039;Canal+&#039; --country-code FR --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Torrentを使用する場合 ====&lt;br /&gt;
CyberGhost CLIは、安全にTorrentを使用できる幅広いP2P Torrentサーバを提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;シードキューにあるTorrentは、メイン接続にトラフィックを発生させて追跡される可能性があるため、VPNサーバに接続するまではTorrentクライアントを起動しないこと。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
まず、P2Pファイル共有をサポートしている国のリストを取得する。&lt;br /&gt;
（各国の様々な法律や政策のため、全ての国やサーバがP2Pファイル共有をサポートしているわけではない）&lt;br /&gt;
 cyberghostvpn --torrent --country-code&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
P2Pファイル共有に対応している国のリストを確認した後、接続先の国のコードを入力してVPNサーバに接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo cyberghostvpn --torrent --country-code &amp;lt;国のコード&amp;gt; --connect&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPNサーバに接続されていることを確認するには、以下のコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
 cyberghostvpn --status&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPアドレスが匿名かつプライベートなCyberGhostに変更されたことを確認する場合は、http://www.iplocation.net/ にアクセスする。&amp;lt;br&amp;gt;&lt;br /&gt;
IPロケーションオンラインサービスにアクセスする前に、Webブラウザのキャッシュとクッキーを削除することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
最後に、Torrentクライアントを起動する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの使用手順 : NetworkManagerを使用する場合 ==&lt;br /&gt;
Cyber Ghost(OpenVPN)を設定するには、以下の手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOME / KDE 共通&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右上にある[マイアカウント]からログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
# アカウントページ左にある[VPN] - アカウントページ右にある[Manage Devices] - [Configure Device]を選択する。&lt;br /&gt;
# 使用するプロトコル（OpenVPN等）、使用するサーバがある国名、サーバグループを選択する。&lt;br /&gt;
#* プロトコル&lt;br /&gt;
#*: OpenVPN等を選択する。&lt;br /&gt;
#* サーバグループ&lt;br /&gt;
#*: サーバグループとOpenVPNプロトコル（UDPまたはTCP）を選択する。&lt;br /&gt;
#*: UDPは、TCPより高速に通信できるが、場合によってはダウンロード等の処理において、中断されることがある。&lt;br /&gt;
#*: TCPは、UDPよりも安定した接続が可能であるが、若干通信速度が遅くなる。突然の切断等、接続に関する問題が頻繁に発生する場合は、TCPを選択する。&lt;br /&gt;
#* 使用するサーバがある国名&lt;br /&gt;
#*: ネイティブプロトコルの接続は、1つのサーバーとしか使用できないため、接続したい国を選択する。選択した該当国内のサーバは、CyberGhostにより自動的に選択される。&lt;br /&gt;
# [Save Configuration]を選択する。&lt;br /&gt;
# 上記の設定で生成されたOpenVPNの認証情報を見るには、[View Configuration]を選択する。&lt;br /&gt;
# [Save Configuration]を選択した後、接続認証情報が生成されて、新しいページに遷移する。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;※重要 : この時、以下に示す情報を保存すること。(ユーザ名とパスワードは、後で入力を求められる)&amp;lt;/u&amp;gt;&lt;br /&gt;
#* サーバグループ&lt;br /&gt;
#*: 接続先の国にあるサーバのアドレスである。(例. 12345-1-ca.cg-dialup.net)&lt;br /&gt;
#*: このアドレスは、上記で選択した国ごとに変わる。&lt;br /&gt;
#* ユーザ名&lt;br /&gt;
#*: このプロトコルのみで生成されるユーザ名である。&lt;br /&gt;
#*: これは、CyberGhostのアカウントのユーザ名ではなく、手動設定によりCyberGhostのサーバと認証するためにのみ使用される。&lt;br /&gt;
#* パスワード (表示するには、[Show Password]オプションにチェックを入力する必要がある)&lt;br /&gt;
#*: プロトコルを使用するためにのみ生成されたパスワードである。&lt;br /&gt;
#*: これは、CyberGhostのアカウントのパスワードではなく、手動設定によりCyberGhostのサーバで認証するためにのみ使用される。&lt;br /&gt;
#* 事前共有キー&lt;br /&gt;
# [Download Configuration]を選択して、OpenVPNの設定ファイルをダウンロードする。&amp;lt;br&amp;gt;ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip config.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルは、以下に示すファイルを含む。&amp;lt;br&amp;gt;接続先の国を変更する場合、再度、アカウントページで使用する場所を設定し直して、新しいOpenVPNの設定ファイルをダウンロードする必要がある。&lt;br /&gt;
#* ca.crt&lt;br /&gt;
#*: 認証局の証明書&lt;br /&gt;
#* client.crt&lt;br /&gt;
#*: ユーザ証明書ファイル&lt;br /&gt;
#* client.key&lt;br /&gt;
#*: 秘密鍵ファイル&lt;br /&gt;
#* openvpn.ovpn&lt;br /&gt;
#*: OpenVPNの設定ファイル&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&amp;lt;/code&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&amp;lt;br&amp;gt;ここで、OpenVPNファイルの命名形式は、国-場所-サーバアドレスである。&amp;lt;br&amp;gt;例. UnitedStates.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるパスワードを入力する。&lt;br /&gt;
#*: ［Store the password for all users（すべてのユーザーのパスワードを保存する）]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.crt&amp;lt;/code&amp;gt;とラベル付けされていることを確認する。&lt;br /&gt;
#* [ユーザ証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;client.crt&amp;lt;/code&amp;gt;とラベル付けされていることを確認する。&lt;br /&gt;
#* ユーザーキーパスワード&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるユーザーキーパスワードを入力する。&lt;br /&gt;
# [VPNの追加]画面にある[IPv6]タブを選択して、[無効]ボタンを選択する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で追加したCyberGhostのOpenVPN設定が作成されて、CyberGhostのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&amp;lt;br&amp;gt;これは、[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&lt;br /&gt;
# IPアドレスが匿名かつプライベートなCyberGhostに変更されたことを確認する場合は、http://www.iplocation.net/ にアクセスする。&amp;lt;br&amp;gt;IPロケーションオンラインサービスにアクセスする前に、Webブラウザのキャッシュとクッキーを削除することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&amp;lt;/code&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&amp;lt;br&amp;gt;例. UnitedStates.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にCyberGhostのVPN接続が表示されるので、CyberGhostのVPN接続を選択する。&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成されるパスワードを入力する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.crt&amp;lt;/code&amp;gt;ファイルのパスが表示されていることを確認する。&lt;br /&gt;
#* [クライアント証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;client.crt&amp;lt;/code&amp;gt;ファイルのパスが表示されていることを確認する。&lt;br /&gt;
#* 秘密鍵のパスワード&lt;br /&gt;
#*: 上記で保存した該当プロトコルのみで生成される秘密鍵のパスワードを入力する。&lt;br /&gt;
#* 画面右のプルダウン&lt;br /&gt;
#*: ［すべてのユーザーのパスワードを保存する]を選択する。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、CyberGhostのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの解約 ==&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右上にある[マイアカウント]からログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
# アカウントページ左にある[ご契約] - アカウントページ右にある[自動更新をオフにする]を選択する。&lt;br /&gt;
# 自動更新をしない場合、次回の支払い期限での契約が更新されないため、実質解約となる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostの返金 ==&lt;br /&gt;
返金において、申し込みから14日以内または45日以内にする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右下にある[ヘルプ]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
# 検索窓が表示されるので、&amp;lt;u&amp;gt;refund&amp;lt;/u&amp;gt;と入力して検索する。&lt;br /&gt;
# 名前、Eメールアドレス、言語、メッセージを入力して、検索窓の右下にある[チャットを開始]を選択する。&amp;lt;br&amp;gt;なお、メッセージ欄には、&amp;lt;u&amp;gt;&amp;quot;I would like to receive refund&amp;quot;&amp;lt;/u&amp;gt;のように入力する。&lt;br /&gt;
# チャットが開始されて、アカウントの確認のために&amp;lt;u&amp;gt;Reference Number&amp;lt;/u&amp;gt;または&amp;lt;u&amp;gt;Order ID&amp;lt;/u&amp;gt;が要求される。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt;Reference Number&amp;lt;/u&amp;gt;または&amp;lt;u&amp;gt;Order ID&amp;lt;/u&amp;gt;は、CyberGhostの契約(または解約)時に受信したEメールに記載されている。&lt;br /&gt;
# チャットにて、VPNを解約する理由等を質問されるため、&amp;lt;u&amp;gt;&amp;quot;I don&#039;t need to use VPN anymore.&amp;quot;&amp;lt;/u&amp;gt;等と入力する。&lt;br /&gt;
# チャットを終了するには、チャット画面下部にある[送信]を選択する。&lt;br /&gt;
# 翌日以降に返金されるはずである。&amp;lt;br&amp;gt;後日、正常に返金されているかどうかを確認すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CyberGhostのアカウントの削除 ==&lt;br /&gt;
返金期間内の場合、アカウントの削除は返金処理をした後に行うこと。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.cyberghostvpn.com/ja_JP/ CyberGhostの公式Webサイト]にアクセスして、ページ右上にある[マイアカウント]からログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
# アカウントページ左にある[設定] - アカウントページ右下にある[マイアカウントを削除]を選択する。&lt;br /&gt;
# パスワードまたはPUKを入力して、[保存]を選択する。&lt;br /&gt;
# アカウントが削除される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PIA_VPN&amp;diff=14589</id>
		<title>VPN - PIA VPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PIA_VPN&amp;diff=14589"/>
		<updated>2026-03-24T11:36:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PIA VPN(Private Internet Access VPN)は、91か国に約35,000台以上のサーバを所有しており、各サーバはRAMベースであるため、安心して利用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
他のVPNサービスのサーバの一部はレンタルサーバである場合が多いが、全てを所有することにより、サーバを危険にさらす可能性のある仲介者を排除することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、RAMベースのサーバは、全ての匿名化されたデータを、スイッチを押すように簡単に削除することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
実際に、IP / DNSリーク保護のおかげで、20台の別々のサーバでのテスト中、ユーザのIPが明らかになることはなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、ポートフォワーディングや、難読化を伴う2重VPN接続によるSOCKS5およびShadowsocksプロキシへのアクセス等、安全にTorrentを実行するためのいくつかの機能も備えている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
小さな問題として、アメリカに拠点を置いていることである。&amp;lt;br&amp;gt;&lt;br /&gt;
アメリカは、侵襲的なプライバシー法を持っていることで知られており、5アイズ、9アイズ、14アイズアライアンスの一員でもある。&amp;lt;br&amp;gt;&lt;br /&gt;
このため、一部のプライバシー擁護派は神経質になっている。&amp;lt;br&amp;gt;&lt;br /&gt;
また、理論的には、FBIやNSAのような強引な機関は、裁判所命令を使って、疑わしいと思われるアメリカのユーザを監視することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、米国にはデータ保持に関する法律がないため、ヨーロッパでよくあるように、PIAには情報を一定期間保存する義務はない。&amp;lt;br&amp;gt;&lt;br /&gt;
また、PIAは何年も前から存在しており、そのプライバシーポリシーは常に守られているため、プライバシーの面ではPIAを推奨することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIA VPNは、個人を特定できるログを一切保持しないことを約束している。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、2016年にFBIが加入者の1人のデータを求めたが共有できるものは何も無かった。&amp;lt;br&amp;gt;&lt;br /&gt;
別の例では、2016年7月にロシア政府がPIA VPNのロシア国内サーバの一部を押収したが、ログが存在しなかったため全く何も見つからなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
この事件を受けて、PIAはロシアのゲートウェイを直ちに廃止し、ロシア領内でのサーバ運営を終了した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linux向けのPIA VPNソフトウェアは、ネイティブアプリとしてUbuntu (64ビット)、Linux Mint、Debianに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、OpenVPNによる手動セットアップにより、Fedora、Arch、Slackware等のほぼ全てのLinuxディストリビューションで利用可能であり、SUSEにおいても問題なく使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIAは、WireGuard (推奨)、OpenVPN、IPSec/IKEv2の3つのVPNプロトコルに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
また、SOCKS5プロキシも備えている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
料金は、1ヶ月1,304円、1年間4,359円(更新時は5,230円/年)、3年間 + 4ヶ月ボーナスで8,152円である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIA VPNの特徴を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: インターネットトラフィックに関するデータを記録または保存することはない。&lt;br /&gt;
*: これについては、裁判所の記録によって実証されている。&lt;br /&gt;
* 強力な暗号化機能&lt;br /&gt;
*: OpenVPNやWireGuard等の信頼できるオープンソースのVPNプロトコルで、個人データの安全を保つ。&lt;br /&gt;
* 広告トラッカーやマルウェアに対する保護機能&lt;br /&gt;
*: PIAのMACEは、DNSベースの広告ブロッカーであり、オンライン広告、トラッカー、マルウェアからユーザを保護する。&lt;br /&gt;
* PIAのスプリットトンネリング&lt;br /&gt;
*: VPNトンネルを自動的に使用またはバイパスするように個々のソフトウェアまたはウェブサイトのカスタムルールを設定することができる。&lt;br /&gt;
* データ漏洩の防止&lt;br /&gt;
*: キルスイッチがあるため、VPN接続が突然切断された場合でも、ファイアウォールベースのキルスイッチ機能により、データが漏洩することがない。&lt;br /&gt;
* 仮想通貨での決済&lt;br /&gt;
*: 仮想通貨や第三者のギフトカードで決済可能であるため、匿名で決済でき、身元情報をさらに保護することができる。&lt;br /&gt;
* 速度&lt;br /&gt;
*: 速度テストではあまり良い結果を出していないが、他のVPNと比較して上位にランクインしている。&lt;br /&gt;
*: ただし、遠く離れたVPNサーバを使用する時に速度低下を示すことがある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの検証 ==&lt;br /&gt;
PIA VPNは、個人を特定できるログを一切保持しないノーログポリシーを掲げている。&amp;lt;br&amp;gt;&lt;br /&gt;
このポリシーは、法廷での立証、第三者監査、透明性レポートの3つの観点から検証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 記録しないデータ ====&lt;br /&gt;
PIAが記録しないデータを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ユーザのIPアドレス&lt;br /&gt;
* 接続したVPNサーバ&lt;br /&gt;
* 訪問したWebサイトとドメイン&lt;br /&gt;
* 使用したアプリとオンラインサービス&lt;br /&gt;
* 検索クエリ&lt;br /&gt;
* DNSリクエスト&lt;br /&gt;
* VPN帯域幅使用量&lt;br /&gt;
* セッションタイムスタンプ (接続 / 切断時間)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIAが保有するのは、サインアップに使用したメールアドレス、課金用の決済情報、ZIP code (米国の税務目的、暗号通貨での支払いで回避可能)のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、サーバはRAM専用インフラストラクチャで実行され、ハードドライブを持たない。&amp;lt;br&amp;gt;&lt;br /&gt;
メモリはシステム再起動時にクリアされるため、ログは永続的に保存されない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、VPNサーバ上の全てのサービスに対してエラーログとデバッグ情報が無効化されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 法廷での立証事例 ====&lt;br /&gt;
PIAのノーログポリシーは、複数の法廷事例で実証されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2016年: FBI爆弾脅迫事件 (Preston McWaters事件) =====&lt;br /&gt;
2016年3月、FBIが偽の爆弾脅迫事件に関連して、PIAに召喚状を発行した。&amp;lt;br&amp;gt;&lt;br /&gt;
PIAは東海岸からのIPアドレスクラスタのみを報告でき、容疑者特定に繋がる情報は提供できなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2018年: メディアサイトハッキング事件 (Ross M. Colby事件) =====&lt;br /&gt;
2015年7月から9月にかけて、PIA IPアドレスを使用してサンフランシスコのメディアサイトがハッキングされた事件について、2018年5月にサンノゼの連邦裁判所で審理が行われた。&amp;lt;br&amp;gt;&lt;br /&gt;
PIAは容疑者のIPアドレスを違法活動と結び付けることができず、ノーログポリシーが法廷で再び立証された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2016年: ロシア政府によるサーバ押収 =====&lt;br /&gt;
2016年7月、ロシアのデータ保持法に関連して、ロシア当局がPIAのロシア国内サーバの一部を予告なく押収した。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、PIAがユーザトラフィックやセッションデータをログ記録していなかったため、当局は何も取得できなかった。&amp;lt;br&amp;gt;&lt;br /&gt;
PIAはこの事件を受けて、ロシアのゲートウェイを直ちに廃止し、以降ロシア領内でのサーバ運営を行っていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査 (Deloitte) ====&lt;br /&gt;
PIAのノーログポリシーは、Big Four監査法人の1つであるDeloitte Audit Romaniaにより、複数回の独立監査が実施されている。&amp;lt;br&amp;gt;&lt;br /&gt;
監査は国際監査・保証基準委員会 (IAASB) が確立したISAE 3000 (Revised) に準拠して行われている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Deloitte独立監査の実績&lt;br /&gt;
! 時期 !! 監査結果&lt;br /&gt;
|-&lt;br /&gt;
| 2022年6月 || サーバ構成は内部プライバシーポリシーに適合、ユーザ識別やアクティビティ特定は設計されていないことを確認&lt;br /&gt;
|-&lt;br /&gt;
| 2024年4月 || VPNサーバインフラストラクチャとIT管理システムの調査でゼロログを再確認&lt;br /&gt;
|-&lt;br /&gt;
| 2025年Q4 || 第三回監査完了、プライバシーへのコミットメントを再確認&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性レポート (2025年) ====&lt;br /&gt;
PIAは四半期ごとに透明性レポートを公開しており、政府からの情報開示要請とその対応結果を開示している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 2025年の政府情報開示要請&lt;br /&gt;
! 四半期 !! 要請件数 !! ユーザデータ開示&lt;br /&gt;
|-&lt;br /&gt;
| Q2 2025 || 46件 || ゼロ&lt;br /&gt;
|-&lt;br /&gt;
| Q3 2025 || 19件 || ゼロ&lt;br /&gt;
|-&lt;br /&gt;
| Q4 2025 || 30件 || ゼロ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全案件において、PIAのシステムは活動ログを保持していないため、提供できる情報がないとの回答が行われている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Kape Technologies買収に関する懸念 ====&lt;br /&gt;
2019年11月、PIAはKape Technologies (旧Crossrider、英国・イスラエル系企業) に約9,550万ドルで買収された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Kape Technologies (旧Crossrider)には、以下の懸念事項が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザハイジャッキングおよび潜在的に望ましくないソフトウェア (PUP)の配布に関与していた過去がある。&lt;br /&gt;
* 創業者のKoby MenachemiはUnit 8200 (イスラエルのNSAに相当する機関) の出身&lt;br /&gt;
* 主要投資家のTeddy SagiはPanama Papersに記載されている。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、買収後もPIAのノーログポリシーは維持されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
買収時に、PIAとKape Technologiesは8つの法的拘束力を持つ原則に合意しており、プライバシーとセキュリティが最優先事項であることが公言されている。&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、買収後の2022年、2024年、2025年のDeloitte監査で、ノーログポリシーの遵守が繰り返し確認されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PIA VPNの契約 ==&lt;br /&gt;
PIA VPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://jpn.privateinternetaccess.com/download/linux-vpn PIA VPNの公式Webサイト]へアクセスして、ページ右上にある[PIA VPNを入手]を選択する。&lt;br /&gt;
# VPNのプランを選択する。&lt;br /&gt;
# 支払いオプションでは、クレジットカード、PayPal、仮想通貨のいずれかを選択する。&lt;br /&gt;
# [今すぐ支払う]を選択する。&lt;br /&gt;
# 支払いが完了した後、PIAアカウントを作成するためのログイン情報（後に変更可能）と、VPNソフトウェアをダウンロードするためのリンクが記載されたメールが届く。&lt;br /&gt;
# PIAアカウントを作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PIA VPNでは、1ヶ月1,304円、1年間4,359円(更新時は5,230円/年)、3年間+4ヶ月ボーナスで8,152円の料金である。(2026年3月現在)&amp;lt;br&amp;gt;&lt;br /&gt;
全てのプランに30日間の返金保証が付帯している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PIA VPNソフトウェアのインストール ==&lt;br /&gt;
PIA VPNを設定するには、以下の手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://jpn.privateinternetaccess.com/download/linux-vpn PIA VPNの公式Webサイト]から、VPNソフトウェアをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルに実行権限を付加する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod u+x pia-linux-&amp;lt;バージョン&amp;gt;.run&amp;lt;/code&amp;gt;&lt;br /&gt;
# VPNソフトウェアをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;./pia-linux-&amp;lt;バージョン&amp;gt;.run --target &amp;lt;VPNソフトウェアのインストールディレクトリ&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# インストール完了後、VPNソフトウェアのログイン画面が表示されるので、ログインを選択して、サインアップ時に使用したEメールアドレスへ送信されたログイン情報を入力する。&lt;br /&gt;
# ログイン後、認証情報を保存する必要がある。&amp;lt;br&amp;gt;初期状態では、メイン画面の電源アイコンが黄色になっており、接続が切断されていることを意味する。&lt;br /&gt;
# 電源アイコンをクリックして接続を確立する。&amp;lt;br&amp;gt;接続を確立するのに時間が掛かることがあることに注意する。&amp;lt;br&amp;gt;もし、接続できない場合は、[https://www.privateinternetaccess.com/helpdesk/kb/articles/i-have-trouble-connecting-or-the-connection-drops-frequently-changing-ports-5 公式Webサイトにある接続に関する問題の記事]を参照すること。&lt;br /&gt;
# 正常に接続が確立する時、電源アイコンが緑色に変わり、メイン画面にVPNサーバのIPが表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPNソフトウェアの設定について詳しく知りたい場合は、[https://www.privateinternetaccess.com/helpdesk/kb/articles/understanding-basic-settings-on-the-pia-client Understanding the PIA App&#039;s Basic Settings]および[https://www.privateinternetaccess.com/helpdesk/kb/articles/understanding-advanced-settings-on-the-pia-client Understanding the PIA App&#039;s Advanced Settings]を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;PIA VPNは、サードパーティ製のサポート対象外のハードウェアやOSを使用しているため、VPN over Torはサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
よりセキュリティを強固にする場合、最も簡単な方法は、PIA VPNサーバに接続した状態で、PORTAL、Whonix、TAILSのいずれかを使用して設定することである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [[VPN - PIA VPN#PIA VPNソフトウェアのインストール|&amp;quot;PIA VPNソフトウェアのインストール&amp;quot;]]セクションを参照して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PureVPN&amp;diff=14588</id>
		<title>VPN - PureVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PureVPN&amp;diff=14588"/>
		<updated>2026-03-24T11:18:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PureVPNは、イギリス領バージン諸島 (BVI) に本社を置くVPNサービスプロバイダーである。&amp;lt;br&amp;gt;&lt;br /&gt;
元々は香港を拠点としていたが、香港の法制度の変化に伴い、2021年後半から2024年1月にかけてBVIへ本社を移転した。&amp;lt;br&amp;gt;&lt;br /&gt;
BVIはファイブアイズ等の情報共有同盟外であり、ユーザデータの強制保管義務がない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、2025年現在、PureVPNは一部のサーバにおいてOpenVPNプロトコル経由でQuantum耐性暗号化 (ポスト量子暗号) に対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
対応地域は、米国、英国、オーストラリア、ドイツ、カナダ、オランダの6か所である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの信頼性 ==&lt;br /&gt;
PureVPNはノーログVPNを謳っているが、過去に捜査機関へユーザ情報を提供した事例が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
現在はシステムアーキテクチャの改善と第三者監査により信頼性の向上を図っているが、過去の事例を踏まえた上で利用を検討する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2017年 FBI協力事件 ====&lt;br /&gt;
2017年、サイバーストーキング事件 (Ryan S. Lin被告) の捜査において、PureVPNはFBIにユーザ情報を提供した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 事件の概要&lt;br /&gt;
*: 被告は元ルームメイトの女性に対して、オンラインアカウントへのハッキング、個人写真や医療情報の窃取および数百人への配布等のサイバーストーキング行為を行った。&lt;br /&gt;
* PureVPNが提供した情報&lt;br /&gt;
*: ユーザのIPアドレスおよび接続タイムスタンプ&lt;br /&gt;
*: FBIの報告書では「PureVPNが同じ顧客が2つの異なる発信元IPアドレスからサービスにアクセスしたことを確認できた」と記載されている。&lt;br /&gt;
* 問題点&lt;br /&gt;
*: PureVPNは当時「NO browsing logs, browsing habits or anything else was, or ever will be shared」と主張していた。&lt;br /&gt;
*: しかし、実際にはIPアドレスと接続タイムスタンプを記録・提供しており、「ノーログポリシーの虚偽」として大きな批判を受けた。&lt;br /&gt;
*: PureVPNは「ブラウジングログ」と「接続ログ」は別であると弁明したが、接続ログだけでも個人の特定に十分な情報であった。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 現在のノーログポリシー ====&lt;br /&gt;
2017年の事件以降、PureVPNはノーログポリシーを改定し、現在は以下の項目について記録していないと公式に主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウジングアクティビティ&lt;br /&gt;
* 接続ログ&lt;br /&gt;
* VPNに割り当てられたIPレコード&lt;br /&gt;
* ユーザの元のIP&lt;br /&gt;
* 接続タイムスタンプ&lt;br /&gt;
* ブラウジング履歴および訪問サイト&lt;br /&gt;
* アウトバウンドトラフィック&lt;br /&gt;
* ユーザが生成したDNSクエリ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の実績 ====&lt;br /&gt;
PureVPNは複数の独立したセキュリティ監査機関によりノーログポリシーの検証を受けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ノーログポリシー監査実績&lt;br /&gt;
! 監査機関 !! 時期 !! 結果&lt;br /&gt;
|-&lt;br /&gt;
| Altius IT || 2019年 || 合格&lt;br /&gt;
|-&lt;br /&gt;
| Cure53 || 2020年, 2023年 || 合格&lt;br /&gt;
|-&lt;br /&gt;
| KPMG || 2021年以降 (最終: 2023年4月) || 合格&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Altius ITの監査では、&amp;lt;u&amp;gt;特定の個人を識別したり、PureVPNサービス使用時の当該個人のアクティビティを識別できるシステム構成またはシステム/サービスログファイルの証拠は見つからなかった&amp;lt;/u&amp;gt; と結論付けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、PureVPNは常時監査ポリシー (Always-On Audit Policy) を採用しており、大手監査機関に事前通告なしでいつでも監査を実施する権限を付与している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性レポート (2025年上半期) ====&lt;br /&gt;
PureVPNが公開している2025年上半期 (1月〜6月) の透明性レポートの概要を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 法執行機関からのデータリクエスト : 43,358件 (前年同期比100%増加)&lt;br /&gt;
* 提供したユーザデータ : 0件&lt;br /&gt;
* 内訳&lt;br /&gt;
*: 法廷命令 (court orders) : 8件&lt;br /&gt;
*: 緊急開示要求 (emergency disclosure requests) : 4件&lt;br /&gt;
*: サブポエナ (subpoenas) : 2件&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNはシステムアーキテクチャの特性により、全てのデータリクエストへの対応が物理的に不可能であると主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 過去のセキュリティ脆弱性 ====&lt;br /&gt;
ノーログポリシーとは別に、PureVPNクライアントにおいて以下のセキュリティ脆弱性が報告されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2023年 : Linuxクライアントにおいて、DNSリーク脆弱性が発見された。(パッチ適用済み)&lt;br /&gt;
* 2024年 : Linuxクライアントにおいて、リモートコード実行 (RCE) 脆弱性が発見された。(パッチ適用済み)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 総合的な評価 ====&lt;br /&gt;
* 信頼できる側面&lt;br /&gt;
*: 複数の独立した第三者監査機関がノーログポリシーを検証済み&lt;br /&gt;
*: 4万件超のデータリクエストに対してゼロ開示を実現&lt;br /&gt;
*: 常時監査ポリシーおよびシステムアーキテクチャレベルでデータ保有を不可能にする設計への移行&lt;br /&gt;
* 懸念される側面&lt;br /&gt;
*: 2017年にノーログと謳いながらFBIへ情報提供を行った前科がある&lt;br /&gt;
*: Linuxクライアントにおいて重大なセキュリティ脆弱性が複数回報告されている&lt;br /&gt;
*: プライバシーを最重要視するユーザには、過去に信頼違反のないVPN (MullvadやProtonVPN等) を推奨するセキュリティ専門家が多い&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 契約手順 ==&lt;br /&gt;
PureVPNの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.purevpn.com/ PureVPNの公式Webサイト]へアクセスして、ページ上部にある[Get PureVPN]を選択する。&lt;br /&gt;
# [注文ページ]では、プラン層を選択する。&lt;br /&gt;
#* Standard&lt;br /&gt;
#*: VPN機能のみ&lt;br /&gt;
#* Plus&lt;br /&gt;
#*: VPN + パスワードマネージャー + クラウドストレージ&lt;br /&gt;
#* Max&lt;br /&gt;
#*: Plus機能 + パーソナルプライバシーマネージャー&lt;br /&gt;
# 契約期間を選択する。(1ヶ月、1年、2年、5年)&lt;br /&gt;
# メールアドレスを入力して、パスワードを設定する。&lt;br /&gt;
# 支払い方法を選択する。(クレジットカード、PayPal、Google Pay、暗号通貨)&lt;br /&gt;
# 購入内容を確認して、支払いを完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPN Standardプランの料金は、2年プランで合計54.95ドル (平均2.03ドル/月) である。(2026年時点)&amp;lt;br&amp;gt;&lt;br /&gt;
1ヶ月プランでは、11.95ドル/月である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
全てのプランに31日間の返金保証が付帯している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
PureVPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm5-openvpn                          # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PureVPN GUIの使用 ==&lt;br /&gt;
PureVPN GUIは、debパッケージまたはSnapストア経由でインストールすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
debパッケージは、Debian / Ubuntuに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
Snapストアは、Ubuntu、Debian、Fedora、Arch Linux、Manjaro、Kali Linux、RHEL 7.6以降等の多くのLinuxディストリビューションに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== debパッケージを使用する場合 ====&lt;br /&gt;
PureVPN GUIの実行に必要なライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # Debian / Ubuntu&lt;br /&gt;
 sudo apt install libgtk-3-0 libnotify4 libnss3 libxss1 libxtst6                    \&lt;br /&gt;
                  xdg-utils libatspi2.0-0 libuuid1 libsecret-1-0 libappindicator3-1 \&lt;br /&gt;
                  wireguard-tools&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[PureVPNの公式Webサイト https://www.purevpn.com/download/linux-vpn]にアクセスして、PureVPNをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
ダウンロードしたファイルをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo apt install ./PureVPN_amd64.deb&lt;br /&gt;
 # または&lt;br /&gt;
 sudo dpkg -i PureVPN_amd64.deb&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Snapストアを使用する場合 ====&lt;br /&gt;
Snapストア経由でPureVPN GUIをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo snap install purevpn&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPN GUIは、以下に示すディレクトリにインストールされる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Systemdサービスユニット&lt;br /&gt;
*: /etc/systemd/system/pured.service&lt;br /&gt;
* PureVPN実行バイナリファイル&lt;br /&gt;
*: /opt/PureVPNディレクトリ&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PureVPN CLIの使用 ==&lt;br /&gt;
PureVPN CLIを使用して、オンラインのプライバシーとセキュリティを完全に制御することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
CLIは、Ubuntu、Debian、Mint等のLinuxディストリビューションに対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PureVPN CLIのインストール ====&lt;br /&gt;
PureVPN CLIをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 curl https://apps.purevpn-tools.com/cross-platform/linux-cli/production/cli-install.sh | sudo bash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストールが完了した後、PureVPN CLIの環境変数&amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 export PATH=&amp;quot;/etc/pure-linux-cli:/etc/pure-linux-cli:$PATH&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PureVPNへログイン ====&lt;br /&gt;
 purevpn-cli --login&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -i&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PureVPNのログアウト ====&lt;br /&gt;
PureVPN CLIを使用して、ログアウトする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ログアウトする前に、PureVPNが切断されていることを確認する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --logout&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -o&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 接続 ====&lt;br /&gt;
任意のロケーションに接続する場合は、&amp;lt;code&amp;gt;--connect&amp;lt;/code&amp;gt;オプションまたは&amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt;オプションを付加して国名を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 例: USに接続する場合&lt;br /&gt;
 &lt;br /&gt;
 purevpn-cli --connect &amp;quot;United States&amp;quot;&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -c &amp;quot;US&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
推奨サーバを使用する場合は、&amp;lt;code&amp;gt;--recommended&amp;lt;/code&amp;gt;オプションまたは&amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt;オプションを付加する。&amp;lt;br&amp;gt;&lt;br /&gt;
推奨サーバとは、スマートアルゴリズム (地理的距離に基づいて) により提案された国 / サーバに自動的に接続する。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --recommended&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -r&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 切断 ====&lt;br /&gt;
PureVPNを切断する。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --disconnect&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -d&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ロケーションの確認 ====&lt;br /&gt;
ロケーションおよびロケーションコードのリストを確認することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --location&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -l&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロトコルの切り替え ====&lt;br /&gt;
VPNプロトコルの選択は、接続のパフォーマンスと安定性に大きく影響する。&amp;lt;br&amp;gt;&lt;br /&gt;
VPNサーバに接続する場合は、正しいプロトコルを選択することが重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNでは、自動プロトコルを使用することを推奨している。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、自動プロトコルオプションが機能しない場合は、必要に応じて異なるプロトコルを切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* WireGuard (推奨)&lt;br /&gt;
*: WireGuardは、高速で安全なVPN接続を提供しており、ブラウジングやストリーミングに使用される。&lt;br /&gt;
* UDP&lt;br /&gt;
*: UDPは、主にストリーミングやダウンロードに使用される。&lt;br /&gt;
* TCP&lt;br /&gt;
*: TCPはより信頼性が高いですが、やや遅く、ブラウジングに使用される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロトコルを切り替えるコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
 # 自動プロトコルを使用&lt;br /&gt;
 purevpn-cli --protocol auto&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -p auto&lt;br /&gt;
 &lt;br /&gt;
 # WireGuardを使用&lt;br /&gt;
 purevpn-cli --protocol wireguard&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -p wireguard&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
現在選択されているプロトコルを表示することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --protocol&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -p&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アカウントの確認 ====&lt;br /&gt;
PureVPN CLIを使用して、アカウントの詳細を表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
 purevpn-cli --account&lt;br /&gt;
 # または&lt;br /&gt;
 purevpn-cli -a&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NetworkManagerの使用 ==&lt;br /&gt;
&amp;lt;u&amp;gt;RHELおよびSUSE等では、NetworkManagerおよびOpenVPN / WireGuard設定ファイルを使用して手動で設定する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;openSUSE Tumbleweed / Leapについては、PureVPN公式のセットアップガイドも提供されている。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PureVPNのOpenVPNファイルは不定期で更新されるため、その都度、新しいOpenVPNファイルを使用・設定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GNOMEの場合 ====&lt;br /&gt;
# まず、VPN認証情報を確認するため、PureVPNメンバーエリアにログインする。&lt;br /&gt;
#: URL : https://my.purevpn.com/v2/dashboard/subscriptions&lt;br /&gt;
# 画面左にある[サブスクリプション]タブを選択する。&lt;br /&gt;
# 下にスクロールして、VPN認証情報を確認する。&lt;br /&gt;
# PureVPNのユーザ名とパスワードをコピーする。&lt;br /&gt;
# [https://support.purevpn.com/purevpn/openvpn-files PureVPNの公式Webサイト]にアクセスして、OpenVPN設定ファイルをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip Recommended-CA2.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NetworkManagerを使用して、OpenVPNを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&amp;lt;/code&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[有線接続]プルダウンから[有線設定]を選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&amp;lt;br&amp;gt;ここで、OpenVPNファイルの命名形式は、&amp;lt;ロケーション&amp;gt;-ovpn-tcp、または、&amp;lt;ロケーション&amp;gt;-ovpn-udpである。&amp;lt;br&amp;gt;例: hu2-ovpn-tcp.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意の名前 (例: PureVPN)&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: 上記でコピーしたユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: 上記でコピーしたパスワードを入力する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#*: もし、自動入力されない場合は、~/.cert/nm-openvpnディレクトリの&amp;lt;ロケーション&amp;gt;-ovpn-ca.pemファイルを指定する。&lt;br /&gt;
# [VPNの追加]画面にある[IPv6]タブを選択して、[無効]ボタンを選択する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で選択したPureVPNのOpenVPN設定が作成されて、PureVPNのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== KDEの場合 ====&lt;br /&gt;
# まず、VPN認証情報を確認するため、PureVPNメンバーエリアにログインする。&lt;br /&gt;
#: URL : https://my.purevpn.com/v2/dashboard/subscriptions&lt;br /&gt;
# 画面左にある[サブスクリプション]タブを選択する。&lt;br /&gt;
# 下にスクロールして、VPN認証情報を確認する。&lt;br /&gt;
# PureVPNのユーザ名とパスワードをコピーする。&lt;br /&gt;
# [https://support.purevpn.com/purevpn/openvpn-files PureVPNの公式Webサイト]にアクセスして、OpenVPN設定ファイルをダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍する。 &lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip Recommended-CA2.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
NetworkManagerを使用して、OpenVPNを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&amp;lt;/code&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&lt;br /&gt;
#: 例: hu2-ovpn-tcp.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にPureVPNのVPN接続が表示されるので、任意の名前 (PureVPN) と入力する。&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、以下に示す設定を行う。 &lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意の名前 (例: PureVPN)&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: 上記でコピーしたユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: 上記でコピーしたパスワードを入力する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 自動的に入力される。&lt;br /&gt;
#*: もし、自動入力されない場合は、~/.cert/nm-openvpnディレクトリの&amp;lt;ロケーション&amp;gt;-ovpn-ca.pemファイルを指定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 接続の確認 ==&lt;br /&gt;
IPアドレスが匿名かつプライベートなPureVPNに変更されたことを確認する場合は、まず、Webブラウザのクッキーおよびキャッシュを削除する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* IPv6のリークの確認&lt;br /&gt;
*: https://www.purevpn.com/ipv6-leak-test&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* DNSリークの確認&lt;br /&gt;
*: https://www.purevpn.com/dns-leak-test&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuardの使用 ==&lt;br /&gt;
PureVPNは、WireGuardの手動設定をサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
ユーザは、WireGuard VPN接続を手動で設定して、強化された暗号化と高速パフォーマンスを活用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuardのサポートを追加することにより、VPN接続の設定に関してより多くのオプションと柔軟性をユーザに提供することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardの設定を行うには、Ubuntu 21.04以降、Fedora 35以降が必要となる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WireGuardのインストール ====&lt;br /&gt;
WireGuardの設定に必要なライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install wireguard-tools&lt;br /&gt;
&lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install wireguard-tools&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WireGuardの設定 ====&lt;br /&gt;
WireGuard設定ファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# まず、VPN認証情報を確認するため、PureVPNメンバーエリアにログインする。&lt;br /&gt;
#: URL : https://my.purevpn.com/v2/dashboard/subscriptions&lt;br /&gt;
# 画面左にある[Manual Configuration]タブを選択する。&lt;br /&gt;
# 接続するロケーションを選択して、[ダウンロード]ボタンを押下する。&lt;br /&gt;
# 必要な情報を選択するポップアップウインドウが表示される。&lt;br /&gt;
## [プロトコルを選択]プルダウンから[WireGuard]を選択する。&lt;br /&gt;
## [Select Device]プルダウンから[Linux] (Linuxを使用している場合) を選択する。&lt;br /&gt;
## [Generate Configration]ボタンを押下する。&lt;br /&gt;
## [WireGuard Configuration:]の設定をコピーする。&amp;lt;br&amp;gt;または、.confファイルをダウンロードする。&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;WireGuardの設定ファイルをダウンロードした後、必ず30分以内にファイルをコピーして接続を有効にする必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
WireGuard VPN接続を設定するため、コピーまたはダウンロードしたファイル内容を書き込む。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/wireguard/wg0.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WireGuardの接続 ====&lt;br /&gt;
WireGuard接続を有効にする。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo wg-quick up wg0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== WireGuardの切断 ====&lt;br /&gt;
WireGuard接続を切断する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo wg-quick down wg0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNSリーク ==&lt;br /&gt;
IPv6を使用する場合、DNSリークを起こす可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、IPv6を無効にすることにより、DNSリークを起こさないようにすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、WebブラウザがChromium系ブラウザ(Vivaldiも含む)の場合、以下の設定を行ってもDNSリークが起きることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6を無効にするため、/etc/sysctl.dディレクトリに設定ファイルを作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo vi /etc/sysctl.d/99-ipv6.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/sysctl.d/99-ipv6.confファイル&lt;br /&gt;
 &lt;br /&gt;
 net.ipv6.conf.all.disable_ipv6 = 1&lt;br /&gt;
 net.ipv6.conf.default.disable_ipv6 = 1&lt;br /&gt;
 net.ipv6.conf.lo.disable_ipv6 = 1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記の設定を反映する。&amp;lt;br&amp;gt;&lt;br /&gt;
 sudo sysctl -p&lt;br /&gt;
 # または&lt;br /&gt;
 sudo sysctl -p /etc/sysctl.d/99-ipv6.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6が正常に無効化されたかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;と表示される場合、IPv6は正常に無効化されている。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 cat /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示すURLにアクセスして、IPv6が無効化されているかどうかを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
* https://www.whatismyip.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、Webブラウザのクッキーおよびキャッシュを削除して、DNSリークを確認するため、以下に示すURLにアクセスする。&amp;lt;br&amp;gt;&lt;br /&gt;
* https://www.purevpn.com/dns-leak-test&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt;コマンドは、以下に示す場所から設定を読み込む。&amp;lt;br&amp;gt;&lt;br /&gt;
初期設定を無効化または上書きする場合は、/etc/sysctl.dディレクトリに同名のファイルを作成して配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
* /boot/sysctl.conf-&amp;lt;kernelversion&amp;gt;&lt;br /&gt;
* /lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/local/lib/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.d/*.conf&lt;br /&gt;
* /run/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;PureVPNは、VPN over TORをサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PureVPN GUI / CLI または NetworkManagerを使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PrivateVPN&amp;diff=14587</id>
		<title>VPN - PrivateVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PrivateVPN&amp;diff=14587"/>
		<updated>2026-03-24T11:04:16Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* ノーログポリシーの実態 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PrivateVPNは、200以上のサーバからなる小規模なネットワークを運営しており、これらは63カ国以上に配置されている。&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、ラグフリーストリーミングのための高速な接続を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
256ビットAES暗号化、DNSリークからの保護、キルスイッチが用意されており、その厳格なノーログポリシーによって、ユーザのプライバシーを保護する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxにおいて、PrivateVPNの設定に問題がある場合、ライブチャットと電子メールサポートを利用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、無料のリモートヘルプとインストールも利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは、現在、Linux向けのCLIソフトウェアをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
高速で安定した接続と、地理的制限のあるコンテンツの確実なブロック解除が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxの他にも、Windows、MacOS、Android、iOS、Amazon Fire TV用のPrivateVPNソフトウェアが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、個別の無線ルータで動作するように手動で設定することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、PrivateVPNは2009年にMartin Muller氏によりスウェーデンで設立された。(運営会社: Privat Kommunikation Sverige AB)&amp;lt;br&amp;gt;&lt;br /&gt;
2022年6月にWebホスティング企業であるMiss Groupに買収されており、創業者は離任している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの長所&lt;br /&gt;
** セットアップガイドとカスタマーサポートでユーザフレンドリーである。&lt;br /&gt;
** ストリーミングとトレント用の高速サーバーが存在する。&lt;br /&gt;
** 人気のあるストリーミングプラットフォームの一貫したブロック解除ができる。&lt;br /&gt;
** 厳格なノーログポリシーによるオンラインの匿名性。&lt;br /&gt;
** 30日間返金保証。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの短所&lt;br /&gt;
** サーバのネットワークが小さい。(全部で200程度しかない)&lt;br /&gt;
** ライブチャットが24時間利用できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: スウェーデンに会社があり、スウェーデンの個人情報保護法では、政府によって押収されるようなトラフィックログを保存することはない。&lt;br /&gt;
* 無制限の帯域幅と速度&lt;br /&gt;
*: 他のVPNで見られるような、ビデオのバッファリング、低速なダウンロード、ルーティングホップによるタイムアウトは無い。&lt;br /&gt;
* 無料リモートヘルプとインストール&lt;br /&gt;
*: サービスに関する問題やヘルプが必要な場合、リモートサポートは無料で行うことができる。&lt;br /&gt;
* 10台同時接続&lt;br /&gt;
*: 最大10台のデバイスを同時に接続できるVPNであり、全て固有のIPアドレスで接続できる。&lt;br /&gt;
* ポートフォワード&lt;br /&gt;
*: Torrentに不可欠なオープンポートを少なくとも1つ提供している。&lt;br /&gt;
* AES-256による2048ビットの暗号化&lt;br /&gt;
*: 軍事でも使用されている最高レベルの暗号化技術を使用している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;PrivateVPNの料金は、月額2.00ドルからである。(2025年時点、30日間返金保証付き)&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
PrivateVPNはノーログVPNを標榜しており、スウェーデンの強力なプライバシー法を根拠として、データログを保存または共有する法的義務がないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
PrivateVPNの公式プライバシーポリシーでは、以下のデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウジング履歴およびトラフィック宛先&lt;br /&gt;
* 接続タイムスタンプ&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
* IPアドレス (割り当てIP、接続IP両方)&lt;br /&gt;
* データコンテンツ&lt;br /&gt;
* 帯域幅使用量&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集されるデータは、ログインメールアドレス、パスワード、支払い方法情報等のアカウント管理に必要な最小限の情報のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 過去の捜査機関へのデータ提供 ====&lt;br /&gt;
2025年時点の公開情報において、PrivateVPNが法執行機関にユーザデータを提供した具体的な事例、裁判記録、またはリークは確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは &amp;quot;ノーログポリシーを採用しているため、有事の場合でも提出できるデータが存在しない&amp;quot; という立場をとっている。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、この主張は第三者監査によって検証されていないことに注意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
PrivateVPNは、独立した外部監査を一度も受けていない。&amp;lt;br&amp;gt;&lt;br /&gt;
これは業界内での重大な弱点と見なされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
競合他社との比較として、NordVPNはDeloitteによる監査 (2024年)、IPVanishはSchellman Compliance LLCによる監査 (2025年) を受けており、&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログポリシーの検証において、PrivateVPNは遅れをとっている状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する懸念 ====&lt;br /&gt;
PrivateVPNの拠点であるスウェーデンは、14 Eyes監視協定に加盟している。&amp;lt;br&amp;gt;&lt;br /&gt;
14 Eyes構成国間では、情報機関が収集した情報を共有する枠組みが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、スウェーデンのプライバシー法により、ノーログポリシーを採用しているVPNプロバイダに対するデータ保持義務は課されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、ノーログポリシーが正しく実装されている場合、14 Eyesの影響は限定的であると考えられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2009年 || Martin Muller氏によりスウェーデンで設立 (運営会社: Privat Kommunikation Sverige AB)&lt;br /&gt;
|-&lt;br /&gt;
| 2022年6月 || Webホスティング企業のMiss Groupが買収。創業者Martin Muller氏は離任&lt;br /&gt;
|-&lt;br /&gt;
| 現在 || Miss Group傘下で運営。Miss GroupはPerwyn (プライベートエクイティ企業) が支援&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門家の評価 ====&lt;br /&gt;
2025年から2026年時点における専門家の評価は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの専門家評価&lt;br /&gt;
! 評価サイト !! スコア !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| VPNMentor || 9.2/10 (193中7位) || ストリーミング性能、価格を評価&lt;br /&gt;
|-&lt;br /&gt;
| Trustpilot || 4.9/5 || 高い顧客満足度&lt;br /&gt;
|-&lt;br /&gt;
| TechRadar || 非推奨 || 投資不足による遅れを指摘&lt;br /&gt;
|-&lt;br /&gt;
| TheBestVPN || 30中22位 || 非推奨&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な強みとして、価格競争力 (月額 $2.00から)、ストリーミング性能、基本的なプライバシー保護が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
一方、主な弱みとして、第三者監査の欠落、限定されたサーバネットワーク、Linuxアプリの未提供、スプリットトンネリングおよび二重VPN機能の未対応が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 契約手順 ==&lt;br /&gt;
# [https://privatevpn.com/prices/comparitech PrivateVPNの公式Webサイト]にアクセスする。&lt;br /&gt;
# 1ヶ月、3ヶ月、3年のいずれかのプランを選択する。&lt;br /&gt;
# E-mailアドレスおよびパスワードを入力してログイン、または、PrivateVPNのアカウントを作成する。&lt;br /&gt;
# 支払い方法を選択する。&amp;lt;br&amp;gt;クレジットカード、Paypal、Bitcoinが使用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
PrivateVPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                 # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm-openvpn                            # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ネットワークマネージャトンネルを使用する場合 (推奨) ==&lt;br /&gt;
まず、以下に示す2つのファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
* 証明書ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ca.crt&lt;br /&gt;
* 鍵ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ta.key&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[OpenVPN]を選択して、[Create]ボタンを押下する。&lt;br /&gt;
# 以下に示す情報を入力する。&amp;lt;br&amp;gt;もし、Linuxの起動時にVPNを自動的に接続する場合は、[自動的に接続する]を選択する。&lt;br /&gt;
#* 接続名&lt;br /&gt;
#*: PrivateVPN&lt;br /&gt;
#* ゲートウェイ&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#* タイプ&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* ユーザ名&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* パスワード&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
#* CA証明書&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [LZOデータ圧縮を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [仮想デバイスの種類を設定]チェックボックスにチェックを入力して、[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [セキュリティタブ]を選択する。&lt;br /&gt;
#*: [暗号]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC認証]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS認証]タブを選択する。&lt;br /&gt;
#*: [相手（サーバ）の証明書使用状況の署名を確認する]チェックボックスにチェックを入力して、プルダウンから[サーバ]を選択する。&lt;br /&gt;
#*: [追加のTLS認証を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [キーファイル]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction]プルダウンから[1]を選択する。&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[VPN接続] - [PrivateVPN]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストから[OpenVPN]を選択して[作成]ボタンを押下する。&lt;br /&gt;
# [新しい接続]画面が開くので、以下に示す情報を入力する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意でよい。&lt;br /&gt;
#*: 例. PrivateVPN&lt;br /&gt;
#* [ゲートウェイ]&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#*: 例. スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: パスワードを選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [Use Compression]チェックボックスにチェックを入力して、プルダウンから[LZO]を選択する。&lt;br /&gt;
#*: [Set virtual device type:]チェックボックスにチェックを入力して、プルダウンから[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [Security]タブを選択する。&lt;br /&gt;
#*: [Cipher:]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC Authentication:]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS Settings]タブを選択する。&lt;br /&gt;
#*: [Verify peer（server） certificate usage signature]チェックボックスにチェックを入力して、プルダウンから[Server]を選択する。&lt;br /&gt;
#*: [Mode:]プルダウンから[TLS-Auth]を選択する。&lt;br /&gt;
#*: [Key File:]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction:]プルダウンから[Client(1)]を選択する。&lt;br /&gt;
# [OK]ボタンを押下して、[OpenVPN Advanced Options]画面を閉じる。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。(この設定は不要の可能性あり)&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、PrivateVPNのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PrivateVPN CLIを使用する場合 ==&lt;br /&gt;
# [https://privatevpn.com/client/install.sh PrivateVPNの公式Webサイト]から、CLIソフトウェアのインストーラをダウンロードする。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;コマンド等を使用してダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://privatevpn.com/client/install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたインストーラに実行権限を付加する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod u+x install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# スーパーユーザ権限でインストーラを実行する。&amp;lt;br&amp;gt;スーパーユーザ権限で実行する理由は、OpenVPNの接続時において、トンネルインターフェイスを作成するためである。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo ./install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# /etc/openvpn/privatvpn.confファイルを編集して、接続先のVPNサーバを変更することができる。&amp;lt;br&amp;gt;サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuardの使用 ==&lt;br /&gt;
# WireGuardの接続に必要なツールをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install wireguard-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にアクセスして、ログインする。&lt;br /&gt;
# [https://privatevpn.com/control-panel PrivateVPNのコントロールパネル]にアクセスする。&lt;br /&gt;
# コントロールパネル画面左にある[WireGuard Config]から、使用するVPNサーバを選択するため、[Generate Config]ボタンを押下する。&lt;br /&gt;
# コントロールパネルにWireGuardの設定が生成および表示されるので、ダウンロードアイコンを押下する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# WireGuardを使用してVPNネットワークに接続する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick up &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 正常にVPNネットワークに接続しているかどうかを確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg show&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# VPNネットワークを切断する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick down &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNSリーク ==&lt;br /&gt;
IPv6を使用する場合、DNSリークを起こす可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、IPv6を無効にすることにより、DNSリークを起こさないようにすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、WebブラウザがChromium系ブラウザ(Vivaldiも含む)の場合、以下の設定を行ってもDNSリークが起きることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6を無効にする手順を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6を無効にするため、/etc/sysctl.confファイルに以下に示す設定を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo vi /etc/sysctl.d/00-ipv6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# /etc/sysctl.d/00-ipv6.confファイル&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.all.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.default.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.lo.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記の設定を反映する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo sysctl -p&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6が正常に無効化されたかどうかを確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;と表示される場合、IPv6は正常に無効化されている。&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat /proc/sys/net/ipv6/conf/all/disable_ipv6&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すURLにアクセスして、IPv6が無効化されているかどうかを確認する。&lt;br /&gt;
#: https://www.whatismyip.com/&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt;は、以下に示す場所から設定を読み込む。&amp;lt;br&amp;gt;&lt;br /&gt;
初期設定を無効化または上書きする場合は、/etc/sysctl.dディレクトリに同名のファイルを作成して配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
* /boot/sysctl.conf-&amp;lt;kernelversion&amp;gt;&lt;br /&gt;
* /lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/local/lib/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.d/*.conf&lt;br /&gt;
* /run/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torブラウザのプロキシ設定 ==&lt;br /&gt;
==== SOCKS5プロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: SOCKS 5&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 1080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== HTTP / HTTPSプロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: HTTP / HTTPS&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 8080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPNサーバへの接続にTorネットワークを使用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
これを、VPN over Tor、あるいは、VPN through Torと呼ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPをPrivateVPNに公開することなく、PrivateVPNに接続することを意味する。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、Torネットワークに接続する。&lt;br /&gt;
# Torブラウザで任意のWebサイトを開いて、Torブラウザのアドレスバーの左側にある鍵アイコンを選択する。&lt;br /&gt;
# &amp;quot;ガードノード(エントリーノード)&amp;quot;、&amp;quot;中間&amp;quot;、&amp;quot;出口ノード&amp;quot;を含むTorネットワークの現在の回線情報が表示される。&amp;lt;br&amp;gt;この時、ガードノード(エントリーノード)のIPアドレスをコピーする。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;最初のノードは、ガードノード(エントリーノード)と呼ばれており、これは頻繁に変更されない。&amp;lt;br&amp;gt;ただし、暫く時間が経って変更された場合、または、Torブラウザをアップデートした場合は、ガードノード(エントリーノード)のIPアドレスが変更されるため、&amp;lt;br&amp;gt;都度、OpenVPN設定ファイル内の値を変更する必要がある。&lt;br /&gt;
#  [https://privatevpn.com/client/PrivateVPN-TUN.zip PrivateVPNの公式Webサイト]にアクセスして、PrivateVPNのOpenVPN設定ファイルをダウンロードする。&amp;lt;br&amp;gt;ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;TorブラウザはTCPプロトコル(443番ポート)のみで動作するため、TCPディレクトリからPrivatVPN-&amp;lt;国名&amp;gt;-&amp;lt;都市名&amp;gt;-TUN-443.ovpnを使用する必要がある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 使用するOpenVPN設定ファイルを開いて、以下に示す内容を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;# Windowsの場合&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tor options&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 net_gateway&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# Linuxの場合&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tor options&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 &amp;lt;自宅のデフォルトゲートウェイのIPアドレス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Torネットワーク経由でPrivateVPNのOpenVPNサーバに接続する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;上記で編集したOpenVPN設定ファイルをOpenVPNクライアントにインポートして接続する。&amp;lt;br&amp;gt;Torブラウザが起動していることを確認して、問題なく動作しているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PrivateVPN CLIまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentとの連携 ==&lt;br /&gt;
# まず、PrivateVPNサーバに接続する。&amp;lt;br&amp;gt;この時、[Port forwarding]項目に記載されているポート番号をコピーする。&lt;br /&gt;
# 次に、qBittorrentを起動して、[設定] - 画面左の[接続] - [受信接続に使用するポート]において、上記でコピーしたポート番号を入力する。&lt;br /&gt;
# 最後に、[ツール] - [設定] - [設定]画面左ペインにある[高度]を選択する。&amp;lt;br&amp;gt;[設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* PrivateVPNソフトウェアからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* NetworkManagerからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* PrivateVPNソフトウェアからWireGuardで接続している場合&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPNのログ ==&lt;br /&gt;
VPN接続に問題がある場合は、接続ログを送信することにより、問題を迅速に特定して、適切な解決策を得られる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Network Manager ====&lt;br /&gt;
# VPN接続のログを表示して、生成されたログをコピーする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog&amp;lt;/code&amp;gt;&lt;br /&gt;
#: または&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog &amp;gt; &amp;lt;任意のログファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/chat PrivateVPNの公式Webサイトにあるチャット]にアクセスして、チャットボックスから[Send us a message]ボタンを押下する。&lt;br /&gt;
# 上記で取得したVPN接続のログをチャットに貼り付けて、ユーザのEメールアドレスを入力する。&lt;br /&gt;
# [send]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PrivateVPN&amp;diff=14586</id>
		<title>VPN - PrivateVPN</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_PrivateVPN&amp;diff=14586"/>
		<updated>2026-03-24T11:02:59Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
PrivateVPNは、200以上のサーバからなる小規模なネットワークを運営しており、これらは63カ国以上に配置されている。&amp;lt;br&amp;gt;&lt;br /&gt;
さらに、ラグフリーストリーミングのための高速な接続を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
256ビットAES暗号化、DNSリークからの保護、キルスイッチが用意されており、その厳格なノーログポリシーによって、ユーザのプライバシーを保護する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxにおいて、PrivateVPNの設定に問題がある場合、ライブチャットと電子メールサポートを利用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
また、無料のリモートヘルプとインストールも利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは、現在、Linux向けのCLIソフトウェアをサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
高速で安定した接続と、地理的制限のあるコンテンツの確実なブロック解除が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Linuxの他にも、Windows、MacOS、Android、iOS、Amazon Fire TV用のPrivateVPNソフトウェアが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
また、個別の無線ルータで動作するように手動で設定することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、PrivateVPNは2009年にMartin Muller氏によりスウェーデンで設立された。(運営会社: Privat Kommunikation Sverige AB)&amp;lt;br&amp;gt;&lt;br /&gt;
2022年6月にWebホスティング企業であるMiss Groupに買収されており、創業者は離任している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの長所&lt;br /&gt;
** セットアップガイドとカスタマーサポートでユーザフレンドリーである。&lt;br /&gt;
** ストリーミングとトレント用の高速サーバーが存在する。&lt;br /&gt;
** 人気のあるストリーミングプラットフォームの一貫したブロック解除ができる。&lt;br /&gt;
** 厳格なノーログポリシーによるオンラインの匿名性。&lt;br /&gt;
** 30日間返金保証。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* PrivateVPNの短所&lt;br /&gt;
** サーバのネットワークが小さい。(全部で200程度しかない)&lt;br /&gt;
** ライブチャットが24時間利用できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNの特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* ノーログポリシー&lt;br /&gt;
*: スウェーデンに会社があり、スウェーデンの個人情報保護法では、政府によって押収されるようなトラフィックログを保存することはない。&lt;br /&gt;
* 無制限の帯域幅と速度&lt;br /&gt;
*: 他のVPNで見られるような、ビデオのバッファリング、低速なダウンロード、ルーティングホップによるタイムアウトは無い。&lt;br /&gt;
* 無料リモートヘルプとインストール&lt;br /&gt;
*: サービスに関する問題やヘルプが必要な場合、リモートサポートは無料で行うことができる。&lt;br /&gt;
* 10台同時接続&lt;br /&gt;
*: 最大10台のデバイスを同時に接続できるVPNであり、全て固有のIPアドレスで接続できる。&lt;br /&gt;
* ポートフォワード&lt;br /&gt;
*: Torrentに不可欠なオープンポートを少なくとも1つ提供している。&lt;br /&gt;
* AES-256による2048ビットの暗号化&lt;br /&gt;
*: 軍事でも使用されている最高レベルの暗号化技術を使用している。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;PrivateVPNの料金は、月額2.00ドルからである。(2025年時点、30日間返金保証付き)&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
PrivateVPNはノーログVPNを標榜しており、スウェーデンの強力なプライバシー法を根拠として、データログを保存または共有する法的義務がないと主張している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式ノーログポリシーの内容 ====&lt;br /&gt;
PrivateVPNの公式プライバシーポリシーでは、以下のデータを一切保存しないと明記している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウジング履歴およびトラフィック宛先&lt;br /&gt;
* 接続タイムスタンプ&lt;br /&gt;
* DNSクエリ&lt;br /&gt;
* IPアドレス (割り当てIP、接続IP両方)&lt;br /&gt;
* データコンテンツ&lt;br /&gt;
* 帯域幅使用量&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
収集されるデータは、ログインメールアドレス、パスワード、支払い方法情報等のアカウント管理に必要な最小限の情報のみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 過去の捜査機関へのデータ提供 ====&lt;br /&gt;
2025年時点の公開情報において、PrivateVPNが法執行機関にユーザデータを提供した具体的な事例、裁判記録、またはリークは確認されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PrivateVPNは「ノーログポリシーを採用しているため、有事の場合でも提出できるデータが存在しない」という立場をとっている。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、この主張は第三者監査によって検証されていないことに注意する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査の状況 ====&lt;br /&gt;
PrivateVPNは、独立した外部監査を一度も受けていない。&amp;lt;br&amp;gt;&lt;br /&gt;
これは業界内での重大な弱点と見なされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
競合他社との比較として、NordVPNはDeloitteによる監査 (2024年)、IPVanishはSchellman Compliance LLCによる監査 (2025年) を受けており、&amp;lt;br&amp;gt;&lt;br /&gt;
ノーログポリシーの検証において、PrivateVPNは遅れをとっている状況である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 管轄法域に関する懸念 ====&lt;br /&gt;
PrivateVPNの拠点であるスウェーデンは、14 Eyes監視協定に加盟している。&amp;lt;br&amp;gt;&lt;br /&gt;
14 Eyes構成国間では、情報機関が収集した情報を共有する枠組みが存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、スウェーデンのプライバシー法により、ノーログポリシーを採用しているVPNプロバイダに対するデータ保持義務は課されていない。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、ノーログポリシーが正しく実装されている場合、14 Eyesの影響は限定的であると考えられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2009年 || Martin Muller氏によりスウェーデンで設立 (運営会社: Privat Kommunikation Sverige AB)&lt;br /&gt;
|-&lt;br /&gt;
| 2022年6月 || Webホスティング企業のMiss Groupが買収。創業者Martin Muller氏は離任&lt;br /&gt;
|-&lt;br /&gt;
| 現在 || Miss Group傘下で運営。Miss GroupはPerwyn (プライベートエクイティ企業) が支援&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 専門家の評価 ====&lt;br /&gt;
2025年から2026年時点における専門家の評価は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ PrivateVPNの専門家評価&lt;br /&gt;
! 評価サイト !! スコア !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| VPNMentor || 9.2/10 (193中7位) || ストリーミング性能、価格を評価&lt;br /&gt;
|-&lt;br /&gt;
| Trustpilot || 4.9/5 || 高い顧客満足度&lt;br /&gt;
|-&lt;br /&gt;
| TechRadar || 非推奨 || 投資不足による遅れを指摘&lt;br /&gt;
|-&lt;br /&gt;
| TheBestVPN || 30中22位 || 非推奨&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な強みとして、価格競争力 (月額2.00ドルから)、ストリーミング性能、基本的なプライバシー保護が挙げられる。&amp;lt;br&amp;gt;&lt;br /&gt;
一方、主な弱みとして、第三者監査の欠落、限定されたサーバネットワーク、Linuxアプリの未提供、スプリットトンネリングおよび二重VPN機能の未対応が指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 契約手順 ==&lt;br /&gt;
# [https://privatevpn.com/prices/comparitech PrivateVPNの公式Webサイト]にアクセスする。&lt;br /&gt;
# 1ヶ月、3ヶ月、3年のいずれかのプランを選択する。&lt;br /&gt;
# E-mailアドレスおよびパスワードを入力してログイン、または、PrivateVPNのアカウントを作成する。&lt;br /&gt;
# 支払い方法を選択する。&amp;lt;br&amp;gt;クレジットカード、Paypal、Bitcoinが使用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のライブラリのインストール ==&lt;br /&gt;
PrivateVPNソフトウェアを実行するために必要な依存関係のライブラリをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                  NetworkManager-openvpn-gnome                 # GNOMEを使用する場合&lt;br /&gt;
                  plasma-nm-openvpn                            # KDEを使用する場合&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install python3 curl openvpn NetworkManager-openvpn \&lt;br /&gt;
                     NetworkManager-openvpn-gnome              # GNOMEを使用する場合&lt;br /&gt;
                     plasma-nm5-openvpn                        # KDEを使用する場合&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ネットワークマネージャトンネルを使用する場合 (推奨) ==&lt;br /&gt;
まず、以下に示す2つのファイルをダウンロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
* 証明書ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ca.crt&lt;br /&gt;
* 鍵ファイル&lt;br /&gt;
*: http://privatevpn.com/client/ta.key&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[設定]アイコンを選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[OpenVPN]を選択して、[Create]ボタンを押下する。&lt;br /&gt;
# 以下に示す情報を入力する。&amp;lt;br&amp;gt;もし、Linuxの起動時にVPNを自動的に接続する場合は、[自動的に接続する]を選択する。&lt;br /&gt;
#* 接続名&lt;br /&gt;
#*: PrivateVPN&lt;br /&gt;
#* ゲートウェイ&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#* タイプ&lt;br /&gt;
#*: [パスワード]を選択する。&lt;br /&gt;
#* ユーザ名&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* パスワード&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
#* CA証明書&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [LZOデータ圧縮を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [仮想デバイスの種類を設定]チェックボックスにチェックを入力して、[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [セキュリティタブ]を選択する。&lt;br /&gt;
#*: [暗号]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC認証]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS認証]タブを選択する。&lt;br /&gt;
#*: [相手（サーバ）の証明書使用状況の署名を確認する]チェックボックスにチェックを入力して、プルダウンから[サーバ]を選択する。&lt;br /&gt;
#*: [追加のTLS認証を使用する]チェックボックスにチェックを入力する。&lt;br /&gt;
#*: [キーファイル]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction]プルダウンから[1]を選択する。&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[VPN接続] - [PrivateVPN]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストから[OpenVPN]を選択して[作成]ボタンを押下する。&lt;br /&gt;
# [新しい接続]画面が開くので、以下に示す情報を入力する。&lt;br /&gt;
#* [接続名]&lt;br /&gt;
#*: 任意でよい。&lt;br /&gt;
#*: 例. PrivateVPN&lt;br /&gt;
#* [ゲートウェイ]&lt;br /&gt;
#*: 接続先サーバが存在する国のアドレスを入力する。&lt;br /&gt;
#*: サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
#*: 例. スウェーデンの場合 : se-sto.privatevpn.host&lt;br /&gt;
#* [接続タイプ]&lt;br /&gt;
#*: パスワードを選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: 上記でダウンロードした証明書ファイル(ca.crtファイル)を選択する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: PrivateVPNアカウントのメールアドレスを入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: PrivateVPNアカウントのパスワードを入力する。&lt;br /&gt;
# [Advanced]ボタンを押下して、[OpenVPN Advanced Options]画面を開く。&lt;br /&gt;
#* [General]タブを選択する。&lt;br /&gt;
#*: [Use Compression]チェックボックスにチェックを入力して、プルダウンから[LZO]を選択する。&lt;br /&gt;
#*: [Set virtual device type:]チェックボックスにチェックを入力して、プルダウンから[TUN]を選択する。&lt;br /&gt;
#*: [IPv6 tun link]チェックボックスにチェックを入力する。&lt;br /&gt;
#* [Security]タブを選択する。&lt;br /&gt;
#*: [Cipher:]プルダウンから[AES-256-CBC]を選択する。&lt;br /&gt;
#*: [HMAC Authentication:]プルダウンから[SHA-256]を選択する。&lt;br /&gt;
#* [TLS Settings]タブを選択する。&lt;br /&gt;
#*: [Verify peer（server） certificate usage signature]チェックボックスにチェックを入力して、プルダウンから[Server]を選択する。&lt;br /&gt;
#*: [Mode:]プルダウンから[TLS-Auth]を選択する。&lt;br /&gt;
#*: [Key File:]を、上記でダウンロードした鍵ファイル(ta.keyファイル)を選択する。&lt;br /&gt;
#*: [Key Direction:]プルダウンから[Client(1)]を選択する。&lt;br /&gt;
# [OK]ボタンを押下して、[OpenVPN Advanced Options]画面を閉じる。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。(この設定は不要の可能性あり)&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、PrivateVPNのOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PrivateVPN CLIを使用する場合 ==&lt;br /&gt;
# [https://privatevpn.com/client/install.sh PrivateVPNの公式Webサイト]から、CLIソフトウェアのインストーラをダウンロードする。&amp;lt;br&amp;gt;または、&amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;コマンド等を使用してダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://privatevpn.com/client/install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたインストーラに実行権限を付加する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod u+x install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# スーパーユーザ権限でインストーラを実行する。&amp;lt;br&amp;gt;スーパーユーザ権限で実行する理由は、OpenVPNの接続時において、トンネルインターフェイスを作成するためである。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo ./install.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# /etc/openvpn/privatvpn.confファイルを編集して、接続先のVPNサーバを変更することができる。&amp;lt;br&amp;gt;サーバリストの詳細は、https://privatevpn.com/serverlist を参照すること。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WireGuardの使用 ==&lt;br /&gt;
# WireGuardの接続に必要なツールをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install wireguard-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にアクセスして、ログインする。&lt;br /&gt;
# [https://privatevpn.com/control-panel PrivateVPNのコントロールパネル]にアクセスする。&lt;br /&gt;
# コントロールパネル画面左にある[WireGuard Config]から、使用するVPNサーバを選択するため、[Generate Config]ボタンを押下する。&lt;br /&gt;
# コントロールパネルにWireGuardの設定が生成および表示されるので、ダウンロードアイコンを押下する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# WireGuardを使用してVPNネットワークに接続する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick up &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 正常にVPNネットワークに接続しているかどうかを確認する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg show&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# VPNネットワークを切断する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo wg-quick down &amp;lt;WireGuardの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DNSリーク ==&lt;br /&gt;
IPv6を使用する場合、DNSリークを起こす可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
この時、IPv6を無効にすることにより、DNSリークを起こさないようにすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;ただし、WebブラウザがChromium系ブラウザ(Vivaldiも含む)の場合、以下の設定を行ってもDNSリークが起きることに注意すること。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6を無効にする手順を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6を無効にするため、/etc/sysctl.confファイルに以下に示す設定を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo vi /etc/sysctl.d/00-ipv6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# /etc/sysctl.d/00-ipv6.confファイル&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.all.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.default.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;net.ipv6.conf.lo.disable_ipv6 = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記の設定を反映する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo sysctl -p&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# IPv6が正常に無効化されたかどうかを確認する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;と表示される場合、IPv6は正常に無効化されている。&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat /proc/sys/net/ipv6/conf/all/disable_ipv6&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 以下に示すURLにアクセスして、IPv6が無効化されているかどうかを確認する。&lt;br /&gt;
#: https://www.whatismyip.com/&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 次に、Webブラウザのクッキーおよびキャッシュを削除する。&lt;br /&gt;
# 最後に、以下に示すURLにアクセスして、DNSリークを確認する。&lt;br /&gt;
#: https://www.dnsleaktest.com/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt;は、以下に示す場所から設定を読み込む。&amp;lt;br&amp;gt;&lt;br /&gt;
初期設定を無効化または上書きする場合は、/etc/sysctl.dディレクトリに同名のファイルを作成して配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
* /boot/sysctl.conf-&amp;lt;kernelversion&amp;gt;&lt;br /&gt;
* /lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/lib/sysctl.d/*.conf&lt;br /&gt;
* /usr/local/lib/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.d/*.conf&lt;br /&gt;
* /run/sysctl.d/*.conf&lt;br /&gt;
* /etc/sysctl.conf&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torブラウザのプロキシ設定 ==&lt;br /&gt;
==== SOCKS5プロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: SOCKS 5&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 1080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== HTTP / HTTPSプロキシを使用する場合 ====&lt;br /&gt;
# Torブラウザを起動して、[Tor Network Settings]ボタンを押下する。&lt;br /&gt;
# [設定]画面の[Advanced]項目から、プロキシの設定を行う。&lt;br /&gt;
#* [I use a proxy to connect to the Internet]チェックボックス&lt;br /&gt;
#*: チェックを入力する。&lt;br /&gt;
#* [Proxy Type]プルダウン&lt;br /&gt;
#*: HTTP / HTTPS&lt;br /&gt;
#* [Address]&lt;br /&gt;
#*: [https://privatevpn.com/serverlist PrivateVPNのサーバリスト]から、任意のプロキシサーバのアドレスを入力する。&lt;br /&gt;
#*: 例. se-sto.pvdata.host&lt;br /&gt;
#* [Port]&lt;br /&gt;
#*: 8080&lt;br /&gt;
#* [Username]&lt;br /&gt;
#*: ユーザ名は、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
#* [Password]&lt;br /&gt;
#*: パスワードは、[https://privatevpn.com/account/login PrivateVPNの公式Webサイト]にログインして、[https://privatevpn.com/control-panel コントロールパネル]に進むと表示される。&lt;br /&gt;
# Torブラウザにある[Connect]ボタンを押下して、Torネットワークに接続する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
VPNサーバへの接続にTorネットワークを使用することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
これを、VPN over Tor、あるいは、VPN through Torと呼ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Torネットワークがブリッジとして機能するため、自宅のIPをPrivateVPNに公開することなく、PrivateVPNに接続することを意味する。&amp;lt;br&amp;gt;&lt;br /&gt;
したがって、プライバシー、セキュリティ、匿名性への2重層を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、Torネットワークに接続する。&lt;br /&gt;
# Torブラウザで任意のWebサイトを開いて、Torブラウザのアドレスバーの左側にある鍵アイコンを選択する。&lt;br /&gt;
# &amp;quot;ガードノード(エントリーノード)&amp;quot;、&amp;quot;中間&amp;quot;、&amp;quot;出口ノード&amp;quot;を含むTorネットワークの現在の回線情報が表示される。&amp;lt;br&amp;gt;この時、ガードノード(エントリーノード)のIPアドレスをコピーする。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;最初のノードは、ガードノード(エントリーノード)と呼ばれており、これは頻繁に変更されない。&amp;lt;br&amp;gt;ただし、暫く時間が経って変更された場合、または、Torブラウザをアップデートした場合は、ガードノード(エントリーノード)のIPアドレスが変更されるため、&amp;lt;br&amp;gt;都度、OpenVPN設定ファイル内の値を変更する必要がある。&lt;br /&gt;
#  [https://privatevpn.com/client/PrivateVPN-TUN.zip PrivateVPNの公式Webサイト]にアクセスして、PrivateVPNのOpenVPN設定ファイルをダウンロードする。&amp;lt;br&amp;gt;ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;TorブラウザはTCPプロトコル(443番ポート)のみで動作するため、TCPディレクトリからPrivatVPN-&amp;lt;国名&amp;gt;-&amp;lt;都市名&amp;gt;-TUN-443.ovpnを使用する必要がある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 使用するOpenVPN設定ファイルを開いて、以下に示す内容を追記する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;# Windowsの場合&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tor options&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 net_gateway&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# Linuxの場合&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tor options&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;socks-proxy 127.0.0.1 9150&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;route &amp;lt;TorブラウザのガードノードのIPアドレス&amp;gt; 255.255.255.255 &amp;lt;自宅のデフォルトゲートウェイのIPアドレス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Torネットワーク経由でPrivateVPNのOpenVPNサーバに接続する。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;上記で編集したOpenVPN設定ファイルをOpenVPNクライアントにインポートして接続する。&amp;lt;br&amp;gt;Torブラウザが起動していることを確認して、問題なく動作しているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PrivateVPN CLIまたはNetworkManager等を使用して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torrentとの連携 ==&lt;br /&gt;
# まず、PrivateVPNサーバに接続する。&amp;lt;br&amp;gt;この時、[Port forwarding]項目に記載されているポート番号をコピーする。&lt;br /&gt;
# 次に、qBittorrentを起動して、[設定] - 画面左の[接続] - [受信接続に使用するポート]において、上記でコピーしたポート番号を入力する。&lt;br /&gt;
# 最後に、[ツール] - [設定] - [設定]画面左ペインにある[高度]を選択する。&amp;lt;br&amp;gt;[設定]画面右ペインにある[ネットワークインターフェイス]を、使用しているソフトウェアとプロトコルに応じて、次のいずれかに変更する。&lt;br /&gt;
#* PrivateVPNソフトウェアからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* NetworkManagerからOpenVPNで接続している場合&lt;br /&gt;
#*: tun0&lt;br /&gt;
#* PrivateVPNソフトウェアからWireGuardで接続している場合&lt;br /&gt;
#*: &amp;lt;br&amp;gt;&lt;br /&gt;
# [OK]ボタンを押下する。&lt;br /&gt;
# [ファイル] - [終了]を選択して、qBittorrentを再起動する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
qBittorrentの推奨設定を、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# qBittorrentを起動して、[ツール］ - [設定]を選択する。&lt;br /&gt;
# [設定]画面左ペインにある[BitTorrent]を選択する。&lt;br /&gt;
# [設定]画面右ペインにある[匿名モードを有効にする]を選択する。&lt;br /&gt;
# [DHT(分散ネットワーク)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ピア交換(PeX)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [ローカルピア検出(LSD)を有効にする]チェックボックスのチェックを外す。&lt;br /&gt;
# [設定]画面左ペインにある[接続]を選択して、[ピア接続プロトコル]プルダウンから[TCP]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPNのログ ==&lt;br /&gt;
VPN接続に問題がある場合は、接続ログを送信することにより、問題を迅速に特定して、適切な解決策を得られる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Network Manager ====&lt;br /&gt;
# VPN接続のログを表示して、生成されたログをコピーする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog&amp;lt;/code&amp;gt;&lt;br /&gt;
#: または&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo grep VPN /var/log/syslog &amp;gt; &amp;lt;任意のログファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://privatevpn.com/chat PrivateVPNの公式Webサイトにあるチャット]にアクセスして、チャットボックスから[Send us a message]ボタンを押下する。&lt;br /&gt;
# 上記で取得したVPN接続のログをチャットに貼り付けて、ユーザのEメールアドレスを入力する。&lt;br /&gt;
# [send]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_IP_VANISH&amp;diff=14585</id>
		<title>VPN - IP VANISH</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=VPN_-_IP_VANISH&amp;diff=14585"/>
		<updated>2026-03-24T10:51:01Z</updated>

		<summary type="html">&lt;p&gt;Wiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
IP VANISHは、ログを一切取らないVPNサービスであり、インターネットのための安全な環境を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続が確立すると、全てのオンライントラフィック（Webブラウジング、動画ストリーミング、ファイル共有等）は暗号化されたトンネルを通過して、識別IPアドレスは隠蔽される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、122カ国以上にある150以上の場所に、3200台以上のVPNサーバを配置している。(2025年時点)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IP VANISHは、電話、メール、ライブチャットによる年中無休のカスタマーサポートを行っている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ノーログポリシーの実態 ==&lt;br /&gt;
IP VANISHはノーログVPNを標榜しているが、過去にはノーログの主張に反してユーザ情報を捜査機関に提供した事例が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 2016年の捜査機関へのデータ提供事件 ====&lt;br /&gt;
2016年5月から6月にかけて、米国国土安全保障省 (DHS) が児童ポルノ関連事件を捜査する過程で、容疑者が使用したIPアドレスをIP VANISHまで追跡した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
当時、IP VANISHは &amp;quot;ノーログポリシーを厳格に遵守&amp;quot; と公言していたにもかかわらず、以下に示す経緯でユーザ情報を提供した。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# DHSからの最初の問い合わせに対して、IP VANISHは &amp;quot;ログは保持していない&amp;quot; と回答した。&lt;br /&gt;
# しかし、DHSがより詳細な捜査令状を発行した後、IP VANISHは方針を変更した。&lt;br /&gt;
# 接続ログを含む詳細な個人情報を当局に開示した。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
当時の運営会社はHighwinds Network Group (Mudhook Media) であった。&amp;lt;br&amp;gt;&lt;br /&gt;
この事件は、IP VANISHのノーログ主張に対する重大な信頼性の問題を引き起こし、VPN業界全体の透明性向上への圧力につながった。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 運営体制の変遷 ====&lt;br /&gt;
IP VANISHは設立以降、複数回の経営変更を経ている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IP VANISHの運営体制の変遷&lt;br /&gt;
! 時期 !! 出来事&lt;br /&gt;
|-&lt;br /&gt;
| 2012年 || Mudhook Media Inc により設立 (Highwinds Network Groupの独立子会社)&lt;br /&gt;
|-&lt;br /&gt;
| 2016年 || DHS事件が発生 (上記参照)&lt;br /&gt;
|-&lt;br /&gt;
| 2017年2月 || StackPathが買収。買収時に独立監査を実施し、ログシステムが存在しないことを確認&lt;br /&gt;
|-&lt;br /&gt;
| 2019年4月 || J2 Global (現 Ziff Davis) がStackPathから買収&lt;br /&gt;
|-&lt;br /&gt;
| 2021年 || J2 Globalが企業分割し、デジタルメディアおよびサイバーセキュリティ部門がZiff Davisとして独立上場 (NASDAQ: ZD)&lt;br /&gt;
|-&lt;br /&gt;
| 現在 || Ziff Davis / NetProtect / VIPRE Security Group傘下で運営&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 第三者監査による検証 ====&lt;br /&gt;
2017年のStackPath買収以降、IP VANISHは独立した第三者機関による監査を実施している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 2023年: Leviathan Security Groupによる監査&lt;br /&gt;
*: IP VANISHがプライバシーポリシーのノーログ主張に準拠していることを確認した。&lt;br /&gt;
* 2025年2月: Schellman Compliance LLCによる監査 (2025年4月に結果発表)&lt;br /&gt;
*: サーバ構成およびITシステム全体の技術的検証を実施した。&lt;br /&gt;
*: エンジニアリングチームおよびオペレーションチームへの無制限アクセスが許可された。&lt;br /&gt;
*: ログ構成の検査、サーバイメージの検査、シミュレートされたユーザセッション、テストトラフィックの実施、リアルタイム検証等が行われた。&lt;br /&gt;
*: 監査結果として、ユーザ活動またはメタデータのログ証拠なし、元々のIPアドレスの非記録確認、トラフィック検査なしが確認された。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 透明性への取り組み ====&lt;br /&gt;
現在のIP VANISHは、以下の取り組みにより透明性の向上を図っている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 四半期ごとの透明性報告書を公開&lt;br /&gt;
*: 2025年Q4報告では、法的請求25件を受領したが0件のデータ提供、DMCA通知28,636件を受領したが0件のデータ提供であった。&lt;br /&gt;
* Trust Centerを開設し、全てのノーログ監査結果を公開&lt;br /&gt;
* VPN Trust Initiativeの創立メンバーとして、VPN業界全体のプライバシーおよびセキュリティ基準の向上に参加&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 残る懸念点 ====&lt;br /&gt;
一方で、以下の懸念点が専門家から指摘されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 米国に拠点を置いているため、Five Eyes監視協定の対象国である。&lt;br /&gt;
* 2016年の信頼侵害は事実として消えず、経営体制が複数回変わっている。&lt;br /&gt;
* 現在の独立監査があっても根本的な信頼性の懸念が残るとする専門家の意見もある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IP VANISHの契約 ==&lt;br /&gt;
IP VANISHの契約手順を以下に記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [https://support.ipvanish.com/hc/en-us IP VANISHの公式Webサイト]へアクセスして、ページ上部にある[Start Now]を選択する。&lt;br /&gt;
# [Pick your package]では、VPNのプランを選択する。&lt;br /&gt;
# [Select your plan]では、月間または年間のプランを選択する。&lt;br /&gt;
# [Create your account]では、新規アカウントを作成する。&lt;br /&gt;
# [Choose your payment method]では、支払い方法(クレジットカードまたはPayPal)を選択する。&lt;br /&gt;
# [I agree to the automatic renewal terms above.]チェックボックスにチェックを入力する。&lt;br /&gt;
# [Subscribe Now]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IP VANISHの料金は、年間39.99ドル(更新時では、年間99.99ドル)である。(2025年時点)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IP VANISHの設定 ==&lt;br /&gt;
IP VANISH(OpenVPN)を設定するには、以下の手順に従う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== NetworkManagerを使用する場合 ====&lt;br /&gt;
* GNOMEの場合&lt;br /&gt;
# [https://www.ipvanish.com/software/configs/configs.zip IP VANISHの公式Webサイト]から、OpenVPNファイルをダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://www.ipvanish.com/software/configs/configs.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip config.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn NetworkManager-openvpn-gnome&amp;lt;/code&amp;gt;&lt;br /&gt;
# GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、[有線接続]プルダウンから[有線設定]を選択する。&lt;br /&gt;
# [設定]画面が開くので、画面左にある[ネットワーク] - 画面右の[VPN]項目の右にある[＋]ボタンを押下する。&lt;br /&gt;
# [VPNの追加]画面が開くので、[ファイルからインポート...]を選択する。&lt;br /&gt;
# 上記で解凍したOpenVPN設定ファイルを選択して、画面右上にある[開く]ボタンを押下する。&amp;lt;br&amp;gt;ここで、OpenVPNファイルの命名形式は、国-場所-サーバアドレスである。&amp;lt;br&amp;gt;例. ipvanish-AU-Sydney-syd-a01.ovpn&lt;br /&gt;
# 選択したOpenVPN設定ファイルが未保存のセッションとしてNetworkManagerにインポートされるので、[VPNの追加]画面から以下に示す項目を入力および設定する。&lt;br /&gt;
#* [Gateway]&lt;br /&gt;
#*: サーバのアドレスを確認する。&lt;br /&gt;
#* [ユーザ名]&lt;br /&gt;
#*: IP VANISHのユーザ名を入力する。&lt;br /&gt;
#* [パスワード]&lt;br /&gt;
#*: IP VANISHのパスワードを入力する。&lt;br /&gt;
#*: ［Store the password for all users（すべてのユーザーのパスワードを保存する）]を選択する。&lt;br /&gt;
#* [CA証明書]&lt;br /&gt;
#*: &amp;lt;code&amp;gt;ca.ipvanish.com.crt&amp;lt;/code&amp;gt;とラベル付けされていることを確認する。&lt;br /&gt;
# [VPNの追加]画面にある[IPv6]タブを選択して、[無効]ボタンを選択する。&lt;br /&gt;
# [VPNの追加]画面右上にある[追加]ボタンを押下する。&lt;br /&gt;
# 上記で選択したIP VANISHのOpenVPN設定が作成されて、IP VANISHのOpenVPNセッションが[VPN]項目の選択エリアにリストされていることを確認する。&amp;lt;br&amp;gt;これは、[VPN]項目の選択エリアにあるスライダースイッチを押下することにより、接続および切断を切り替えることができる。&amp;lt;br&amp;gt;また、GNOMEのホーム画面右上にある[ネットワーク]アイコンをクリックして、VPNの接続および切断を切り替えることができる。&lt;br /&gt;
# IPアドレスが匿名かつプライベートなIP VANISHに変更されたことを確認する場合は、http://ipchicken.com にアクセスする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* KDEの場合&lt;br /&gt;
# [https://www.ipvanish.com/software/configs/configs.zip IP VANISHの公式Webサイト]から、OpenVPNファイルをダウンロードする。&amp;lt;br&amp;gt;または、以下のコマンドを実行してダウンロードする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;wget https://www.ipvanish.com/software/configs/configs.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;unzip config.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# OpenVPNの設定ファイルをインポートして使用するために必要な依存関係のライブラリをインストールする。&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper install openvpn NetworkManager-openvpn plasma-nm5-openvpn&amp;lt;/code&amp;gt;&lt;br /&gt;
# [KDEシステム設定]を起動して、[接続]を選択する。&lt;br /&gt;
# [接続]画面が開くので、画面左下(接続先リストの下)にある[+]を押下する。&lt;br /&gt;
# [接続タイプの選択]画面が開くので、リストの最下行にある[VPN接続をインポート...]オプションを選択して[作成]ボタンを押下する。&lt;br /&gt;
# [VPN接続をインポート]画面が開くので、解凍したconfigディレクトリ内にあるOpenVPNファイル(VPNサーバ)を選択する。&amp;lt;br&amp;gt;例. ipvanish-UK-London-lon-a01.ovpn&lt;br /&gt;
# 証明書をコピーするよう求められたら、[はい]ボタンを押下する。&lt;br /&gt;
# [接続]画面左にIP VANISHのVPN接続が表示されるので、IP VANISHのVPN接続を選択する。&lt;br /&gt;
# [接続]画面右にある[VPN(openvpn)]タブを選択して、IP VANISHのユーザ名とパスワードを入力する。&lt;br /&gt;
# [接続]画面右にある[IPv6]タブを選択して、[この接続には IPv6 が必要]チェックボックスのチェックを外す。&lt;br /&gt;
# [接続画面]右下にある[適用]ボタンを押下する。&lt;br /&gt;
# タスクバーにあるネットワークアイコンをクリックすると、上記のセクションで作成したOpenVPNが表示されるので、[接続]ボタンを押下する。&lt;br /&gt;
# [https://www.ipvanish.com/what-is-my-ip-address/ IP Checker]にアクセスして、VPNを通して接続されているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OpenVPNコマンドを使用する場合 ====&lt;br /&gt;
# IP VANISHのOpenVPN設定ファイルを[https://www.ipvanish.com/software/configs/configs.zip IP VANISHの公式Webサイト]からダウンロードする。&lt;br /&gt;
# ダウンロードしたファイルを解凍する。&amp;lt;br&amp;gt;解凍したディレクトリには、OpenVPNファイルと証明書ファイル(.crt拡張子)の2つがある。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# 上記で編集したOpenVPN設定ファイルを使用して、OpenVPNを&amp;lt;u&amp;gt;コマンドから&amp;lt;/u&amp;gt;起動する。&lt;br /&gt;
#: &amp;lt;code&amp;gt;cd &amp;lt;OpenVPNの設定ファイルがあるディレクトリ&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo openvpn --config &amp;lt;OpenVPNの設定ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: または&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo openvpn --config &amp;lt;OpenVPNの設定ファイルのパス&amp;gt; --ca &amp;lt;証明書ファイルのパス&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WebブラウザからIP VANISHに接続する ==&lt;br /&gt;
# [https://support.ipvanish.com/hc/en-us/articles/360001410573-How-to-Configure-the-SOCKS5-Proxy-in-Firefox- SOCKS5のガイド]に従って、FireFoxのSocks5プロキシを設定する。&amp;lt;br&amp;gt;IPVanishは、Webトラフィックを匿名化するため、[https://addons.mozilla.org/ja/firefox/addon/foxyproxy-standard/?utm_source=addons.mozilla.org&amp;amp;utm_medium=referral&amp;amp;utm_content=search FoxyProxy Standardアドオン]をインストールしてSOCKS5プロキシを構成することを推奨している。&lt;br /&gt;
# Firefoxのアドオンページに移動して、検索ボックスで&amp;quot;FoxyProxy Standard&amp;quot;と検索する。&lt;br /&gt;
# FirefoxにFoxyProxy Standardアドオンをインストールする。&lt;br /&gt;
# FoxyProxy Standardのアイコンから[オプション]を選択して、FoxyProxy Standardの設定画面を表示する。&lt;br /&gt;
# 設定画面左にある[Add]ボタンを押下して、IP VanishのSOCKS5プロキシを設定する。&lt;br /&gt;
##* Title&lt;br /&gt;
##*: IPVanish Proxy&lt;br /&gt;
##* Proxy Type&lt;br /&gt;
##*: SOCKS5&lt;br /&gt;
##* Proxy IP address, DNS name&lt;br /&gt;
##*: SOCKS5プロキシのアドレス、SOCKS5プロキシのユーザ名およびパスワードは、[https://account.ipvanish.com/login IP Vanishのマイアカウントページ]にあるSOCKS5プロキシタブで見つけることができる。&lt;br /&gt;
##* Port&lt;br /&gt;
##*: 1080&lt;br /&gt;
##* Username&lt;br /&gt;
##*: IP Vanishのユーザ名&lt;br /&gt;
##* Password&lt;br /&gt;
##*: IP Vanishのパスワード&lt;br /&gt;
## 設定画面左にある全てのトグルスイッチを有効化する。&lt;br /&gt;
## [Save]ボタンを押下する。&lt;br /&gt;
## 新しいページに自動的に遷移するので、設定画面上部にあるプルダウンから[Turn Off（Use Firefox Settings）]を選択して、上記で追加したSOCKS5プロキシサーバを選択する。&lt;br /&gt;
## 設定画面左にある[What&#039;s My IP]を選択して、SOCKS5プロキシサーバ経由で接続されていることを確認する。&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# [https://www.ipvanish.com/what-is-my-ip-address/ IP Checker]にアクセスして、VPNを通して接続されているかどうかを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VPN over Tor ==&lt;br /&gt;
&amp;lt;u&amp;gt;IP VANISHは、VPN over TORをサポートしていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
VPN接続、または、Tor over VPN接続のみが使用できることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tor over VPN ==&lt;br /&gt;
VPNネットワーク経由でTorに接続する方法であり、Torは終了ノードになる。(Tor over VPN)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [[VPN - IP VANISH#IP VANISHの設定|&amp;quot;IP VANISHの設定&amp;quot;]]セクションを参照して、VPNに接続する。&lt;br /&gt;
# [https://www.torproject.org/download/ Torブラウザの公式Webサイト]にアクセスして、Torブラウザをダウンロードおよびインストールする。&lt;br /&gt;
# Torブラウザを起動して、[Connect]ボタンを押下する。&amp;lt;br&amp;gt;Torブラウザの設定はデフォルトのままでよい。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Windows7]][[カテゴリ:Windows10]][[カテゴリ:Windows11]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_API&amp;diff=14584</id>
		<title>GitHub - API</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_API&amp;diff=14584"/>
		<updated>2026-03-24T10:37:02Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub APIは、GitHubのデータやサービスにプログラムからアクセスするためのインターフェースである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; GitHub APIには2種類のAPIが提供されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;center&amp;gt; {| class=&amp;quot;wikitable&amp;quot; |+ GitHub APIの種類 |- ! 種類 !! 説明 |- | REST API || ベースURL: https://api.github.com/&amp;lt;br&amp;gt;HTTPメソッド (GET、POST、PATCH、PUT、DELETE) を使用してリソースを操作する。&amp;lt;br&amp;gt;シンプ…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub APIは、GitHubのデータやサービスにプログラムからアクセスするためのインターフェースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub APIには2種類のAPIが提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub APIの種類&lt;br /&gt;
|-&lt;br /&gt;
! 種類 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| REST API || ベースURL: https://api.github.com/&amp;lt;br&amp;gt;HTTPメソッド (GET、POST、PATCH、PUT、DELETE) を使用してリソースを操作する。&amp;lt;br&amp;gt;シンプルなリクエスト・レスポンスモデルで、幅広い用途に対応する。&lt;br /&gt;
|-&lt;br /&gt;
| GraphQL API || エンドポイント: https://api.github.com/graphql&amp;lt;br&amp;gt;必要なデータのみを指定して取得できる柔軟なクエリ言語を使用する。&amp;lt;br&amp;gt;複数リソースのデータを1回のリクエストで取得できるため、オーバーフェッチを防止できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
両APIとも認証が必要な操作と不要な操作があるが、認証を行うことでレート制限が緩和され、プライベートリポジトリにもアクセス可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 認証 ==&lt;br /&gt;
GitHub APIの認証方式は複数存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
用途に応じて適切な認証方式を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Personal Access Token ====&lt;br /&gt;
Personal Access Token (PAT) は、個人のGitHubアカウントの代わりにAPIリクエストを認証するためのトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PATには2種類ある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Fine-grained Personal Access Token (推奨) =====&lt;br /&gt;
Fine-grained PATは、より細かい権限制御が可能な新しい形式のトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 特定のリポジトリに対してのみアクセス権を付与できる。&lt;br /&gt;
* 各操作 (エンドポイント) 単位で権限を設定できる。&lt;br /&gt;
* 有効期限の設定が必須である。&lt;br /&gt;
* GitHub.comの[Settings] - [Developer settings] - [Personal access tokens] - [Fine-grained tokens]から作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== Classic Personal Access Token =====&lt;br /&gt;
Classic PATは、従来のスコープベースのトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;repo&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;admin:org&amp;lt;/code&amp;gt; 等のスコープ単位で権限を付与する。&lt;br /&gt;
* 全リポジトリへのアクセスが許可されるため、Fine-grained PATより権限が広くなりやすい。&lt;br /&gt;
* GitHub.comの[Settings] - [Developer settings] - [Personal access tokens] - [Tokens (classic)]から作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PATを使用する時は、リクエストヘッダに以下に示す形式で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&lt;br /&gt;
 または&lt;br /&gt;
 Authorization: token &amp;lt;YOUR_TOKEN&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Apps ====&lt;br /&gt;
GitHub Appsは、GitHubプラットフォーム上に構築するアプリケーションのための認証方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Appsは2段階の認証方式を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* JWT認証 (アプリ自身の認証)&lt;br /&gt;
*: アプリのプライベートキーを使用してJWT (JSON Web Token) を生成する。&lt;br /&gt;
*: JWTは10分間有効である。&lt;br /&gt;
*: インストールアクセストークンの取得に使用する。&lt;br /&gt;
* インストールアクセストークン&lt;br /&gt;
*: JWTを使用して &amp;lt;code&amp;gt;POST /app/installations/{installation_id}/access_tokens&amp;lt;/code&amp;gt; に対してリクエストを送信することで取得する。&lt;br /&gt;
*: 短期間 (1時間) で自動失効する。&lt;br /&gt;
*: 実際のAPIリクエストにはインストールアクセストークンを使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OAuth Apps ====&lt;br /&gt;
OAuth Appsは、ユーザの代わりにGitHub APIにアクセスするための認証方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* OAuthフローを通じてユーザの認可を得る。&lt;br /&gt;
* ユーザアクセストークンを取得してAPIリクエストに使用する。&lt;br /&gt;
* GitHub AppsのOAuth機能と比較して、権限管理の粒度が粗い。&lt;br /&gt;
* 新規の用途には、GitHub Appsの使用が推奨される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GITHUB_TOKEN ====&lt;br /&gt;
&amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; は、GitHub Actionsワークフロー内で自動的に生成されるシークレットトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ワークフロー実行ごとに自動生成される。&lt;br /&gt;
* ワークフローが完了すると自動的に失効する。&lt;br /&gt;
* リポジトリのActionsの設定でデフォルトの権限を調整できる。&lt;br /&gt;
* 外部リソースへのアクセスには別途認証が必要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Actionsのワークフロー内では以下に示すように使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 - name: GitHub APIを呼び出す&lt;br /&gt;
   run: |&lt;br /&gt;
      curl -H &amp;quot;Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}&amp;quot; \&lt;br /&gt;
           https://api.github.com/repos/${{ github.repository }}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 認証方法の比較 ====&lt;br /&gt;
下表に、各認証方式の特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 認証方式の比較&lt;br /&gt;
! 認証方式 !! 用途 !! 権限の粒度 !! 有効期限&lt;br /&gt;
|-&lt;br /&gt;
| Fine-grained PAT || 個人の開発、スクリプト || リポジトリ単位・操作単位 || 設定必須 (最大1年)&lt;br /&gt;
|-&lt;br /&gt;
| Classic PAT || 個人の開発、スクリプト || スコープ単位 || 設定可能 (無期限も可)&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Apps || サードパーティアプリ、CI/CD || リポジトリ単位・権限単位 || インストールトークンは1時間&lt;br /&gt;
|-&lt;br /&gt;
| OAuth Apps || ユーザ認可が必要なアプリ || スコープ単位 || 設定による&lt;br /&gt;
|-&lt;br /&gt;
| GITHUB_TOKEN || GitHub Actionsワークフロー || リポジトリ権限に準拠 || ワークフロー終了まで&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== REST API ==&lt;br /&gt;
==== エンドポイントの構造 ====&lt;br /&gt;
GitHub REST APIのベースURLは https://api.github.com/ である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
エンドポイントは以下の形式で構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 https://api.github.com/{リソースパス}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、リソースパスの例を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ REST APIの主要なエンドポイント例&lt;br /&gt;
|-&lt;br /&gt;
! エンドポイント !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/repos/{owner}/{repo}&amp;lt;/code&amp;gt; || 特定リポジトリの情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/repos/{owner}/{repo}/issues&amp;lt;/code&amp;gt; || リポジトリのIssue一覧&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/user&amp;lt;/code&amp;gt; || 認証済みユーザの情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/orgs/{org}&amp;lt;/code&amp;gt; || 組織の情報&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、HTTPメソッドと操作の対応を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! HTTPメソッド !! 操作内容&lt;br /&gt;
|-&lt;br /&gt;
| GET || リソースの取得&lt;br /&gt;
|-&lt;br /&gt;
| POST || リソースの作成&lt;br /&gt;
|-&lt;br /&gt;
| PATCH || リソースの部分更新&lt;br /&gt;
|-&lt;br /&gt;
| PUT || リソースの置換・関連付け&lt;br /&gt;
|-&lt;br /&gt;
| DELETE || リソースの削除&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リクエストとレスポンス ====&lt;br /&gt;
GitHub REST APIのリクエストには、以下に示すヘッダを設定することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要なリクエストヘッダ&lt;br /&gt;
! ヘッダ名 !! 説明 !! 例&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Authorization&amp;lt;/code&amp;gt; || 認証トークン || &amp;lt;u&amp;gt;Bearer ghp_xxxxxxxxxxxx&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Accept&amp;lt;/code&amp;gt; || レスポンス形式の指定 || &amp;lt;u&amp;gt;application/vnd.github+json&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X-GitHub-Api-Version&amp;lt;/code&amp;gt; || APIバージョンの指定 || &amp;lt;u&amp;gt;2022-11-28&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;User-Agent&amp;lt;/code&amp;gt; || アプリケーション識別子 || &amp;lt;u&amp;gt;MyApp/1.0&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レスポンスは、JSON形式で返される。&amp;lt;br&amp;gt;&lt;br /&gt;
日時は、ISO 8601形式 (例: &amp;lt;u&amp;gt;2024-01-15T12:00:00Z&amp;lt;/u&amp;gt;) で表現される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ページネーション ====&lt;br /&gt;
複数件のリソースを返すエンドポイントでは、ページネーションが使用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;per_page&amp;lt;/code&amp;gt; クエリパラメータでページあたりの件数を指定する。(最大100)&lt;br /&gt;
* &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; クエリパラメータでページ番号を指定する。&lt;br /&gt;
* レスポンスの &amp;lt;code&amp;gt;Link&amp;lt;/code&amp;gt; ヘッダに次ページ、前ページ等のURLが含まれる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Link&amp;lt;/code&amp;gt; ヘッダの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 Link: &amp;lt;https://api.github.com/repos/owner/repo/issues?page=2&amp;gt;; rel=&amp;quot;next&amp;quot;,&lt;br /&gt;
       &amp;lt;https://api.github.com/repos/owner/repo/issues?page=10&amp;gt;; rel=&amp;quot;last&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; の値は &amp;lt;u&amp;gt;next&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;prev&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;first&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;last&amp;lt;/u&amp;gt; の4種類がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要なエンドポイント ====&lt;br /&gt;
下表に、よく使用される主要なエンドポイントを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要エンドポイント一覧&lt;br /&gt;
! カテゴリ !! メソッド !! エンドポイント !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリ || GET || &amp;lt;code&amp;gt;/repos/{owner}/{repo}&amp;lt;/code&amp;gt; || リポジトリ情報の取得&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリ || POST || &amp;lt;code&amp;gt;/user/repos&amp;lt;/code&amp;gt; || リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリ || GET || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/contents/{path}&amp;lt;/code&amp;gt; || ファイル内容の取得&lt;br /&gt;
|-&lt;br /&gt;
| Issues || GET || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/issues&amp;lt;/code&amp;gt; || Issue一覧の取得&lt;br /&gt;
|-&lt;br /&gt;
| Issues || POST || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/issues&amp;lt;/code&amp;gt; || Issueの作成&lt;br /&gt;
|-&lt;br /&gt;
| Issues || PATCH || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/issues/{issue_number}&amp;lt;/code&amp;gt; || Issueの更新&lt;br /&gt;
|-&lt;br /&gt;
| Pull Requests || GET || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/pulls&amp;lt;/code&amp;gt; || PR一覧の取得&lt;br /&gt;
|-&lt;br /&gt;
| Pull Requests || POST || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/pulls&amp;lt;/code&amp;gt; || PRの作成&lt;br /&gt;
|-&lt;br /&gt;
| Pull Requests || PUT || &amp;lt;code&amp;gt;/repos/{owner}/{repo}/pulls/{pull_number}/merge&amp;lt;/code&amp;gt; || PRのマージ&lt;br /&gt;
|-&lt;br /&gt;
| ユーザ || GET || &amp;lt;code&amp;gt;/user&amp;lt;/code&amp;gt; || 認証済みユーザ情報の取得&lt;br /&gt;
|-&lt;br /&gt;
| ユーザ || GET || &amp;lt;code&amp;gt;/users/{username}&amp;lt;/code&amp;gt; || 特定ユーザ情報の取得&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 使用例 ====&lt;br /&gt;
curlを使用したREST APIのリクエスト例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* リポジトリ情報の取得&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -H &amp;quot;Accept: application/vnd.github+json&amp;quot; \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      -H &amp;quot;X-GitHub-Api-Version: 2022-11-28&amp;quot; \&lt;br /&gt;
      https://api.github.com/repos/octocat/hello-world&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Issueの作成&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -X POST \&lt;br /&gt;
      -H &amp;quot;Accept: application/vnd.github+json&amp;quot; \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      -H &amp;quot;X-GitHub-Api-Version: 2022-11-28&amp;quot; \&lt;br /&gt;
      https://api.github.com/repos/octocat/hello-world/issues \&lt;br /&gt;
      -d &#039;{&amp;quot;title&amp;quot;:&amp;quot;バグ報告&amp;quot;,&amp;quot;body&amp;quot;:&amp;quot;バグの詳細説明&amp;quot;,&amp;quot;labels&amp;quot;:[&amp;quot;bug&amp;quot;]}&#039;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* Issue一覧の取得 (ページネーション使用)&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -H &amp;quot;Accept: application/vnd.github+json&amp;quot; \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      -H &amp;quot;X-GitHub-Api-Version: 2022-11-28&amp;quot; \&lt;br /&gt;
      &amp;quot;https://api.github.com/repos/octocat/hello-world/issues?per_page=50&amp;amp;page=1&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GraphQL API ==&lt;br /&gt;
==== GraphQLとは ====&lt;br /&gt;
GraphQLは、APIのためのクエリ言語であり、必要なデータのみを指定して取得できる仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
REST APIと比較した時のGraphQL APIのメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ REST APIと比較したGraphQL APIのメリット&lt;br /&gt;
|-&lt;br /&gt;
! 観点 !! メリット&lt;br /&gt;
|-&lt;br /&gt;
| データ取得の効率性 || 必要なフィールドのみを指定して取得するため、不要なデータの転送を削減できる。&lt;br /&gt;
|-&lt;br /&gt;
| リクエスト回数の削減 || 複数のリソースに関するデータを1回のリクエストで取得できる。&lt;br /&gt;
|-&lt;br /&gt;
| APIの明確性 || 型システムによりAPIの構造が明確である。&lt;br /&gt;
|-&lt;br /&gt;
| クライアントの柔軟性 || クライアント側でデータ要件を柔軟に調整できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エンドポイント ====&lt;br /&gt;
GitHub GraphQL APIのエンドポイントは以下の1つのみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 https://api.github.com/graphql&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
REST APIとは異なり、全てのリクエストは &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; メソッドで送信する。&amp;lt;br&amp;gt;&lt;br /&gt;
リクエストボディにJSONとしてクエリを含める。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -X POST \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
      https://api.github.com/graphql \&lt;br /&gt;
      -d &#039;{&amp;quot;query&amp;quot;: &amp;quot;{ viewer { login } }&amp;quot;}&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クエリの基本 ====&lt;br /&gt;
GraphQLのクエリは、取得したいデータの構造を宣言的に記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 認証済みユーザの情報を取得するクエリの例&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;query { viewer { login name email } }&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 特定リポジトリの情報を取得するクエリの例&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;query { repository(owner: \&amp;quot;octocat\&amp;quot;, name: \&amp;quot;hello-world\&amp;quot;) { name description stargazerCount forkCount } }&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 横断検索 (search) を使用したクエリの例&lt;br /&gt;
*: searchは最大1,000件の結果を返す。&lt;br /&gt;
*: &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;query { search(query: \&amp;quot;repo:octocat/hello-world is:issue is:open\&amp;quot;, type: ISSUE, first: 10) { issueCount nodes { ... on Issue { title number } } } }&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ミューテーション ====&lt;br /&gt;
GraphQLでデータを変更する操作には、ミューテーション (mutation) を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Issueにリアクションを追加するミューテーションの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;mutation { addReaction(input: {subjectId: \&amp;quot;MDU6SXNzdWUx\&amp;quot;, content: THUMBS_UP}) { reaction { content } subject { id } } }&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 変数の使用 ====&lt;br /&gt;
GraphQLでは、クエリと変数を分離して記述できる。&amp;lt;br&amp;gt;&lt;br /&gt;
変数を使用することにより、クエリの再利用性が向上して、特殊文字のエスケープが不要になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;query&amp;quot;: &amp;quot;query GetRepository($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { name description stargazerCount issues(first: 5, states: OPEN) { nodes { title number } } } }&amp;quot;,&lt;br /&gt;
    &amp;quot;variables&amp;quot;: {&lt;br /&gt;
       &amp;quot;owner&amp;quot;: &amp;quot;octocat&amp;quot;,&lt;br /&gt;
       &amp;quot;name&amp;quot;: &amp;quot;hello-world&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub CLI (gh) ==&lt;br /&gt;
==== インストールと認証 ====&lt;br /&gt;
GitHub CLI (gh) は、コマンドラインからGitHubの操作を行うための公式ツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # MacOS (Homebrew)&lt;br /&gt;
 brew install gh&lt;br /&gt;
 &lt;br /&gt;
 # RHEL&lt;br /&gt;
 sudo dnf install gh&lt;br /&gt;
 &lt;br /&gt;
 # SUSE&lt;br /&gt;
 sudo zypper install gh&lt;br /&gt;
 &lt;br /&gt;
 # Debian / Ubuntu&lt;br /&gt;
 sudo apt install gh&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール後、認証を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 対話的な認証フロー&lt;br /&gt;
 gh auth login&lt;br /&gt;
 &lt;br /&gt;
 # 認証状態の確認&lt;br /&gt;
 gh auth status&lt;br /&gt;
 &lt;br /&gt;
 # 環境変数を使用した認証 (CI/CD環境等)&lt;br /&gt;
 export GH_TOKEN=&amp;lt;YOUR_TOKEN&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要コマンド ====&lt;br /&gt;
下表に、GitHub CLIで使用できる主要なコマンドを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub CLI 主要コマンド一覧&lt;br /&gt;
! コマンド !! 主なサブコマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh repo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;clone&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;fork&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt; || リポジトリの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh issue&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;close&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;edit&amp;lt;/code&amp;gt; || Issueの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh pr&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;merge&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;checkout&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;review&amp;lt;/code&amp;gt; || Pull Requestの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh release&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;download&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt; || リリースの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh workflow&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;enable&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;disable&amp;lt;/code&amp;gt; || GitHub Actionsワークフローの管理&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh api&amp;lt;/code&amp;gt; || - || REST / GraphQL APIの直接呼び出し&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gh alias&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt; || コマンドエイリアスの管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # リポジトリのクローン&lt;br /&gt;
 gh repo clone octocat/hello-world&lt;br /&gt;
 &lt;br /&gt;
 # Issue一覧の表示&lt;br /&gt;
 gh issue list --repo octocat/hello-world --state open&lt;br /&gt;
 &lt;br /&gt;
 # Pull Requestの作成&lt;br /&gt;
 gh pr create --title &amp;quot;機能追加&amp;quot; --body &amp;quot;機能の説明&amp;quot; --base main&lt;br /&gt;
 &lt;br /&gt;
 # ワークフローの手動実行&lt;br /&gt;
 gh workflow run deploy.yml --ref main&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== gh api ====&lt;br /&gt;
&amp;lt;code&amp;gt;gh api&amp;lt;/code&amp;gt; コマンドを使用することにより、REST API および GraphQL APIを直接呼び出すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # REST API (GET)&lt;br /&gt;
 gh api repos/octocat/hello-world&lt;br /&gt;
 &lt;br /&gt;
 # REST API (POST) : Issueの作成&lt;br /&gt;
 gh api repos/octocat/hello-world/issues \&lt;br /&gt;
    --method POST \&lt;br /&gt;
    --field title=&amp;quot;バグ報告&amp;quot; \&lt;br /&gt;
    --field body=&amp;quot;バグの詳細説明&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # GraphQL APIの呼び出し&lt;br /&gt;
 gh api graphql \&lt;br /&gt;
    --field query=&#039;query { viewer { login name } }&#039;&lt;br /&gt;
 &lt;br /&gt;
 # ページネーションを自動処理して全件取得&lt;br /&gt;
 gh api --paginate repos/octocat/hello-world/issues&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エイリアス ====&lt;br /&gt;
よく使用するコマンドにエイリアスを設定することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # エイリアスの設定&lt;br /&gt;
 gh alias set prl &#039;pr list --state open&#039;&lt;br /&gt;
 &lt;br /&gt;
 # エイリアスの一覧表示&lt;br /&gt;
 gh alias list&lt;br /&gt;
 &lt;br /&gt;
 # エイリアスの削除&lt;br /&gt;
 gh alias delete prl&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Octokit ==&lt;br /&gt;
Octokitは、GitHub APIの公式クライアントライブラリである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各言語向けに提供されており、APIの呼び出しを簡略化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Octokit.js ====&lt;br /&gt;
Octokit.jsは、JavaScript / TypeScript向けのGitHub APIクライアントライブラリである。&amp;lt;br&amp;gt;&lt;br /&gt;
Webブラウザ、Node.js、Denoの各環境で動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install @octokit/rest&lt;br /&gt;
 # または&lt;br /&gt;
 npm install octokit&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 import { Octokit } from &amp;quot;@octokit/rest&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 // インスタンスの作成&lt;br /&gt;
 const octokit = new Octokit({&lt;br /&gt;
    auth: &amp;quot;YOUR_TOKEN&amp;quot;,&lt;br /&gt;
 });&lt;br /&gt;
 &lt;br /&gt;
 // リポジトリ情報の取得&lt;br /&gt;
 const { data: repo } = await octokit.rest.repos.get({&lt;br /&gt;
    owner: &amp;quot;octocat&amp;quot;,&lt;br /&gt;
    repo: &amp;quot;hello-world&amp;quot;,&lt;br /&gt;
 });&lt;br /&gt;
 console.log(repo.name);&lt;br /&gt;
 &lt;br /&gt;
 // Issueの作成&lt;br /&gt;
 const { data: issue } = await octokit.rest.issues.create({&lt;br /&gt;
    owner: &amp;quot;octocat&amp;quot;,&lt;br /&gt;
    repo: &amp;quot;hello-world&amp;quot;,&lt;br /&gt;
    title: &amp;quot;バグ報告&amp;quot;,&lt;br /&gt;
    body: &amp;quot;バグの詳細説明&amp;quot;,&lt;br /&gt;
 });&lt;br /&gt;
 console.log(issue.number);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ページネーションを自動処理する &amp;lt;code&amp;gt;paginate()&amp;lt;/code&amp;gt; メソッドの使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 // 全Issue一覧の取得 (自動ページネーション)&lt;br /&gt;
 const issues = await octokit.paginate(octokit.rest.issues.listForRepo, {&lt;br /&gt;
    owner: &amp;quot;octocat&amp;quot;,&lt;br /&gt;
    repo: &amp;quot;hello-world&amp;quot;,&lt;br /&gt;
    state: &amp;quot;open&amp;quot;,&lt;br /&gt;
    per_page: 100,&lt;br /&gt;
 });&lt;br /&gt;
 &lt;br /&gt;
 console.log(`取得件数: ${issues.length}`);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Octokit.rb ====&lt;br /&gt;
Octokit.rbは、Ruby向けのGitHub APIクライアントライブラリである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インストール方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gem install octokit&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
 require &amp;quot;octokit&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # クライアントの作成&lt;br /&gt;
 client = Octokit::Client.new(access_token: &amp;quot;YOUR_TOKEN&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 # リポジトリ情報の取得&lt;br /&gt;
 repo = client.repository(&amp;quot;octocat/hello-world&amp;quot;)&lt;br /&gt;
 puts repo.name&lt;br /&gt;
 &lt;br /&gt;
 # Issueの作成&lt;br /&gt;
 issue = client.create_issue(&amp;quot;octocat/hello-world&amp;quot;, &amp;quot;バグ報告&amp;quot;, &amp;quot;バグの詳細説明&amp;quot;)&lt;br /&gt;
 puts issue.number&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Webhook ==&lt;br /&gt;
==== Webhookとは ====&lt;br /&gt;
WebhookはGitHub上でイベントが発生した時に、指定したURLに対してHTTP POSTリクエストを自動的に送信する仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Webhookを使用することにより、リポジトリへのプッシュ、IssueやPull Requestの作成・更新、デプロイイベントの発生等、様々なGitHubイベントに反応した自動化を実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Webhookの設定 ====&lt;br /&gt;
Webhookは、リポジトリ または Organizationの設定から作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Webhookの設定項目&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| ペイロードURL || Webhookのイベント発生時にリクエストを受信するエンドポイントのURL&amp;lt;br&amp;gt;公開されたHTTPSのURLである必要がある。&lt;br /&gt;
|-&lt;br /&gt;
| コンテンツタイプ || &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt; (推奨)&amp;lt;br&amp;gt;または&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;application/x-www-form-urlencoded&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;を選択する。&lt;br /&gt;
|-&lt;br /&gt;
| シークレット || Webhookのペイロードを検証するための秘密の文字列&amp;lt;br&amp;gt;設定することでHTTPリクエストの正当性を確認できる。&lt;br /&gt;
|-&lt;br /&gt;
| イベントの選択 || 通知を受けたいイベントを個別に選択、または、全イベントを受信するかを設定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== イベントの種類 ====&lt;br /&gt;
GitHubでは、70以上のWebhookイベントが提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主要なイベントを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要Webhookイベント&lt;br /&gt;
! イベント名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;push&amp;lt;/code&amp;gt; || リポジトリへのコミットのプッシュ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pull_request&amp;lt;/code&amp;gt; || Pull Requestの作成、更新、クローズ等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;issues&amp;lt;/code&amp;gt; || Issueの作成、更新、クローズ等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt; || ブランチやタグの作成&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt; || ブランチやタグの削除&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;release&amp;lt;/code&amp;gt; || リリースの公開・更新等&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;workflow_run&amp;lt;/code&amp;gt; || GitHub Actionsワークフローの実行&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;code_scanning_alert&amp;lt;/code&amp;gt; || コードスキャンアラートの検出&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;secret_scanning_alert&amp;lt;/code&amp;gt; || シークレットスキャンアラートの検出&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シークレットによる検証 ====&lt;br /&gt;
Webhookのシークレットを設定している場合、GitHubはリクエストに &amp;lt;code&amp;gt;X-Hub-Signature-256&amp;lt;/code&amp;gt; ヘッダを付与する。&amp;lt;br&amp;gt;&lt;br /&gt;
このヘッダの値はHMAC-SHA256アルゴリズムを使用して計算されたシグネチャである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
受信側でシグネチャを検証することにより、リクエストが正当なGitHubからのものであることを確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Node.jsでの検証例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 const crypto = require(&amp;quot;crypto&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 function verifyWebhookSignature(payload, signature, secret) {&lt;br /&gt;
    const hmac = crypto.createHmac(&amp;quot;sha256&amp;quot;, secret);&lt;br /&gt;
    const digest = &amp;quot;sha256=&amp;quot; + hmac.update(payload).digest(&amp;quot;hex&amp;quot;);&lt;br /&gt;
    return crypto.timingSafeEqual(&lt;br /&gt;
       Buffer.from(digest),&lt;br /&gt;
       Buffer.from(signature)&lt;br /&gt;
    );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Express.jsでの使用例&lt;br /&gt;
 app.post(&amp;quot;/webhook&amp;quot;, (req, res) =&amp;gt; {&lt;br /&gt;
    const signature = req.headers[&amp;quot;x-hub-signature-256&amp;quot;];&lt;br /&gt;
    const isValid = verifyWebhookSignature(&lt;br /&gt;
       req.rawBody,&lt;br /&gt;
       signature,&lt;br /&gt;
       process.env.WEBHOOK_SECRET&lt;br /&gt;
    );&lt;br /&gt;
 &lt;br /&gt;
    if (!isValid) {&lt;br /&gt;
       return res.status(401).send(&amp;quot;Unauthorized&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // Webhookペイロードの処理&lt;br /&gt;
    const event = req.headers[&amp;quot;x-github-event&amp;quot;];&lt;br /&gt;
    console.log(`イベント受信: ${event}`);&lt;br /&gt;
    res.status(200).send(&amp;quot;OK&amp;quot;);&lt;br /&gt;
 });&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、配信時に付与される主要なヘッダを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Webhookリクエストの主要なHTTPヘッダ&lt;br /&gt;
|-&lt;br /&gt;
! ヘッダー !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X-GitHub-Event&amp;lt;/code&amp;gt; || イベントの種類 (例: &amp;lt;u&amp;gt;push&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;pull_request&amp;lt;/u&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X-GitHub-Delivery&amp;lt;/code&amp;gt; || 配信を識別するUUID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X-Hub-Signature-256&amp;lt;/code&amp;gt; || HMAC-SHA256によるシグネチャ (シークレット設定時のみ)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ペイロードの制限 ====&lt;br /&gt;
Webhookのペイロードには最大25[MB]の制限がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ペイロードがこの制限を超える場合、GitHubはWebhookを送信せずに、配信履歴に記録される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;大量のコミットを含むプッシュイベント等で発生する可能性があるため、注意が必要である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub Apps ==&lt;br /&gt;
==== GitHub Appsとは ====&lt;br /&gt;
&amp;lt;u&amp;gt;GitHub Appsは、GitHubプラットフォーム上に構築するアプリケーションの形式であり、OAuth Appsより推奨される認証方式である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Appsの主な特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Fine-grained permissionsにより、必要な権限のみを要求できる。&lt;br /&gt;
* 特定のリポジトリにのみインストールすることが可能である。&lt;br /&gt;
* ユーザの代わりではなく、アプリケーション自身として動作できる。&lt;br /&gt;
* SAML SSOが有効なOrganizationでは自動的に認可される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== OAuth Appsとの違い ====&lt;br /&gt;
下表に、GitHub AppsとOAuth Appsの主な違いを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Apps vs OAuth Apps&lt;br /&gt;
! 比較項目 !! GitHub Apps !! OAuth Apps&lt;br /&gt;
|-&lt;br /&gt;
| 推奨度 || 推奨 || 非推奨 (新規用途)&lt;br /&gt;
|-&lt;br /&gt;
| 権限の粒度 || リポジトリ / 操作単位 || スコープ単位&lt;br /&gt;
|-&lt;br /&gt;
| インストール単位 || Organization または ユーザ || ユーザ&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリの限定 || 特定リポジトリのみ可能 || 全リポジトリ対象&lt;br /&gt;
|-&lt;br /&gt;
| 動作主体 || アプリ自身またはユーザ || ユーザのみ&lt;br /&gt;
|-&lt;br /&gt;
| レート制限 || インストールごとにスケーリング || ユーザごと&lt;br /&gt;
|-&lt;br /&gt;
| SAML SSO対応 || 自動認可 || ユーザによる認可が必要&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Appの作成 ====&lt;br /&gt;
GitHub Appを新規作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHub.comにログインして、[Settings]を開く。&lt;br /&gt;
# 左側のサイドバーから[Developer settings]を選択する。&lt;br /&gt;
# [GitHub Apps]を選択して、[New GitHub App]ボタンを押下する。&lt;br /&gt;
# アプリ名、ホームページURL、Webhook URL等の必須情報を入力する。&lt;br /&gt;
# 必要な権限 (Permissions) を設定する。&lt;br /&gt;
# サブスクライブするイベントを選択する。&lt;br /&gt;
# プライベートキーを生成してダウンロードする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 認証方式 ====&lt;br /&gt;
GitHub Appsでは3種類の認証方式が提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== JWT認証 (アプリ自身の認証) =====&lt;br /&gt;
アプリ自身を認証するためにJWT (JSON Web Token) を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アプリのIDとプライベートキーを使用してJWTを生成する。&lt;br /&gt;
* JWTの有効期限は最大10分である。&lt;br /&gt;
* インストールアクセストークンの取得等、アプリレベルの操作に使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 import jwt from &amp;quot;jsonwebtoken&amp;quot;;&lt;br /&gt;
 import fs from &amp;quot;fs&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 const APP_ID = &amp;quot;YOUR_APP_ID&amp;quot;;&lt;br /&gt;
 const PRIVATE_KEY = fs.readFileSync(&amp;quot;private-key.pem&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 const payload = {&lt;br /&gt;
    iat: Math.floor(Date.now() / 1000) - 60,&lt;br /&gt;
    exp: Math.floor(Date.now() / 1000) + (10 * 60),&lt;br /&gt;
    iss: APP_ID,&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 const token = jwt.sign(payload, PRIVATE_KEY, { algorithm: &amp;quot;RS256&amp;quot; });&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== インストールアクセストークン =====&lt;br /&gt;
特定のインストールのリソースにアクセスするための短期トークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* JWTを使用して &amp;lt;u&amp;gt;POST /app/installations/{installation_id}/access_tokens&amp;lt;/u&amp;gt; に対してリクエストを送信することで取得する。&lt;br /&gt;
* 有効期限は1時間で、自動的に失効する。&lt;br /&gt;
* 特定のリポジトリやリソースへのアクセスに使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== ユーザアクセストークン =====&lt;br /&gt;
&amp;lt;u&amp;gt;ユーザがGitHub Appを認可した後に取得できるトークンであり、ユーザの代わりにAPIを呼び出す場合に使用する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== レート制限 ==&lt;br /&gt;
==== プライマリレート制限 ====&lt;br /&gt;
GitHub APIには、APIの悪用を防ぐためのレート制限が設けられている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、プライマリレート制限の上限を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プライマリレート制限&lt;br /&gt;
! 認証状態 !! 上限 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| 認証なし || 60リクエスト / 時間 || IPアドレスごとに適用&lt;br /&gt;
|-&lt;br /&gt;
| PAT認証済み || 5,000リクエスト / 時間 || ユーザごとに適用&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Enterprise Cloud || 15,000リクエスト / 時間 || Organizationメンバー&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Apps (インストール) || 最低5,000リクエスト / 時間 || リポジトリ数に応じてスケーリング&lt;br /&gt;
|-&lt;br /&gt;
| GITHUB_TOKEN (Actions) || 1,000リクエスト / 時間 || リポジトリごとに適用&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セカンダリレート制限 ====&lt;br /&gt;
プライマリレート制限に加えて、サーバへの過負荷を防ぐためのセカンダリレート制限が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
セカンダリレート制限の主な内容を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 同時接続数&lt;br /&gt;
*: 最大100接続まで&lt;br /&gt;
* REST API&lt;br /&gt;
*: 1分あたり900ポイントまで&lt;br /&gt;
* GraphQL API&lt;br /&gt;
*: 1分あたり2,000ポイントまで&lt;br /&gt;
* コンテンツ作成 (Issueの作成等)&lt;br /&gt;
*: 1時間あたり制限あり&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
セカンダリレート制限に達した場合、レスポンスに &amp;lt;code&amp;gt;retry-after&amp;lt;/code&amp;gt; ヘッダが含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
このヘッダの値 (秒数) だけ待機してから再試行する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
継続して制限に達する場合は指数バックオフを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 確認方法 ====&lt;br /&gt;
現在のレート制限の状態は、レスポンスヘッダまたは専用のエンドポイントで確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、レスポンスヘッダで確認できる情報を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ レート制限関連レスポンスヘッダ&lt;br /&gt;
! ヘッダ名 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x-ratelimit-limit&amp;lt;/code&amp;gt; || 時間あたりの最大リクエスト数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x-ratelimit-remaining&amp;lt;/code&amp;gt; || 現在の期間内の残りリクエスト数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x-ratelimit-reset&amp;lt;/code&amp;gt; || レート制限がリセットされるUNIXタイムスタンプ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x-ratelimit-used&amp;lt;/code&amp;gt; || 現在の期間内に使用したリクエスト数&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;retry-after&amp;lt;/code&amp;gt; || セカンダリレート制限に達した場合の待機秒数&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
専用エンドポイントでレート制限を確認することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
このエンドポイントへのリクエスト自体はレート制限のカウントに含まれない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 curl -L \&lt;br /&gt;
      -H &amp;quot;Authorization: Bearer &amp;lt;YOUR_TOKEN&amp;gt;&amp;quot; \&lt;br /&gt;
      https://api.github.com/rate_limit&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レスポンスの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;resources&amp;quot;: {&lt;br /&gt;
       &amp;quot;core&amp;quot;: {&lt;br /&gt;
          &amp;quot;limit&amp;quot;: 5000,&lt;br /&gt;
          &amp;quot;remaining&amp;quot;: 4999,&lt;br /&gt;
          &amp;quot;reset&amp;quot;: 1700000000,&lt;br /&gt;
          &amp;quot;used&amp;quot;: 1&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;graphql&amp;quot;: {&lt;br /&gt;
          &amp;quot;limit&amp;quot;: 5000,&lt;br /&gt;
          &amp;quot;remaining&amp;quot;: 4999,&lt;br /&gt;
          &amp;quot;reset&amp;quot;: 1700000000,&lt;br /&gt;
          &amp;quot;used&amp;quot;: 1&lt;br /&gt;
       },&lt;br /&gt;
       &amp;quot;search&amp;quot;: {&lt;br /&gt;
          &amp;quot;limit&amp;quot;: 30,&lt;br /&gt;
          &amp;quot;remaining&amp;quot;: 29,&lt;br /&gt;
          &amp;quot;reset&amp;quot;: 1700000000,&lt;br /&gt;
          &amp;quot;used&amp;quot;: 1&lt;br /&gt;
       }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;rate&amp;quot;: {&lt;br /&gt;
       &amp;quot;limit&amp;quot;: 5000,&lt;br /&gt;
       &amp;quot;remaining&amp;quot;: 4999,&lt;br /&gt;
       &amp;quot;reset&amp;quot;: 1700000000,&lt;br /&gt;
       &amp;quot;used&amp;quot;: 1&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
* [https://docs.github.com/ja/rest GitHub REST API公式ドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/graphql GitHub GraphQL API公式ドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/apps GitHub Apps公式ドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/webhooks GitHub Webhooks公式ドキュメント]&lt;br /&gt;
* [https://cli.github.com/manual/ GitHub CLI公式マニュアル]&lt;br /&gt;
* [https://github.com/octokit GitHub Octokit公式リポジトリ]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,GitHub,API,REST API,GraphQL,GitHub Apps,OAuth,Webhook,Octokit,GitHub CLI,gh,Personal Access Token,PAT,Rate Limit,SUSE,Linux&lt;br /&gt;
|description={{PAGENAME}} - GitHub APIの使い方に関するリファレンスガイド | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=14583</id>
		<title>GitHub - セキュリティ</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3&amp;diff=14583"/>
		<updated>2026-03-24T09:56:05Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHubのセキュリティ機能は、ソフトウェアサプライチェーン全体を保護するための統合的なセキュリティプラットフォームである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; GitHubセキュリティは以下に示す3つの柱で構成されている。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; * Secret Scanning *: APIキー、パスワード、トークンなどの認証情報がコードに混入することを検出・防止する機能である。 *: Git履歴全体お…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHubのセキュリティ機能は、ソフトウェアサプライチェーン全体を保護するための統合的なセキュリティプラットフォームである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubセキュリティは以下に示す3つの柱で構成されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Secret Scanning&lt;br /&gt;
*: APIキー、パスワード、トークンなどの認証情報がコードに混入することを検出・防止する機能である。&lt;br /&gt;
*: Git履歴全体およびIssues、PR、Discussions、Wikiもスキャン対象となる。&lt;br /&gt;
* Code Scanning&lt;br /&gt;
*: CodeQLをはじめとする静的解析エンジンによりコードの脆弱性を自動検出する機能である。&lt;br /&gt;
*: PR作成時にインライン表示でフィードバックを提供する。&lt;br /&gt;
* Supply Chain Security&lt;br /&gt;
*: Dependabotによる依存関係の脆弱性検出、自動修正PR作成、Dependency Graphによる依存関係の可視化を提供する機能である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Advanced Security (GHAS) は、これらのセキュリティ機能を包括的に提供するアドオンである。&amp;lt;br&amp;gt;&lt;br /&gt;
GHASはGitHub Code Security (CodeQL、Dependabotの高度機能) とGitHub Secret Protectionの2つのプロダクトで構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
公開リポジトリでは一部の機能が無料で利用できるが、プライベートリポジトリでの利用にはGitHub Enterprise Cloudまたはサーバライセンスが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dependabot ==&lt;br /&gt;
==== Dependabotとは ====&lt;br /&gt;
Dependabotは、リポジトリの依存関係を継続的に監視し、脆弱性の検出・修正および最新バージョンへの更新を自動化するGitHubの機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dependabotは、以下に示す3つのコンポーネントで構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Dependabotのコンポーネント&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Dependabot Alerts || 脆弱な依存関係を検出してアラートを通知する。&lt;br /&gt;
|-&lt;br /&gt;
| Dependabot Security Updates || セキュリティ上の脆弱性を修正するパッチを自動的にPRとして作成する。&lt;br /&gt;
|-&lt;br /&gt;
| Dependabot Version Updates || 依存関係を最新バージョンに更新するPRを定期的に作成する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dependabot Alerts ====&lt;br /&gt;
Dependabot Alertsは、リポジトリで使用している依存関係にGitHub Advisory Databaseに登録された既知の脆弱性が含まれている場合に、自動でアラートを生成する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
脆弱性の検出時、書き込み権限 / メンテナンス権限 / 管理者権限を持つユーザに通知が送信される。&amp;lt;br&amp;gt;&lt;br /&gt;
通知の設定は個人レベル・リポジトリレベル・組織レベルのそれぞれで制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アラートはリポジトリの[Security]タブからも確認でき、影響を受けるパッケージ名 / 脆弱性の種類 / 重大度 (Critical/High/Medium/Low) が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dependabot Security Updates ====&lt;br /&gt;
Dependabot Security Updatesは、Dependabot Alertsで脆弱性が検出された時に、脆弱性を修正したバージョンへの更新PRを自動的に作成する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動作成されるPRには、以下に示す情報が含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
* 変更対象のパッケージ名とバージョン&lt;br /&gt;
* 修正される脆弱性の内容 (CVE番号・説明)&lt;br /&gt;
* リリースノートおよびコミット履歴へのリンク&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRをマージすることにより、最小限の変更で脆弱性を解消できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dependabot Version Updates ====&lt;br /&gt;
Dependabot Version Updatesは、依存関係を定期的にチェックして、新しいバージョンが利用可能になった時にPRを作成する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この機能を有効化するには、リポジトリに &amp;lt;u&amp;gt;.github/dependabot.yml&amp;lt;/u&amp;gt; ファイルを作成して設定を記述する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== dependabot.ymlの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.github/dependabot.yml&amp;lt;/u&amp;gt; ファイルの基本的な設定項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 version: 2&lt;br /&gt;
 updates:&lt;br /&gt;
   - package-ecosystem: &amp;quot;npm&amp;quot;&lt;br /&gt;
     directory: &amp;quot;/&amp;quot;&lt;br /&gt;
     schedule:&lt;br /&gt;
       interval: &amp;quot;weekly&amp;quot;&lt;br /&gt;
     allow:&lt;br /&gt;
       - dependency-type: &amp;quot;direct&amp;quot;&lt;br /&gt;
     ignore:&lt;br /&gt;
       - dependency-name: &amp;quot;example-package&amp;quot;&lt;br /&gt;
         versions: [&amp;quot;1.x&amp;quot;, &amp;quot;2.x&amp;quot;]&lt;br /&gt;
     commit-message:&lt;br /&gt;
       prefix: &amp;quot;chore&amp;quot;&lt;br /&gt;
       include: &amp;quot;scope&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主要な設定項目を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ dependabot.ymlの主要な設定項目&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; || 設定ファイルのバージョンを指定する。&amp;lt;br&amp;gt;現在は &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; のみ有効である。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;updates&amp;lt;/code&amp;gt; || 更新設定のリストを記述する。&amp;lt;br&amp;gt;複数のエコシステムを対象にする場合は複数のエントリを記述する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;package-ecosystem&amp;lt;/code&amp;gt; || 監視対象のパッケージエコシステムを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt; || パッケージマニフェストファイルが存在するディレクトリを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;schedule.interval&amp;lt;/code&amp;gt; || 更新チェックの頻度を指定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;daily&amp;lt;/code&amp;gt; (毎日)、&amp;lt;code&amp;gt;weekly&amp;lt;/code&amp;gt; (週次)、&amp;lt;code&amp;gt;monthly&amp;lt;/code&amp;gt; (月次)から選択する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;allow&amp;lt;/code&amp;gt; || 更新を許可する依存関係の種類を制限する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;direct&amp;lt;/code&amp;gt; (直接依存)または &amp;lt;code&amp;gt;indirect&amp;lt;/code&amp;gt; (間接依存)を指定できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ignore&amp;lt;/code&amp;gt; || 更新対象から除外するパッケージや特定バージョンを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;commit-message&amp;lt;/code&amp;gt; || DependabotがPRを作成する時のコミットメッセージのプレフィックスを設定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 対応パッケージエコシステム ====&lt;br /&gt;
下表に、Dependabotが対応しているパッケージエコシステムを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Dependabot対応エコシステム一覧&lt;br /&gt;
! エコシステム !! package-ecosystemの値 !! マニフェストファイル&lt;br /&gt;
|-&lt;br /&gt;
| npm (Node.js) || &amp;lt;code&amp;gt;npm&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| pip (Python) || &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;requirements.txt&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;Pipfile&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Maven (Java) || &amp;lt;code&amp;gt;maven&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;pom.xml&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gradle (Java/Kotlin) || &amp;lt;code&amp;gt;gradle&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;build.gradle&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Composer (PHP) || &amp;lt;code&amp;gt;composer&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;composer.json&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| RubyGems (Ruby) || &amp;lt;code&amp;gt;bundler&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;Gemfile&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cargo (Rust) || &amp;lt;code&amp;gt;cargo&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;Cargo.toml&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Go modules || &amp;lt;code&amp;gt;gomod&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;go.mod&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| NuGet (.NET) || &amp;lt;code&amp;gt;nuget&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;*.csproj&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;packages.config&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Pub (Dart/Flutter) || &amp;lt;code&amp;gt;pub&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;pubspec.yaml&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GitHub Actions || &amp;lt;code&amp;gt;github-actions&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;.github/workflows/*.yml&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Docker || &amp;lt;code&amp;gt;docker&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;Dockerfile&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Terraform || &amp;lt;code&amp;gt;terraform&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;*.tf&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Auto-Triage Rules ====&lt;br /&gt;
Auto-Triage Rulesは、Dependabot Alertsを自動で仕分けするルールを定義する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
この機能により、特定の条件に合致するアラートを自動で却下・スヌーズ・承認することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織レベルまたはリポジトリレベルで設定でき、以下に示すような条件を組み合わせてルールを定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 脆弱性の重大度 (Critical / High / Medium / Low)&lt;br /&gt;
* 脆弱性の種類 (CWEコード)&lt;br /&gt;
* 対象のスコープ (runtime / development)&lt;br /&gt;
* パッケージ名&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、開発依存関係 (devDependencies) の低・中程度の脆弱性を自動で却下するルールを設定することにより、アラートの過負荷を軽減できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Scanning ==&lt;br /&gt;
==== Code Scanningとは ====&lt;br /&gt;
Code Scanningは、コードに含まれるセキュリティ上の脆弱性やプログラミング上の問題を自動的に発見するGitHubの静的解析機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRの作成 / プッシュのタイミングでスキャンが実行されて、検出された問題はPR上にインラインコメントとして表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
また、全てのアラートは、リポジトリの[Security]タブでも管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトの解析エンジンとしてCodeQLが使用されるが、SARIFファイルを通じてサードパーティの静的解析ツールとも統合できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CodeQL ====&lt;br /&gt;
CodeQLは、GitHubが開発したセマンティックコード解析エンジンであり、コードをデータとして扱い、クエリによって脆弱性のパターンを検索する仕組みを持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CodeQLが対応している言語を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* C / C++&lt;br /&gt;
* C#&lt;br /&gt;
* Go&lt;br /&gt;
* Java / Kotlin&lt;br /&gt;
* JavaScript / TypeScript&lt;br /&gt;
* Python&lt;br /&gt;
* Ruby&lt;br /&gt;
* Swift&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CodeQLは、SQLインジェクション、クロスサイトスクリプティング、バッファオーバーフロー、安全でない暗号化処理等の脆弱性パターンを検出できる。&amp;lt;br&amp;gt;&lt;br /&gt;
ローカル環境での分析には、CodeQL CLIが利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セットアップ ====&lt;br /&gt;
Code Scanningのセットアップ方法は、デフォルトセットアップと詳細セットアップの2種類がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== デフォルトセットアップ =====&lt;br /&gt;
デフォルトセットアップは、GitHubが自動的に解析設定を管理するセットアップ方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Security]タブを開く。&lt;br /&gt;
# [Code scanning]セクションの[Set up]ボタンを押下する。&lt;br /&gt;
# [Default]を選択して、セットアップを完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリで使用されている言語が自動検出されて、適切なCodeQLクエリスイートが適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
設定変更が不要な場合やすぐに利用を開始したい場合に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 詳細セットアップ =====&lt;br /&gt;
詳細セットアップは、GitHub Actionsのワークフローファイル (YAML) を自分でカスタマイズするセットアップ方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Security]タブを開く。&lt;br /&gt;
# [Code scanning]セクションの[Set up]ボタンを押下する。&lt;br /&gt;
# [Advanced]を選択する。&lt;br /&gt;
# 生成された &amp;lt;u&amp;gt;.github/workflows/codeql.yml&amp;lt;/u&amp;gt; ファイルを編集して、コミットする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムクエリの追加、スキャン対象の絞り込み、スケジュールの変更等、詳細な制御が必要な場合に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.github/workflows/codeql.yml&amp;lt;/u&amp;gt; ファイルの基本的な構成例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: &amp;quot;CodeQL&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
   push:&lt;br /&gt;
     branches: [ &amp;quot;main&amp;quot; ]&lt;br /&gt;
   pull_request:&lt;br /&gt;
     branches: [ &amp;quot;main&amp;quot; ]&lt;br /&gt;
   schedule:&lt;br /&gt;
     - cron: &#039;0 0 * * 1&#039;&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
   analyze:&lt;br /&gt;
     name: Analyze&lt;br /&gt;
     runs-on: ubuntu-latest&lt;br /&gt;
     permissions:&lt;br /&gt;
       actions: read&lt;br /&gt;
       contents: read&lt;br /&gt;
       security-events: write&lt;br /&gt;
 &lt;br /&gt;
     strategy:&lt;br /&gt;
       matrix:&lt;br /&gt;
         language: [ &#039;javascript&#039;, &#039;python&#039; ]&lt;br /&gt;
 &lt;br /&gt;
     steps:&lt;br /&gt;
       - name: Checkout repository&lt;br /&gt;
         uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
       - name: Initialize CodeQL&lt;br /&gt;
         uses: github/codeql-action/init@v3&lt;br /&gt;
         with:&lt;br /&gt;
           languages: ${{ matrix.language }}&lt;br /&gt;
 &lt;br /&gt;
       - name: Perform CodeQL Analysis&lt;br /&gt;
         uses: github/codeql-action/analyze@v3&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Code Scanning Alerts ====&lt;br /&gt;
Code Scanningで検出されたアラートは、以下に示す方法で確認・管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PRでのインライン表示&lt;br /&gt;
*: PRの差分ビューに対して、問題のある行に直接コメントとしてアラートが表示される。&lt;br /&gt;
*: 開発者がコードレビュー時にセキュリティ問題を認識できる。&lt;br /&gt;
* Securityタブでの管理&lt;br /&gt;
*: リポジトリの[Security]タブから全てのCode Scanningアラートを一覧表示できる。&lt;br /&gt;
*: 言語、ルール、重大度、ステータスでフィルタリングして管理できる。&lt;br /&gt;
*: アラートを &amp;lt;u&amp;gt;Open&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;Fixed&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;Dismissed&amp;lt;/u&amp;gt; の状態で管理できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;アラートを却下 (Dismiss) する時は、却下理由 (false positive / won&#039;t fix / used in tests等) を記録することが推奨される。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SARIFとの統合 ====&lt;br /&gt;
SARIF (Static Analysis Results Interchange Format) は、静的解析ツールの結果を表現するためのJSONベースの標準フォーマットである。&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Code Scanningは、SARIFファイルのインポートに対応しており、CodeQL以外の静的解析ツールの結果もGitHub上で一元管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SARIFファイルは、以下に示すGitHub Actionsアクションを使用してアップロードする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 - name: Upload SARIF file&lt;br /&gt;
   uses: github/codeql-action/upload-sarif@v3&lt;br /&gt;
   with:&lt;br /&gt;
     sarif_file: results.sarif&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、SARIFとの統合に対応した主なサードパーティツールを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ サードパーティ製静的解析ツールの例&lt;br /&gt;
|-&lt;br /&gt;
! ツール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| SonarQube / SonarCloud || オープンソースおよびプロプライエタリなコード品質・セキュリティ解析ツール&lt;br /&gt;
|-&lt;br /&gt;
| Fortify Static Code Analyzer || Micro Focusが提供するエンタープライズ向け静的解析ツール&lt;br /&gt;
|-&lt;br /&gt;
| Checkmarx || エンタープライズ向けアプリケーションセキュリティテストプラットフォーム&lt;br /&gt;
|-&lt;br /&gt;
| Semgrep || オープンソースの軽量静的解析ツール&amp;lt;br&amp;gt;カスタムルールを記述しやすい特徴を持つ。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Secret Scanning ==&lt;br /&gt;
==== Secret Scanningとは ====&lt;br /&gt;
&amp;lt;u&amp;gt;Secret Scanningは、APIキー、パスワード、トークン、証明書等の機密情報 (シークレット) がリポジトリに誤ってコミットされることを検出・防止する機能である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コードベース全体だけでなく、Git履歴全体も対象としてスキャンが実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 検出対象 ====&lt;br /&gt;
Secret Scanningが検出するシークレットのパターンは、以下に示す4種類に分類される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Secret Scanningの検出パターン種別&lt;br /&gt;
|-&lt;br /&gt;
! 種別 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Partner secrets || GitHubがパートナー企業と連携して定義したパターンである。&amp;lt;br&amp;gt;検出した場合、パートナー企業に対してシークレットの無効化を自動通知する。&amp;lt;br&amp;gt;AWS、Google、Azure、Slack、Stripe等、多数のサービスプロバイダーに対応している。&lt;br /&gt;
|-&lt;br /&gt;
| Non-provider patterns || 特定のサービスに紐付かない一般的なシークレットパターンである。&amp;lt;br&amp;gt;プライベートキー、汎用的なトークンパターン等が含まれる。&lt;br /&gt;
|-&lt;br /&gt;
| Custom patterns || ユーザが正規表現で定義した自社固有のシークレットパターンである。&amp;lt;br&amp;gt;リポジトリ、組織、エンタープライズの各レベルで設定できる。&lt;br /&gt;
|-&lt;br /&gt;
| AI-powered detection || 機械学習モデルを使用して、パターン定義のない未知のシークレットを検出する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スキャン対象 ====&lt;br /&gt;
下表に、Secret Scanningのスキャン対象範囲を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Secret Scanningのスキャン対象&lt;br /&gt;
|-&lt;br /&gt;
! 対象 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Gitコミット履歴全体 || リポジトリ作成時からの全コミット履歴をスキャンする。&amp;lt;br&amp;gt;過去に誤ってコミットされたシークレットも検出できる。&lt;br /&gt;
|-&lt;br /&gt;
| Issues || Issueのタイトル、本文、コメントをスキャンする。&lt;br /&gt;
|-&lt;br /&gt;
| Pull Requests || PRのタイトル、本文、コメント、レビューコメントをスキャンする。&lt;br /&gt;
|-&lt;br /&gt;
| Discussions || Discussionsの投稿内容をスキャンする。&lt;br /&gt;
|-&lt;br /&gt;
| Wiki || リポジトリのWikiページをスキャンする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Push Protection ====&lt;br /&gt;
Push Protectionは、シークレットを含むコミットをプッシュ時の段階でブロックする機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
Push Protectionはコマンドライン (CLI)、GitHub WebUI、GitHub APIのいずれの方法でのプッシュに対しても機能する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
シークレットが検出された場合、プッシュはブロックされて、開発者に警告が表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
開発者はシークレットを除去してから再プッシュ、または、以下に示す理由を指定してブロックをバイパスすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
* これは偽陽性である (It&#039;s a false positive)&lt;br /&gt;
* 本番環境では使用しない (It&#039;s only used for tests)&lt;br /&gt;
* リスクを承知の上でプッシュする (I&#039;ll fix this later)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
バイパスが実行された場合、その操作はログに記録されて、アラートが生成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Push Protectionは、リポジトリ / ユーザ / 組織の各レベルで有効化・設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムパターン ====&lt;br /&gt;
カスタムパターンを使用することにより、自社固有のシークレット形式を正規表現で定義してスキャン対象に追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings] - [Advanced Security] - [Custom patterns]を開く。&lt;br /&gt;
# [New pattern]を選択する。&lt;br /&gt;
# パターン名、正規表現、サンプル文字列を入力する。&lt;br /&gt;
# [Save and dry run]でテストを実行して検出結果を確認する。&lt;br /&gt;
# 問題がなければパターンを公開する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムパターンはリポジトリレベル、組織レベル、エンタープライズレベルで設定でき、上位レベルで設定したパターンは下位レベルのリポジトリに継承される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドライラン (dry run) 機能を使用することにより、実際にアラートを生成する前にパターンの検出精度を検証できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Validity Checks ====&lt;br /&gt;
Validity Checksは、検出されたシークレットが実際に有効であるかどうかをサービスプロバイダーに問い合わせて確認する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
この機能により、既に無効化されたシークレットに関するアラートと今まさに有効なシークレットに関するアラートを区別して優先度を付けることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
有効性のステータスは、&amp;lt;u&amp;gt;Active&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;Inactive&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;Unknown&amp;lt;/u&amp;gt; の3種類で表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応しているシークレットの種類は、GitHubが定義したPartner secretsの範囲内に限られる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティポリシー ==&lt;br /&gt;
==== SECURITY.md ====&lt;br /&gt;
&amp;lt;u&amp;gt;SECURITY.md&amp;lt;/u&amp;gt; ファイルは、脆弱性の報告方法を説明するセキュリティポリシー文書である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このファイルはリポジトリのルートディレクトリ・&amp;lt;u&amp;gt;docs/&amp;lt;/u&amp;gt;、&amp;lt;u&amp;gt;.github/&amp;lt;/u&amp;gt; のいずれかに配置することにより、リポジトリのSecurityタブに自動的に表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;SECURITY.md&amp;lt;/u&amp;gt; ファイルには、以下に示す情報を記載することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
* サポートしているバージョンの一覧&lt;br /&gt;
* 脆弱性の報告先 (メールアドレス・連絡フォーム等)&lt;br /&gt;
* 報告から対応完了までのプロセスと期待されるタイムライン&lt;br /&gt;
* 公開ポリシー (responsible disclosureポリシー)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セキュリティアドバイザリ ====&lt;br /&gt;
セキュリティアドバイザリは、リポジトリのセキュリティ上の問題を非公開で協議・修正して、修正後に公開するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリメンテナーは[Security]タブからドラフトアドバイザリを作成して、信頼できる協力者を招待して非公開の環境で脆弱性の詳細を共有できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
修正が完了した後、アドバイザリを公開することにより、CVE番号のリクエストやGitHub Advisory Databaseへの登録が行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プライベート脆弱性報告 ====&lt;br /&gt;
Private Vulnerability Reporting (プライベート脆弱性報告) は、セキュリティリサーチャーがリポジトリメンテナーに対して脆弱性を非公開で報告するための仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この機能を有効化すると、リポジトリの[Security]タブに[Report a vulnerability]ボタンが表示され、誰でも非公開の脆弱性報告フォームからメンテナーに連絡できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
報告内容はメンテナーとリポートした人だけが閲覧でき、修正作業を非公開の環境で進めることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 依存関係のレビュー ==&lt;br /&gt;
==== Dependency Graph ====&lt;br /&gt;
Dependency Graphは、リポジトリで使用している全ての依存関係を自動的に解析して可視化する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリのInsightsセクションから確認でき、直接依存関係だけでなく間接依存関係 (依存関係の依存関係) も表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dependency Graphは以下に示す機能の基盤となっている。&amp;lt;br&amp;gt;&lt;br /&gt;
* Dependabot Alertsの脆弱性検出&lt;br /&gt;
* Dependabot Security UpdatesのPR作成&lt;br /&gt;
* Dependency ReviewのPRチェック&lt;br /&gt;
* SBOMの生成&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応しているマニフェストファイル形式は、npm、pip、Maven、Gradle、Composer、RubyGems、Cargo、Go modules、NuGet等、多数に及ぶ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dependency Review ====&lt;br /&gt;
Dependency Reviewは、PRのマージ前に依存関係の変更内容をチェックする機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRで追加 / 更新 / 削除される依存関係に対して、以下に示す情報を確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
* 追加されるパッケージに既知の脆弱性が含まれていないか&lt;br /&gt;
* ライセンスが組織のポリシーに適合しているか&lt;br /&gt;
* 旧バージョンや非推奨パッケージでないか&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dependency Reviewを自動化するには、&amp;lt;code&amp;gt;actions/dependency-review-action&amp;lt;/code&amp;gt; を使用したGitHub Actionsワークフローを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Dependency Review&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
   pull_request:&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
   dependency-review:&lt;br /&gt;
     runs-on: ubuntu-latest&lt;br /&gt;
     steps:&lt;br /&gt;
       - name: Checkout repository&lt;br /&gt;
         uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
       - name: Dependency Review&lt;br /&gt;
         uses: actions/dependency-review-action@v4&lt;br /&gt;
         with:&lt;br /&gt;
           fail-on-severity: moderate&lt;br /&gt;
           deny-licenses: GPL-3.0, AGPL-3.0&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SBOM ====&lt;br /&gt;
SBOM (Software Bill of Materials、ソフトウェア部品表) は、ソフトウェアに含まれる全ての依存関係コンポーネントを一覧化した文書である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubはDependency Graphの情報をもとに、SPDX形式またはCycloneDX形式のSBOMファイルを生成・エクスポートする機能を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SBOMはコンプライアンス監査、サプライチェーンのリスク評価、インシデント対応において使用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリの[Insights] - [Dependency Graph]ページからSBOMをダウンロードできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ概要ダッシュボード ==&lt;br /&gt;
==== 組織レベル ====&lt;br /&gt;
組織のセキュリティ概要ダッシュボードは、組織内の全リポジトリのセキュリティ状況を一元的に把握するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ダッシュボードでは以下の情報を確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
* トレンド分析&lt;br /&gt;
*: 組織全体のアラート数の時系列推移を可視化する。&lt;br /&gt;
*: 特定の期間にアラートが急増したリポジトリを特定できる。&lt;br /&gt;
* カバレッジ監視&lt;br /&gt;
*: 各セキュリティ機能 (Code Scanning / Secret Scanning / Dependabot Alerts) の有効化状況を確認できる。&lt;br /&gt;
*: 未設定のリポジトリを特定して対応できる。&lt;br /&gt;
* Push Protectionの有効性&lt;br /&gt;
*: 組織全体でのPush Protectionのブロック状況、バイパス状況を確認できる。&lt;br /&gt;
* CodeQL PR分析&lt;br /&gt;
*: PRに対してCode Scanningが実行されているリポジトリの割合を確認できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このダッシュボードは、GitHub Enterprise CloudまたはGitHub Advanced Security (GHAS) ライセンスが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリレベル ====&lt;br /&gt;
リポジトリレベルのセキュリティ情報は、各リポジトリのSecurityタブから確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Securityタブでは、以下に示す情報を管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Securityタブの機能一覧&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Overview || リポジトリのセキュリティ機能の有効化状況とアラートの概要を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| Dependabot Alerts || 脆弱な依存関係のアラート一覧を表示・管理する。&lt;br /&gt;
|-&lt;br /&gt;
| Code Scanning Alerts || Code Scanningで検出されたアラート一覧を表示・管理する。&lt;br /&gt;
|-&lt;br /&gt;
| Secret Scanning Alerts || 検出されたシークレットのアラート一覧を表示・管理する。&lt;br /&gt;
|-&lt;br /&gt;
| Security policy || &amp;lt;u&amp;gt;SECURITY.md&amp;lt;/u&amp;gt; ファイルの内容を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| Security advisories || リポジトリのセキュリティアドバイザリを管理する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub Advisory Database ==&lt;br /&gt;
==== CVEデータベース ====&lt;br /&gt;
GitHub Advisory Databaseは、GitHubが管理するオープンソースソフトウェアの脆弱性データベースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2026年3月時点で、レビュー済みのアドバイザリが27,583件、未レビューのアドバイザリが294,507件以上登録されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
データベースのコンテンツはCC-BY-4.0ライセンスの下で公開されており、オープンソースプロジェクトからの貢献も受け付けている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各アドバイザリには以下の情報が含まれる。&amp;lt;br&amp;gt;&lt;br /&gt;
* CVE識別子 (CVE番号)&lt;br /&gt;
* GHSA識別子 (GitHub独自の識別子)&lt;br /&gt;
* 影響を受けるパッケージ・バージョン範囲&lt;br /&gt;
* 脆弱性の種類 (CWEコード)&lt;br /&gt;
* 重大度スコア (CVSS)&lt;br /&gt;
* 修正バージョン&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応しているエコシステムは、npm、Maven、Composer、Go、pip、RubyGems、NuGet、Cargo、Pub、GitHubActions等、多岐にわたる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アドバイザリの検索 ====&lt;br /&gt;
GitHub Advisory Databaseは、[https://github.com/advisories GitHub Advisory Database]から検索できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下に示す条件でアドバイザリを検索およびフィルタリングできる。&amp;lt;br&amp;gt;&lt;br /&gt;
* エコシステム (npm / Maven / pip 等)&lt;br /&gt;
* 重大度 (Critical / High / Medium / Low)&lt;br /&gt;
* CWEコード (脆弱性の種類)&lt;br /&gt;
* CVE番号による直接検索&lt;br /&gt;
* キーワード検索&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIを使用してアドバイザリを検索することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 特定パッケージの脆弱性を検索する&lt;br /&gt;
 gh api /advisories?affects=npm/lodash&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、GraphQL APIを使用することにより、プログラムからアドバイザリデータを取得して、独自のセキュリティダッシュボードを構築することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Copilot&amp;diff=14582</id>
		<title>GitHub - Copilot</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Copilot&amp;diff=14582"/>
		<updated>2026-03-24T09:14:37Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Copilotは、GitHubとOpenAIが共同開発したAI駆動のコード支援ツールである。&amp;lt;br&amp;gt; エディタ内でリアルタイムにコードの提案・補完・生成を行い、開発者の生産性を向上させる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 会話型インターフェース (Copilot Chat)、自律的なコード実装 (Agent Mode)、CLIサポート等、コーディング作業のあらゆる場面をカバーする機能を提供する。&amp;lt;br&amp;gt; &amp;lt;br…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Copilotは、GitHubとOpenAIが共同開発したAI駆動のコード支援ツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
エディタ内でリアルタイムにコードの提案・補完・生成を行い、開発者の生産性を向上させる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
会話型インターフェース (Copilot Chat)、自律的なコード実装 (Agent Mode)、CLIサポート等、コーディング作業のあらゆる場面をカバーする機能を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
特に強力なサポートを提供するプログラミング言語は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Python&lt;br /&gt;
* JavaScript / TypeScript&lt;br /&gt;
* Ruby&lt;br /&gt;
* Go&lt;br /&gt;
* C# / C++&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応IDEは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* VS Code&lt;br /&gt;
* Visual Studio&lt;br /&gt;
* JetBrains IDE&lt;br /&gt;
*: IntelliJ IDEA、PyCharm、WebStorm等&lt;br /&gt;
* Neovim&lt;br /&gt;
* Xcode&lt;br /&gt;
* Eclipse&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== プラン ==&lt;br /&gt;
==== プランの種類 ====&lt;br /&gt;
GitHub Copilotは個人・組織の規模や用途に応じて複数のプランが提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Copilot プラン比較&lt;br /&gt;
! プラン !! 月額料金 !! 主な機能・制限&lt;br /&gt;
|-&lt;br /&gt;
| Free || 無料 || コード補完: 2,000回/月&amp;lt;br&amp;gt;Copilot Chat: 50メッセージ/月&amp;lt;br&amp;gt;基本的なコード提案&lt;br /&gt;
|-&lt;br /&gt;
| Pro || $10/ユーザ || コード補完: 無制限&amp;lt;br&amp;gt;Copilot Chat: 無制限&amp;lt;br&amp;gt;Code Review対応&lt;br /&gt;
|-&lt;br /&gt;
| Pro+ || $39/ユーザ || Proの全機能&amp;lt;br&amp;gt;プレミアムリクエスト: 1,500回/月&amp;lt;br&amp;gt;Coding Agent対応&amp;lt;br&amp;gt;最新モデルへの優先アクセス&lt;br /&gt;
|-&lt;br /&gt;
| Business || $19/ユーザ || Pro相当の機能&amp;lt;br&amp;gt;組織管理機能&amp;lt;br&amp;gt;コンテンツ除外設定&amp;lt;br&amp;gt;プロンプト・提案の非保持&lt;br /&gt;
|-&lt;br /&gt;
| Enterprise || $39/ユーザ || Businessの全機能&amp;lt;br&amp;gt;Coding Agent対応&amp;lt;br&amp;gt;カスタムモデル対応&amp;lt;br&amp;gt;高度なセキュリティ管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 学生向けプラン ====&lt;br /&gt;
GitHub Student Developer Packに登録している学生は、GitHub Copilotを無料で利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提供内容はProプランと同等であり、コード補完やCopilot Chatが無制限で使用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
申請はGitHubの学生認証ページから行い、在学証明が必要となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== コード補完 ==&lt;br /&gt;
==== インラインコード提案 ====&lt;br /&gt;
コード補完機能はエディタ内でリアルタイムに動作して、入力中のコードに対して続きを提案する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提案はグレイテキスト (ゴースト表示) でインライン表示され、開発者はそのまま受け入れるか却下するかを選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
提案の対象範囲は単一の記号から複数行にわたるブロックまで柔軟に対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
コメントや関数シグネチャを記述するだけで、実装コード全体が提案されることもある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 複数行補完 ====&lt;br /&gt;
Copilotは関数、クラス、テストケース等、複数行に渡るコードブロック全体を一括で提案できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この機能は、以下に示すような場面で有効である。&amp;lt;br&amp;gt;&lt;br /&gt;
* 関数のコメント (docstring) から実装コードを生成する。&lt;br /&gt;
* テストファイルでテストケースの雛型を一括生成する。&lt;br /&gt;
* 定型的なボイラープレートコードを自動補完する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Next Edit Suggestions機能 (VS Code等でプレビュー提供) では、直前の編集内容をもとに、次に修正すべき箇所の提案も行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 提案の操作 ====&lt;br /&gt;
下表に、提案を操作するキーボードショートカットを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ コード補完 操作一覧&lt;br /&gt;
! 操作 !! キー !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 提案を受け入れる || [Tab]キー || 現在表示されている提案を全て適用する。&lt;br /&gt;
|-&lt;br /&gt;
| 提案を却下する || [Esc]キー || 現在の提案を非表示にする。&lt;br /&gt;
|-&lt;br /&gt;
| 次の提案へ切り替える || [Alt] + &amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;キー || 複数ある提案の中で次の候補を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| 前の提案へ切り替える || [Alt] + &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;キー || 複数ある提案の中で前の候補を表示する。&lt;br /&gt;
|-&lt;br /&gt;
| 単語単位で受け入れる || [Ctrl] + [→]キー || 提案を1単語ずつ受け入れる。(VS Code)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copilot Chat ==&lt;br /&gt;
==== Copilot Chatとは ====&lt;br /&gt;
Copilot Chatは、コードについて自然言語で会話できるインターフェースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IDE内のチャットパネル、GitHub.com上のWebインターフェース、モバイルアプリから利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
マルチモーダル対応により、テキストに加えて音声での入力も可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
コードスニペット、エラーメッセージ、スクリーンショットを貼り付けて質問することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== チャットコンテキスト ====&lt;br /&gt;
Copilot Chatでは、チャット入力時に &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; 記号を使用してコンテキストを指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;@workspace&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 現在開いているワークスペース全体をコンテキストとして参照する。&lt;br /&gt;
*: プロジェクト全体に関わる質問や、複数ファイルにまたがる処理の相談に有効である。&lt;br /&gt;
* &amp;lt;code&amp;gt;@terminal&amp;lt;/code&amp;gt;&lt;br /&gt;
*: ターミナルの出力内容やエラーをコンテキストとして参照する。&lt;br /&gt;
*: コマンドのエラー解決や、ビルドログの分析に使用する。&lt;br /&gt;
* &amp;lt;code&amp;gt;@github&amp;lt;/code&amp;gt;&lt;br /&gt;
*: GitHub上のIssue、PR、コミット情報をコンテキストとして参照する。&lt;br /&gt;
*: リポジトリの履歴や議論の内容をもとにした回答が得られる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、&amp;lt;code&amp;gt;#file&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#folder&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#symbol&amp;lt;/code&amp;gt; を使って特定のファイル・フォルダ・シンボルをピンポイントで参照することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スラッシュコマンド ====&lt;br /&gt;
チャット入力欄では、&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; で始まるスラッシュコマンドを使用して特定の操作を素早く実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Copilot Chat スラッシュコマンド一覧&lt;br /&gt;
! コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/explain&amp;lt;/code&amp;gt; || 選択したコードや指定したコードの動作・意図を自然言語で説明する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/fix&amp;lt;/code&amp;gt; || 選択したコードのバグや問題点を検出して、修正案を提示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/tests&amp;lt;/code&amp;gt; || 選択したコードに対するユニットテストを生成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/doc&amp;lt;/code&amp;gt; || 選択したコードのドキュメントコメント (docstring等) を生成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/clear&amp;lt;/code&amp;gt; || チャット履歴をクリアして新しい会話を開始する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Agent Mode ==&lt;br /&gt;
==== Agent Modeとは ====&lt;br /&gt;
Agent Modeは2025年に導入された機能であり、Copilotが自律的にコードの実装、修正、検証を行うモードである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
従来のコード補完およびチャットが人間の指示に対して1ステップで応答するのに対して、Agent Modeは複数のステップを自律的に実行して複雑なタスクを完遂する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数ファイルにわたるコード変更、ターミナルコマンドの実行、エラーの自動修正ループ等を一連の処理として実施する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 動作フロー ====&lt;br /&gt;
Agent Modeは以下に示すフローで動作する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# コンテキストの特定&lt;br /&gt;
#: タスクに関連するファイルや依存関係を自動的に特定する。&lt;br /&gt;
# ファイルの読み取り&lt;br /&gt;
#: 関連ファイルの内容を読み込み、現在の実装状況を把握する。&lt;br /&gt;
# コードの変更&lt;br /&gt;
#: 必要な変更を複数ファイルに渡って実施する。&lt;br /&gt;
# ターミナルコマンドの実行&lt;br /&gt;
#: ビルド、テスト、依存パッケージのインストール等のコマンドを実行する。&lt;br /&gt;
# エラーの監視&lt;br /&gt;
#: 実行結果を監視して、エラーが発生した場合は原因を分析する。&lt;br /&gt;
# 自動修正&lt;br /&gt;
#: 検出したエラーを自動的に修正して、再度検証を行う。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このループは、タスクが完了するまで繰り返し実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 対応IDE ====&lt;br /&gt;
Agent Modeが完全に対応しているIDEを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* VS Code (完全対応、推奨)&lt;br /&gt;
* Visual Studio&lt;br /&gt;
* JetBrains IDE (対応範囲は順次拡大中)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copilot Coding Agent ==&lt;br /&gt;
==== Coding Agentとは ====&lt;br /&gt;
&amp;lt;u&amp;gt;Copilot Coding Agentは、GitHubがホストするAIエージェントであり、GitHub Issue の内容をもとに実装を自動的に行う機能である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
開発者がIssueにCopilotをアサインするだけで、エージェントが実装、テスト、ドラフトPRの作成までを自動的に完了する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この機能はPro+プランおよびEnterpriseプランで利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 起動方法 ====&lt;br /&gt;
Coding Agentを起動する手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubリポジトリ上でIssueを開く。&lt;br /&gt;
# Issueの右サイドバーにある[Assignees]セクションを開く。&lt;br /&gt;
# アサイン先として[Copilot]を選択する。&lt;br /&gt;
# Copilotがタスクを受け付け、自動的に実装を開始する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
実装が完了すると、ドラフトPRが自動的に作成される。&amp;lt;br&amp;gt;&lt;br /&gt;
開発者はドラフトPRを確認して、内容をレビューした上でマージ操作を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セッションログ ====&lt;br /&gt;
Coding Agentが実行する全ての処理は、セッションログとして記録される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 実施したファイル変更の一覧&lt;br /&gt;
* 実行したターミナルコマンドとその出力&lt;br /&gt;
* 判断の根拠や思考プロセスの説明&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
開発者はセッションログをPR画面から参照でき、エージェントの動作を透明性高く追跡できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copilot CLI ==&lt;br /&gt;
==== gh copilot suggest ====&lt;br /&gt;
&amp;lt;code&amp;gt;gh copilot suggest&amp;lt;/code&amp;gt; コマンドは、自然言語で説明したタスクに対して、実行すべきシェルコマンドを提案する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な使用方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh copilot suggest &amp;quot;&amp;lt;タスクの説明&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Dockerコンテナの一覧を確認するコマンドを提案させる例&lt;br /&gt;
 gh copilot suggest &amp;quot;実行中のDockerコンテナを一覧表示したい&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # ファイル圧縮のコマンドを提案させる例&lt;br /&gt;
 gh copilot suggest &amp;quot;特定のディレクトリをtar.gzで圧縮したい&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== gh copilot explain ====&lt;br /&gt;
&amp;lt;code&amp;gt;gh copilot explain&amp;lt;/code&amp;gt; コマンドは、指定したシェルコマンドの動作・意味を自然言語で説明する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な使用方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh copilot explain &amp;quot;&amp;lt;コマンド&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # コマンドの意味を説明させる例&lt;br /&gt;
 gh copilot explain &amp;quot;grep -rn &#039;pattern&#039; ./src --include=&#039;*.ts&#039;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # パイプラインの説明をさせる例&lt;br /&gt;
 gh copilot explain &amp;quot;find . -name &#039;*.log&#039; | xargs rm -f&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== エイリアス ====&lt;br /&gt;
頻繁に使用するコマンドのために、短縮エイリアスが提供されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Copilot CLI エイリアス一覧&lt;br /&gt;
! エイリアス !! 展開されるコマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ghcs&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;gh copilot suggest&amp;lt;/code&amp;gt; || コマンド提案の短縮形&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ghce&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;gh copilot explain&amp;lt;/code&amp;gt; || コマンド説明の短縮形&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
エイリアスはシェルの設定ファイルに追加 あるいは &amp;lt;code&amp;gt;gh copilot alias&amp;lt;/code&amp;gt; コマンドで設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== コードレビュー ==&lt;br /&gt;
==== Copilot Code Review ====&lt;br /&gt;
&amp;lt;u&amp;gt;Copilot Code Reviewは、Pull Requestに対してAIが自動的にコードレビューを行う機能である。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
人間のレビュアーが確認する前に、潜在的な問題点や改善点をコメントとして提示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応プランはProプラン以上であり、BusinessおよびEnterpriseプランでも利用可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== レビュー対象 ====&lt;br /&gt;
下表に、Copilot Code Reviewが検出する問題のカテゴリを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ コードスキャンの検出カテゴリ一覧&lt;br /&gt;
|-&lt;br /&gt;
! カテゴリ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| バグ || ロジックエラー、境界値問題、未処理の例外等、実行時に問題を引き起こす可能性のあるコードを検出する。&lt;br /&gt;
|-&lt;br /&gt;
| セキュリティ || SQLインジェクション、XSS、ハードコードされた認証情報等、セキュリティ上の脆弱性を検出する。&lt;br /&gt;
|-&lt;br /&gt;
| パフォーマンス || 非効率なループ、不要なデータベースクエリ、メモリリークの可能性があるコードを検出する。&lt;br /&gt;
|-&lt;br /&gt;
| ベストプラクティス || コーディング規約への準拠、命名規則、重複コードの排除等を提案する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 自動レビュー設定 ====&lt;br /&gt;
PRが作成されるたびに自動的にCopilotのレビューをリクエストする設定が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings]を開く。&lt;br /&gt;
# [Branches]セクションで対象ブランチの保護ルールを選択または作成する。&lt;br /&gt;
# [Require reviewers]の設定で[Automatically request Copilot review]を有効にする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;この設定を有効にすると、PRが作成・更新されるたびにCopilotが自動的にレビューを実施する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== カスタマイズ ==&lt;br /&gt;
==== カスタム指示 ====&lt;br /&gt;
リポジトリ固有のコーディング規約、スタイル、要件をCopilotに事前に指示するために、カスタム指示ファイルを作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ファイルの配置場所&lt;br /&gt;
*: &amp;lt;u&amp;gt;.github/copilot-instructions.md&amp;lt;/u&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
*: リポジトリのルートに配置する。&lt;br /&gt;
*: Markdown形式で記述する。&lt;br /&gt;
*: Copilotがコード生成、チャット応答を行う時に自動的に参照される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
記述例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;&lt;br /&gt;
 # Copilot Instructions&lt;br /&gt;
 &lt;br /&gt;
 ## コーディング規約&lt;br /&gt;
 - インデントはスペース3つを使用する&lt;br /&gt;
 - 変数名はcamelCaseを使用する&lt;br /&gt;
 - 関数には必ずJSDocコメントを記述する&lt;br /&gt;
 &lt;br /&gt;
 ## 使用技術スタック&lt;br /&gt;
 - フロントエンド: React + TypeScript&lt;br /&gt;
 - バックエンド: Node.js + Express&lt;br /&gt;
 - データベース: PostgreSQL&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パス固有指示 ====&lt;br /&gt;
特定のファイルパターンに対してのみ適用される指示ファイルを作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイル名の形式は &amp;lt;u&amp;gt;*.instructions.md&amp;lt;/u&amp;gt; であり、対象パスのパターンをファイル内で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;&lt;br /&gt;
 ---&lt;br /&gt;
 applyTo: &amp;quot;src/components/**&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 ## Reactコンポーネント向け指示&lt;br /&gt;
 - 関数コンポーネントのみを使用する&lt;br /&gt;
 - Propsは必ずTypeScriptのinterfaceで型定義する&lt;br /&gt;
 - コンポーネントファイル内にスタイルを記述しない&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コンテンツ除外設定 ====&lt;br /&gt;
特定のファイルおよびディレクトリをCopilotの参照対象から除外する設定が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Business / Enterpriseプランでは、リポジトリ管理者がコンテンツ除外設定を行える。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
除外設定の主な用途は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 機密情報を含む設定ファイルの除外&lt;br /&gt;
* ライセンスの異なるサードパーティコードの除外&lt;br /&gt;
* テストデータや個人情報を含むファイルの除外&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== MCP統合 ====&lt;br /&gt;
GitHub CopilotはModel Context Protocol (MCP) をサポートしており、外部ツールやデータソースとの統合が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPとは、AIアシスタントが外部のシステム、データベース、APIと標準化された方法で連携するためのプロトコルである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPサーバの種類は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Local / STDIO&lt;br /&gt;
*: ローカルマシン上で動作するMCPサーバ&lt;br /&gt;
*: 標準入出力 (stdio) を通じてCopilotと通信する。&lt;br /&gt;
* HTTP / SSE&lt;br /&gt;
*: HTTPエンドポイント または Server-Sent Events (SSE) 経由で通信するMCPサーバ&lt;br /&gt;
*: リモートサービスや内部システムとの連携に使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub公式のMCP Serverも提供されており、GitHub上のIssue、PR、リポジトリ情報に直接アクセスできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MCPを活用することにより、Copilotはデータベース、社内API、独自のドキュメントシステム等を参照した回答を生成できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティとプライバシー ==&lt;br /&gt;
==== データ保持ポリシー ====&lt;br /&gt;
下表に、GitHub Copilotのプランごとのデータ保持ポリシーを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ データ保持ポリシー一覧&lt;br /&gt;
! プラン !! プロンプトの保持 !! 提案の保持 !! 学習への使用&lt;br /&gt;
|-&lt;br /&gt;
| Free / Pro / Pro+ || GitHubのポリシーに準拠 || GitHubのポリシーに準拠 || ユーザ設定による&lt;br /&gt;
|-&lt;br /&gt;
| Business || 保持しない || 保持しない || 使用しない&lt;br /&gt;
|-&lt;br /&gt;
| Enterprise || 保持しない || 保持しない || 使用しない&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
BusinessおよびEnterpriseプランでは、入力したプロンプトと生成された提案はGitHubのサーバに保持されず、モデルの学習にも使用されない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Public Code Filter ====&lt;br /&gt;
Public Code Filterは、公開リポジトリのコードと類似した内容の提案をブロックする機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この機能を有効にすると、GitHubに公開されているコードと一定以上類似するコードブロックは提案されない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定はGitHubのCopilot設定ページから変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 有効 (推奨)&lt;br /&gt;
*: 公開コードとの類似提案を除外する。&lt;br /&gt;
* 無効&lt;br /&gt;
*: 全ての提案を表示する。(デフォルト: 有効)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== IP保護 ====&lt;br /&gt;
GitHubはCopilot Enterpriseプランのユーザを対象に、著作権侵害に関するIP保護および免責保証を提供している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な保護内容は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Copilotが生成したコードによる著作権侵害訴訟に対する費用の補償&lt;br /&gt;
* プライベートリポジトリのコードはモデルの学習に使用されない。&lt;br /&gt;
* 個人ユーザの入力データは他のユーザへの提案に使用されない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 推奨事項 ==&lt;br /&gt;
==== プロンプトの書き方 ====&lt;br /&gt;
Copilotから精度の高い提案を得るためのプロンプト作成のポイントを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 構造化して記述する、&lt;br /&gt;
*: タスクの目的、入力、出力、制約を明確に分けて記述する。&lt;br /&gt;
*: 箇条書きや番号付きリストを使用して、要件を整理する。&lt;br /&gt;
* 具体的な要件を記述する。&lt;br /&gt;
*: &amp;quot;ファイルを処理する関数&amp;quot; ではなく &amp;lt;u&amp;gt;&amp;quot;CSVファイルを読み込み、年齢列が18以上の行だけを返す関数&amp;quot;&amp;lt;/u&amp;gt; のように具体的に記述する。&lt;br /&gt;
* タスクを分割する。&lt;br /&gt;
*: 複雑なタスクは複数の小さなタスクに分割して、段階的に実装を進める。&lt;br /&gt;
* コメントでプロンプトを記述する。&lt;br /&gt;
*: コードファイル内にコメントとして要件を記述し、コード補完の精度を向上させる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コンテキストの提供 ====&lt;br /&gt;
Copilotはエディタで開いているファイルの内容をコンテキストとして参照する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 隣接タブの活用&lt;br /&gt;
*: 関連するファイルを複数のタブで開いておくことで、Copilotが参照できるコンテキストが増加する。&lt;br /&gt;
*: 型定義ファイル、インターフェース定義、関連モジュールを開いておくと提案精度が向上する。&lt;br /&gt;
* ファイル参照の活用&lt;br /&gt;
*: Copilot Chatで &amp;lt;code&amp;gt;#file&amp;lt;/code&amp;gt; を使用して、特定のファイルをピンポイントで参照する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;#folder&amp;lt;/code&amp;gt; でフォルダ全体を、&amp;lt;code&amp;gt;#symbol&amp;lt;/code&amp;gt; で特定の関数やクラスを参照できる。&lt;br /&gt;
* ワークスペース参照&lt;br /&gt;
*: &amp;lt;code&amp;gt;@workspace&amp;lt;/code&amp;gt; を使用してプロジェクト全体をコンテキストに含めることにより、プロジェクト構造を踏まえた提案が得られる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Codespaces&amp;diff=14581</id>
		<title>GitHub - Codespaces</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Codespaces&amp;diff=14581"/>
		<updated>2026-03-23T22:17:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Codespacesは、クラウド上にホストされた開発環境を提供するGitHubの機能である。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Ubuntu Linux仮想マシン上のDockerコンテナとして動作し、ブラウザ版VS Code、デスクトップ版VS Code、またはGitHub CLIから接続して利用できる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ローカル環境のセットアップ不要で即座に開発を開始でき、チームメンバー間で統一された開発環境を共…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Codespacesは、クラウド上にホストされた開発環境を提供するGitHubの機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ubuntu Linux仮想マシン上のDockerコンテナとして動作し、ブラウザ版VS Code、デスクトップ版VS Code、またはGitHub CLIから接続して利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ローカル環境のセットアップ不要で即座に開発を開始でき、チームメンバー間で統一された開発環境を共有できることが主なメリットである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Codespacesが提供する主な機能を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Codespacesの主な機能&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| クラウド開発環境 || Ubuntu Linux仮想マシン上のDockerコンテナとして動作し、Webブラウザからすぐに利用できる。&lt;br /&gt;
|-&lt;br /&gt;
| Dev Container対応 || devcontainer.jsonで開発環境を定義して、チーム全体で同一の環境を再現できる。&lt;br /&gt;
|-&lt;br /&gt;
| 複数の接続方法 || ブラウザ版VS Code、デスクトップ版VS Code、GitHub CLI等の複数の方法で接続できる。&lt;br /&gt;
|-&lt;br /&gt;
| プリビルド機能 || 依存関係のインストールやビルドを事前に実行することにより、Codespace作成時間を短縮できる。&lt;br /&gt;
|-&lt;br /&gt;
| シークレット管理 || 環境変数としてシークレットを安全に注入して、APIキーや認証情報を管理できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Codespaceの作成 ==&lt;br /&gt;
==== リポジトリからの作成 ====&lt;br /&gt;
Codespaceはリポジトリのページから直接作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Web UIからの作成手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [リポジトリ]ページを開く。&lt;br /&gt;
# 緑色の[Code]ボタンを押下する。&lt;br /&gt;
# [Codespaces]タブを選択する。&lt;br /&gt;
# [Create codespace on &amp;lt;ブランチ名&amp;gt;]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeから作成する場合は、[Remote Explorer]パネルを開いて、[+]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIから作成するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh codespace create -r OWNER/REPO -b BRANCH&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリ名とブランチを指定しない場合は、対話形式で選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ブランチ・PR・テンプレートからの作成 ====&lt;br /&gt;
特定のブランチやPull Request、テンプレートからもCodespaceを作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブランチからの作成&lt;br /&gt;
*: [ブランチ]ページの[Code]ボタンから、そのブランチに対応したCodespaceを作成できる。&lt;br /&gt;
* Pull Requestからの作成&lt;br /&gt;
*: [PR]ページの[Code]ボタンから、PRのブランチに対応したCodespaceを作成できる。&lt;br /&gt;
*: PRの変更内容をレビューしながら動作確認する用途に適している。&lt;br /&gt;
* テンプレートからの作成&lt;br /&gt;
*: github.com/codespaces/templates から、Node.js、Python、JavaScript等のテンプレートを選択して空のCodespaceを作成できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マシンタイプの選択 ====&lt;br /&gt;
Codespaceのマシンタイプはコア数とメモリ容量によって異なる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、利用可能なマシンタイプを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Codespacesのマシンタイプと料金&lt;br /&gt;
! マシンタイプ !! メモリ !! ストレージ !! 料金 !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| 2-core || 8[GB] || 32[GB] || $0.18/時間 || 軽量な開発、スクリプト作業&lt;br /&gt;
|-&lt;br /&gt;
| 4-core || 16[GB] || 32[GB] || $0.36/時間 || 一般的なWebアプリケーション開発&lt;br /&gt;
|-&lt;br /&gt;
| 8-core || 32[GB] || 64[GB] || $0.72/時間 || 中規模アプリケーション、複数サービスの並行起動&lt;br /&gt;
|-&lt;br /&gt;
| 16-core || 64[GB] || 128[GB] || $1.44/時間 || 大規模プロジェクト、重いビルド作業&lt;br /&gt;
|-&lt;br /&gt;
| 32-core || 128[GB] || 128[GB] || $2.88/時間 || 機械学習、大規模コンパイル作業&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
マシンタイプは作成後も変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Web UIからの変更&lt;br /&gt;
*: [Your codespaces]ページで対象のCodespaceのメニューから[Change machine type]を選択する。&lt;br /&gt;
* VS Codeからの変更&lt;br /&gt;
*: コマンドパレットで &amp;lt;u&amp;gt;Codespaces: Change Machine Type&amp;lt;/u&amp;gt; を実行する。&lt;br /&gt;
* CLIからの変更&lt;br /&gt;
*: 以下に示すコマンドを使用する。&lt;br /&gt;
*: &amp;lt;pre&amp;gt;gh codespace edit --machine MACHINE_TYPE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リージョンの選択 ====&lt;br /&gt;
Codespacesは複数のリージョンで利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リージョンは、[Settings] - [Codespaces] - [Region]から選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
利用可能なリージョンを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* United States East&lt;br /&gt;
* United States West&lt;br /&gt;
* Europe West&lt;br /&gt;
* Southeast Asia&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レイテンシを最小化するために、物理的に近いリージョンを選択することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dev Container ==&lt;br /&gt;
==== Dev Containerとは ====&lt;br /&gt;
Dev Containerは、開発環境をコードとして定義する仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
devcontainer.jsonファイルにベースイメージ、インストールするツール、VS Code拡張機能、エディタ設定等を記述することで、チーム全員が同一の開発環境を利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Dev Containerを使用することにより、以下に示すメリットが得られる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 環境の再現性&lt;br /&gt;
*: 新しいメンバーが参加した際も、同一の開発環境を即座に構築できる。&lt;br /&gt;
* 依存関係の管理&lt;br /&gt;
*: 必要なツールやライブラリをコンテナ内に閉じ込め、ホスト環境との競合を防ぐ。&lt;br /&gt;
* CI/CDとの統合&lt;br /&gt;
*: 開発環境とCI環境を同一の定義で管理できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== devcontainer.json ====&lt;br /&gt;
devcontainer.jsonはJSONC (コメント付きJSON) 形式で記述する設定ファイルである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
配置場所を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.devcontainer/devcontainer.json&amp;lt;/u&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.devcontainer.json&amp;lt;/u&amp;gt; (ルートディレクトリ直下)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数のDev Container設定を持つ場合は、&amp;lt;u&amp;gt;.devcontainer/&amp;lt;設定名&amp;gt;/devcontainer.json&amp;lt;/u&amp;gt; のようにサブディレクトリに配置できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 主要な設定項目 ====&lt;br /&gt;
下表に、devcontainer.jsonの主要な設定項目を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ devcontainer.jsonの設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;image&amp;lt;/code&amp;gt; || ベースとなるDockerイメージを指定する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;image&amp;quot;: &amp;quot;mcr.microsoft.com/devcontainers/javascript-node:18&amp;quot;&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt; || 追加する言語やツールを指定する。&amp;lt;br&amp;gt;Dev Container Featuresとして提供されているモジュールを使用する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;features&amp;quot;: {&amp;quot;ghcr.io/devcontainers/features/python:1&amp;quot;: {&amp;quot;version&amp;quot;: &amp;quot;3.11&amp;quot;}}&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;customizations.vscode.extensions&amp;lt;/code&amp;gt; || インストールするVS Code拡張機能のIDを配列で指定する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;extensions&amp;quot;: [&amp;quot;ms-python.python&amp;quot;, &amp;quot;dbaeumer.vscode-eslint&amp;quot;]&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;customizations.vscode.settings&amp;lt;/code&amp;gt; || VS Codeのエディタ設定をキーと値のオブジェクトで指定する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;settings&amp;quot;: {&amp;quot;editor.tabSize&amp;quot;: 2}&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;forwardPorts&amp;lt;/code&amp;gt; || コンテナ内のポートをホストに転送するポート番号の配列を指定する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;forwardPorts&amp;quot;: [3000, 5432]&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;postCreateCommand&amp;lt;/code&amp;gt; || Codespace作成後に自動実行するコマンドを指定する。&amp;lt;br&amp;gt;依存関係のインストール等に使用する。&amp;lt;br&amp;gt;例: &amp;lt;u&amp;gt;&amp;quot;postCreateCommand&amp;quot;: &amp;quot;npm install&amp;quot;&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;remoteEnv&amp;lt;/code&amp;gt; || コンテナ内に設定する環境変数をオブジェクトで指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;remoteUser&amp;lt;/code&amp;gt; || コンテナ内のデフォルトユーザを指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
devcontainer.jsonの記述例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    // Node.js開発環境の例&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Node.js Development&amp;quot;,&lt;br /&gt;
    &amp;quot;image&amp;quot;: &amp;quot;mcr.microsoft.com/devcontainers/javascript-node:20&amp;quot;,&lt;br /&gt;
    &amp;quot;features&amp;quot;: {&lt;br /&gt;
       &amp;quot;ghcr.io/devcontainers/features/git:1&amp;quot;: {}&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;customizations&amp;quot;: {&lt;br /&gt;
       &amp;quot;vscode&amp;quot;: {&lt;br /&gt;
          &amp;quot;extensions&amp;quot;: [&lt;br /&gt;
             &amp;quot;dbaeumer.vscode-eslint&amp;quot;,&lt;br /&gt;
             &amp;quot;esbenp.prettier-vscode&amp;quot;&lt;br /&gt;
          ],&lt;br /&gt;
          &amp;quot;settings&amp;quot;: {&lt;br /&gt;
             &amp;quot;editor.formatOnSave&amp;quot;: true,&lt;br /&gt;
             &amp;quot;editor.defaultFormatter&amp;quot;: &amp;quot;esbenp.prettier-vscode&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;forwardPorts&amp;quot;: [3000],&lt;br /&gt;
    &amp;quot;postCreateCommand&amp;quot;: &amp;quot;npm install&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プリセット設定 ====&lt;br /&gt;
下表に、GitHubが公式に提供するプリセットのDev Container設定を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Dev Containerプリセット一覧&lt;br /&gt;
! プリセット !! イメージ !! 主な用途&lt;br /&gt;
|-&lt;br /&gt;
| Node.js / JavaScript || mcr.microsoft.com/devcontainers/javascript-node || フロントエンド、Node.jsバックエンド&lt;br /&gt;
|-&lt;br /&gt;
| Python || mcr.microsoft.com/devcontainers/python || Python Webアプリ、データサイエンス&lt;br /&gt;
|-&lt;br /&gt;
| Java || mcr.microsoft.com/devcontainers/java || Javaアプリケーション、Spring Boot&lt;br /&gt;
|-&lt;br /&gt;
| PHP || mcr.microsoft.com/devcontainers/php || WordPressを含むPHPアプリケーション&lt;br /&gt;
|-&lt;br /&gt;
| C# / .NET || mcr.microsoft.com/devcontainers/dotnet || ASP.NET Core等のC#アプリケーション&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムDockerfile ====&lt;br /&gt;
devcontainer.jsonからカスタムDockerfileを参照することにより、詳細な環境構築ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;.devcontainer/&amp;lt;/u&amp;gt; ディレクトリに &amp;lt;u&amp;gt;Dockerfile&amp;lt;/u&amp;gt; を配置し、devcontainer.jsonで参照する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Custom Environment&amp;quot;,&lt;br /&gt;
    &amp;quot;build&amp;quot;: {&lt;br /&gt;
       &amp;quot;dockerfile&amp;quot;: &amp;quot;Dockerfile&amp;quot;,&lt;br /&gt;
       &amp;quot;context&amp;quot;: &amp;quot;..&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;customizations&amp;quot;: {&lt;br /&gt;
       &amp;quot;vscode&amp;quot;: {&lt;br /&gt;
          &amp;quot;extensions&amp;quot;: [&amp;quot;ms-python.python&amp;quot;]&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムDockerfileの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 FROM mcr.microsoft.com/devcontainers/python:3.11&lt;br /&gt;
 &lt;br /&gt;
 # 追加パッケージのインストール&lt;br /&gt;
 RUN apt-get update &amp;amp;&amp;amp; apt-get install -y \&lt;br /&gt;
    postgresql-client \&lt;br /&gt;
    redis-tools \&lt;br /&gt;
    &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*&lt;br /&gt;
 &lt;br /&gt;
 # Pythonパッケージのインストール&lt;br /&gt;
 COPY requirements.txt /tmp/&lt;br /&gt;
 RUN pip install -r /tmp/requirements.txt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Docker Composeとの連携 ====&lt;br /&gt;
データベースや外部サービスを含む複数コンテナ構成には、Docker Composeと連携できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
devcontainer.jsonで &amp;lt;code&amp;gt;dockerComposeFile&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;service&amp;lt;/code&amp;gt; を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Full Stack Application&amp;quot;,&lt;br /&gt;
    &amp;quot;dockerComposeFile&amp;quot;: &amp;quot;docker-compose.yml&amp;quot;,&lt;br /&gt;
    &amp;quot;service&amp;quot;: &amp;quot;app&amp;quot;,&lt;br /&gt;
    &amp;quot;workspaceFolder&amp;quot;: &amp;quot;/workspace&amp;quot;,&lt;br /&gt;
    &amp;quot;customizations&amp;quot;: {&lt;br /&gt;
       &amp;quot;vscode&amp;quot;: {&lt;br /&gt;
          &amp;quot;extensions&amp;quot;: [&amp;quot;ms-python.python&amp;quot;]&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
対応する &amp;lt;u&amp;gt;docker-compose.yml&amp;lt;/u&amp;gt; の例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 services:&lt;br /&gt;
    app:&lt;br /&gt;
       build: .&lt;br /&gt;
       volumes:&lt;br /&gt;
          - ../..:/workspace:cached&lt;br /&gt;
       command: sleep infinity&lt;br /&gt;
 &lt;br /&gt;
    db:&lt;br /&gt;
       image: postgres:15&lt;br /&gt;
       environment:&lt;br /&gt;
          POSTGRES_PASSWORD: devpassword&lt;br /&gt;
 &lt;br /&gt;
    redis:&lt;br /&gt;
       image: redis:7&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Codespace内での開発 ==&lt;br /&gt;
==== VS Code (ブラウザ版/デスクトップ版) ====&lt;br /&gt;
Codespaceには、Webブラウザ および デスクトップのVS Codeから接続できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブラウザ版VS Code&lt;br /&gt;
*: セットアップ不要でブラウザから直接利用できる。&lt;br /&gt;
*: 一部の機能 (ローカルファイルへのアクセス等) に制限がある。&lt;br /&gt;
* デスクトップ版VS Code&lt;br /&gt;
*: フルの機能を利用できる。&lt;br /&gt;
*: Codespace内で[F1]キーを押下してコマンドパレットを開いて、Open in VS Code Desktop を実行することで切り替えられる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デスクトップ版への接続にはVS Codeと GitHub Codespaces拡張機能が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ターミナル ====&lt;br /&gt;
Codespace内のターミナルはUbuntu Linux環境を提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ターミナルはVS Codeのメニューから[Terminal] - [New Terminal]で開く または [Ctrl] + [`]キーで開ける。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトではbashが使用されるが、devcontainer.jsonの設定によりZshやFishに変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Git操作 ====&lt;br /&gt;
CodespaceはGit操作に対応しており、GITHUB_TOKENによる自動認証が設定されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPS経由のGit操作は追加の認証設定なしで実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeのソースコントロールビューから以下に示す操作が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ファイルのステージング ([+]ボタン)&lt;br /&gt;
* コミットメッセージの入力とコミット実行&lt;br /&gt;
* リモートへのプッシュ&lt;br /&gt;
* Pull Requestの作成 (GitHub Pull Requests拡張機能使用時)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CLIからのGit操作例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # ファイルのステージング&lt;br /&gt;
 git add .&lt;br /&gt;
 &lt;br /&gt;
 # コミット&lt;br /&gt;
 git commit -m &amp;quot;&amp;lt;コミットメッセージ&amp;gt;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # プッシュ&lt;br /&gt;
 git push origin &amp;lt;ブランチ名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ポートフォワーディング ====&lt;br /&gt;
Codespace内で起動したサービスのポートは、ポートフォワーディングによりブラウザからアクセスできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、ポートフォワーディングの方法を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ポート転送の方法一覧&lt;br /&gt;
|-&lt;br /&gt;
! 方法 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 自動転送 || アプリケーションがlocalhostのポートにバインドすると、&amp;lt;br&amp;gt;VS Codeが自動的に検出してポートを転送する。&lt;br /&gt;
|-&lt;br /&gt;
| 手動転送 || VS CodeのPORTSタブで[+]ボタンを押下して、&amp;lt;br&amp;gt;転送するポート番号を手動で入力する。&lt;br /&gt;
|-&lt;br /&gt;
| devcontainer.jsonでの事前定義 || &amp;lt;code&amp;gt;forwardPorts&amp;lt;/code&amp;gt; フィールドに転送するポートを記述することにより、&amp;lt;br&amp;gt;Codespace起動時に自動的に設定される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
転送されたポートのアクセス制御設定を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ポートアクセス制御の設定&lt;br /&gt;
! 設定 !! 説明 !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| Private (デフォルト) || Codespacesの認証が必要 || 個人開発、機密情報を含む環境&lt;br /&gt;
|-&lt;br /&gt;
| Organization || 同一組織のメンバーのみアクセス可 || チーム内での共有、デモ&lt;br /&gt;
|-&lt;br /&gt;
| Public || 認証なしで誰でもアクセス可 || 外部へのデモ、一時的な公開&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Live Share ====&lt;br /&gt;
VS CodeのLive Share機能を使用することにより、Codespace内での共同編集が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Live Shareを開始するには、VS CodeのLive Share拡張機能をインストールして、共有セッションを開始する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
参加者はCodespaceのURLを持っていなくても、Live ShareのリンクからCodespace内のファイルを閲覧・編集できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 個人設定 ==&lt;br /&gt;
==== dotfiles ====&lt;br /&gt;
dotfilesリポジトリを使用することで、全てのCodespaceに個人の設定を自動的に適用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubに &amp;lt;code&amp;gt;dotfiles&amp;lt;/code&amp;gt; という名前のリポジトリを作成する。&lt;br /&gt;
# &amp;lt;u&amp;gt;install.sh&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;bootstrap.sh&amp;lt;/u&amp;gt; 等のインストールスクリプトを配置する。&lt;br /&gt;
# [Settings] - [Codespaces] - [Dotfiles] - [Automatically install dotfiles from your dotfiles repository]を有効にする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Codespaceが作成されるとdotfilesリポジトリが自動的にクローンされ、インストールスクリプトが実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
dotfilesに含めると便利な設定ファイルの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;.bashrc&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;.zshrc&amp;lt;/u&amp;gt;&lt;br /&gt;
*: シェルの設定とエイリアス&lt;br /&gt;
* &amp;lt;u&amp;gt;.gitconfig&amp;lt;/u&amp;gt;&lt;br /&gt;
*: Gitのユーザ名、メールアドレス、エイリアス&lt;br /&gt;
* &amp;lt;u&amp;gt;.vimrc&amp;lt;/u&amp;gt;&lt;br /&gt;
*: Vimの設定&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Settings Sync ====&lt;br /&gt;
VS CodeのSettings Sync機能を使用することにより、デスクトップ版VS CodeとCodespace (Webブラウザ版) 間で設定を同期できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
同期される設定の種類を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* キーボードショートカット&lt;br /&gt;
* インストール済み拡張機能&lt;br /&gt;
* UIの状態 (パネルの配置等)&lt;br /&gt;
* スニペット&lt;br /&gt;
* タスクとデバッグ設定&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Settings Syncを有効にするには、VS Codeのアカウントメニューから[Sign in to Sync Settings]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デフォルトエディタ ====&lt;br /&gt;
Codespaceに接続する時のデフォルトエディタは、[Settings] - [Codespaces] - [Editor preference]から設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
選択可能なエディタを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Visual Studio Code (デスクトップ版)&lt;br /&gt;
* Visual Studio Code for the Web (Webブラウザ版)&lt;br /&gt;
* JetBrains Gateway (JetBrains製IDE向け)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GPGコミット署名 ====&lt;br /&gt;
CodespaceではGPGを使用したコミット署名をサポートしている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Settings] - [SSH and GPG keys]からGPGキーを登録した後、Codespace内のgit設定でGPG署名を有効化することで署名付きコミットが可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git config --global commit.gpgsign true&lt;br /&gt;
 git config --global user.signingkey &amp;lt;GPGキーID&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Codespaceの管理 ==&lt;br /&gt;
==== 起動・停止・削除 ====&lt;br /&gt;
作成済みのCodespaceは、github.com/codespaces (Your codespaces) ページで一覧表示・管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各Codespaceに対して実行できる操作を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 起動 (Open)&lt;br /&gt;
*: CodespaceをWebブラウザで開く。&lt;br /&gt;
* 停止 (Stop codespace)&lt;br /&gt;
*: Codespaceを停止する。&lt;br /&gt;
*: 停止中はストレージのみ課金される。&lt;br /&gt;
* 削除 (Delete)&lt;br /&gt;
*: Codespaceを完全に削除する。&lt;br /&gt;
*: 保存されていない変更は失われる。&lt;br /&gt;
* 名前変更 (Rename)&lt;br /&gt;
*: Codespaceに任意の名前を付ける。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CLIからの管理コマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Codespace一覧の表示&lt;br /&gt;
 gh codespace list&lt;br /&gt;
 &lt;br /&gt;
 # Codespaceの停止&lt;br /&gt;
 gh codespace stop -c CODESPACE_NAME&lt;br /&gt;
 &lt;br /&gt;
 # Codespaceの削除&lt;br /&gt;
 gh codespace delete -c CODESPACE_NAME&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タイムアウト設定 ====&lt;br /&gt;
一定時間操作がない場合、Codespaceは自動的に停止する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトのタイムアウト時間は30分であり、[Settings] - [Codespaces] - [Default idle timeout]から変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
選択可能なタイムアウト時間を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 5分&lt;br /&gt;
* 15分&lt;br /&gt;
* 30分 (デフォルト)&lt;br /&gt;
* 60分&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織の管理者はポリシーによってタイムアウトの最大値を制限できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 自動削除 (リテンション) ====&lt;br /&gt;
停止状態のまま一定期間放置されたCodespaceは自動的に削除される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトのリテンション期間は30日であり、[Settings] - [Codespaces] - [Default retention period]から変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能な期間は1日から30日の範囲である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
削除前にGitHubから通知メールが送信されるが、コミット・プッシュされていない変更は失われるため注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リビルド ====&lt;br /&gt;
Dev Containerの設定を変更した時は、Codespaceをリビルドして変更を反映できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リビルドの種類を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 通常リビルド&lt;br /&gt;
*: Dockerイメージのキャッシュを使用してリビルドする。&lt;br /&gt;
*: 変更のない層はキャッシュが再利用されるため高速に完了する。&lt;br /&gt;
* フルリビルド&lt;br /&gt;
*: キャッシュをクリアして最初からリビルドする。&lt;br /&gt;
*: キャッシュ起因の問題を解決する場合に使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VS Codeからリビルドするには、コマンドパレットで以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 通常リビルド&lt;br /&gt;
*: Codespaces: Rebuild Container&lt;br /&gt;
* フルリビルド&lt;br /&gt;
*: Codespaces: Full Rebuild Container&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CLIからのリビルドコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 通常リビルド&lt;br /&gt;
 gh codespace rebuild -c CODESPACE_NAME&lt;br /&gt;
 &lt;br /&gt;
 # フルリビルド&lt;br /&gt;
 gh codespace rebuild --full -c CODESPACE_NAME&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== プリビルド ==&lt;br /&gt;
==== プリビルドとは ====&lt;br /&gt;
プリビルドは、大規模なリポジトリでのCodespace作成時間を短縮するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
通常、Codespace作成時にDev Containerのセットアップ (依存関係のインストール、ビルド等) が実行されるため、時間が掛かる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プリビルドを設定すると、コードがプッシュされるたびにGitHub Actionsが自動的にDev Containerのセットアップを事前実行し、その結果をキャッシュする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プリビルドを使用することにより、新しいCodespaceを数分ではなく数秒で作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プリビルドの設定 ====&lt;br /&gt;
プリビルドはリポジトリ単位で設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings] - [Codespaces] - [Prebuild configuration]を開く。&lt;br /&gt;
# [Set up prebuild]を選択する。&lt;br /&gt;
# プリビルドを実行するブランチを選択する。&lt;br /&gt;
# マシンタイプを選択する。&lt;br /&gt;
# プリビルドをトリガーするイベントを選択する。(コードプッシュ時、スケジュール、手動)&lt;br /&gt;
# リージョンを選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;プリビルドには、GitHub Actionsの実行時間が消費されることに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プリビルドが有効な場合、Codespace作成画面にプリビルドマークが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== シークレット管理 ==&lt;br /&gt;
==== Codespaces用シークレット ====&lt;br /&gt;
APIキーや認証情報等のシークレットは、環境変数としてCodespaceに安全に注入できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
シークレットの設定方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* リポジトリレベルのシークレット&lt;br /&gt;
*: [Settings] - [Secrets and variables] - [Codespaces] - [New repository secret]から設定する。&lt;br /&gt;
*: そのリポジトリのCodespaceにのみ適用される。&lt;br /&gt;
* ユーザレベルのシークレット&lt;br /&gt;
*: [Settings] - [Codespaces] - [Codespaces secrets] - [New secret]から設定する。&lt;br /&gt;
*: 複数のリポジトリで共有できる個人用シークレットである。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定したシークレットはCodespace内で環境変数として自動的にエクスポートされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # シークレットの確認例&lt;br /&gt;
 echo $MY_API_KEY&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 制限事項 ====&lt;br /&gt;
シークレット管理には、以下に示す制限事項がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* シークレットの最大数&lt;br /&gt;
*: 1リポジトリまたはユーザあたり最大100個&lt;br /&gt;
* 各シークレットのサイズ&lt;br /&gt;
*: 最大48[KB]&lt;br /&gt;
* 名前の制限&lt;br /&gt;
*: GITHUB_ プレフィックスは使用禁止&lt;br /&gt;
* Dockerfile内での使用&lt;br /&gt;
*: Dockerfileのビルド時にはシークレットを参照できない。&lt;br /&gt;
*: postCreateCommandやアプリケーション実行時にのみ使用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 組織での管理 ==&lt;br /&gt;
==== Codespacesポリシー ====&lt;br /&gt;
組織の管理者はCodespacesのポリシーを設定して、メンバーの利用を制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能なポリシーを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アクセス制御&lt;br /&gt;
*: Codespacesを使用できるメンバーを制限する。&lt;br /&gt;
* リポジトリ制限&lt;br /&gt;
*: Codespacesを有効にするリポジトリを制限する。&lt;br /&gt;
* ネットワークポリシー&lt;br /&gt;
*: Codespace内からのネットワークアクセスを制限する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ポリシーは、[Organization]の[Settings] - [Codespaces]から設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マシンタイプの制限 ====&lt;br /&gt;
管理者はメンバーが選択できるマシンタイプを制限できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、コスト管理のためにメンバーが32-coreマシンを使用できないように制限することが可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[Organization] - [Settings] - [Codespaces] - [Machine type policies]から設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 課金管理 ====&lt;br /&gt;
組織のCodespaces利用費の負担先は、以下に示す2通りから選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 組織負担&lt;br /&gt;
*: 組織のメンバーが使用したCodespacesの費用を組織が負担する。&lt;br /&gt;
*: [Settings] - [Codespaces] - [Codespaces access] - [Enabled for all members] または 特定のメンバーを選択する。&lt;br /&gt;
* メンバー負担&lt;br /&gt;
*: 各メンバーが個人アカウントで費用を負担する。&lt;br /&gt;
*: 組織のCodespaces機能を有効にしない場合のデフォルト動作である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織の利用状況は、[Organization] - [Billing]ページで確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
監査ログ (Audit Log) では、Codespaceの作成・削除・起動・停止等のイベントを追跡できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 課金 ==&lt;br /&gt;
==== 無料枠 ====&lt;br /&gt;
GitHubのプランに応じて毎月の無料枠が提供される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHubプランごとの無料枠&lt;br /&gt;
! プラン !! コンピュート (コア時間) !! ストレージ&lt;br /&gt;
|-&lt;br /&gt;
| Free || 120コア時間/月 || 15[GB]/月&lt;br /&gt;
|-&lt;br /&gt;
| Pro || 180コア時間/月 || 20[GB]/月&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コア時間はCodespaceのコア数に使用時間を掛けた値である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、2-coreのCodespaceを10時間使用した場合、20コア時間を消費する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
無料枠を超えた分は従量課金となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コンピュート料金 ====&lt;br /&gt;
下表に、無料枠を超えた場合のコンピュート料金を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Codespacesのコンピュート料金&lt;br /&gt;
! マシンタイプ !! 料金&lt;br /&gt;
|-&lt;br /&gt;
| 2-core || $0.18/時間&lt;br /&gt;
|-&lt;br /&gt;
| 4-core || $0.36/時間&lt;br /&gt;
|-&lt;br /&gt;
| 8-core || $0.72/時間&lt;br /&gt;
|-&lt;br /&gt;
| 16-core || $1.44/時間&lt;br /&gt;
|-&lt;br /&gt;
| 32-core || $2.88/時間&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;コンピュート料金はCodespaceが起動している時間にのみ発生する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;停止中はコンピュート料金は発生しない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ストレージ料金 ====&lt;br /&gt;
Codespaceのストレージはコンテナの内容全体 (ソースコード、依存関係、ツール等) に対して課金される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ストレージ料金は $0.07/[GB]-月 である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ストレージ料金はCodespaceが停止中であっても、Codespaceが存在する限り発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;コストを抑えるために、使用しないCodespaceは削除することを推奨する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Packages&amp;diff=14580</id>
		<title>GitHub - Packages</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Packages&amp;diff=14580"/>
		<updated>2026-03-23T21:46:46Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Packagesは、GitHubが提供するソフトウェアパッケージホスティングサービスである。&amp;lt;br&amp;gt; ソースコードと同じリポジトリでパッケージを管理・公開・インストールできる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; GitHub Packagesが対応しているレジストリは以下の通りである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;center&amp;gt; {| class=&amp;quot;wikitable&amp;quot; |+ GitHub Packagesの対応レジストリ一覧 |- ! レジストリ !! 説明 |- | Containe…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Packagesは、GitHubが提供するソフトウェアパッケージホスティングサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
ソースコードと同じリポジトリでパッケージを管理・公開・インストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Packagesが対応しているレジストリは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Packagesの対応レジストリ一覧&lt;br /&gt;
|-&lt;br /&gt;
! レジストリ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Container Registry(ghcr.io) || Dockerコンテナイメージ および OCIイメージをホスティングする。&lt;br /&gt;
|-&lt;br /&gt;
| npm || JavaScriptパッケージをホスティングする。&lt;br /&gt;
|-&lt;br /&gt;
| Maven / Gradle || Javaパッケージをホスティングする。&lt;br /&gt;
|-&lt;br /&gt;
| NuGet || .NETパッケージをホスティングする。&lt;br /&gt;
|-&lt;br /&gt;
| RubyGems || Rubyパッケージをホスティングする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Packagesを利用するメリットを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ソースコードとパッケージを同一リポジトリで管理できる。&lt;br /&gt;
* GitHubのアクセス制御と統合されており、チームの権限管理が一元化できる。&lt;br /&gt;
* GitHub Actionsとの連携により、CI/CDパイプラインにパッケージ公開を組み込める。&lt;br /&gt;
* プライベートパッケージをリポジトリのアクセス権限に基づいて保護できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Container Registry (ghcr.io) ==&lt;br /&gt;
ghcr.ioはGitHubが提供するコンテナレジストリであり、DockerイメージおよびOCIイメージの管理に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 認証 ====&lt;br /&gt;
ghcr.ioへの認証には個人アクセストークン (Personal Access Token) を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、必要なスコープを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パーソナルアクセストークンのスコープ一覧&lt;br /&gt;
|-&lt;br /&gt;
! スコープ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read:packages&amp;lt;/code&amp;gt; || パッケージのダウンロードとメタデータの読み取りに必要なスコープ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;write:packages&amp;lt;/code&amp;gt; || パッケージのアップロードと公開に必要なスコープ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;delete:packages&amp;lt;/code&amp;gt; || パッケージの削除に必要なスコープ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
個人アクセストークンは、GitHubの[Settings] - [Developer settings] - [Personal access tokens]から作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerログイン ====&lt;br /&gt;
ghcr.ioにログインする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 echo $CR_PAT | docker login ghcr.io -u &amp;lt;ユーザ名&amp;gt; --password-stdin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CR_PAT&amp;lt;/code&amp;gt; には個人アクセストークン、&amp;lt;code&amp;gt;&amp;lt;ユーザ名&amp;gt;&amp;lt;/code&amp;gt; にはGitHubのユーザ名を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
パスワードを標準入力から渡すことにより、コマンド履歴にトークンが残らないようにする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== イメージのプッシュとプル ====&lt;br /&gt;
ビルド済みのイメージにghcr.ioのタグを付けてプッシュする手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # イメージにタグを付ける&lt;br /&gt;
 docker tag &amp;lt;イメージ名&amp;gt; ghcr.io/NAMESPACE/&amp;lt;イメージ名&amp;gt;:TAG&lt;br /&gt;
 &lt;br /&gt;
 # イメージをプッシュする&lt;br /&gt;
 docker push ghcr.io/NAMESPACE/&amp;lt;イメージ名&amp;gt;:TAG&lt;br /&gt;
 &lt;br /&gt;
 # イメージをプルする&lt;br /&gt;
 docker pull ghcr.io/NAMESPACE/&amp;lt;イメージ名&amp;gt;:TAG&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;NAMESPACE&amp;lt;/code&amp;gt; にはGitHubのユーザ名 または Organization名を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;TAG&amp;lt;/code&amp;gt; には &amp;lt;code&amp;gt;latest&amp;lt;/code&amp;gt; や バージョン番号を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レイヤーの最大サイズは10[GB]、タイムアウトは10分である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリの関連付け ====&lt;br /&gt;
コンテナイメージを特定のGitHubリポジトリに関連付けるには、Dockerfile内に以下のラベルを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このラベルを追加すると、ghcr.io上のパッケージページから対象リポジトリへのリンクが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
また、リポジトリの可視性設定がパッケージに継承される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 可視性設定 ====&lt;br /&gt;
コンテナイメージの可視性は、GitHubのPackage settingsから設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パッケージの公開範囲一覧&lt;br /&gt;
|-&lt;br /&gt;
! 公開範囲 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Public || 誰でもプルできる状態&lt;br /&gt;
|-&lt;br /&gt;
| Private || アクセス権限を持つユーザのみプルできる状態&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
可視性をPublicからPrivateに変更することは、不可逆な操作であることに注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== npm レジストリ ==&lt;br /&gt;
GitHub Packagesのnpmレジストリを使用すると、スコープ付きnpmパッケージを公開・インストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 認証と.npmrc設定 ====&lt;br /&gt;
npmレジストリへの認証には、&amp;lt;u&amp;gt;.npmrc&amp;lt;/u&amp;gt; ファイルを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトルートに &amp;lt;u&amp;gt;.npmrc&amp;lt;/u&amp;gt; ファイルを作成して、以下に示す内容を記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 @NAMESPACE:registry=https://npm.pkg.github.com&lt;br /&gt;
 //npm.pkg.github.com/:_authToken=TOKEN&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;NAMESPACE&amp;lt;/code&amp;gt; にはGitHubのユーザ名 または Organization名を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;TOKEN&amp;lt;/code&amp;gt; には &amp;lt;code&amp;gt;read:packages&amp;lt;/code&amp;gt; スコープを持つ個人アクセストークンを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パッケージの公開 ====&lt;br /&gt;
GitHub Packagesのnpmレジストリでは、スコープ付きパッケージ名が必須である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;package.json&amp;lt;/u&amp;gt; ファイル内の &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; フィールドを以下に示すように設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;@NAMESPACE/PACKAGE-NAME&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;publishConfig&amp;quot;: {&lt;br /&gt;
       &amp;quot;registry&amp;quot;: &amp;quot;https://npm.pkg.github.com&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定後、コマンドでパッケージを公開する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm publish&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パッケージのインストール ====&lt;br /&gt;
&amp;lt;u&amp;gt;.npmrc&amp;lt;/u&amp;gt; ファイルにレジストリ設定を追加した後、以下のコマンドでパッケージをインストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 npm install @NAMESPACE/PACKAGE-NAME&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maven レジストリ ==&lt;br /&gt;
GitHub PackagesのMavenレジストリを使用すると、JavaのMavenパッケージを公開・インストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 認証設定 ====&lt;br /&gt;
Mavenの認証情報は &amp;lt;u&amp;gt;~/.m2/settings.xml&amp;lt;/u&amp;gt; ファイルに設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;settings xmlns=&amp;quot;http://maven.apache.org/SETTINGS/1.0.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;servers&amp;gt;&lt;br /&gt;
       &amp;lt;server&amp;gt;&lt;br /&gt;
          &amp;lt;id&amp;gt;github&amp;lt;/id&amp;gt;&lt;br /&gt;
          &amp;lt;username&amp;gt;USERNAME&amp;lt;/username&amp;gt;&lt;br /&gt;
          &amp;lt;password&amp;gt;TOKEN&amp;lt;/password&amp;gt;&lt;br /&gt;
       &amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/servers&amp;gt;&lt;br /&gt;
 &amp;lt;/settings&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;USERNAME&amp;lt;/code&amp;gt; には GitHubのユーザ名、&amp;lt;code&amp;gt;TOKEN&amp;lt;/code&amp;gt; には &amp;lt;code&amp;gt;read:packages&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;write:packages&amp;lt;/code&amp;gt; スコープを持つ個人アクセストークンを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パッケージの公開 ====&lt;br /&gt;
&amp;lt;u&amp;gt;pom.xml&amp;lt;/u&amp;gt; ファイルの &amp;lt;code&amp;gt;distributionManagement&amp;lt;/code&amp;gt; セクションにリポジトリURLを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;distributionManagement&amp;gt;&lt;br /&gt;
    &amp;lt;repository&amp;gt;&lt;br /&gt;
       &amp;lt;id&amp;gt;github&amp;lt;/id&amp;gt;&lt;br /&gt;
       &amp;lt;name&amp;gt;GitHub OWNER Apache Maven Packages&amp;lt;/name&amp;gt;&lt;br /&gt;
       &amp;lt;url&amp;gt;https://maven.pkg.github.com/OWNER/REPO&amp;lt;/url&amp;gt;&lt;br /&gt;
    &amp;lt;/repository&amp;gt;&lt;br /&gt;
 &amp;lt;/distributionManagement&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定後、パッケージをデプロイするため、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 mvn deploy&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;アーティファクトIDは、小文字のみが使用できることに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== Gradleでの使用 ====&lt;br /&gt;
Gradleを使用する場合は、&amp;lt;u&amp;gt;build.gradle&amp;lt;/u&amp;gt; ファイルにリポジトリと認証情報を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
 repositories {&lt;br /&gt;
    maven {&lt;br /&gt;
       url = uri(&amp;quot;https://maven.pkg.github.com/OWNER/REPO&amp;quot;)&lt;br /&gt;
       credentials {&lt;br /&gt;
          username = project.findProperty(&amp;quot;gpr.user&amp;quot;) ?: System.getenv(&amp;quot;USERNAME&amp;quot;)&lt;br /&gt;
          password = project.findProperty(&amp;quot;gpr.key&amp;quot;) ?: System.getenv(&amp;quot;TOKEN&amp;quot;)&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NuGetレジストリ ==&lt;br /&gt;
GitHub PackagesのNuGetレジストリを使用すると、.NETのNuGetパッケージを公開・インストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パッケージの公開 ====&lt;br /&gt;
NuGetパッケージを公開するため、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 dotnet nuget push PACKAGE_NAME.nupkg \&lt;br /&gt;
    --api-key &amp;lt;TOKEN&amp;gt; \&lt;br /&gt;
    --source &amp;quot;https://nuget.pkg.github.com/OWNER/index.json&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;TOKEN&amp;lt;/code&amp;gt; には &amp;lt;code&amp;gt;write:packages&amp;lt;/code&amp;gt; スコープを持つ個人アクセストークンを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パッケージのインストール ====&lt;br /&gt;
&amp;lt;u&amp;gt;nuget.config&amp;lt;/u&amp;gt; ファイルにGitHub Packagesのソースを追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;configuration&amp;gt;&lt;br /&gt;
    &amp;lt;packageSources&amp;gt;&lt;br /&gt;
       &amp;lt;add key=&amp;quot;github&amp;quot; value=&amp;quot;https://nuget.pkg.github.com/OWNER/index.json&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/packageSources&amp;gt;&lt;br /&gt;
    &amp;lt;packageSourceCredentials&amp;gt;&lt;br /&gt;
       &amp;lt;github&amp;gt;&lt;br /&gt;
          &amp;lt;add key=&amp;quot;Username&amp;quot; value=&amp;quot;USERNAME&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;add key=&amp;quot;ClearTextPassword&amp;quot; value=&amp;quot;TOKEN&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;/github&amp;gt;&lt;br /&gt;
    &amp;lt;/packageSourceCredentials&amp;gt;&lt;br /&gt;
 &amp;lt;/configuration&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定後、dotnetコマンドでパッケージをインストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 dotnet add package &amp;lt;パッケージ名&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RubyGemsレジストリ ==&lt;br /&gt;
GitHub PackagesのRubyGemsレジストリを使用すると、RubyのGemパッケージを公開・インストールできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パッケージの公開 ====&lt;br /&gt;
まず &amp;lt;u&amp;gt;~/.gem/credentials&amp;lt;/u&amp;gt; ファイルに認証情報を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 :github: Bearer TOKEN&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
次に、Gemをビルドして公開するため、以下に示すコマンドを実行する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Gemのビルド&lt;br /&gt;
 gem build PACKAGE_NAME.gemspec&lt;br /&gt;
 &lt;br /&gt;
 # GitHub Packagesへのプッシュ&lt;br /&gt;
 gem push --key github \&lt;br /&gt;
    --host https://rubygems.pkg.github.com/NAMESPACE \&lt;br /&gt;
    PACKAGE_NAME-VERSION.gem&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パッケージのインストール ====&lt;br /&gt;
Bundlerを使用してインストールする場合は、&amp;lt;u&amp;gt;Gemfile&amp;lt;/u&amp;gt; ファイルに以下の設定を追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
 source &amp;quot;https://rubygems.pkg.github.com/NAMESPACE&amp;quot; do&lt;br /&gt;
    gem &amp;quot;PACKAGE_NAME&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定後、以下に示すコマンドを実行して、インストールする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 bundle install&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub Actionsとの連携 ==&lt;br /&gt;
GitHub ActionsからGitHub Packagesへのアクセスには &amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; を使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; を使用することにより、個人アクセストークンを別途作成せずにパッケージを公開できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Dockerイメージの自動公開 ====&lt;br /&gt;
Dockerイメージを自動的にghcr.ioに公開するワークフローの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Publish Docker Image&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
    push:&lt;br /&gt;
       branches:&lt;br /&gt;
          - main&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
    publish:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       permissions:&lt;br /&gt;
          contents: read&lt;br /&gt;
          packages: write&lt;br /&gt;
 &lt;br /&gt;
       steps:&lt;br /&gt;
          - name: Checkout repository&lt;br /&gt;
            uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
          - name: Log in to the Container registry&lt;br /&gt;
            uses: docker/login-action@v3&lt;br /&gt;
            with:&lt;br /&gt;
               registry: ghcr.io&lt;br /&gt;
               username: ${{ github.actor }}&lt;br /&gt;
               password: ${{ secrets.GITHUB_TOKEN }}&lt;br /&gt;
 &lt;br /&gt;
          - name: Build and push Docker image&lt;br /&gt;
            uses: docker/build-push-action@v5&lt;br /&gt;
            with:&lt;br /&gt;
               context: .&lt;br /&gt;
               push: true&lt;br /&gt;
               tags: ghcr.io/${{ github.repository }}:latest&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なアクションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Docker関連アクション一覧&lt;br /&gt;
|-&lt;br /&gt;
! アクション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;docker/login-action&amp;lt;/code&amp;gt; || コンテナレジストリへのログインを行うアクション&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;docker/build-push-action&amp;lt;/code&amp;gt; || Dockerイメージのビルドとプッシュを行うアクション&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== npmパッケージの自動公開 ====&lt;br /&gt;
npmパッケージを自動的に公開するワークフローの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Publish npm Package&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
    release:&lt;br /&gt;
       types: [created]&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
    publish:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       permissions:&lt;br /&gt;
          contents: read&lt;br /&gt;
          packages: write&lt;br /&gt;
 &lt;br /&gt;
       steps:&lt;br /&gt;
          - name: Checkout repository&lt;br /&gt;
            uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
          - name: Setup Node.js&lt;br /&gt;
            uses: actions/setup-node@v4&lt;br /&gt;
            with:&lt;br /&gt;
               node-version: &#039;20&#039;&lt;br /&gt;
               registry-url: &#039;https://npm.pkg.github.com&#039;&lt;br /&gt;
               scope: &#039;@NAMESPACE&#039;&lt;br /&gt;
 &lt;br /&gt;
          - name: Install dependencies&lt;br /&gt;
            run: npm ci&lt;br /&gt;
 &lt;br /&gt;
          - name: Publish package&lt;br /&gt;
            run: npm publish&lt;br /&gt;
            env:&lt;br /&gt;
               NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
環境変数 &amp;lt;code&amp;gt;NODE_AUTH_TOKEN&amp;lt;/code&amp;gt; に &amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; を設定することにより、認証を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== パッケージの管理 ==&lt;br /&gt;
GitHub Packagesのパッケージは、[リポジトリ]ページ または [Organization]ページから管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== バージョン管理 ====&lt;br /&gt;
公開したパッケージは複数バージョンを保持できる。&amp;lt;br&amp;gt;&lt;br /&gt;
各バージョンは個別に管理・削除が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
バージョン一覧は、[リポジトリ]ページの[Packages]セクション または [Organization]ページの[Packages]ページから確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アクセス権限 ====&lt;br /&gt;
パッケージのアクセス権限は以下に示す3段階で設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ パッケージのアクセス権限&lt;br /&gt;
! 権限 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Read || パッケージのダウンロードとメタデータの閲覧が可能&lt;br /&gt;
|-&lt;br /&gt;
| Write || パッケージの公開と新バージョンのアップロードが可能&lt;br /&gt;
|-&lt;br /&gt;
| Admin || 権限設定の変更、パッケージの削除、可視性の変更が可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
デフォルトでは、リポジトリのアクセス権限がパッケージに継承される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリ権限の継承は、パッケージの設定から無効化することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== パッケージの削除と復元 ====&lt;br /&gt;
パッケージのバージョンは、GitHubのWeb UI または GraphQL APIを使用して削除できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
削除したパッケージは30日以内であれば復元できる。&amp;lt;br&amp;gt;&lt;br /&gt;
復元には以下の条件が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 同じ名前空間とバージョン番号が現在使用されていないこと。&lt;br /&gt;
* 削除から30日以内であること。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 可視性の変更 ====&lt;br /&gt;
パッケージの可視性変更に関して、以下に示す重要な制限がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* PublicからPrivateへの変更は不可逆である。&lt;br /&gt;
*: 1度Privateに変更すると、同じパッケージ名でPublicに戻すことはできない。&lt;br /&gt;
* PrivateからPublicへの変更は可能である。&lt;br /&gt;
*: ただし、Publicにした場合は全員がアクセスできる状態になることに注意する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 課金 ==&lt;br /&gt;
GitHub Packagesの利用には、ストレージ容量とデータ転送量に応じた課金が発生する場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 無料枠 ====&lt;br /&gt;
下表に、各プランの無料枠を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Packages の無料枠&lt;br /&gt;
! プラン !! ストレージ !! データ転送 (月間)&lt;br /&gt;
|-&lt;br /&gt;
| Free || 500[MB] || 1[GB]&lt;br /&gt;
|-&lt;br /&gt;
| Pro || 2[GB] || 10[GB]&lt;br /&gt;
|-&lt;br /&gt;
| Team || 2[GB] || 10[GB]&lt;br /&gt;
|-&lt;br /&gt;
| Enterprise || 50[GB] || 100[GB]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
無料枠を超えた場合は追加費用が発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GITHUB_TOKENでのデータ転送 ====&lt;br /&gt;
GitHub Actionsワークフロー内で &amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; を使用して GitHub Packages にアクセスする場合、データ転送量は無料枠の割当を消費しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これは、以下のケースに該当する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ワークフロー内での &amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; を使用したパッケージのプッシュ&lt;br /&gt;
* ワークフロー内での &amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; を使用したパッケージのプル&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;個人アクセストークンを使用した場合は、通常通り割当が消費されることに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
* [https://docs.github.com/ja/packages GitHub Packages 公式ドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/packages/working-with-a-github-packages-registry/working-with-the-container-registry Container Registry のドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/packages/working-with-a-github-packages-registry/working-with-the-npm-registry npm レジストリのドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry Maven レジストリのドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry NuGet レジストリのドキュメント]&lt;br /&gt;
* [https://docs.github.com/ja/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry RubyGems レジストリのドキュメント]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Pages&amp;diff=14579</id>
		<title>GitHub - Pages</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Pages&amp;diff=14579"/>
		<updated>2026-03-23T21:27:02Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Pagesは、GitHubリポジトリから直接Webサイトを公開できる静的サイトホスティングサービスである。&amp;lt;br&amp;gt; HTML、CSS、JavaScriptで構成された静的ファイルをリポジトリに配置するだけで、インターネット上に公開されたWebサイトを無料で運営できる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; GitHub Pagesで公開できるサイトは以下に示す2種類に分類される。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;center&amp;gt; {| class=&amp;quot;wi…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Pagesは、GitHubリポジトリから直接Webサイトを公開できる静的サイトホスティングサービスである。&amp;lt;br&amp;gt;&lt;br /&gt;
HTML、CSS、JavaScriptで構成された静的ファイルをリポジトリに配置するだけで、インターネット上に公開されたWebサイトを無料で運営できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Pagesで公開できるサイトは以下に示す2種類に分類される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Pagesのサイト種別一覧&lt;br /&gt;
|-&lt;br /&gt;
! 種別 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| ユーザ・組織サイト || &amp;lt;code&amp;gt;&amp;lt;ユーザ名 または 組織名&amp;gt;.github.io&amp;lt;/code&amp;gt; という名前のリポジトリから公開するサイト&amp;lt;br&amp;gt;アカウントごとに1つのみ作成できる。&amp;lt;br&amp;gt;公開URLは https://&amp;lt;ユーザ名 または 組織名&amp;gt;.github.io となる。&lt;br /&gt;
|-&lt;br /&gt;
| プロジェクトサイト || 既存のリポジトリから公開するサイト&amp;lt;br&amp;gt;1つのアカウントで複数作成できる。&amp;lt;br&amp;gt;公開URLは https://&amp;lt;オーナー名&amp;gt;.github.io/&amp;lt;リポジトリ名&amp;gt; となる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Pagesは、プロジェクトのドキュメント、個人ポートフォリオ、ブログ、ランディングページ等の幅広い用途で利用されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub Pagesの作成 ==&lt;br /&gt;
==== ユーザ・組織サイト ====&lt;br /&gt;
ユーザサイトまたは組織サイトを作成するには、特定の命名規則に従ったリポジトリを作成する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリ名は &amp;lt;u&amp;gt;&amp;lt;ユーザ名&amp;gt;.github.io&amp;lt;/u&amp;gt; (個人アカウントの場合) または &amp;lt;u&amp;gt;&amp;lt;組織名&amp;gt;.github.io&amp;lt;/u&amp;gt; (組織の場合) とする。&amp;lt;br&amp;gt;&lt;br /&gt;
アカウントごとに作成できるユーザ・組織サイトは1つのみである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリを作成後、デフォルトブランチ (通常は &amp;lt;u&amp;gt;main&amp;lt;/u&amp;gt;) のルートディレクトリに &amp;lt;u&amp;gt;index.html&amp;lt;/u&amp;gt; ファイルを配置することにより、サイトが公開される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトサイト ====&lt;br /&gt;
プロジェクトサイトは、既存のリポジトリに対してGitHub Pagesを有効化することで作成する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトサイトの公開URLは https://&amp;lt;オーナー名&amp;gt;.github.io/&amp;lt;リポジトリ名&amp;gt; となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;オーナー名&amp;gt;&amp;lt;/nowiki&amp;gt; は、GitHubのユーザ名または組織名に対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公開ソースの設定 ====&lt;br /&gt;
GitHub Pagesの公開ソースは、リポジトリの[Settings] - [Pages]から設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
公開ソースには以下の2つの方式がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ブランチからの公開&lt;br /&gt;
*: 指定したブランチのルートディレクトリ (&amp;lt;u&amp;gt;/&amp;lt;/u&amp;gt;) または &amp;lt;u&amp;gt;/docs&amp;lt;/u&amp;gt; ディレクトリの内容を公開する。&lt;br /&gt;
*: 設定は [Settings] - [Pages] - [Branch]でブランチ名とディレクトリを選択して保存する。&lt;br /&gt;
* GitHub Actionsでの公開&lt;br /&gt;
*: カスタムワークフローを使用してビルド・デプロイを行う。&lt;br /&gt;
*: &amp;lt;u&amp;gt;actions/upload-pages-artifact&amp;lt;/u&amp;gt; でアーティファクトをアップロードして、&amp;lt;u&amp;gt;actions/deploy-pages&amp;lt;/u&amp;gt; でデプロイする。&lt;br /&gt;
*: ワークフローには &amp;lt;code&amp;gt;pages: write&amp;lt;/code&amp;gt; および &amp;lt;code&amp;gt;id-token: write&amp;lt;/code&amp;gt; の権限が必要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Actionsを使用したデプロイワークフローの基本構成を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Deploy GitHub Pages&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
    push:&lt;br /&gt;
       branches: [&amp;quot;main&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
 permissions:&lt;br /&gt;
    contents: read&lt;br /&gt;
    pages: write&lt;br /&gt;
    id-token: write&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/checkout@v4&lt;br /&gt;
          - name: Build&lt;br /&gt;
            run: |&lt;br /&gt;
               # ビルドコマンドをここに記述する&lt;br /&gt;
          - uses: actions/upload-pages-artifact@v3&lt;br /&gt;
            with:&lt;br /&gt;
               path: ./dist&lt;br /&gt;
 &lt;br /&gt;
    deploy:&lt;br /&gt;
       needs: build&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       environment:&lt;br /&gt;
          name: github-pages&lt;br /&gt;
          url: ${{ steps.deployment.outputs.page_url }}&lt;br /&gt;
       steps:&lt;br /&gt;
          - id: deployment&lt;br /&gt;
            uses: actions/deploy-pages@v4&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Jekyll ==&lt;br /&gt;
==== Jekyllとは ====&lt;br /&gt;
JekyllはRubyで実装された静的サイトジェネレータであり、GitHub Pagesに公式統合されている。&amp;lt;br&amp;gt;&lt;br /&gt;
MarkdownファイルをHTMLに変換して、Liquidテンプレートエンジンを使用してレイアウトやコンポーネントを管理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ブランチからの公開を設定している場合、GitHub Pagesはリポジトリ内のファイルを自動的にJekyllでビルドする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Jekyllを使用しない場合は、リポジトリのルートディレクトリに &amp;lt;u&amp;gt;.nojekyll&amp;lt;/u&amp;gt; という空ファイルを配置することにより、Jekyllビルドを無効化できる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== _config.yml ====&lt;br /&gt;
&amp;lt;u&amp;gt;_config.yml&amp;lt;/u&amp;gt; ファイルは、Jekyllサイトの主要な設定ファイルである。&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリのルートディレクトリに配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主要な設定項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 # サイトの基本情報&lt;br /&gt;
 title: サイトタイトル&lt;br /&gt;
 description: サイトの説明文&lt;br /&gt;
 url: &amp;quot;https://&amp;lt;username&amp;gt;.github.io&amp;quot;&lt;br /&gt;
 baseurl: &amp;quot;&amp;quot;   # プロジェクトサイトの場合は &amp;quot;/&amp;lt;repo&amp;gt;&amp;quot; を指定する&lt;br /&gt;
 &lt;br /&gt;
 # テーマの設定&lt;br /&gt;
 theme: minima&lt;br /&gt;
 &lt;br /&gt;
 # プラグインの設定&lt;br /&gt;
 plugins:&lt;br /&gt;
    - jekyll-feed&lt;br /&gt;
    - jekyll-sitemap&lt;br /&gt;
 &lt;br /&gt;
 # 除外ファイルの設定&lt;br /&gt;
 exclude:&lt;br /&gt;
    - Gemfile&lt;br /&gt;
    - Gemfile.lock&lt;br /&gt;
    - README.md&lt;br /&gt;
 &lt;br /&gt;
 # Markdownエンジンの設定&lt;br /&gt;
 markdown: kramdown&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;GitHub Pagesが自動的に上書きする設定項目があることに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Pagesが強制する設定&lt;br /&gt;
! 設定項目 !! 強制される値 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lsi&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt; || 関連記事リストの生成を無効化する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;safe&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt; || ホワイトリスト外のプラグインを無効化する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;highlighter&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;rouge&amp;lt;/u&amp;gt; || シンタックスハイライトにRougeを使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== テーマ ====&lt;br /&gt;
JekyllテーマはサイトのデザインとレイアウトをまとめたRuby Gemパッケージである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テーマの適用方法には以下の2つがある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Web UIからの設定&lt;br /&gt;
*: リポジトリの[Settings] - [Pages] - [Choose a theme]から選択する。&lt;br /&gt;
*: 選択すると &amp;lt;u&amp;gt;_config.yml&amp;lt;/u&amp;gt; ファイル内に &amp;lt;code&amp;gt;theme:&amp;lt;/code&amp;gt; が自動的に追加される。&lt;br /&gt;
* &amp;lt;u&amp;gt;_config.yml&amp;lt;/u&amp;gt; での設定&lt;br /&gt;
*: GitHub Pagesがサポートするテーマは &amp;lt;code&amp;gt;theme: テーマ名&amp;lt;/code&amp;gt; で指定する。&lt;br /&gt;
*: GitHubホスト外のテーマは &amp;lt;code&amp;gt;remote_theme: owner/theme-repo&amp;lt;/code&amp;gt; で指定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テーマのカスタマイズはリポジトリ内に &amp;lt;u&amp;gt;_layouts&amp;lt;/u&amp;gt; ディレクトリを作成し、テーマのレイアウトファイルを上書きすることで行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
独自のCSSを追加する場合は、&amp;lt;u&amp;gt;assets/css/style.scss&amp;lt;/u&amp;gt; に記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コンテンツ作成 ====&lt;br /&gt;
Jekyllのコンテンツはページとポストの2種類に分類される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ページ&lt;br /&gt;
*: 独立したコンテンツ (About、Contact等) を作成する時に使用する。&lt;br /&gt;
*: リポジトリのルート直下または任意のディレクトリに &amp;lt;u&amp;gt;.md&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;.html&amp;lt;/u&amp;gt; ファイルとして配置する。&lt;br /&gt;
* ポスト&lt;br /&gt;
*: ブログ記事等の時系列コンテンツを作成する時に使用する。&lt;br /&gt;
*: &amp;lt;u&amp;gt;_posts/&amp;lt;/u&amp;gt; ディレクトリに &amp;lt;u&amp;gt;YYYY-MM-DD-タイトル.md&amp;lt;/u&amp;gt; という命名規則で配置する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各コンテンツファイルの先頭には、YAMLフロントマターと呼ばれるYAML形式のメタデータブロックを記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 ---&lt;br /&gt;
 layout: post&lt;br /&gt;
 title: &amp;quot;記事タイトル&amp;quot;&lt;br /&gt;
 date: 2026-03-24 12:00:00 +0900&lt;br /&gt;
 categories: [カテゴリ1, カテゴリ2]&lt;br /&gt;
 permalink: /custom-url/&lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 ここからMarkdownでコンテンツを記述する。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、YAMLフロントマターで指定できる主要な項目を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Front Matterの主要項目&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;layout&amp;lt;/code&amp;gt; || 使用するレイアウトテンプレート名 (例: &amp;lt;u&amp;gt;page&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;post&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;default&amp;lt;/u&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; || ページまたは記事のタイトル&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; || 公開日時 (ポストのみ)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;categories&amp;lt;/code&amp;gt; || カテゴリの配列&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;permalink&amp;lt;/code&amp;gt; || カスタムURL&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ローカルテスト ====&lt;br /&gt;
GitHub Pagesに公開する前に、ローカル環境でサイトを確認することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ローカルテストには、Ruby 2.7以上とBundlerおよびJekyllが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
Ruby 3.0以上を使用している場合は、追加で &amp;lt;u&amp;gt;webrick&amp;lt;/u&amp;gt; Gem のインストールが必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ローカルテストの手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリのルートディレクトリで依存Gemをインストールする。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Jekyll開発サーバを起動する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;bundle exec jekyll serve&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Ruby 3.0以上でwebrickエラーが発生した場合は、以下に示すコマンドを実行する。&lt;br /&gt;
#: &amp;lt;pre&amp;gt;bundle add webrick&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Webブラウザから http://localhost:4000 にアクセスしてサイトを確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
ファイルを変更すると自動的に再ビルドされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== カスタムドメイン ==&lt;br /&gt;
==== DNSレコードの設定 ====&lt;br /&gt;
カスタムドメインをGitHub Pagesに設定するには、ドメインのDNS設定を変更する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドメインの種類によって設定するDNSレコードが異なる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Apexドメイン (例: &amp;lt;u&amp;gt;example.com&amp;lt;/u&amp;gt;) の場合&lt;br /&gt;
*: ドメインのDNS設定に以下の4つのAレコードを追加する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Pages用 AレコードのIPアドレス&lt;br /&gt;
! タイプ !! 値&lt;br /&gt;
|-&lt;br /&gt;
| A || 185.199.108.153&lt;br /&gt;
|-&lt;br /&gt;
| A || 185.199.109.153&lt;br /&gt;
|-&lt;br /&gt;
| A || 185.199.110.153&lt;br /&gt;
|-&lt;br /&gt;
| A || 185.199.111.153&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IPv6に対応する場合は、上記に加えてAAAAレコードも追加する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* サブドメイン (例: &amp;lt;u&amp;gt;www.example.com&amp;lt;/u&amp;gt;) の場合&lt;br /&gt;
*: ドメインのDNS設定にCNAMEレコードを追加し、&amp;lt;u&amp;gt;&amp;lt;owner&amp;gt;.github.io&amp;lt;/u&amp;gt; を指定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリでのドメイン設定 ====&lt;br /&gt;
DNSレコードの設定後、GitHubリポジトリ側でカスタムドメインを設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings] - [Pages] - [Custom domain]フィールドにカスタムドメインを入力する。&lt;br /&gt;
# [Save]ボタンを押下して保存する。&lt;br /&gt;
# リポジトリのルートディレクトリに &amp;lt;u&amp;gt;CNAME&amp;lt;/u&amp;gt; ファイルが自動的に作成され、カスタムドメインが記載される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;CNAME&amp;lt;/u&amp;gt; ファイルはファイル名を大文字で記述して、ファイル内にはドメイン名を1行で記載する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== HTTPS ====&lt;br /&gt;
GitHub Pagesではカスタムドメインに対してHTTPSを強制できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPS証明書はLet&#039;s Encryptによって自動的に発行される。&amp;lt;br&amp;gt;&lt;br /&gt;
証明書の発行には最大1時間掛かる場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
HTTPS設定の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# カスタムドメインのDNS設定とリポジトリのドメイン設定が完了していることを確認する。&lt;br /&gt;
# [Settings] - [Pages] - [Enforce HTTPS]のチェックボックスを有効にする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Let&#039;s Encrypt証明書の自動更新を確実に行うため、ドメインのCAAレコードに &amp;lt;u&amp;gt;letsencrypt.org&amp;lt;/u&amp;gt; を許可する設定を追加することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ドメイン検証 ====&lt;br /&gt;
GitHub Pagesのドメイン検証機能を使用すると、他のGitHubユーザが自分のカスタムドメインをGitHub Pagesに設定することを防止できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドメイン検証はGitHubアカウントの[Settings] - [Pages] - [Verified domains]から設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
検証はDNSのTXTレコードに指定の値を追加することで完了する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 静的サイトジェネレータ ==&lt;br /&gt;
==== Jekyll以外のジェネレータ ====&lt;br /&gt;
GitHub PagesはJekyll以外の静的サイトジェネレータにも対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Actionsを使用してカスタムビルドワークフローを設定することにより、任意のジェネレータを使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主要な静的サイトジェネレータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主要な静的サイトジェネレータ&lt;br /&gt;
! ジェネレータ !! 言語 !! 特徴&lt;br /&gt;
|-&lt;br /&gt;
| Hugo || Go || 高速なビルド速度&amp;lt;br&amp;gt;大規模サイトに適している。&lt;br /&gt;
|-&lt;br /&gt;
| Next.js || JavaScript (React) || Reactベースのフレームワーク&amp;lt;br&amp;gt;SSG (静的サイト生成) モードで使用する。&lt;br /&gt;
|-&lt;br /&gt;
| Gatsby || JavaScript (React) || Reactベースの静的サイトジェネレータ&amp;lt;br&amp;gt;GraphQLによるデータ取得が特徴。&lt;br /&gt;
|-&lt;br /&gt;
| Nuxt || JavaScript (Vue.js) || Vue.jsベースのフレームワーク&amp;lt;br&amp;gt;SSG (静的サイト生成) モードで使用する。&lt;br /&gt;
|-&lt;br /&gt;
| MkDocs || Python || Markdownベースのドキュメントサイト生成に特化している。&lt;br /&gt;
|-&lt;br /&gt;
| Sphinx || Python || Pythonプロジェクトのドキュメント生成に広く使用されている。&lt;br /&gt;
|-&lt;br /&gt;
| Eleventy (11ty) || JavaScript || シンプルで柔軟な静的サイトジェネレータ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Actionsでのカスタムビルド ====&lt;br /&gt;
GitHub Actionsを使用したカスタムビルドワークフローの主要なアクションを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;actions/upload-pages-artifact&amp;lt;/code&amp;gt;&lt;br /&gt;
*: ビルド済みの静的ファイルをGitHub Pages用のアーティファクトとしてアップロードする。&lt;br /&gt;
*: &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; パラメータで公開するディレクトリを指定する。&lt;br /&gt;
* &amp;lt;code&amp;gt;actions/deploy-pages&amp;lt;/code&amp;gt;&lt;br /&gt;
*: アップロードされたアーティファクトをGitHub Pagesにデプロイする。&lt;br /&gt;
*: デプロイされたページのURLが出力パラメータ &amp;lt;code&amp;gt;page_url&amp;lt;/code&amp;gt; として返される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hugoを使用したデプロイワークフローの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Deploy Hugo Site&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
    push:&lt;br /&gt;
       branches: [&amp;quot;main&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
 permissions:&lt;br /&gt;
    contents: read&lt;br /&gt;
    pages: write&lt;br /&gt;
    id-token: write&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/checkout@v4&lt;br /&gt;
            with:&lt;br /&gt;
               submodules: true&lt;br /&gt;
          - name: Setup Hugo&lt;br /&gt;
            uses: peaceiris/actions-hugo@v3&lt;br /&gt;
            with:&lt;br /&gt;
               hugo-version: &amp;quot;latest&amp;quot;&lt;br /&gt;
          - name: Build&lt;br /&gt;
            run: hugo --minify&lt;br /&gt;
          - uses: actions/upload-pages-artifact@v3&lt;br /&gt;
            with:&lt;br /&gt;
               path: ./public&lt;br /&gt;
 &lt;br /&gt;
    deploy:&lt;br /&gt;
       needs: build&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       environment:&lt;br /&gt;
          name: github-pages&lt;br /&gt;
          url: ${{ steps.deployment.outputs.page_url }}&lt;br /&gt;
       steps:&lt;br /&gt;
          - id: deployment&lt;br /&gt;
            uses: actions/deploy-pages@v4&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 制限事項 ==&lt;br /&gt;
==== 技術的な制限 ====&lt;br /&gt;
GitHub Pagesを使用する時は、以下に示す技術的な制限に注意が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Pagesの技術的な制限&lt;br /&gt;
! 項目 !! 制限値 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリサイズ || 1[GB]推奨 || ソースリポジトリのサイズ上限の目安&lt;br /&gt;
|-&lt;br /&gt;
| 公開サイトのサイズ || 1[GB]以下 || デプロイされるサイトの合計サイズ&lt;br /&gt;
|-&lt;br /&gt;
| 帯域幅 || 100[GB] / 月 || 月間のデータ転送量上限&lt;br /&gt;
|-&lt;br /&gt;
| ビルド時間 || 10分 || Jekyll または カスタムビルドの実行時間上限&lt;br /&gt;
|-&lt;br /&gt;
| アーティファクトサイズ || 10[GB] || GitHub Actionsアーティファクトのサイズ上限&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 禁止されている用途 ====&lt;br /&gt;
GitHub Pagesは静的サイトホスティングサービスであり、以下に示す用途での使用は禁止されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* オンラインビジネス、eコマースサイト、商業目的のトランザクション処理を主目的とするサイト&lt;br /&gt;
* サーバサイドの処理が必要なWebアプリケーション (データベース接続、サーバサイドスクリプトの実行等)&lt;br /&gt;
* パスワードのクラッキング、ネットワーク攻撃等の不正行為に使用するサイト&lt;br /&gt;
* GitHubのサービス利用規約に違反するコンテンツの公開&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub PagesはGitHubの利用規約に従って運営されており、上記の禁止事項に違反した場合はサービスが停止される場合がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== Jekyllビルドエラー ====&lt;br /&gt;
Jekyllビルドで発生しやすいエラーとその対処法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;_config.yml&amp;lt;/code&amp;gt; 構文エラー&lt;br /&gt;
*: YAMLファイルにタブ文字を使用している場合はスペースに置き換える。&lt;br /&gt;
*: ファイルの文字エンコーディングがUTF-8であることを確認する。&lt;br /&gt;
*: コロン (&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;) の後には必ずスペースを入れる。&lt;br /&gt;
*: 文字列にコロンが含まれる場合は引用符で囲む。&lt;br /&gt;
* 非対応プラグインエラー&lt;br /&gt;
*: GitHub Pagesはセキュリティ上の理由から使用できるJekyllプラグインを制限している。&lt;br /&gt;
*: 使用できるプラグインは公式ドキュメントで確認する。&lt;br /&gt;
*: 非対応プラグインを使用する場合は、GitHub Actionsでのカスタムビルドに切り替える。&lt;br /&gt;
* Ruby 3.0以上での &amp;lt;code&amp;gt;webrick&amp;lt;/code&amp;gt; エラー&lt;br /&gt;
*: &amp;lt;code&amp;gt;bundle add webrick&amp;lt;/code&amp;gt; を実行して、&amp;lt;code&amp;gt;webrick&amp;lt;/code&amp;gt; Gemを追加する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムドメインの問題 ====&lt;br /&gt;
カスタムドメイン設定で発生しやすい問題とその対処法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* DNS設定が反映されない。&lt;br /&gt;
*: DNS設定の変更が反映されるまで最大24時間かかる場合がある。&lt;br /&gt;
*: &amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt; コマンド や [https://www.whatsmydns.net/ whatsmydns.net] 等のツールでDNS伝播状況を確認する。&lt;br /&gt;
* &amp;lt;code&amp;gt;CNAME&amp;lt;/code&amp;gt; ファイルの形式エラー&lt;br /&gt;
*: ファイル名は大文字の &amp;lt;u&amp;gt;CNAME&amp;lt;/u&amp;gt; とする。&lt;br /&gt;
*: ファイル内にはカスタムドメインを1行のみ記載する。&lt;br /&gt;
*: 余分な空行や文字が含まれていないことを確認する。&lt;br /&gt;
* HTTPS設定が有効にならない&lt;br /&gt;
*: Enforce HTTPSは、DNS設定が正しく完了してから有効にする。&lt;br /&gt;
*: 証明書の発行には最大1時間掛かる場合がある。&lt;br /&gt;
*: DNS設定後に1度カスタムドメインを削除して再設定すると解決することがある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Actions&amp;diff=14578</id>
		<title>GitHub - Actions</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Actions&amp;diff=14578"/>
		<updated>2026-03-23T21:09:18Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Actionsは、GitHubリポジトリ内でCI/CD (継続的インテグレーション / 継続的デリバリー) ワークフローを構築・実行できる自動化プラットフォームである。&amp;lt;br&amp;gt; コードのプッシュやPullRequestの作成といったリポジトリのイベントをトリガーとして、テスト・ビルド・デプロイ等の処理を自動化できる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ワークフローはYAML形式で定義さ…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Actionsは、GitHubリポジトリ内でCI/CD (継続的インテグレーション / 継続的デリバリー) ワークフローを構築・実行できる自動化プラットフォームである。&amp;lt;br&amp;gt;&lt;br /&gt;
コードのプッシュやPullRequestの作成といったリポジトリのイベントをトリガーとして、テスト・ビルド・デプロイ等の処理を自動化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ワークフローはYAML形式で定義され、リポジトリの &amp;lt;u&amp;gt;.github/workflows/&amp;lt;/u&amp;gt; ディレクトリに配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Actionsを構成する主要な概念を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ワークフロー (Workflow)&lt;br /&gt;
*: 1つ以上のジョブで構成される自動化プロセス全体を指す。&lt;br /&gt;
*: YAMLファイルとして定義され、特定のイベントによってトリガーされる。&lt;br /&gt;
* ジョブ (Job)&lt;br /&gt;
*: ワークフロー内で並列または順次実行される処理単位である。&lt;br /&gt;
*: 各ジョブは独立したランナー環境で実行される。&lt;br /&gt;
* ステップ (Step)&lt;br /&gt;
*: ジョブ内で順次実行されるコマンドまたはアクションの単位である。&lt;br /&gt;
* アクション (Action)&lt;br /&gt;
*: 複雑な処理をカプセル化した再利用可能なコンポーネントである。&lt;br /&gt;
*: GitHubが提供する公式アクションの他、GitHub Marketplaceからサードパーティ製アクションを利用できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ワークフローの基本 ==&lt;br /&gt;
==== ワークフローファイル ====&lt;br /&gt;
ワークフローファイルは、リポジトリの &amp;lt;u&amp;gt;.github/workflows/&amp;lt;/u&amp;gt; ディレクトリにYAML形式で配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
1つのリポジトリに複数のワークフローファイルを配置することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ワークフローファイルの基本構造を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: ワークフロー名&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
    push:&lt;br /&gt;
       branches: [ &amp;quot;main&amp;quot; ]&lt;br /&gt;
    pull_request:&lt;br /&gt;
       branches: [ &amp;quot;main&amp;quot; ]&lt;br /&gt;
 &lt;br /&gt;
 permissions:&lt;br /&gt;
    contents: read&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
          - name: ステップ名&lt;br /&gt;
            run: echo &amp;quot;Hello, World!&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、ワークフローを構成する主要なキーを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ワークフロー定義のトップレベルキー一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; || ワークフローの名称&amp;lt;br&amp;gt;GitHubのActionsタブに表示される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; || ワークフローをトリガーするイベントを定義する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;permissions&amp;lt;/code&amp;gt; || GITHUB_TOKENに付与する権限を定義する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;jobs&amp;lt;/code&amp;gt; || 実行するジョブの定義を記述する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== トリガー (イベント) ====&lt;br /&gt;
ワークフローのトリガーは &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; キーで定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なトリガーイベントを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主なトリガーイベント&lt;br /&gt;
|-&lt;br /&gt;
! イベント !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;push&amp;lt;/code&amp;gt; || コードがプッシュされた時にトリガーされる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pull_request&amp;lt;/code&amp;gt; || Pull Requestが作成・更新・マージされた時にトリガーされる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;schedule&amp;lt;/code&amp;gt; || cron形式で指定したスケジュールに従い定期実行される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;workflow_dispatch&amp;lt;/code&amp;gt; || GitHub Web UI　または　APIから手動でトリガーできる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;release&amp;lt;/code&amp;gt; || リリースが作成・公開された時にトリガーされる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;issues&amp;lt;/code&amp;gt; || Issueが作成・編集・クローズされた時にトリガーされる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;workflow_run&amp;lt;/code&amp;gt; || 別のワークフローの完了をトリガーとして実行される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repository_dispatch&amp;lt;/code&amp;gt; || 外部システムからのAPIリクエストによってトリガーされる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ブランチやパスでフィルタリングする例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 on:&lt;br /&gt;
    push:&lt;br /&gt;
       branches:&lt;br /&gt;
          - main&lt;br /&gt;
          - &amp;quot;release/**&amp;quot;&lt;br /&gt;
       paths:&lt;br /&gt;
          - &amp;quot;src/**&amp;quot;&lt;br /&gt;
          - &amp;quot;!src/docs/**&amp;quot;&lt;br /&gt;
       paths-ignore:&lt;br /&gt;
          - &amp;quot;**.md&amp;quot;&lt;br /&gt;
    pull_request:&lt;br /&gt;
       types: [opened, synchronize, reopened]&lt;br /&gt;
       branches:&lt;br /&gt;
          - main&lt;br /&gt;
    schedule:&lt;br /&gt;
       - cron: &amp;quot;0 9 * * 1-5&amp;quot;&lt;br /&gt;
    workflow_dispatch:&lt;br /&gt;
       inputs:&lt;br /&gt;
          environment:&lt;br /&gt;
             description: &amp;quot;デプロイ先の環境&amp;quot;&lt;br /&gt;
             required: true&lt;br /&gt;
             default: &amp;quot;staging&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、フィルタリングに使用できるキーを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ フィルタリング設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;branches&amp;lt;/code&amp;gt; || 対象ブランチを指定する。&amp;lt;br&amp;gt;ワイルドカード (&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt;) が使用できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;paths&amp;lt;/code&amp;gt; || 指定したパスのファイルが変更された場合のみトリガーされる。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; プレフィックスで除外パスを指定できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;paths-ignore&amp;lt;/code&amp;gt; || 指定したパスのファイルのみが変更された場合はトリガーされない。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ジョブとステップ ==&lt;br /&gt;
==== ジョブの定義 ====&lt;br /&gt;
ジョブは &amp;lt;code&amp;gt;jobs&amp;lt;/code&amp;gt; キー配下に定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
各ジョブは独立したランナー環境で実行され、デフォルトでは並列に実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、ジョブ定義の主要なキーを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ジョブレベルの設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;runs-on&amp;lt;/code&amp;gt; || ジョブを実行するランナーを指定する。&amp;lt;br&amp;gt;必須項目である。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;timeout-minutes&amp;lt;/code&amp;gt; || ジョブのタイムアウト時間を分単位で指定する。&amp;lt;br&amp;gt;デフォルトは360分である。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;permissions&amp;lt;/code&amp;gt; || ジョブレベルでGITHUB_TOKENの権限を上書き設定できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       timeout-minutes: 30&lt;br /&gt;
       permissions:&lt;br /&gt;
          contents: read&lt;br /&gt;
          packages: write&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/checkout@v4&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ジョブ間の依存関係 ====&lt;br /&gt;
&amp;lt;code&amp;gt;needs&amp;lt;/code&amp;gt; キーを使用して、ジョブ間の依存関係を定義できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;needs&amp;lt;/code&amp;gt; キーに指定したジョブが全て正常に完了した後に、該当ジョブが実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       steps:&lt;br /&gt;
          - run: echo &amp;quot;ビルド実行&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    test:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       needs: build&lt;br /&gt;
       steps:&lt;br /&gt;
          - run: echo &amp;quot;テスト実行&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    deploy:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       needs: [build, test]&lt;br /&gt;
       steps:&lt;br /&gt;
          - run: echo &amp;quot;デプロイ実行&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マトリックスビルド ====&lt;br /&gt;
&amp;lt;code&amp;gt;strategy.matrix&amp;lt;/code&amp;gt; を使用することにより、複数の環境や設定の組み合わせに対してジョブを並列実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    test:&lt;br /&gt;
       runs-on: ${{ matrix.os }}&lt;br /&gt;
       strategy:&lt;br /&gt;
          matrix:&lt;br /&gt;
             os: [ubuntu-latest, windows-latest, macos-latest]&lt;br /&gt;
             node-version: [18, 20, 22]&lt;br /&gt;
          max-parallel: 4&lt;br /&gt;
          fail-fast: false&lt;br /&gt;
          include:&lt;br /&gt;
             - os: ubuntu-latest&lt;br /&gt;
               node-version: 20&lt;br /&gt;
               experimental: true&lt;br /&gt;
          exclude:&lt;br /&gt;
             - os: macos-latest&lt;br /&gt;
               node-version: 18&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/checkout@v4&lt;br /&gt;
          - uses: actions/setup-node@v4&lt;br /&gt;
            with:&lt;br /&gt;
               node-version: ${{ matrix.node-version }}&lt;br /&gt;
          - run: npm test&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
マトリックスビルドに関連するキーを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ strategyの設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;matrix&amp;lt;/code&amp;gt; || 変数名と値のリストを定義する。&amp;lt;br&amp;gt;全ての組み合わせに対してジョブが実行される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;max-parallel&amp;lt;/code&amp;gt; || 同時に実行するジョブの最大数を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fail-fast&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; の場合、いずれかのジョブが失敗すると残りのジョブをキャンセルする。&amp;lt;br&amp;gt;デフォルトは &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; である。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;include&amp;lt;/code&amp;gt; || 既存の組み合わせに変数を追加 または 新しい組み合わせを追加する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; || 特定の組み合わせを除外する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 条件付き実行 ====&lt;br /&gt;
&amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; キーを使用して、ジョブまたはステップの実行条件を定義できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    deploy:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       if: github.event_name == &#039;push&#039; &amp;amp;&amp;amp; github.ref == &#039;refs/heads/main&#039;&lt;br /&gt;
       steps:&lt;br /&gt;
          - name: 成功時のみ実行&lt;br /&gt;
            if: success()&lt;br /&gt;
            run: echo &amp;quot;前のステップが成功しました&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
          - name: 失敗時のみ実行&lt;br /&gt;
            if: failure()&lt;br /&gt;
            run: echo &amp;quot;前のステップが失敗しました&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
          - name: 常に実行&lt;br /&gt;
            if: always()&lt;br /&gt;
            run: echo &amp;quot;常に実行されます&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、条件式でよく使用するステータス関数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ステータスチェック関数一覧&lt;br /&gt;
|-&lt;br /&gt;
! 関数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;success()&amp;lt;/code&amp;gt; || 前の全てのステップが成功した場合に &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; を返す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;failure()&amp;lt;/code&amp;gt; || 前のステップのいずれかが失敗した場合に &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; を返す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;always()&amp;lt;/code&amp;gt; || 常に &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; を返す。&amp;lt;br&amp;gt;キャンセルされた場合も実行される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cancelled()&amp;lt;/code&amp;gt; || ワークフローがキャンセルされた場合に &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; を返す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ステップの定義 ====&lt;br /&gt;
ステップは &amp;lt;code&amp;gt;steps&amp;lt;/code&amp;gt; キー配下に定義する。&amp;lt;br&amp;gt;&lt;br /&gt;
各ステップはアクションの実行またはコマンドの実行のいずれかの形式で記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 steps:&lt;br /&gt;
    - name: リポジトリのチェックアウト&lt;br /&gt;
      uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
    - name: Node.jsのセットアップ&lt;br /&gt;
      uses: actions/setup-node@v4&lt;br /&gt;
      with:&lt;br /&gt;
         node-version: &amp;quot;20&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    - name: 依存関係のインストール&lt;br /&gt;
      run: npm ci&lt;br /&gt;
      env:&lt;br /&gt;
         NODE_ENV: production&lt;br /&gt;
 &lt;br /&gt;
    - name: テストの実行&lt;br /&gt;
      run: npm test&lt;br /&gt;
      continue-on-error: true&lt;br /&gt;
      working-directory: ./app&lt;br /&gt;
 &lt;br /&gt;
    - name: マルチラインコマンド&lt;br /&gt;
      shell: bash&lt;br /&gt;
      run: |&lt;br /&gt;
         echo &amp;quot;ステップ1&amp;quot;&lt;br /&gt;
         echo &amp;quot;ステップ2&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、ステップ定義の主要なキーを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ステップの設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;uses&amp;lt;/code&amp;gt; || 実行するアクションを &amp;lt;u&amp;gt;owner/repo@ref&amp;lt;/u&amp;gt; 形式で指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt; || 実行するシェルコマンドを記述する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;with&amp;lt;/code&amp;gt; || アクションに渡すパラメータを定義する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;env&amp;lt;/code&amp;gt; || ステップレベルで環境変数を設定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;continue-on-error&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; の場合、ステップが失敗してもジョブを継続する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;working-directory&amp;lt;/code&amp;gt; || コマンドを実行する作業ディレクトリを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;shell&amp;lt;/code&amp;gt; || コマンドを実行するシェルを指定する。&amp;lt;br&amp;gt;デフォルトは &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; (Linux / MacOS) または &amp;lt;code&amp;gt;pwsh&amp;lt;/code&amp;gt; (Windows) である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ランナー ==&lt;br /&gt;
==== GitHubホスト型ランナー ====&lt;br /&gt;
GitHubが提供・管理するランナーを使用する場合、&amp;lt;code&amp;gt;runs-on&amp;lt;/code&amp;gt; に以下に示すラベルを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHubホスト型ランナーの主な種類とスペック&lt;br /&gt;
|-&lt;br /&gt;
! ラベル !! OS !! CPU !! RAM&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ubuntu-latest&amp;lt;/code&amp;gt; || Ubuntu (最新LTS) || 2コア || 7[GB]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ubuntu-24.04&amp;lt;/code&amp;gt; || Ubuntu 24.04 || 2コア || 7[GB]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ubuntu-22.04&amp;lt;/code&amp;gt; || Ubuntu 22.04 || 2コア || 7[GB]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;windows-latest&amp;lt;/code&amp;gt; || Windows Server (最新) || 2コア || 7[GB]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;macos-latest&amp;lt;/code&amp;gt; || MacOS (最新) || 3コア || 14[GB]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;macos-14&amp;lt;/code&amp;gt; || MacOS 14 (Apple Silicon) || 3コア || 7[GB]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubホスト型ランナーは、各ジョブ実行のたびに新しい仮想マシンが用意される。&amp;lt;br&amp;gt;&lt;br /&gt;
パブリックリポジトリではGitHubホスト型ランナーを無料で使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== セルフホスト型ランナー ====&lt;br /&gt;
自身で用意したマシンをランナーとして使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;runs-on: self-hosted&amp;lt;/code&amp;gt; または 追加ラベルを指定して使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: [self-hosted, linux, x64]&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/checkout@v4&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
セルフホスト型ランナーの主な特徴を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 使用時間に対する課金が発生しない。&lt;br /&gt;
* 専用のハードウェアやカスタム環境を利用できる。&lt;br /&gt;
* ジョブの実行環境を完全にコントロールできる。&lt;br /&gt;
* パブリックリポジトリでの使用にはセキュリティリスクが伴うため、推奨されない。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== アクション ==&lt;br /&gt;
==== アクションとは ====&lt;br /&gt;
アクションは、ワークフローのステップとして実行できる再利用可能なコンポーネントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、アクションの種類を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ アクションの種類&lt;br /&gt;
|-&lt;br /&gt;
! 種類 !! 説明 !! 対応OS&lt;br /&gt;
|-&lt;br /&gt;
| Docker container || Dockerコンテナ内で処理を実行する。 || Linuxのみ&lt;br /&gt;
|-&lt;br /&gt;
| JavaScript || Node.jsを使用して処理を実行する。 || 全OS対応&lt;br /&gt;
|-&lt;br /&gt;
| Composite || 複数のステップを1つのアクションにまとめる。 || 全OS対応&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 公式アクション ====&lt;br /&gt;
下表に、GitHubが提供する主要な公式アクションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主な公式アクション&lt;br /&gt;
|-&lt;br /&gt;
! アクション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;actions/checkout@v4&amp;lt;/code&amp;gt; || リポジトリのコードをランナーにチェックアウトする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;actions/setup-node@v4&amp;lt;/code&amp;gt; || Node.js環境をセットアップする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;actions/setup-python@v5&amp;lt;/code&amp;gt; || Python環境をセットアップする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;actions/setup-java@v4&amp;lt;/code&amp;gt; || Java環境をセットアップする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;actions/cache@v4&amp;lt;/code&amp;gt; || 依存関係等のファイルをキャッシュする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;actions/upload-artifact@v4&amp;lt;/code&amp;gt; || ファイルをアーティファクトとしてアップロードする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;actions/download-artifact@v4&amp;lt;/code&amp;gt; || アップロードしたアーティファクトをダウンロードする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アクションの参照方法 ====&lt;br /&gt;
アクションは以下の形式で参照できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* GitHubリポジトリのアクション&lt;br /&gt;
*: &amp;lt;code&amp;gt;owner/repo@ref&amp;lt;/code&amp;gt; 形式で指定する。&lt;br /&gt;
*: &amp;lt;code&amp;gt;ref&amp;lt;/code&amp;gt; にはタグ (&amp;lt;code&amp;gt;v4&amp;lt;/code&amp;gt;)、ブランチ名、または、SHA (コミットハッシュ) を指定できる。&lt;br /&gt;
*: &amp;lt;u&amp;gt;セキュリティの観点から、SHA固定が推奨される場合がある。&amp;lt;/u&amp;gt;&lt;br /&gt;
* ローカルアクション&lt;br /&gt;
*: &amp;lt;code&amp;gt;./.github/actions/アクション名&amp;lt;/code&amp;gt; 形式で同リポジトリ内のアクションを参照できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 steps:&lt;br /&gt;
    # タグ指定&lt;br /&gt;
    - uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
    # SHA固定&lt;br /&gt;
    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683&lt;br /&gt;
 &lt;br /&gt;
    # ローカルアクション&lt;br /&gt;
    - uses: ./.github/actions/my-action&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Marketplace ====&lt;br /&gt;
GitHub Marketplace (https://github.com/marketplace?type=actions) では、コミュニティが公開しているサードパーティ製アクションを検索・利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
サードパーティ製アクションを使用する時は、以下に示す点に注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アクションのソースコードを確認して、悪意のあるコードが含まれていないことを確認する。&lt;br /&gt;
* SHAを固定することにより、意図しないコード変更の影響を防ぐ。&lt;br /&gt;
* 信頼できるベンダーが公開しているアクションを優先して使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 環境変数とシークレット ==&lt;br /&gt;
==== 環境変数 ====&lt;br /&gt;
環境変数はワークフロー全体、ジョブ、ステップの3つのレベルで定義できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 # ワークフローレベル&lt;br /&gt;
 env:&lt;br /&gt;
    APP_ENV: production&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       # ジョブレベル&lt;br /&gt;
       env:&lt;br /&gt;
          BUILD_DIR: ./dist&lt;br /&gt;
       steps:&lt;br /&gt;
          - name: ビルド&lt;br /&gt;
            # ステップレベル&lt;br /&gt;
            env:&lt;br /&gt;
               NODE_ENV: production&lt;br /&gt;
            run: npm run build&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
定義した環境変数は &amp;lt;code&amp;gt;${{ env.変数名 }}&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;$変数名&amp;lt;/code&amp;gt; (Linux / MacOS) で参照できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コンテキスト変数 ====&lt;br /&gt;
GitHub Actionsは、ワークフローの実行に関する情報にアクセスするためのコンテキストを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なコンテキスト変数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主なコンテキスト変数&lt;br /&gt;
|-&lt;br /&gt;
! コンテキスト !! 主なプロパティ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;github&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;github.event_name&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;github.ref&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;github.sha&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;github.repository&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;github.actor&amp;lt;/code&amp;gt; || ワークフローのトリガーとなったイベントやリポジトリの情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;job&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;job.status&amp;lt;/code&amp;gt; || 現在のジョブの状態&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;runner&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;runner.os&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;runner.arch&amp;lt;/code&amp;gt; || ランナーのOS情報&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;steps&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;steps.ステップID.outputs&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;steps.ステップID.outcome&amp;lt;/code&amp;gt; || 前のステップの出力と実行結果&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;matrix&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;matrix.変数名&amp;lt;/code&amp;gt; || マトリックスビルドの現在の変数値&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== シークレット ====&lt;br /&gt;
APIキーやパスワード等の機密情報はシークレットとして管理する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
シークレットはリポジトリ、環境、またはOrganizationレベルで設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* シークレットの設定場所&lt;br /&gt;
*: [リポジトリ]ページ - [Settings] - [Secrets and variables] - [Actions]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 steps:&lt;br /&gt;
    - name: デプロイ&lt;br /&gt;
      env:&lt;br /&gt;
         API_KEY: ${{ secrets.API_KEY }}&lt;br /&gt;
         DATABASE_URL: ${{ secrets.DATABASE_URL }}&lt;br /&gt;
      run: ./deploy.sh&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
シークレットに関する主な注意事項を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* シークレットの値はログに自動的にマスキングされる。&lt;br /&gt;
* フォークされたリポジトリからのPull Requestでは、シークレットは渡されない。&lt;br /&gt;
* シークレットの値は設定後に再表示できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GITHUB_TOKEN ====&lt;br /&gt;
&amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; は、各ワークフロー実行時にGitHubが自動的に生成するトークンである。&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリへのアクセス権限を持ち、API呼び出しやリポジトリ操作に使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;permissions&amp;lt;/code&amp;gt; キーを使用して、ワークフロー または ジョブレベルでGITHUB_TOKENの権限を制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 permissions:&lt;br /&gt;
    contents: read&lt;br /&gt;
    issues: write&lt;br /&gt;
    pull-requests: write&lt;br /&gt;
    packages: write&lt;br /&gt;
    deployments: write&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
権限には &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; のいずれかを指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
最小権限の原則に従い、必要な権限のみを付与することを推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== アーティファクト ==&lt;br /&gt;
==== アーティファクトの管理 ====&lt;br /&gt;
アーティファクトは、ワークフロー実行中に生成されたファイルをGitHubサーバに保存する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
ビルド成果物、テストレポート、ログファイル等を保存・共有する時に使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
          - name: ビルド&lt;br /&gt;
            run: npm run build&lt;br /&gt;
 &lt;br /&gt;
          - name: アーティファクトのアップロード&lt;br /&gt;
            uses: actions/upload-artifact@v4&lt;br /&gt;
            with:&lt;br /&gt;
               name: build-output&lt;br /&gt;
               path: ./dist&lt;br /&gt;
               retention-days: 30&lt;br /&gt;
 &lt;br /&gt;
    deploy:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       needs: build&lt;br /&gt;
       steps:&lt;br /&gt;
          - name: アーティファクトのダウンロード&lt;br /&gt;
            uses: actions/download-artifact@v4&lt;br /&gt;
            with:&lt;br /&gt;
               name: build-output&lt;br /&gt;
               path: ./dist&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、アーティファクトに関連するパラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ actions/upload-artifactの設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; || アーティファクトの識別名を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; || アップロードするファイルまたはディレクトリのパスを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;retention-days&amp;lt;/code&amp;gt; || アーティファクトの保持日数を指定する。&amp;lt;br&amp;gt;1から400の範囲で設定できる。&amp;lt;br&amp;gt;デフォルトは90日である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ジョブ間のデータ共有 ====&lt;br /&gt;
アーティファクトを使用することにより、異なるジョブ間でファイルを共有できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ステップ間での値の受け渡しには &amp;lt;code&amp;gt;$GITHUB_OUTPUT&amp;lt;/code&amp;gt; を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    prepare:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       outputs:&lt;br /&gt;
          version: ${{ steps.get_version.outputs.version }}&lt;br /&gt;
       steps:&lt;br /&gt;
          - name: バージョン取得&lt;br /&gt;
            id: get_version&lt;br /&gt;
            run: echo &amp;quot;version=1.2.3&amp;quot; &amp;gt;&amp;gt; $GITHUB_OUTPUT&lt;br /&gt;
 &lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       needs: prepare&lt;br /&gt;
       steps:&lt;br /&gt;
          - name: バージョンの使用&lt;br /&gt;
            run: echo &amp;quot;ビルドバージョン: ${{ needs.prepare.outputs.version }}&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== キャッシュ ==&lt;br /&gt;
==== キャッシュの使用方法 ====&lt;br /&gt;
&amp;lt;code&amp;gt;actions/cache&amp;lt;/code&amp;gt; アクションを使用して、依存関係等のファイルをキャッシュすることでワークフローの実行時間を短縮できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 steps:&lt;br /&gt;
    - uses: actions/checkout@v4&lt;br /&gt;
 &lt;br /&gt;
    - name: Node.jsのセットアップ&lt;br /&gt;
      uses: actions/setup-node@v4&lt;br /&gt;
      with:&lt;br /&gt;
         node-version: &amp;quot;20&amp;quot;&lt;br /&gt;
         cache: &amp;quot;npm&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    # または、actions/cacheを直接使用する&lt;br /&gt;
    - name: npmキャッシュの復元&lt;br /&gt;
      uses: actions/cache@v4&lt;br /&gt;
      with:&lt;br /&gt;
         path: ~/.npm&lt;br /&gt;
         key: ${{ runner.os }}-node-${{ hashFiles(&#039;**/package-lock.json&#039;) }}&lt;br /&gt;
         restore-keys: |&lt;br /&gt;
            ${{ runner.os }}-node-&lt;br /&gt;
 &lt;br /&gt;
    - run: npm ci&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、キャッシュに関連するパラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ actions/cacheの設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; || キャッシュするファイルまたはディレクトリのパスを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; || キャッシュを識別するキーを指定する。&amp;lt;br&amp;gt;キーが一致した場合にキャッシュが復元される。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;restore-keys&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; に一致するキャッシュが存在しない場合に、前方一致で検索するキーのリストを指定する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;hashFiles()&amp;lt;/code&amp;gt; 関数を使用することにより、ロックファイルの内容に基づいたハッシュ値をキャッシュキーに含められる。&amp;lt;br&amp;gt;&lt;br /&gt;
ロックファイルが変更されると新しいキャッシュが作成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== キャッシュのスコープと制限 ====&lt;br /&gt;
キャッシュのスコープと制限に関する主な事項を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* スコープ&lt;br /&gt;
*: キャッシュはブランチ間でアクセス制限がある。デフォルトブランチのキャッシュは全ブランチから参照できる。&lt;br /&gt;
*: フォークされたリポジトリはベースリポジトリのキャッシュにアクセスできない。&lt;br /&gt;
* 容量制限&lt;br /&gt;
*: リポジトリあたり10[GB]までキャッシュを保存できる。&lt;br /&gt;
*: 制限を超えた場合、古いキャッシュが自動的に削除される。&lt;br /&gt;
* 有効期限&lt;br /&gt;
*: 7日間アクセスされていないキャッシュは自動的に削除される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== デプロイメント ==&lt;br /&gt;
==== 環境 (Environments) ====&lt;br /&gt;
環境 (Environments) 機能を使用することにより、デプロイ先の環境 (staging, production等) を定義して、環境固有のシークレットや保護ルールを設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 環境の設定場所&lt;br /&gt;
*: [リポジトリ]ページ - [Settings] - [Environments]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    deploy-staging:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       environment:&lt;br /&gt;
          name: staging&lt;br /&gt;
          url: https://staging.example.com&lt;br /&gt;
       steps:&lt;br /&gt;
          - name: ステージングへのデプロイ&lt;br /&gt;
            env:&lt;br /&gt;
               DEPLOY_KEY: ${{ secrets.STAGING_DEPLOY_KEY }}&lt;br /&gt;
            run: ./deploy.sh staging&lt;br /&gt;
 &lt;br /&gt;
    deploy-production:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       needs: deploy-staging&lt;br /&gt;
       environment:&lt;br /&gt;
          name: production&lt;br /&gt;
          url: https://example.com&lt;br /&gt;
       steps:&lt;br /&gt;
          - name: 本番環境へのデプロイ&lt;br /&gt;
            run: ./deploy.sh production&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 環境保護ルール ====&lt;br /&gt;
環境に対して保護ルールを設定することにより、デプロイのプロセスを制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
主な保護ルールを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 必須レビュアー (Required reviewers)&lt;br /&gt;
*: 指定したユーザーまたはチームによる承認が必要となる。最大6名まで指定できる。&lt;br /&gt;
*: 承認者がデプロイジョブの実行を承認するまでジョブは待機する。&lt;br /&gt;
* 待機時間 (Wait timer)&lt;br /&gt;
*: ジョブが実行されるまでの待機時間を分単位で指定できる。&lt;br /&gt;
*: 最大43,200分 (30日) まで設定できる。&lt;br /&gt;
* デプロイメントブランチ (Deployment branches)&lt;br /&gt;
*: デプロイできるブランチを制限する。&lt;br /&gt;
*: [All branches]、[Protected branches]、[Selected branches]から選択できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デプロイメントの例 ====&lt;br /&gt;
mainブランチへのプッシュ時にステージングへデプロイして、手動承認後に本番環境へデプロイするワークフローの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: デプロイメントワークフロー&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
    push:&lt;br /&gt;
       branches: [main]&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
    build:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/checkout@v4&lt;br /&gt;
          - run: npm ci &amp;amp;&amp;amp; npm run build&lt;br /&gt;
          - uses: actions/upload-artifact@v4&lt;br /&gt;
            with:&lt;br /&gt;
               name: build&lt;br /&gt;
               path: dist/&lt;br /&gt;
 &lt;br /&gt;
    deploy-staging:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       needs: build&lt;br /&gt;
       environment: staging&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/download-artifact@v4&lt;br /&gt;
            with:&lt;br /&gt;
               name: build&lt;br /&gt;
          - run: ./deploy.sh staging&lt;br /&gt;
 &lt;br /&gt;
    deploy-production:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       needs: deploy-staging&lt;br /&gt;
       environment: production&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/download-artifact@v4&lt;br /&gt;
            with:&lt;br /&gt;
               name: build&lt;br /&gt;
          - run: ./deploy.sh production&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ワークフロー構文の詳細 ==&lt;br /&gt;
==== concurrency ====&lt;br /&gt;
&amp;lt;code&amp;gt;concurrency&amp;lt;/code&amp;gt; を使用することにより、同一グループ内で同時に実行されるワークフローを制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 concurrency:&lt;br /&gt;
    group: ${{ github.workflow }}-${{ github.ref }}&lt;br /&gt;
    cancel-in-progress: true&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ concurrencyの設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;group&amp;lt;/code&amp;gt; || 同時実行を制御するグループ名を指定する。&amp;lt;br&amp;gt;同じグループ名のワークフローは同時に1つしか実行されない。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cancel-in-progress&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; の場合、&amp;lt;br&amp;gt;同じグループで既に実行中のワークフローをキャンセルして新しいワークフローを実行する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 出力 (outputs) ====&lt;br /&gt;
ステップ間またはジョブ間で値を受け渡す場合は、環境変数 &amp;lt;code&amp;gt;$GITHUB_OUTPUT&amp;lt;/code&amp;gt; を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 steps:&lt;br /&gt;
    - name: 値の設定&lt;br /&gt;
      id: my-step&lt;br /&gt;
      run: |&lt;br /&gt;
         echo &amp;quot;my-output=hello&amp;quot; &amp;gt;&amp;gt; $GITHUB_OUTPUT&lt;br /&gt;
         echo &amp;quot;another-value=world&amp;quot; &amp;gt;&amp;gt; $GITHUB_OUTPUT&lt;br /&gt;
 &lt;br /&gt;
    - name: 値の参照&lt;br /&gt;
      run: echo &amp;quot;${{ steps.my-step.outputs.my-output }}&amp;quot;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
なお、以前使用されていた &amp;lt;code&amp;gt;set-output&amp;lt;/code&amp;gt; コマンドは非推奨であり、&amp;lt;code&amp;gt;$GITHUB_OUTPUT&amp;lt;/code&amp;gt; の使用が推奨されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 式と関数 ====&lt;br /&gt;
GitHub Actionsの式は &amp;lt;code&amp;gt;${{ }}&amp;lt;/code&amp;gt; 構文で記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主な組み込み関数を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 主な組み込み関数&lt;br /&gt;
|-&lt;br /&gt;
! 関数 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;contains(search, item)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; を含む場合に &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; を返す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;startsWith(searchString, searchValue)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;searchString&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;searchValue&amp;lt;/code&amp;gt; で始まる場合に &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; を返す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;endsWith(searchString, searchValue)&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;searchString&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;searchValue&amp;lt;/code&amp;gt; で終わる場合に &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; を返す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;format(string, ...)&amp;lt;/code&amp;gt; || 文字列をフォーマットする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;join(array, separator)&amp;lt;/code&amp;gt; || 配列を区切り文字で結合した文字列を返す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;toJSON(value)&amp;lt;/code&amp;gt; || 値をJSON文字列に変換する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fromJSON(value)&amp;lt;/code&amp;gt; || JSON文字列をオブジェクトに変換する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hashFiles(path)&amp;lt;/code&amp;gt; || 指定したパスのファイルのSHA-256ハッシュ値を返す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 再利用可能なワークフロー ====&lt;br /&gt;
&amp;lt;code&amp;gt;workflow_call&amp;lt;/code&amp;gt; トリガーを使用することにより、他のワークフローから呼び出せる再利用可能なワークフローを作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再利用可能なワークフロー (&amp;lt;u&amp;gt;.github/workflows/reusable.yml&amp;lt;/u&amp;gt;) の定義例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 # 再利用可能なワークフロー&lt;br /&gt;
 on:&lt;br /&gt;
    workflow_call:&lt;br /&gt;
       inputs:&lt;br /&gt;
          environment:&lt;br /&gt;
             required: true&lt;br /&gt;
             type: string&lt;br /&gt;
          node-version:&lt;br /&gt;
             required: false&lt;br /&gt;
             type: string&lt;br /&gt;
             default: &amp;quot;20&amp;quot;&lt;br /&gt;
       secrets:&lt;br /&gt;
          deploy-key:&lt;br /&gt;
             required: true&lt;br /&gt;
       outputs:&lt;br /&gt;
          deploy-url:&lt;br /&gt;
             description: &amp;quot;デプロイ先のURL&amp;quot;&lt;br /&gt;
             value: ${{ jobs.deploy.outputs.url }}&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
    deploy:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       outputs:&lt;br /&gt;
          url: ${{ steps.deploy.outputs.url }}&lt;br /&gt;
       steps:&lt;br /&gt;
          - name: デプロイ&lt;br /&gt;
            id: deploy&lt;br /&gt;
            run: echo &amp;quot;url=https://example.com&amp;quot; &amp;gt;&amp;gt; $GITHUB_OUTPUT&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再利用可能なワークフローを呼び出す例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 jobs:&lt;br /&gt;
    call-reusable:&lt;br /&gt;
       uses: owner/repo/.github/workflows/reusable.yml@main&lt;br /&gt;
       with:&lt;br /&gt;
          environment: production&lt;br /&gt;
          node-version: &amp;quot;20&amp;quot;&lt;br /&gt;
       secrets:&lt;br /&gt;
          deploy-key: ${{ secrets.DEPLOY_KEY }}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再利用可能なワークフローに関する制限事項を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ネストの深さは最大10レベルまでである。&lt;br /&gt;
* 同一ワークフロー実行内で最大20の再利用可能なワークフローを呼び出せる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 課金 ==&lt;br /&gt;
==== 無料枠 ====&lt;br /&gt;
下表に、GitHub Actionsの各プランの無料枠を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プランごとの無料枠&lt;br /&gt;
|-&lt;br /&gt;
! プラン !! 無料実行時間 !! ストレージ&lt;br /&gt;
|-&lt;br /&gt;
| Free || 2,000分/月 || 500[MB]&lt;br /&gt;
|-&lt;br /&gt;
| Pro || 3,000分/月 || 1[GB]&lt;br /&gt;
|-&lt;br /&gt;
| Team || 3,000分/月 || 2[GB]&lt;br /&gt;
|-&lt;br /&gt;
| Enterprise || 50,000分/月 || 50[GB]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パブリックリポジトリでのワークフロー実行は、全プランで無料である。&amp;lt;br&amp;gt;&lt;br /&gt;
セルフホスト型ランナーの使用も無料である。(ランナーの維持費用は別途発生する)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 超過時の課金 ====&lt;br /&gt;
下表に、無料枠を超過した場合の分単位の料金を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ランナーごとの料金&lt;br /&gt;
|-&lt;br /&gt;
! ランナー !! 分単価 !! 倍率&lt;br /&gt;
|-&lt;br /&gt;
| Linux || $0.008/分 || 1倍&lt;br /&gt;
|-&lt;br /&gt;
| Windows || $0.016/分 || 2倍&lt;br /&gt;
|-&lt;br /&gt;
| MacOS || $0.08/分 || 10倍&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Windowsは無料枠の実行時間を2倍、MacOSは10倍として消費する。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、MacOSで1分実行すると、無料枠から10分消費される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Releases&amp;diff=14577</id>
		<title>GitHub - Releases</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Releases&amp;diff=14577"/>
		<updated>2026-03-23T20:27:20Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Releasesは、ソフトウェアの特定バージョンをパッケージ化して配布するための機能である。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ReleaseはGitのタグをベースに構築され、リリースノート、バイナリファイル、ドキュメントなどをまとめて公開できる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 下表に、Releasesが提供する主な機能を示す。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; &amp;lt;center&amp;gt; {| class=&amp;quot;wikitable&amp;quot; |+ GitHub Releasesの主な機能 |- ! 機能 !!…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Releasesは、ソフトウェアの特定バージョンをパッケージ化して配布するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ReleaseはGitのタグをベースに構築され、リリースノート、バイナリファイル、ドキュメントなどをまとめて公開できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Releasesが提供する主な機能を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ GitHub Releasesの主な機能&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| バイナリ配布 || コンパイル済みの実行ファイルやライブラリをアセットとして添付して、ユーザに直接提供できる。&lt;br /&gt;
|-&lt;br /&gt;
| リリースノート || 変更内容、バグ修正、新機能をまとめたノートを自動生成または手動で記述できる。&lt;br /&gt;
|-&lt;br /&gt;
| バージョン管理 || セマンティックバージョニングに従ったタグと紐付けることにより、バージョン履歴を明確に管理できる。&lt;br /&gt;
|-&lt;br /&gt;
| ドラフト・プレリリース || 公開前のドラフト状態での準備や安定版に先立つプレリリース版の公開に対応している。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Releaseはタグと区別して管理されており、タグのみが存在する状態と、タグにReleaseを付与した状態は異なる扱いとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gitタグ ==&lt;br /&gt;
==== タグとは ====&lt;br /&gt;
Gitタグは、リポジトリ履歴の特定コミットを指し示すための参照である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
タグはバージョンのマーキングに使用され、後から特定のバージョンに容易にアクセスできるようにする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
タグの一覧を確認するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 全タグの一覧表示&lt;br /&gt;
 git tag&lt;br /&gt;
 &lt;br /&gt;
 # パターンに一致するタグの一覧表示&lt;br /&gt;
 git tag -l &amp;quot;v1.*&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
特定タグの詳細情報を確認するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git show v1.4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 軽量タグとアノテーションタグ ====&lt;br /&gt;
Gitタグには軽量タグとアノテーションタグの2種類が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、2種類のタグの違いを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 軽量タグとアノテーションタグの比較&lt;br /&gt;
! 項目 !! 軽量タグ !! アノテーションタグ&lt;br /&gt;
|-&lt;br /&gt;
| データ構造 || コミットへのポインタのみ || 完全なGitオブジェクト&lt;br /&gt;
|-&lt;br /&gt;
| メタデータ || なし || タッガー名、メールアドレス、日時、メッセージ&lt;br /&gt;
|-&lt;br /&gt;
| GPG 署名 || 不可 || 可能&lt;br /&gt;
|-&lt;br /&gt;
| リモートへの転送 || されない || される&lt;br /&gt;
|-&lt;br /&gt;
| 主な用途 || 一時的・内部的な目的 || 公開リリース&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;公開リリースにはアノテーションタグを使用することが推奨される。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タグの作成 ====&lt;br /&gt;
アノテーションタグを作成するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git tag -a v1.4 -m &amp;quot;バージョン 1.4 リリース&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
軽量タグを作成するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git tag v1.4-lw&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
過去のコミットにタグを付ける場合は、コミットのチェックサム (または一部) を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # コミット履歴を確認してチェックサムを取得する&lt;br /&gt;
 git log --oneline&lt;br /&gt;
 &lt;br /&gt;
 # 過去コミットへのタグ付け&lt;br /&gt;
 git tag -a v1.2 9fceb02 -m &amp;quot;バージョン 1.2 リリース&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タグのプッシュ ====&lt;br /&gt;
&amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt; コマンドは、デフォルトではタグをリモートリポジトリに転送しない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;タグを明示的にプッシュする必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 特定のタグをプッシュするコマンド&lt;br /&gt;
*: &amp;lt;pre&amp;gt;git push origin v1.4&amp;lt;/pre&amp;gt;&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 全てのタグを一括でプッシュするコマンド&lt;br /&gt;
*: &amp;lt;pre&amp;gt;git push --tags&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--tags&amp;lt;/code&amp;gt; オプションは軽量タグとアノテーションタグの両方を転送する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アノテーションタグのみを転送する場合は &amp;lt;code&amp;gt;--follow-tags&amp;lt;/code&amp;gt; オプションを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タグの削除 ====&lt;br /&gt;
ローカルのタグを削除するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git tag -d v1.2.0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リモートリポジトリのタグを削除するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git push origin --delete tag v1.2.0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リモートタグを削除しても、ローカルのタグは残るため、ローカルとリモートの両方で削除操作が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Releaseの作成 ==&lt;br /&gt;
==== Web UIでの作成 ====&lt;br /&gt;
GitHubのWebインターフェースからReleaseを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリのトップページで[Releases]を選択する。&lt;br /&gt;
# [Draft a new release]ボタンを押下する。&lt;br /&gt;
# [Choose a tag]ドロップダウンから既存のタグを選択するか、新しいタグ名を入力して[Create new tag]を選択する。&lt;br /&gt;
# [Target]ドロップダウンから、タグを付けるブランチまたはコミットを選択する。&lt;br /&gt;
# [Release title]フィールドにリリースのタイトルを入力する。&lt;br /&gt;
# 説明欄にリリースノートを入力する。&lt;br /&gt;
# 必要に応じてバイナリファイルをドラッグ&amp;amp;ドロップでアセットとして添付する。&lt;br /&gt;
# プレリリースの場合は、[Set as a pre-release]チェックボックスにチェックを入力する。&lt;br /&gt;
# [Publish release]ボタンを押下してリリースを公開する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub CLIでの作成 ====&lt;br /&gt;
GitHub CLIを使用すると、コマンドからReleaseを作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な作成コマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release create v1.0.0 --title &amp;quot;v1.0.0&amp;quot; --notes &amp;quot;リリースノートの内容&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ファイルをアセットとして添付する場合のコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release create v1.0.0 ./dist/app-linux ./dist/app-windows.exe \&lt;br /&gt;
    --title &amp;quot;v1.0.0&amp;quot; \&lt;br /&gt;
    --notes &amp;quot;リリースノートの内容&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主要なオプションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ gh release createオプション一覧&lt;br /&gt;
! オプション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--title&amp;lt;/code&amp;gt; || Releaseのタイトルを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--notes&amp;lt;/code&amp;gt; || リリースノートのテキストを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--notes-file&amp;lt;/code&amp;gt; || リリースノートをファイルから読み込む。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--generate-notes&amp;lt;/code&amp;gt; || リリースノートを自動生成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--target&amp;lt;/code&amp;gt; || タグを付けるブランチまたはコミットを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; || ドラフト状態で作成する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt; || プレリリースとしてマークする。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--latest&amp;lt;/code&amp;gt; || 最新リリースとしてマークする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プレリリース ====&lt;br /&gt;
プレリリースは、安定版の前に公開するテスト段階のリリースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Web UIでは[Set as a pre-release]チェックボックスにチェックを入力することにより、プレリリースとして設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLI でプレリリースを作成するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release create v1.0.0-beta.1 -p --title &amp;quot;v1.0.0-beta.1&amp;quot; --notes &amp;quot;ベータ版リリース&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プレリリースは &amp;quot;Latest release&amp;quot; としては表示されず、Releasesページ上で &amp;quot;Pre-release&amp;quot; ラベルが付与される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ドラフトリリース ====&lt;br /&gt;
ドラフトリリースは、公開前の準備段階として保存するリリースである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドラフト状態ではReleaseは一般ユーザには見えず、リポジトリの管理者のみが参照できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでドラフトリリースを作成するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release create v1.0.0 -d --title &amp;quot;v1.0.0&amp;quot; --notes &amp;quot;リリースノートの内容&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドラフトは後から編集して公開 (Publish) することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== リリースノート ==&lt;br /&gt;
==== リリースノートの自動生成 ====&lt;br /&gt;
GitHubには、マージ済みのプルリクエストとコントリビュータを自動的にまとめてリリースノートを生成する機能がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Web UIで自動生成するには、Release作成画面の説明欄上部にある[Generate release notes]ボタンを押下する。&amp;lt;br&amp;gt;&lt;br /&gt;
前回のReleaseタグ以降のマージ済みPRと新しいコントリビュータが自動的にまとめられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIで自動生成するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release create v1.0.0 --generate-notes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== release.ymlの設定 ====&lt;br /&gt;
&amp;lt;u&amp;gt;.github/release.yml&amp;lt;/u&amp;gt; ファイルを作成することにより、自動生成されるリリースノートの内容をカスタマイズできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定ファイルの基本的な構成例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 changelog:&lt;br /&gt;
    exclude:&lt;br /&gt;
       labels:&lt;br /&gt;
          - ignore-for-release&lt;br /&gt;
          - dependencies&lt;br /&gt;
       authors:&lt;br /&gt;
          - dependabot&lt;br /&gt;
    categories:&lt;br /&gt;
       - title: 破壊的変更&lt;br /&gt;
         labels:&lt;br /&gt;
            - breaking-change&lt;br /&gt;
       - title: 新機能&lt;br /&gt;
         labels:&lt;br /&gt;
            - feature&lt;br /&gt;
            - enhancement&lt;br /&gt;
       - title: バグ修正&lt;br /&gt;
         labels:&lt;br /&gt;
            - bug&lt;br /&gt;
            - fix&lt;br /&gt;
       - title: その他の変更&lt;br /&gt;
         labels:&lt;br /&gt;
            - &#039;*&#039;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、release.ymlファイルの主要な設定項目を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ release.ymlファイルの主な設定項目一覧&lt;br /&gt;
|-&lt;br /&gt;
! 設定項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;changelog.exclude.labels&amp;lt;/code&amp;gt; || 指定したラベルが付いたPRをリリースノートから除外する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;changelog.exclude.authors&amp;lt;/code&amp;gt; || 指定した作成者のPRを除外する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;dependabot&amp;lt;/code&amp;gt; 等の自動化ツールを除外する時に使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;changelog.categories&amp;lt;/code&amp;gt; || PRをカテゴリに分類して表示する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; にカテゴリ名、&amp;lt;code&amp;gt;labels&amp;lt;/code&amp;gt; に対象ラベルを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| ワイルドカード &amp;lt;code&amp;gt;&#039;*&#039;&amp;lt;/code&amp;gt; || いずれのカテゴリにも該当しないPRを全てキャッチするために使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コントリビュータの自動表示 ====&lt;br /&gt;
リリースノートの自動生成では、対象期間内に初めてコントリビュートしたユーザが &amp;lt;u&amp;gt;New Contributors&amp;lt;/u&amp;gt; として自動的にリストアップされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この機能により、コントリビュータへの感謝を示すセクションが自動的に追加される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Releaseの管理 ==&lt;br /&gt;
==== Releaseの編集 ====&lt;br /&gt;
公開済みのReleaseは後から編集できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Web UIでの編集手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [Releases]ページで編集するReleaseの鉛筆アイコンを選択する。&lt;br /&gt;
# タイトル、説明、アセット、プレリリース設定等を変更する。&lt;br /&gt;
# [Update release]ボタンを押下して、保存する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでReleaseを編集するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release edit v1.0.0 --title &amp;quot;新しいタイトル&amp;quot; --notes &amp;quot;更新されたリリースノート&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Releaseの削除 ====&lt;br /&gt;
Web UIでの削除手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [Releases]ページで削除するReleaseのゴミ箱アイコンを選択する。&lt;br /&gt;
# 確認ダイアログにおいて、[Delete]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでReleaseを削除するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Releaseのみを削除する (タグは残る)&lt;br /&gt;
 gh release delete v1.0.0&lt;br /&gt;
 &lt;br /&gt;
 # Releaseと関連するタグを同時に削除する&lt;br /&gt;
 gh release delete v1.0.0 --cleanup-tag&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Releaseを削除しても、デフォルトでは関連するGitタグは削除されない。&amp;lt;br&amp;gt;&lt;br /&gt;
タグも合わせて削除する場合は &amp;lt;code&amp;gt;--cleanup-tag&amp;lt;/code&amp;gt; オプションを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ドラフトの公開 ====&lt;br /&gt;
ドラフト状態のReleaseを公開するには、Web UI または GitHub CLI を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでドラフトを公開するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release edit v1.0.0 -d=false&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== アセット管理 ==&lt;br /&gt;
==== バイナリファイルの添付 ====&lt;br /&gt;
Releaseにはコンパイル済みバイナリ等の任意のファイルをアセットとして添付できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Web UIでアセットを添付する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Releaseの作成画面または編集画面を開く。&lt;br /&gt;
# [Attach binaries by dropping them here or selecting them.]のエリアにファイルをドラッグ&amp;amp;ドロップ、または、クリックしてファイルを選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでアセットを添付する場合は、&amp;lt;code&amp;gt;gh release create&amp;lt;/code&amp;gt; コマンドの引数にファイルパスを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release create v1.0.0 \&lt;br /&gt;
    ./dist/app-linux-amd64 \&lt;br /&gt;
    ./dist/app-windows-amd64.exe \&lt;br /&gt;
    ./dist/app-darwin-amd64&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ソースコードアーカイブ ====&lt;br /&gt;
GitHubは全てのReleaseに対して、ソースコードのZIPアーカイブとtar.gzアーカイブを自動的に生成して添付する。&amp;lt;br&amp;gt;&lt;br /&gt;
これらのアーカイブは手動での操作なしに提供され、ReleaseページのAssetsセクションに表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;Source code (zip)&amp;lt;/u&amp;gt;&lt;br /&gt;
*: ソースコードのZIP形式アーカイブ&lt;br /&gt;
* &amp;lt;u&amp;gt;Source code (tar.gz)&amp;lt;/u&amp;gt;&lt;br /&gt;
*: ソースコードのtar.gz形式アーカイブ&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アセットの制限 ====&lt;br /&gt;
Releaseに添付できるアセットには以下に示す制限がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ アセットの制限&lt;br /&gt;
! 項目 !! 制限値&lt;br /&gt;
|-&lt;br /&gt;
| 1 リリースあたりの最大アセット数 || 1000ファイル&lt;br /&gt;
|-&lt;br /&gt;
| 1 ファイルあたりの最大サイズ || 2[GiB]&lt;br /&gt;
|-&lt;br /&gt;
| 総サイズ || 無制限&lt;br /&gt;
|-&lt;br /&gt;
| 帯域幅 || 無制限&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== アセットの表示ラベル ====&lt;br /&gt;
アセットに任意の表示名 (ラベル) を付加することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでラベルを付けてアセットを添付するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; 以降の文字列がラベルとして表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh release create v1.2.3 \&lt;br /&gt;
    &#039;/path/to/app.exe#App for Windows&#039; \&lt;br /&gt;
    &#039;/path/to/app-linux#App for Linux&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セマンティックバージョニング ==&lt;br /&gt;
==== バージョン番号の形式 ====&lt;br /&gt;
セマンティックバージョニングは、バージョン番号に意味を持たせるための標準的な規則である。&amp;lt;br&amp;gt;&lt;br /&gt;
バージョン番号は &amp;lt;u&amp;gt;X.Y.Z&amp;lt;/u&amp;gt; の形式で表記する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、それぞれの要素の意味を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ バージョン番号の要素&lt;br /&gt;
! 要素 !! 名称 !! 増加するタイミング&lt;br /&gt;
|-&lt;br /&gt;
| X || Major (メジャー) || 後方互換性のない破壊的変更を行った場合&lt;br /&gt;
|-&lt;br /&gt;
| Y || Minor (マイナー) || 後方互換性を保ちながら機能を追加した場合&lt;br /&gt;
|-&lt;br /&gt;
| Z || Patch (パッチ) || 後方互換性を保ちながらバグ修正を行った場合&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各要素の先頭にゼロを付けてはならない。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、&amp;lt;u&amp;gt;1.01.0&amp;lt;/u&amp;gt; は無効な表記である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タグの命名規則 ====&lt;br /&gt;
GitHubでの一般的なタグの命名規則を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;v1.0.0&amp;lt;/u&amp;gt;&lt;br /&gt;
*: 最も一般的な形式&lt;br /&gt;
*: 先頭の &amp;lt;u&amp;gt;v&amp;lt;/u&amp;gt; はオプションだが慣習として広く使われている。&lt;br /&gt;
* &amp;lt;u&amp;gt;v1.0.0-alpha&amp;lt;/u&amp;gt;&lt;br /&gt;
*: アルファ版&lt;br /&gt;
*: 機能が未完成の段階のプレリリース&lt;br /&gt;
* &amp;lt;u&amp;gt;v1.0.0-beta&amp;lt;/u&amp;gt;&lt;br /&gt;
*: ベータ版&lt;br /&gt;
*: 機能は完成しているが、テスト段階のプレリリース&lt;br /&gt;
* &amp;lt;u&amp;gt;v1.0.0-rc.1&amp;lt;/u&amp;gt;&lt;br /&gt;
*: リリース候補 (Release Candidate)&lt;br /&gt;
*: 最終リリース前の最終テスト段階&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プレリリースバージョンはハイフン区切りで識別子を付与する。&amp;lt;br&amp;gt;&lt;br /&gt;
先頭の &amp;lt;u&amp;gt;v&amp;lt;/u&amp;gt; はオプションであるが、プロジェクト内で統一することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub CLIでのRelease操作 ==&lt;br /&gt;
==== gh release list ====&lt;br /&gt;
リポジトリのRelease一覧を表示するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Releaseの一覧を表示する&lt;br /&gt;
 gh release list&lt;br /&gt;
 &lt;br /&gt;
 # ドラフトを除外して表示する&lt;br /&gt;
 gh release list --exclude-drafts&lt;br /&gt;
 &lt;br /&gt;
 # プレリリースを除外して表示する&lt;br /&gt;
 gh release list --exclude-pre-releases&lt;br /&gt;
 &lt;br /&gt;
 # 表示件数を指定する (デフォルト: 30)&lt;br /&gt;
 gh release list -L 10&lt;br /&gt;
 &lt;br /&gt;
 # JSON形式で出力する&lt;br /&gt;
 gh release list --json tagName,name,isDraft,isPrerelease,publishedAt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== gh release view ====&lt;br /&gt;
特定のReleaseの詳細情報を表示するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 特定タグのReleaseを表示する&lt;br /&gt;
 gh release view v1.0.0&lt;br /&gt;
 &lt;br /&gt;
 # 最新のReleaseを表示する&lt;br /&gt;
 gh release view&lt;br /&gt;
 &lt;br /&gt;
 # Webブラウザで開く&lt;br /&gt;
 gh release view v1.0.0 -w&lt;br /&gt;
 &lt;br /&gt;
 # JSON 形式で出力する&lt;br /&gt;
 gh release view v1.0.0 --json tagName,name,body,assets&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== gh release download ====&lt;br /&gt;
Releaseのアセットをダウンロードするコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 特定タグの全アセットをダウンロードする&lt;br /&gt;
 gh release download v1.0.0&lt;br /&gt;
 &lt;br /&gt;
 # パターンに一致するアセットのみをダウンロードする&lt;br /&gt;
 gh release download v1.0.0 --pattern &amp;quot;*.zip&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # ソースコードアーカイブをダウンロードする&lt;br /&gt;
 gh release download v1.0.0 --archive=zip&lt;br /&gt;
 gh release download v1.0.0 --archive=tar.gz&lt;br /&gt;
 &lt;br /&gt;
 # ダウンロード先ディレクトリを指定する&lt;br /&gt;
 gh release download v1.0.0 -D ./downloads&lt;br /&gt;
 &lt;br /&gt;
 # 既存ファイルを上書きする&lt;br /&gt;
 gh release download v1.0.0 --clobber&lt;br /&gt;
 &lt;br /&gt;
 # 既存ファイルをスキップする&lt;br /&gt;
 gh release download v1.0.0 --skip-existing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== gh release edit ====&lt;br /&gt;
既存のReleaseを編集するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # タイトルを変更する&lt;br /&gt;
 gh release edit v1.0.0 --title &amp;quot;新しいタイトル&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # リリースノートを変更する&lt;br /&gt;
 gh release edit v1.0.0 --notes &amp;quot;更新されたリリースノート&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # プレリリースとしてマークする&lt;br /&gt;
 gh release edit v1.0.0 -p&lt;br /&gt;
 &lt;br /&gt;
 # ドラフト状態を解除して公開する&lt;br /&gt;
 gh release edit v1.0.0 -d=false&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== gh release delete ====&lt;br /&gt;
Releaseを削除するコマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Releaseを削除する (タグは残る)&lt;br /&gt;
 gh release delete v1.0.0&lt;br /&gt;
 &lt;br /&gt;
 # Releaseと関連するタグを同時に削除する&lt;br /&gt;
 gh release delete v1.0.0 --cleanup-tag&lt;br /&gt;
 &lt;br /&gt;
 # 確認プロンプトをスキップして削除する&lt;br /&gt;
 gh release delete v1.0.0 -y&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Releaseの通知 ==&lt;br /&gt;
==== ウォッチ設定 ====&lt;br /&gt;
リポジトリの新しいReleaseが公開された際に通知を受け取るには、リポジトリのウォッチ設定を変更する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリのページ上部にある[Watch]ボタンを押下する。&lt;br /&gt;
# ドロップダウンメニューから[Custom]を選択する。&lt;br /&gt;
# [Releases]チェックボックスをオンにする。&lt;br /&gt;
# [Apply]ボタンを押下して、設定を保存する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
この設定により、新しいReleaseが公開された時に、GitHubの通知センターおよびメールで通知を受け取ることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== RSS / Atomフィード ====&lt;br /&gt;
GitHub ReleasesはRSS / Atomフィードを提供しており、RSSリーダー等を使用して新しいReleaseを購読できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* フィードのURLの形式&lt;br /&gt;
*: https://github.com/&amp;lt;owner&amp;gt;/&amp;lt;repo&amp;gt;/releases.atom&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;owner&amp;amp;gt;&amp;lt;/code&amp;gt; にはリポジトリオーナーのユーザ名または組織名、&amp;lt;code&amp;gt;&amp;amp;lt;repo&amp;amp;gt;&amp;lt;/code&amp;gt; にはリポジトリ名を指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
フィードの具体的な使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 例: curlでReleasesフィードを取得する&lt;br /&gt;
 curl https://github.com/octocat/Hello-World/releases.atom&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Organizations&amp;diff=14576</id>
		<title>GitHub - Organizations</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Organizations&amp;diff=14576"/>
		<updated>2026-03-23T20:05:52Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Organizations (組織) は、複数のプロジェクトにわたって大規模なチームが協力して作業するための共有アカウントである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; 個人アカウントが1人のユーザに紐付いているのに対して、Organizationは複数のメンバーが共同で所有・管理するアカウントである。&amp;lt;br&amp;gt; &amp;lt;u&amp;gt;企業やオープンソースプロジェクトにおいて、コードの管理・共有・ア…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Organizations (組織) は、複数のプロジェクトにわたって大規模なチームが協力して作業するための共有アカウントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
個人アカウントが1人のユーザに紐付いているのに対して、Organizationは複数のメンバーが共同で所有・管理するアカウントである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;企業やオープンソースプロジェクトにおいて、コードの管理・共有・アクセス制御を一元化する目的で広く利用されている。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Organizationが提供する主な機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Organizationの機能&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 細粒度の権限管理 || メンバーごとにリポジトリへのアクセスレベルを細かく設定できる。&lt;br /&gt;
|-&lt;br /&gt;
| チーム組織 || メンバーをチームに分けて管理し、チーム単位でリポジトリへの権限を付与できる。&lt;br /&gt;
|-&lt;br /&gt;
| 高度なセキュリティ機能 || 二要素認証の必須化、SAML SSO、監査ログ等のセキュリティ機能を利用できる。&lt;br /&gt;
|-&lt;br /&gt;
| 集中管理 || リポジトリ、メンバー、課金をOrganization単位で一元管理できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Organizationの作成と設定 ==&lt;br /&gt;
==== 作成手順 ====&lt;br /&gt;
Organizationの作成手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubにログインして、右上のプロフィール画像を選択する。&lt;br /&gt;
# メニューから[Your organizations]を選択する。&lt;br /&gt;
# [New organization]ボタンを押下する。&lt;br /&gt;
# Organization名とメールアドレスを入力する。&lt;br /&gt;
# プラン (Free / Team / Enterprise) を選択する。&lt;br /&gt;
# 必要な追加情報を入力して、作成を完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
作成後、メンバーの招待やリポジトリの作成といった初期設定を行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロフィール設定 ====&lt;br /&gt;
Organizationのプロフィール情報は、[Settings]から変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能な項目は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Organizationのプロフィール設定&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 組織名 || Organizationの識別子となる名前&amp;lt;br&amp;gt;[Settings]から変更できるが、変更後に旧名は他のユーザに取得される可能性があるため、変更は慎重に行うこと。&lt;br /&gt;
|-&lt;br /&gt;
| アバター || Organizationを代表するプロフィール画像&lt;br /&gt;
|-&lt;br /&gt;
| 説明 || Organizationの目的や概要を記述するテキスト&lt;br /&gt;
|-&lt;br /&gt;
| URL || Organizationに関連するWebサイトのURL&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 個人アカウントからの変換 ====&lt;br /&gt;
個人アカウントをOrganizationへ直接変換することはできない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アカウントの種別変換が必要な場合は、以下の手順を取る必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
# 新規にOrganizationを作成する。&lt;br /&gt;
# 個人アカウントのリポジトリをOrganizationに移行する。&lt;br /&gt;
# 個人アカウントのコラボレータをOrganizationのメンバーとして招待する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
同様に、OrganizationをPersonalアカウントへ変換することも不可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== メンバー管理 ==&lt;br /&gt;
==== メンバーの招待 ====&lt;br /&gt;
Organizationへのメンバー招待は、OwnerがGitHubのユーザ名またはメールアドレスを指定して行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
招待の手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
# Organizationページを開いて、[People]タブを選択する。&lt;br /&gt;
# [Invite member]ボタンを押下する。&lt;br /&gt;
# 招待するユーザのユーザ名またはメールアドレスを入力する。&lt;br /&gt;
# 対象ユーザにロールを選択して招待を送信する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
招待を受け入れる前であれば、OwnerはいつでもOrganizationの設定画面から招待を編集またはキャンセルできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 権限ロール ====&lt;br /&gt;
Organizationのメンバーには、以下に示すいずれかのロールが割り当てられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Organizationのメンバーロール&lt;br /&gt;
! ロール !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Owner || Organization全体に対する最高権限を持つ。&amp;lt;br&amp;gt;メンバー管理、課金管理、セキュリティ設定、リポジトリ管理等の全ての操作が可能&lt;br /&gt;
|-&lt;br /&gt;
| Member || Organizationの基本的なメンバー&amp;lt;br&amp;gt;付与された権限の範囲でリポジトリへのアクセスや操作が可能&lt;br /&gt;
|-&lt;br /&gt;
| Billing Manager || 課金情報の管理のみを担当する。&amp;lt;br&amp;gt;リポジトリやメンバーへのアクセス権限は持たない。&lt;br /&gt;
|-&lt;br /&gt;
| Security Manager || セキュリティ関連の機能を管理できる。&amp;lt;br&amp;gt;GitHub Enterprise Cloudでのみ利用可能&lt;br /&gt;
|-&lt;br /&gt;
| Moderator || メンバーへのアクセス制限やブロックを行う権限を持つモデレータ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== メンバーの削除 ====&lt;br /&gt;
Ownerは、Organization設定の[People]タブからメンバーを削除できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
メンバーを削除した場合の影響は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 該当メンバーはOrganizationの全てのリポジトリへのアクセスを失う。&lt;br /&gt;
* プライベートリポジトリをフォークしていた場合、そのフォークは削除される。&lt;br /&gt;
*: ただし、ローカルにクローン済みのコードはそのまま保持される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 外部コラボレータ ====&lt;br /&gt;
外部コラボレータとは、Organizationのメンバーではないが、特定の1つ以上のリポジトリへのアクセス権限を持つ人物のことである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
外部コラボレータの特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Organizationのメンバーシップは持たず、特定リポジトリへのアクセスのみが付与される。&lt;br /&gt;
* プライベートリポジトリに外部コラボレータを追加する場合は、有料ライセンスを消費する。&lt;br /&gt;
* セキュリティの観点から、外部コラボレータへのアクセス権は最小限にとどめることが推奨される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 元メンバーの再招待 ====&lt;br /&gt;
以前にOrganizationに所属していたメンバーを再招待する場合、過去の設定を復元するオプションが提供される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
再招待時に復元を選択できる項目は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ メンバー復帰時に復元される情報&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| ロール || 削除前に保持していたOrganizationロール&lt;br /&gt;
|-&lt;br /&gt;
| アクセス権 || 削除前に付与されていたリポジトリへのアクセス権限&lt;br /&gt;
|-&lt;br /&gt;
| フォーク || 削除時に削除されたプライベートリポジトリのフォーク&lt;br /&gt;
|-&lt;br /&gt;
| 各種設定 || その他の個人設定&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
これらの復元は任意であり、再招待時に個別に選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== チーム ==&lt;br /&gt;
==== チームの作成 ====&lt;br /&gt;
チームはOrganization内のメンバーをグループ化して、リポジトリへの権限を一括管理するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
チームの作成手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
# [Organization]ページの[Teams]タブを開く。&lt;br /&gt;
# [New team]ボタンを押下する。&lt;br /&gt;
# チーム名と説明を入力する。&lt;br /&gt;
# チームの可視性を選択する。&lt;br /&gt;
# チームを作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
チームの可視性には、以下に示す2種類がある。&amp;lt;br&amp;gt;&lt;br /&gt;
* Visible team&lt;br /&gt;
*: Organizationの全メンバーから検索・メンション (@チーム名) が可能な公開チーム&lt;br /&gt;
* Secret team&lt;br /&gt;
*: チームのメンバーとOwnerのみが存在を確認できる非公開チーム&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ネストされたチーム ====&lt;br /&gt;
チームは階層構造 (ネスト) を持つことができ、親チームと子チームの関係を定義できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ネストされたチームの主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 子チームは親チームの権限を自動的に継承する。&lt;br /&gt;
* 親チームに対して &amp;lt;u&amp;gt;@メンション&amp;lt;/u&amp;gt; を行うと、全ての子チームメンバーにも通知が届く。&lt;br /&gt;
* 組織の部門・チーム構造を反映した権限管理が可能になる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== チームへのリポジトリ割り当て ====&lt;br /&gt;
チームには複数のリポジトリを割り当てることができ、リポジトリごとにアクセスレベルを設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定できるアクセスレベルは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ チームのリポジトリ権限レベル&lt;br /&gt;
|-&lt;br /&gt;
! 権限 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Read || リポジトリの参照のみ可能&lt;br /&gt;
|-&lt;br /&gt;
| Write || コードの閲覧とプッシュが可能&lt;br /&gt;
|-&lt;br /&gt;
| Admin || リポジトリの設定を含む全ての操作が可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
親チームに割り当てられたリポジトリアクセス権は、子チームに自動的に継承される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== チームの権限とメンテナー ====&lt;br /&gt;
チームメンテナーは、Ownerから委任されてチームの管理を行うロールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
チームメンテナーが実行できる操作は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* チームメンバーの追加・削除&lt;br /&gt;
* チームのプロフィール画像の変更&lt;br /&gt;
* チーム名の編集&lt;br /&gt;
* チームの表示・非表示の変更&lt;br /&gt;
* チームの通知設定の管理&lt;br /&gt;
* チームに割り当てられたリポジトリのアクセス権限の管理&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== リポジトリ管理 ==&lt;br /&gt;
==== Organization所有リポジトリ ====&lt;br /&gt;
Organizationが所有するリポジトリは、個人アカウントのリポジトリとは独立して管理される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Organizationリポジトリの主な特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 複数のメンバーやチームが協調してリポジトリを管理できる。&lt;br /&gt;
* メンバーの退職・脱退後もOrganizationのリポジトリは保持される。&lt;br /&gt;
* Organizationのプランに応じて、プライベートリポジトリの作成が可能。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリ権限レベル ====&lt;br /&gt;
リポジトリへのアクセス権限は5段階のレベルで設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ リポジトリ権限レベル&lt;br /&gt;
! 権限レベル !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Read || リポジトリの参照のみ可能&amp;lt;br&amp;gt;コードの閲覧、Issue・PRの閲覧ができる。&lt;br /&gt;
|-&lt;br /&gt;
| Triage || Issueやプルリクエストの管理が可能&amp;lt;br&amp;gt;コードのプッシュはできない。&lt;br /&gt;
|-&lt;br /&gt;
| Write || コードの閲覧・プッシュ、プルリクエストのマージが可能&lt;br /&gt;
|-&lt;br /&gt;
| Maintain || リポジトリの設定管理が可能&amp;lt;br&amp;gt;ただし、リポジトリの削除・アーカイブはできない。&lt;br /&gt;
|-&lt;br /&gt;
| Admin || リポジトリの削除を含む全ての操作が可能なフル権限&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== デフォルト権限設定 ====&lt;br /&gt;
Organization設定でデフォルト権限を設定すると、新規メンバー参加時に自動的に適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能なデフォルト権限レベルは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Organization のベースパーミッション&lt;br /&gt;
|-&lt;br /&gt;
! 権限 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| None || リポジトリへのデフォルトアクセスなし (デフォルト値)&lt;br /&gt;
|-&lt;br /&gt;
| Read || 全てのリポジトリを参照可能&lt;br /&gt;
|-&lt;br /&gt;
| Triage || Issue / PR管理が可能&lt;br /&gt;
|-&lt;br /&gt;
| Write || コードのプッシュが可能&lt;br /&gt;
|-&lt;br /&gt;
| Maintain || リポジトリ設定の管理が可能&lt;br /&gt;
|-&lt;br /&gt;
| Admin || 全てのリポジトリに対するフル権限&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;デフォルト権限はOrganizationの全メンバーに適用されるため、最小権限の原則に従い &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt; または &amp;lt;code&amp;gt;Read&amp;lt;/code&amp;gt;&amp;gt; を設定することが推奨される。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リポジトリの可視性ポリシー ====&lt;br /&gt;
Ownerは、Organizationメンバーがリポジトリを作成・変更できる可視性をポリシーで制限できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ リポジトリの可視性に関するポリシー&lt;br /&gt;
|-&lt;br /&gt;
! カテゴリ !! 設定内容&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | 作成時の可視性制限 || PublicとPrivateの両方を許可する。&lt;br /&gt;
|-&lt;br /&gt;
| Publicのみ許可する。&lt;br /&gt;
|-&lt;br /&gt;
| リポジトリの作成を禁止する。&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 可視性変更の権限制限 || Ownerのみが変更可能とする。&lt;br /&gt;
|-&lt;br /&gt;
| Admin権限を持つ全メンバーが変更可能とする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== セキュリティ ==&lt;br /&gt;
==== 2要素認証の必須化 ====&lt;br /&gt;
Ownerは、Organizationの全メンバーに対して2要素認証 (2FA) の有効化を必須とするポリシーを設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
# [Organization]の[Settings]を開く。&lt;br /&gt;
# [Security]セクションの[Authentication security]を選択する。&lt;br /&gt;
# [Require two-factor authentication]を有効にする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定時の重要な注意点は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* OwnerはOrganizationで2FAを必須化する前に、自分自身のアカウントで2FAを有効化する必要がある。&lt;br /&gt;
* 2FA未設定のメンバー&lt;br /&gt;
*: Organizationリソースへのアクセスが不可になるが、メンバーシップ自体は保持される。&lt;br /&gt;
* 2FA未設定の外部コラボレータ&lt;br /&gt;
*: Organizationから削除される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SAML SSO ====&lt;br /&gt;
SAML SSO (Security Assertion Markup Language Single Sign-On) は、Organizationメンバーが企業のIDプロバイダを通じてGitHubにアクセスするための認証機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SAML SSOを使用することにより、以下のセキュリティ要件を満たすことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
* メンバーの認証を社内のIDプロバイダに統合できる。&lt;br /&gt;
* メンバーが退職した場合、IDプロバイダ側で無効化するだけでアクセスを即座に遮断できる。&lt;br /&gt;
* SAML SSOはGitHub Enterprise Cloudプランで利用可能&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== SSH証明書機関 ====&lt;br /&gt;
Organizationは独自のSSH証明書機関 (CA) を設定でき、メンバーのSSH鍵の代わりに証明書を利用してリポジトリへアクセスさせることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SSH証明書機関を使用することにより、SSH鍵の個別管理を不要にして、一元的な認証管理が実現する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== IPアドレス許可リスト ====&lt;br /&gt;
Organization設定でIPアドレスの許可リストを設定することにより、特定のIPアドレスまたはIPアドレス範囲からのみアクセスを許可できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
許可リストを使用することで、不正なネットワークからのアクセスをブロックして、セキュリティを強化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 監査ログ ====&lt;br /&gt;
監査ログは、Organization内で発生した全ての操作を記録する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、監査ログの主な特徴を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 監査ログの概要&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| アクセス権限 || Ownerのみがアクセス可能&lt;br /&gt;
|-&lt;br /&gt;
| 保持期間 || 過去180日間の操作ログが保持される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 監査ログのフィルタリング方法&lt;br /&gt;
|-&lt;br /&gt;
! フィルタ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| カテゴリフィルタ || &amp;lt;code&amp;gt;repo&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;team&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;org&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;billing&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;hook&amp;lt;/code&amp;gt; 等でフィルタリング可能。&lt;br /&gt;
|-&lt;br /&gt;
| アクションフィルタ || &amp;lt;code&amp;gt;action:team.create&amp;lt;/code&amp;gt; のように特定のアクションで検索可能&lt;br /&gt;
|-&lt;br /&gt;
| アクターフィルタ || &amp;lt;code&amp;gt;actor:username&amp;lt;/code&amp;gt; のように特定ユーザの操作で検索可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
エクスポート形式は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* JSON形式&lt;br /&gt;
* CSV形式&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 組織のポリシー ==&lt;br /&gt;
==== リポジトリ作成の制限 ====&lt;br /&gt;
Ownerは、Organizationメンバーがリポジトリを作成できる範囲をポリシーとして設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能なポリシーは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 全メンバーがパブリックおよびプライベートリポジトリを作成可能とする。&lt;br /&gt;
* 全メンバーがパブリックリポジトリのみ作成可能とする。&lt;br /&gt;
* リポジトリ作成をOwnerのみに制限する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== フォークポリシー ====&lt;br /&gt;
Ownerは、プライベートリポジトリやインターナルリポジトリのフォークを許可するかどうかをポリシーで制御できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
フォークポリシーの設定項目は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* プライベートリポジトリのフォークを許可または禁止する。&lt;br /&gt;
* インターナルリポジトリのフォーク先をOrganition内に限定するか、外部も許可するかを設定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Actionsのポリシー ====&lt;br /&gt;
Ownerは、Organization全体のGitHub Actionsの使用ポリシーを設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定可能なポリシーは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* All actions allowed&lt;br /&gt;
*: 全てのActionの使用を許可する。&lt;br /&gt;
* Local actions only&lt;br /&gt;
*: Organization内またはリポジトリ内のActionのみ使用を許可する。&lt;br /&gt;
* Selected actions allowed&lt;br /&gt;
*: 指定した特定のActionのみ使用を許可する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
その他のActionsに関するポリシーとして、セルフホストランナーの利用制限や外部コントリビュータによるフォークからのプルリクエスト実行時の承認設定も管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GITHUB_TOKEN権限 ====&lt;br /&gt;
GitHub Actionsで自動生成される &amp;lt;code&amp;gt;GITHUB_TOKEN&amp;lt;/code&amp;gt; のデフォルト権限をOrganization全体で設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定できる権限は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* Read-only&lt;br /&gt;
*: 読み取り専用権限 (推奨)&lt;br /&gt;
* Read and write&lt;br /&gt;
*: 読み取りおよび書き込み権限&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;セキュリティの観点から、デフォルトは &amp;lt;code&amp;gt;&amp;gt;Read-only&amp;lt;/code&amp;gt; に設定することが推奨される。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 課金と管理 ==&lt;br /&gt;
==== 組織のプラン ====&lt;br /&gt;
Organizationでは、以下に示す3つのプランから選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Organizationのプラン比較&lt;br /&gt;
! プラン !! 主な特徴&lt;br /&gt;
|-&lt;br /&gt;
| Free || 基本的な機能を無料で提供&amp;lt;br&amp;gt;パブリックリポジトリは無制限、プライベートリポジトリも利用可能。GitHub Actionsの無料枠あり。&lt;br /&gt;
|-&lt;br /&gt;
| Team || 小・中規模チーム向けの有料プラン&amp;lt;br&amp;gt;コードオーナー設定、必須レビュアー等の高度なコラボレーション機能を含む。&lt;br /&gt;
|-&lt;br /&gt;
| Enterprise || 大規模組織向けの上位プラン&amp;lt;br&amp;gt;SAML SSO、カスタムロール、高度なセキュリティ機能、GitHub Advanced Security等が利用可能&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 課金管理者 ====&lt;br /&gt;
Billing Manager (課金管理者) は、Organizationの課金情報を専門に管理するロールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Billing Managerが管理できる項目は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 支払い方法の設定・変更&lt;br /&gt;
* 請求先情報の管理&lt;br /&gt;
* 利用レポートの確認&lt;br /&gt;
* サブスクリプションとライセンスの管理&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Billing Managerは、セキュリティ機能や機密リポジトリへのアクセス権を持たないため、課金管理のみを委任したい場合に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 使用量の確認 ====&lt;br /&gt;
Organizationの使用量は、[Settings]の[Billing and plans]から確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
確認できる情報は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* 現在のプラン情報&lt;br /&gt;
* 月間の支払い額&lt;br /&gt;
* GitHub Actionsの使用量 (分数・ストレージ)&lt;br /&gt;
* Git LFS等のストレージ使用量&lt;br /&gt;
* 共同編集者数とライセンス消費状況&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Discussions&amp;diff=14575</id>
		<title>GitHub - Discussions</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Discussions&amp;diff=14575"/>
		<updated>2026-03-23T19:50:16Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Discussionsは、プロジェクトコミュニティがオープンなフォーマットで対話できる協働的コミュニケーションフォーラムである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Issuesが具体的な作業タスクの追跡を目的とするのに対し、Discussionsは初期段階のアイデア検討、質問への回答、情報共有、コミュニティとの交流を目的とする。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; IssuesとDiscussionsの使い分けを以下…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Discussionsは、プロジェクトコミュニティがオープンなフォーマットで対話できる協働的コミュニケーションフォーラムである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Issuesが具体的な作業タスクの追跡を目的とするのに対し、Discussionsは初期段階のアイデア検討、質問への回答、情報共有、コミュニティとの交流を目的とする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IssuesとDiscussionsの使い分けを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ IssuesとDiscussionsの使い分け&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Issues || バグ報告、機能リクエスト、具体的な作業タスクの追跡に使用する。&amp;lt;br&amp;gt;スコープが確定した作業を担当者・マイルストーンと紐付けて管理する場合に適している。&lt;br /&gt;
|-&lt;br /&gt;
| Discussions || 初期段階のアイデア検討、コミュニティへの質問、告知、成果物の共有に使用する。&amp;lt;br&amp;gt;スコープが未確定の段階でコミュニティと議論し、方向性を決めてからIssueに移行する運用が推奨される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Discussionsで議論が進み、具体的な作業として着手することが決まった段階でIssueへ変換できる。&amp;lt;br&amp;gt;&lt;br /&gt;
逆に、IssueをDiscussionsに変換することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Discussionsの有効化 ==&lt;br /&gt;
==== リポジトリでの有効化 ====&lt;br /&gt;
リポジトリオーナー、またはそのリポジトリへの書き込み権限を持つユーザがDiscussionsを有効化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
有効化の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリのページ上部にある[Settings]タブを選択する。&lt;br /&gt;
# [Features]セクションまでスクロールして、[Discussions]の項目を確認する。&lt;br /&gt;
# [Set up discussions]ボタンを選択する。&lt;br /&gt;
# ウェルカムポストのタイトルと本文を編集する。&lt;br /&gt;
# [Start discussion]ボタンを押下して、有効化を完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
有効化後、リポジトリのナビゲーションバーに[Discussions]タブが表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 組織レベルでのDiscussions ====&lt;br /&gt;
組織オーナーは、組織全体に対してDiscussionsを有効化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
有効化の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# 組織のページから[Settings]タブを選択する。&lt;br /&gt;
# Discussionsの項目を確認する。&lt;br /&gt;
# [Enable]ボタンを押下して有効化する。&lt;br /&gt;
# ソースリポジトリを指定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織レベルのDiscussionsでは、ソースリポジトリを指定する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
Discussionsへの権限は、指定したソースリポジトリの権限設定に基づいて適用される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== カテゴリ ==&lt;br /&gt;
==== デフォルトカテゴリ ====&lt;br /&gt;
Discussionsを有効化すると、以下に示すデフォルトカテゴリが自動的に作成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ デフォルトカテゴリ一覧&lt;br /&gt;
! カテゴリ名 !! 絵文字 !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| Announcements || 📣 || メンテナーやコントリビュータからの更新情報・告知を投稿する。&lt;br /&gt;
|-&lt;br /&gt;
| General || 🗳️ || プロジェクトに関するオープンエンドな議論を行う。&lt;br /&gt;
|-&lt;br /&gt;
| Ideas || 💡 || 新機能の提案や既存機能の改善アイデアを共有する。&lt;br /&gt;
|-&lt;br /&gt;
| Polls || 🗳 || 投票を実施してコミュニティの意見を収集する。&lt;br /&gt;
|-&lt;br /&gt;
| Q&amp;amp;A || 🙏 || 技術的な質問を投稿して、コミュニティから回答を得る。&lt;br /&gt;
|-&lt;br /&gt;
| Show and tell || 🙌 || プロジェクトを使用して作成した成果物・作品を展示および共有する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カテゴリの形式 ====&lt;br /&gt;
各カテゴリには以下に示す4つの形式のいずれかを設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ カテゴリ形式一覧&lt;br /&gt;
! 形式 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Open-ended discussion || 自由な議論形式&amp;lt;br&amp;gt;回答のマーク機能は使用できない。&amp;lt;br&amp;gt;GeneralやIdeasに適している。&lt;br /&gt;
|-&lt;br /&gt;
| Question / Answer || 構造化されたQ&amp;amp;A形式&amp;lt;br&amp;gt;回答のマーク機能が有効になり、有用な回答をハイライト表示できる。&lt;br /&gt;
|-&lt;br /&gt;
| Announcement || メンテナーのみが投稿できる告知形式&amp;lt;br&amp;gt;コミュニティメンバーはコメントのみ可能&lt;br /&gt;
|-&lt;br /&gt;
| Poll || 投票形式&amp;lt;br&amp;gt;選択肢を提示してコミュニティの意見を数値で収集する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムカテゴリの管理 ====&lt;br /&gt;
maintain権限 または admin権限を持つユーザは、カスタムカテゴリを作成・編集・削除できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カスタムカテゴリの仕様を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* カテゴリ名は一意である必要がある。&lt;br /&gt;
*: 既存のカテゴリ名と重複するカテゴリは作成できない。&lt;br /&gt;
* 各カテゴリには名前と絵文字のペアを設定する。&lt;br /&gt;
*: 絵文字はカテゴリの識別に使用され、一覧表示で視覚的な区別を助ける。&lt;br /&gt;
* 1つのリポジトリまたは組織に作成できるカテゴリ数は最大25個である。&lt;br /&gt;
* カテゴリのネスト (階層化) が可能である。&lt;br /&gt;
*: サブカテゴリを作成して、より細かい分類が行える。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カテゴリテンプレート ====&lt;br /&gt;
カテゴリごとにテンプレートを設定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テンプレートを設定すると、そのカテゴリで新規ディスカッションを作成する時に記入すべき情報が事前に表示され、投稿者が必要な情報を漏れなく記載できるよう促す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テンプレートはYAML構文で記述する。&amp;lt;br&amp;gt;&lt;br /&gt;
設定例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Bug Report&lt;br /&gt;
 description: バグ報告のテンプレート&lt;br /&gt;
 labels: [&amp;quot;bug&amp;quot;]&lt;br /&gt;
 body:&lt;br /&gt;
    - type: markdown&lt;br /&gt;
      attributes:&lt;br /&gt;
         value: |&lt;br /&gt;
            バグ報告ありがとうございます。以下の項目を記入してください。&lt;br /&gt;
    - type: textarea&lt;br /&gt;
      id: description&lt;br /&gt;
      attributes:&lt;br /&gt;
         label: バグの説明&lt;br /&gt;
         description: バグの内容を詳しく説明してください。&lt;br /&gt;
         placeholder: 説明を入力してください。&lt;br /&gt;
      validations:&lt;br /&gt;
         required: true&lt;br /&gt;
    - type: textarea&lt;br /&gt;
      id: steps&lt;br /&gt;
      attributes:&lt;br /&gt;
         label: 再現手順&lt;br /&gt;
         description: バグを再現する手順を記載してください。&lt;br /&gt;
         placeholder: &amp;quot;1. ...\n2. ...\n3. ...&amp;quot;&lt;br /&gt;
      validations:&lt;br /&gt;
         required: true&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ディスカッションの作成と管理 ==&lt;br /&gt;
==== ディスカッションの作成 ====&lt;br /&gt;
[Discussions]タブからディスカッションを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリ または 組織の[Discussions]タブを選択する。&lt;br /&gt;
# [New discussion]ボタンを押下する。&lt;br /&gt;
# 投稿するカテゴリを選択する。&lt;br /&gt;
# タイトルと本文を入力する。&lt;br /&gt;
# [Start discussion]ボタンを押下して投稿する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
本文はMarkdown記法で記述でき、コードブロック・画像・リンクの挿入が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コメントとリアクション ====&lt;br /&gt;
ディスカッションへのコメントはスレッド化されており、特定のコメントに対して返信することで会話の流れが整理される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
コメントに対してアップボート (👍) を付けることができ、有用なコメントが視覚的に強調されてコミュニティの合意形成を助ける。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
絵文字リアクション機能により、コメント・投稿に対して感情を簡単に表現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 回答のマーク (Q&amp;amp;A) ====&lt;br /&gt;
Q&amp;amp;A形式のカテゴリでは、ディスカッションの作成者 または triage権限以上を持つユーザが、有用なコメントを回答としてマークできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
回答としてマークされたコメントはページ上部にハイライト表示され、同様の問題を持つ他のユーザが素早く解決策を見つけられるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
回答がマークされたディスカッションは &amp;lt;u&amp;gt;回答済み&amp;lt;/u&amp;gt; 状態となり、フィルタリングで絞り込むことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ピン留め ====&lt;br /&gt;
書き込み権限を持つユーザは、重要なディスカッションを[Discussions]タブの上部にピン留めできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ピン留めしたディスカッションは一覧の最上部に固定表示され、コミュニティメンバーが重要な情報に素早くアクセスできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ロック ====&lt;br /&gt;
書き込み権限を持つユーザは、ディスカッションをロックできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ロックが適切な場面を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 不建設的な議論が続いている場合&lt;br /&gt;
* コミュニティ規約に違反したコンテンツが含まれている場合&lt;br /&gt;
* 解決済みで追加のコメントが不要な場合&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ロック中も書き込み権限を持つユーザはコメントを投稿できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ロック時にリアクションのみ許可するオプションを選択することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Issueへの変換 ====&lt;br /&gt;
ディスカッションで議論が進み、具体的な作業として着手することが決まった場合、ディスカッションをIssueに変換できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
変換の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# ディスカッションページを開く。&lt;br /&gt;
# 右側のサイドバーにある[Convert to issue]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
変換後、ディスカッションのタイトルと本文はIssueに引き継がれる。&amp;lt;br&amp;gt;&lt;br /&gt;
変換元のディスカッションにはリンクが表示され、経緯を追跡できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
逆に、IssueをDiscussionsに変換することも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
Issueの詳細ページのサイドバーから[Convert to discussion]を選択して、変換先のカテゴリを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カテゴリの変更 ====&lt;br /&gt;
書き込み権限を持つユーザは、投稿済みディスカッションのカテゴリを変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カテゴリを変更することにより、ディスカッションの性質が変わった場合 (例: Generalで始まった議論がQ&amp;amp;A形式に適するようになった場合) に適切なカテゴリへ移動できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ディスカッションの転送 ====&lt;br /&gt;
書き込み権限を持つユーザは、ディスカッションを別のリポジトリに転送できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
転送の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# ディスカッションページを開く。&lt;br /&gt;
# 右側のサイドバーにある[Transfer this discussion]を選択する。&lt;br /&gt;
# 転送先のリポジトリを選択する。&lt;br /&gt;
# [Transfer discussion]ボタンを押下して、転送を完了する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Announcement形式のカテゴリのディスカッションは転送できないことに注意する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 投票 (Polls) ==&lt;br /&gt;
==== 投票の作成 ====&lt;br /&gt;
[Polls]カテゴリを選択してディスカッションを作成すると、投票を実施できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
投票の作成手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [Discussions]タブから[New discussion]を選択する。&lt;br /&gt;
# [Polls]カテゴリを選択する。&lt;br /&gt;
# 質問文をタイトルに入力する。&lt;br /&gt;
# 最低2つの選択肢を入力する。&lt;br /&gt;
#: 選択肢は必要に応じて追加できる。&lt;br /&gt;
# [Start discussion]ボタンを押下して、投票を開始する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 投票結果の確認 ====&lt;br /&gt;
投票の結果はリアルタイムで更新され、各選択肢の得票数と得票率がグラフで表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
投票はコミュニティの意見収集や、新機能の関心度測定に有効である。&amp;lt;br&amp;gt;&lt;br /&gt;
複数選択肢を提示して優先度を把握することにより、開発の方向性決定に活用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ラベル ==&lt;br /&gt;
==== ディスカッションへのラベル適用 ====&lt;br /&gt;
リポジトリに設定されたラベルをディスカッションに適用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ラベルの適用手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# ディスカッションページを開く。&lt;br /&gt;
# 右側のサイドバーにある[Labels]セクションを選択する。&lt;br /&gt;
# 適用するラベルを選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カテゴリとラベルを組み合わせることにより、より細かい分類が可能になる。&amp;lt;br&amp;gt;&lt;br /&gt;
例えば、Q&amp;amp;Aカテゴリに対して &amp;quot;help wanted&amp;quot;ラベルを付けることで、回答を必要としているディスカッションを素早く特定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== モデレーション ==&lt;br /&gt;
==== コメント管理 ====&lt;br /&gt;
書き込み権限を持つユーザは、以下に示すコメント管理操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* コメントの非表示&lt;br /&gt;
*: 不適切なコメントを折りたたんで表示を抑制する。&lt;br /&gt;
*: 非表示にしたコメントは &amp;lt;u&amp;gt;このコメントは非表示になっています&amp;lt;/u&amp;gt; と表示されて、表示する権限を持つユーザは展開して確認できる。&lt;br /&gt;
* コメントの編集&lt;br /&gt;
*: コメント内容を修正する。&lt;br /&gt;
*: 編集履歴はユーザに表示される。&lt;br /&gt;
* コメントの削除&lt;br /&gt;
*: コメントを完全に削除する。&lt;br /&gt;
*: 削除後は復元できないため慎重に操作する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ユーザの制限とブロック ====&lt;br /&gt;
書き込み権限を持つユーザは、特定のユーザをブロックしてリポジトリへのアクセスを制限できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ブロックの種類を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 無期限ブロック&lt;br /&gt;
*: 解除するまでブロックが継続する。&lt;br /&gt;
*: 重大な規約違反があった場合に使用する。&lt;br /&gt;
* 期間限定ブロック&lt;br /&gt;
*: 指定した期間 (1日、3日、7日、30日) のみブロックする。&lt;br /&gt;
*: 一時的な冷却期間を設ける場合に使用する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
期間限定ブロックは指定期間が終了すると自動的に解除される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== モデレータ権限の付与 ====&lt;br /&gt;
リポジトリのメンテナーは、アクティブなコントリビュータにtriage権限を付与することにより、モデレータとして活動してもらえる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
トップコントリビュータの判定基準を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 過去30日間に、Q&amp;amp;Aカテゴリで回答としてマークされたコメント数をもとに算出する。&lt;br /&gt;
*: 貢献度の高いユーザが自動的にトップコントリビュータとして表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
triage権限を付与することにより、そのユーザは以下の操作が行えるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
* Q&amp;amp;Aディスカッションで回答をマークする。&lt;br /&gt;
* ディスカッションのカテゴリを変更する。&lt;br /&gt;
* ディスカッションをピン留めする。&lt;br /&gt;
* ディスカッションをロックする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コミュニティガイドライン ====&lt;br /&gt;
Discussionsを健全に運営するために、コミュニティガイドラインを設定することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ガイドラインの設定場所としては以下が適している。&amp;lt;br&amp;gt;&lt;br /&gt;
* リポジトリの &amp;lt;u&amp;gt;README.md&amp;lt;/u&amp;gt; ファイル&lt;br /&gt;
*: IssueとDiscussionsの使い分けを明記する。&lt;br /&gt;
* &amp;lt;u&amp;gt;CONTRIBUTING.md&amp;lt;/u&amp;gt; ファイル&lt;br /&gt;
*: コントリビューションのルールと合わせて、Discussionsの利用ルールを記載する。&lt;br /&gt;
* Discussionsのウェルカムポスト&lt;br /&gt;
*: Discussionsを有効化した時に作成するウェルカムポストにガイドラインを記載する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 検索とフィルタリング ==&lt;br /&gt;
==== 検索方法 ====&lt;br /&gt;
Discussionsの検索はタイトル、本文、コメントの内容を対象として実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
検索の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [Discussions]タブを開く。&lt;br /&gt;
# 検索バーにキーワードを入力して、[Enter]キーを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubの全体検索からもDiscussionsを検索できる。&amp;lt;br&amp;gt;&lt;br /&gt;
全体検索では &amp;lt;code&amp;gt;type:discussions&amp;lt;/code&amp;gt; フィルタを使用して、Discussionsのみに絞り込むことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # GitHub全体検索でのDiscussions検索例&lt;br /&gt;
 type:discussions repo:owner/repositoryキーワード&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== フィルタリングオプション ====&lt;br /&gt;
[Discussions]タブでは、以下に示すフィルタリングオプションを利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ フィルタリングオプション一覧&lt;br /&gt;
! フィルタ種別 !! オプション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| カテゴリ || 各カテゴリ名 || 選択したカテゴリのディスカッションのみを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| ステータス || 回答済み (Answered) || Q&amp;amp;Aカテゴリで回答がマークされたディスカッションを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| ステータス || 未回答 (Unanswered) || Q&amp;amp;Aカテゴリで回答がマークされていないディスカッションを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| ソート || 新着順 (Newest) || 作成日時が新しい順にディスカッションを並べる。&lt;br /&gt;
|-&lt;br /&gt;
| ソート || 最近更新 (Recently updated) || 最後にコメントや更新があった順に並べる。&lt;br /&gt;
|-&lt;br /&gt;
| ソート || コメント数 (Most commented) || コメント数が多い順にディスカッションを並べる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 推奨事項 ==&lt;br /&gt;
Discussionsを効果的に活用するための推奨事項を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 段階的移行 (DiscussionsからIssueへ)&lt;br /&gt;
*: 新しいアイデアや要望は最初にDiscussionsに投稿して議論する。&lt;br /&gt;
*: スコープが確定して、具体的な作業として着手が決まった時点でIssueに変換する。&lt;br /&gt;
*: この運用により、スコープが不明確なIssueが乱立することを防げる。&lt;br /&gt;
* 投票の活用&lt;br /&gt;
*: 新機能の候補が複数ある場合、Pollsカテゴリで投票を実施してコミュニティの関心度を測定する。&lt;br /&gt;
*: 数値データとして優先度の判断材料にできる。&lt;br /&gt;
* ガイドラインの明記&lt;br /&gt;
*: &amp;lt;u&amp;gt;README.md&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;CONTRIBUTING.md&amp;lt;/u&amp;gt; でIssueとDiscussionsの使い分けを明記する。&lt;br /&gt;
*: 新規コントリビュータが適切な場所に投稿できるよう案内することで、メンテナーのトリアージコストを削減できる。&lt;br /&gt;
* Q&amp;amp;Aの回答マークを活用する&lt;br /&gt;
*: 有用な回答には積極的に回答マークを付ける。&lt;br /&gt;
*: 回答済みのディスカッションが蓄積されることにより、同様の問題を持つユーザが自己解決しやすいナレッジベースが形成される。&lt;br /&gt;
* Announcementカテゴリの活用&lt;br /&gt;
*: リリース情報、重要な変更、メンテナンス情報は、Announcementカテゴリで投稿する。&lt;br /&gt;
*: メンテナーのみが投稿できる形式であるため、重要情報の信頼性を担保できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参考リンク ==&lt;br /&gt;
* [https://docs.github.com/en/discussions GitHub Discussions 公式ドキュメント]&lt;br /&gt;
* [https://docs.github.com/en/discussions/quickstart GitHub Discussions クイックスタート]&lt;br /&gt;
* [https://docs.github.com/en/discussions/managing-discussions-for-your-community Discussions のコミュニティ管理]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,GitHub,Discussions,Forum,Community,Q&amp;amp;A,Poll,Announcement,Issue,Repository,Open Source,Collaboration&lt;br /&gt;
|description={{PAGENAME}} - GitHub Discussions の使い方・設定・モデレーションに関するガイド | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Projects&amp;diff=14574</id>
		<title>GitHub - Projects</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Projects&amp;diff=14574"/>
		<updated>2026-03-23T19:35:15Z</updated>

		<summary type="html">&lt;p&gt;Wiki: /* GraphQL APIによる自動化 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Projectsは、Issue、Pull Request、ドラフトアイテムをテーブル・ボード・ロードマップの複数ビューで一元管理する統合プロジェクト管理ツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
スプレッドシート形式のテーブルビュー、カンバン形式のボードビュー、タイムライン形式のロードマップビューを切り替えながら、チームの作業状況を多角的に把握できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Projectsが提供する主な機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* テーブル / ボード / ロードマップビュー&lt;br /&gt;
*: 1つのプロジェクトに対して複数のビューを作成して、目的に応じた形式で作業状況を確認できる。&lt;br /&gt;
* カスタムフィールド&lt;br /&gt;
*: テキスト、数値、日付、単一選択、イテレーションの最大50個のフィールドを追加して、プロジェクト固有の情報を管理できる。&lt;br /&gt;
* 自動化&lt;br /&gt;
*: 組み込みワークフローやGitHub Actions、GraphQL APIを利用して、アイテムの追加やステータス変更を自動化できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトには最大50,000アイテムを登録でき、アーカイブ機能によってカスタムフィールドのデータを保持したまま表示から除外できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== プロジェクトの作成 ==&lt;br /&gt;
==== ユーザプロジェクトの作成 ====&lt;br /&gt;
ユーザ個人のプロジェクトを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubの右上にあるプロフィールアイコンを選択する。&lt;br /&gt;
# メニューから[Your projects]を選択する。&lt;br /&gt;
# Projectsページで[New project]ボタンを押下する。&lt;br /&gt;
# プロジェクトのタイプ (Table / Roadmap / Board) を選択する。&lt;br /&gt;
# プロジェクト名を入力して、[Create project]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 組織プロジェクトの作成 ====&lt;br /&gt;
組織 (Organization) 配下にプロジェクトを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubで対象の組織ページを開く。&lt;br /&gt;
# [Projects]タブを選択する。&lt;br /&gt;
# [New project]ボタンを押下する。&lt;br /&gt;
# プロジェクトのタイプとプロジェクト名を入力して、[Create project]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織プロジェクトは、組織内の複数リポジトリをまたいで、Issue や Pull Requestを管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトテンプレート ====&lt;br /&gt;
新規プロジェクト作成時にテンプレートを選択することにより、ビュー構成やカスタムフィールドをすぐに利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テンプレートの種類は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* プリセットテンプレート&lt;br /&gt;
*: GitHubが公式に提供するテンプレートで、スプリント計画、バグ管理、フィーチャーリクエスト等のユースケースに対応している。&lt;br /&gt;
* 組織テンプレート&lt;br /&gt;
*: 組織内で作成・登録されたカスタムテンプレートを選択できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、テンプレートからプロジェクトを作成した場合にコピーされる要素とコピーされない要素を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ テンプレートコピーの対象&lt;br /&gt;
! コピーされる要素 !! コピーされない要素&lt;br /&gt;
|-&lt;br /&gt;
| ビュー構成 || アイテム (Issue / PR)&lt;br /&gt;
|-&lt;br /&gt;
| カスタムフィールドの定義 || コラボレータの設定&lt;br /&gt;
|-&lt;br /&gt;
| ドラフト問題 || リポジトリリンク&lt;br /&gt;
|-&lt;br /&gt;
| ワークフローの設定 || -&lt;br /&gt;
|-&lt;br /&gt;
| インサイト (チャート設定) || -&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトの設定 ====&lt;br /&gt;
作成後のプロジェクトは、[Settings]から各種設定を変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロジェクトの基本設定&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| タイトル || プロジェクトの表示名を変更する。&lt;br /&gt;
|-&lt;br /&gt;
| 説明(README) || プロジェクトの概要や使い方をMarkdownで記述できる。&lt;br /&gt;
|-&lt;br /&gt;
| 可視性 || Public(公開)または Private(非公開)を選択する。&amp;lt;br&amp;gt;組織プロジェクトの場合は組織のメンバーのみに公開することもできる。&lt;br /&gt;
|-&lt;br /&gt;
| アクセス権 || コラボレータをロール (Read / Write / Admin) 付きで招待できる。&amp;lt;br&amp;gt;組織プロジェクトはベースロールを設定して組織メンバー全体に権限を付与できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== アイテムの管理 ==&lt;br /&gt;
==== アイテムの追加 ====&lt;br /&gt;
プロジェクトへのアイテム追加方法は複数用意されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロジェクトへのアイテム追加方法&lt;br /&gt;
|-&lt;br /&gt;
! 方法 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| URLの貼り付け || テーブルまたはボードビューの下部にある[Add item]フィールドに、Issue または Pull RequestのURLを貼り付けて追加する。&lt;br /&gt;
|-&lt;br /&gt;
| # 入力によるリポジトリ選択 || [Add item]フィールドで &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; を入力するとリポジトリ一覧が表示される。&amp;lt;br&amp;gt;リポジトリを選択後、Issue または Pull Requestを検索して追加する。&lt;br /&gt;
|-&lt;br /&gt;
| Issue / PR サイドバーからの追加 || Issue または Pull Requestの詳細ページにある右サイドバーの[Projects]セクションから直接プロジェクトへ追加できる。&lt;br /&gt;
|-&lt;br /&gt;
| 一括追加 || [Add item] - [Add items from repository]を選択して、フィルタ条件を指定することで複数のIssue / PRを1度に追加できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ドラフトアイテム ====&lt;br /&gt;
ドラフトアイテムは、プロジェクト限定の仮Issueとして作成できるアイテムである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリにIssueを作成する前の段階でアイデアやタスクを記録しておく用途に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドラフトアイテムは後から通常のIssueに変換できる。&amp;lt;br&amp;gt;&lt;br /&gt;
変換するには、ドラフトアイテムの詳細パネルを開き、[Convert to issue]ボタンを押下して対象リポジトリを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 編集・削除・アーカイブ ====&lt;br /&gt;
テーブルビューでのセル編集手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# テーブルビューで対象のセルを選択する。&lt;br /&gt;
# 値を直接入力または選択する。&lt;br /&gt;
# [Enter]キー または セル外を選択して確定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一括編集の操作方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* コピー &amp;amp; ペースト&lt;br /&gt;
*: 複数のセルを選択して [Cmd] + [C]キー (macOS) または [Ctrl] + [C]キー (Windows / Linux) でコピーして、[Cmd] + [V]キー または [Ctrl] + [V]キーで貼り付ける。&lt;br /&gt;
* ドラッグによる複製&lt;br /&gt;
*: セルの右下に表示される青いハンドルをドラッグすることで、値を隣接するセルに複製できる。&lt;br /&gt;
* 複数セルの削除&lt;br /&gt;
*: 複数のセルを選択して、[Delete]キーで値を削除する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
操作を誤った場合は、ページ上部の[Undo]ボタンで直前の変更を取り消すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アーカイブはアイテムをプロジェクトの表示から除外する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
アーカイブされたアイテムはカスタムフィールドのデータを保持したまま、[Settings] - [Archived items]ページから確認・復元できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一括操作 ====&lt;br /&gt;
テーブルビューでは複数アイテムを選択して一括操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# 行の左端にあるチェックボックスを選択して、複数アイテムを選択する。&lt;br /&gt;
# 画面上部に表示される操作バーから、ステータス変更・フィールド更新・アーカイブ・削除等の操作を実行する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ビュー ==&lt;br /&gt;
==== テーブルビュー ====&lt;br /&gt;
テーブルビューはスプレッドシート形式でアイテムを管理するビューである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各行がアイテム (Issue / PR / ドラフト) を表し、各列がフィールドに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
セルを選択して値を直接編集でき、列の追加・非表示・並べ替えを自由にカスタマイズできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
大量のアイテムを一覧で把握しながら効率的に編集する用途に最適である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ボードビュー (Kanban) ====&lt;br /&gt;
ボードビューはカンバン形式でアイテムをカード表示するビューである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アイテムをドラッグ&amp;amp;ドロップで別のカラムに移動することでステータスを更新できる。&amp;lt;br&amp;gt;&lt;br /&gt;
カラムは単一選択フィールドの各オプションに対応しており、デフォルトでは[Status]フィールドを基準に表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ステータスの変遷を視覚的に追跡するスクラム・カンバン管理に最適である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ロードマップビュー ====&lt;br /&gt;
ロードマップビューはタイムライン形式でアイテムをガントチャート的に表示するビューである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
日付フィールド (開始日・終了日) を軸にしてアイテムの期間をバー表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
イテレーションフィールドと連携することで、スプリントの進行をタイムライン上で可視化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
マイルストーン管理やリリース計画の把握に最適である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビューのカスタマイズ ====&lt;br /&gt;
各ビューはそれぞれ独立して設定を保存できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビューのカスタマイズ機能&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| フィルタ || 特定の条件に合致するアイテムのみを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| ソート || 指定したフィールドの値で昇順・降順に並べ替える。&lt;br /&gt;
|-&lt;br /&gt;
| グループ化 || 指定したフィールドの値でアイテムをグループに分けて表示する。&lt;br /&gt;
|-&lt;br /&gt;
| 表示フィールドの選択 || 表示する列を選択して不要なフィールドを非表示にする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビューの設定は、[Save changes]ボタンを押下することで保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
保存前は変更内容がビュー名の右側に表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== カスタムフィールド ==&lt;br /&gt;
==== フィールドの種類 ====&lt;br /&gt;
下表に、GitHub Projectsで作成できるカスタムフィールドの種類を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ カスタムフィールドの種類&lt;br /&gt;
! フィールド種類 !! 説明 !! 主な用途&lt;br /&gt;
|-&lt;br /&gt;
| テキスト || 任意のテキストを入力するフィールド || メモ、補足説明&lt;br /&gt;
|-&lt;br /&gt;
| 数値 || 数値を入力するフィールド || ストーリーポイント、見積工数&lt;br /&gt;
|-&lt;br /&gt;
| 日付 || カレンダーから日付を選択するフィールド || 期日、リリース予定日&lt;br /&gt;
|-&lt;br /&gt;
| 単一選択 || ドロップダウンから1つの値を選択するフィールド&amp;lt;br&amp;gt;色や説明を設定できる。 || 優先度、カテゴリ&lt;br /&gt;
|-&lt;br /&gt;
| イテレーション || 時間枠 (スプリント) に関連付けるフィールド || スプリント管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 組み込みフィールド ====&lt;br /&gt;
GitHub Projectsには、デフォルトで用意されている組み込みフィールドがある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロジェクトの主な組み込みフィールド&lt;br /&gt;
|-&lt;br /&gt;
! フィールド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Status || アイテムの進捗状態を管理するフィールド&amp;lt;br&amp;gt;デフォルトで Todo / In Progress / Done の3つのオプションが用意されている。&lt;br /&gt;
|-&lt;br /&gt;
| Assignees || アイテムに割り当てられた担当者を表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| Labels || Issue / PRに設定されたラベルを表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| 親課題 (Parent issue) || Sub-issues機能を使用している場合に親Issueを表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| Sub-issues progress || 親課題の配下にあるSub-issuesの完了率を表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| リンク済みPR (Linked pull requests) || Issueに紐付けられたPull Requestを表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| レビュアー (Reviewers) || Pull Requestのレビュアーを表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| 課題タイプ (Issue type) || Issueの種類 (Bug / Feature / Task等) を表示するフィールド&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== フィールドの作成 ====&lt;br /&gt;
新しいカスタムフィールドを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# テーブルビューの列ヘッダ右端にある[+]ボタンを押下する。&lt;br /&gt;
# [New field]を選択する。&lt;br /&gt;
# フィールド名を入力する。&lt;br /&gt;
# フィールドの種類 (テキスト / 数値 / 日付 / 単一選択 / イテレーション) を選択する。&lt;br /&gt;
# 単一選択の場合は選択肢を追加して、必要に応じて色と説明を設定する。&lt;br /&gt;
# [Create]ボタンを押下して、フィールドを作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
1つのプロジェクトに作成できるカスタムフィールドの上限は50個である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== フィルタリング・ソート・グループ化 ==&lt;br /&gt;
==== フィルタ構文 ====&lt;br /&gt;
ビューのフィルタフィールドに構文を入力することにより、表示するアイテムを絞り込める。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なフィルタ構文を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ フィルタ構文一覧&lt;br /&gt;
! 構文 !! 説明 !! 例&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;is:open&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;is:closed&amp;lt;/code&amp;gt; || Issue の状態でフィルタリングする || &amp;lt;u&amp;gt;is:open&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;is:merged&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;is:draft&amp;lt;/code&amp;gt; || PR の状態でフィルタリングする || &amp;lt;u&amp;gt;is:merged&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;is:issue&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;is:pr&amp;lt;/code&amp;gt; || アイテムの種類でフィルタリングする || &amp;lt;u&amp;gt;is:issue&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;label:&amp;lt;/code&amp;gt; || 指定したラベルを持つアイテムを絞り込む || &amp;lt;u&amp;gt;label:bug&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assignee:&amp;lt;/code&amp;gt; || 指定したユーザが担当するアイテムを絞り込む || &amp;lt;u&amp;gt;assignee:@me&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;no:&amp;lt;/code&amp;gt; || 指定フィールドが未設定のアイテムを絞り込む || &amp;lt;u&amp;gt;no:assignee&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;reason:&amp;lt;/code&amp;gt; || クローズの理由でフィルタリングする || &amp;lt;u&amp;gt;reason:completed&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;updated:&amp;lt;/code&amp;gt; || 更新日でフィルタリングする || &amp;lt;u&amp;gt;updated:&amp;gt;2024-01-01&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
フィルタ構文の先頭に &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; を付加することにより、否定条件として使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
例: &amp;lt;code&amp;gt;-label:bug&amp;lt;/code&amp;gt; は、bugラベルが付加されていないアイテムを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数の条件をスペースで区切って組み合わせることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
例: &amp;lt;code&amp;gt;is:open assignee:@me label:bug&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ソートとグループ化 ====&lt;br /&gt;
ビューの表示順序や分類をカスタマイズできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ソート&lt;br /&gt;
*: 列ヘッダをクリックする、または、ビューメニューの[Sort]オプションから対象フィールドと昇順・降順を指定する。&lt;br /&gt;
*: 複数フィールドによる複合ソートも設定できる。&lt;br /&gt;
* グループ化&lt;br /&gt;
*: ビューメニューの[Group by]オプションから対象フィールドを指定する。&lt;br /&gt;
*: 単一選択フィールドやイテレーションフィールドでグループ化すると、カテゴリ別にアイテムをまとめて表示できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ワークフロー自動化 ==&lt;br /&gt;
==== 組み込みワークフロー ====&lt;br /&gt;
GitHub Projectsには設定するだけで利用できる組み込みワークフローが用意されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Auto-add to project&lt;br /&gt;
*: 指定したリポジトリでIssue または Pull Requestが作成・更新された時に、フィルタ条件に合致する場合に自動的にプロジェクトへ追加するワークフローである。&lt;br /&gt;
*: ワークフローの設定上限はプランによって異なる。&lt;br /&gt;
* Auto-archive items&lt;br /&gt;
*: 条件 (クローズから一定期間経過等) に合致したアイテムを自動的にアーカイブするワークフローである。&lt;br /&gt;
*: アーカイブ後もカスタムフィールドのデータは保持される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Auto-add to projectワークフローの設定上限を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Auto-add to project の設定上限 (プラン別)&lt;br /&gt;
! プラン !! 設定上限数&lt;br /&gt;
|-&lt;br /&gt;
| Free || 1&lt;br /&gt;
|-&lt;br /&gt;
| Pro / Team || 5&lt;br /&gt;
|-&lt;br /&gt;
| Enterprise || 20&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
既存のアイテムはワークフロー有効化後に自動追加されない。&amp;lt;br&amp;gt;&lt;br /&gt;
新規に作成・更新されたアイテムのみが追加対象となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Actionsとの連携 ====&lt;br /&gt;
GitHub Actionsワークフローを使用して、より柔軟なプロジェクト自動化を実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubが公式に提供するアクション &amp;lt;code&amp;gt;actions/add-to-project&amp;lt;/code&amp;gt; を利用することにより、イベントをトリガーにしてアイテムの追加やフィールドの更新を自動化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、Issueが作成された際に指定したプロジェクトへ自動追加する設定を示している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;github-token&amp;lt;/code&amp;gt; には &amp;lt;code&amp;gt;repo&amp;lt;/code&amp;gt; および &amp;lt;code&amp;gt;project&amp;lt;/code&amp;gt; スコープを持つPersonal Access Token (PAT) を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Add issue to project&lt;br /&gt;
 on:&lt;br /&gt;
    issues:&lt;br /&gt;
       types:&lt;br /&gt;
          - opened&lt;br /&gt;
 jobs:&lt;br /&gt;
    add-to-project:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/add-to-project@v1.0.2&lt;br /&gt;
            with:&lt;br /&gt;
               project-url: https://github.com/orgs/YOUR_ORG/projects/1&lt;br /&gt;
               github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GraphQL APIによる自動化 ====&lt;br /&gt;
GitHub GraphQL APIを使用して、プロジェクトをプログラムから操作できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIを使用するために必要なスコープは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロジェクトAPIに必要なスコープ&lt;br /&gt;
|-&lt;br /&gt;
! スコープ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read:project&amp;lt;/code&amp;gt; || プロジェクト情報の読み取り(クエリ)に使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;project&amp;lt;/code&amp;gt; || プロジェクト情報の書き込み (ミューテーション) に使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証方法は、PAT (Personal Access Token) または GitHub Appsトークンを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトのアイテム一覧を取得するクエリの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 query {&lt;br /&gt;
    node(id: &amp;quot;PROJECT_ID&amp;quot;) {&lt;br /&gt;
       ... on ProjectV2 {&lt;br /&gt;
          items(first: 20) {&lt;br /&gt;
             nodes {&lt;br /&gt;
                id&lt;br /&gt;
                fieldValues(first: 8) {&lt;br /&gt;
                   nodes {&lt;br /&gt;
                      ... on ProjectV2ItemFieldTextValue {&lt;br /&gt;
                         text&lt;br /&gt;
                         field { ... on ProjectV2FieldCommon { name } }&lt;br /&gt;
                      }&lt;br /&gt;
                      ... on ProjectV2ItemFieldSingleSelectValue {&lt;br /&gt;
                         name&lt;br /&gt;
                         field { ... on ProjectV2FieldCommon { name } }&lt;br /&gt;
                      }&lt;br /&gt;
                   }&lt;br /&gt;
                }&lt;br /&gt;
             }&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== イテレーション ==&lt;br /&gt;
==== イテレーションフィールドの設定 ====&lt;br /&gt;
イテレーションフィールドを使用することにより、スプリントやタイムボックスを定義してアイテムを関連付けられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
イテレーションフィールドの作成手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# テーブルビューの列ヘッダ右端にある[+]ボタンを押下する。&lt;br /&gt;
# [New field]を選択し、フィールド種類で[Iteration]を選択する。&lt;br /&gt;
# 以下の項目を設定する。&lt;br /&gt;
## 開始日 (Start date)&lt;br /&gt;
##: イテレーションの開始日を指定する。&lt;br /&gt;
## 期間 (Duration)&lt;br /&gt;
##: イテレーションの長さを日数または週数で指定する。&lt;br /&gt;
# [Save]ボタンを押下すると、開始日と期間をもとに自動的に3つのイテレーションが作成される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
イテレーション設定では休憩期間 (Break) を挿入することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;休憩期間は祝日や連休等、スプリントを行わない期間を表現する時に使用する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スプリント計画への活用 ====&lt;br /&gt;
イテレーションフィールドを作成すると、以下の特殊な検索キーワードで現在・次回のスプリントを参照できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;@current&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 現在進行中のイテレーションに属するアイテムを絞り込む。&lt;br /&gt;
*: 例: フィルタに &amp;lt;u&amp;gt;iteration:@current&amp;lt;/u&amp;gt; を入力する。&lt;br /&gt;
* &amp;lt;code&amp;gt;@next&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 次のイテレーションに属するアイテムを絞り込む。&lt;br /&gt;
*: 例: フィルタに &amp;lt;u&amp;gt;iteration:@next&amp;lt;/u&amp;gt; を入力する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ロードマップビューでイテレーションフィールドを日付の基準に設定すると、スプリントの期間をタイムライン上に視覚的に表示できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インサイト ==&lt;br /&gt;
==== カスタムチャートの作成 ====&lt;br /&gt;
インサイト機能を使用することにより、プロジェクトのデータを集計したグラフを作成・共有できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
チャートを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# プロジェクトページの上部にある[Insights]タブを選択する。&lt;br /&gt;
# [New chart]ボタンを押下する。&lt;br /&gt;
# チャートの種類 (棒グラフ、円グラフ等) を選択する。&lt;br /&gt;
# X軸、Y軸、グループ化に使用するフィールドを選択する。&lt;br /&gt;
# 必要に応じてフィルタ条件を設定する。&lt;br /&gt;
# [Save changes]ボタンを押下してチャートを保存する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インサイトで作成できるチャートの活用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 優先度別アイテム数&lt;br /&gt;
*: 単一選択フィールド (優先度) をX軸に設定して、各優先度に属するアイテム数を棒グラフで確認する。&lt;br /&gt;
* ステータス別進捗&lt;br /&gt;
*: [Status]フィールドをX軸に設定して、各ステータスのアイテム数を円グラフで確認する。&lt;br /&gt;
* 担当者別ワークロード&lt;br /&gt;
*: [Assignees]フィールドをX軸に設定して、各担当者が抱えるアイテム数を棒グラフで確認する。&lt;br /&gt;
* イテレーション別消化量&lt;br /&gt;
*: イテレーションフィールドをX軸、数値フィールド (ポイント) をY軸に設定して、スプリントごとの消化ポイントを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Projects&amp;diff=14573</id>
		<title>GitHub - Projects</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Projects&amp;diff=14573"/>
		<updated>2026-03-23T19:34:39Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Projectsは、Issue、Pull Request、ドラフトアイテムをテーブル・ボード・ロードマップの複数ビューで一元管理する統合プロジェクト管理ツールである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; スプレッドシート形式のテーブルビュー、カンバン形式のボードビュー、タイムライン形式のロードマップビューを切り替えながら、チームの作業状況を多角的に把握できる。&amp;lt;br&amp;gt;…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Projectsは、Issue、Pull Request、ドラフトアイテムをテーブル・ボード・ロードマップの複数ビューで一元管理する統合プロジェクト管理ツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
スプレッドシート形式のテーブルビュー、カンバン形式のボードビュー、タイムライン形式のロードマップビューを切り替えながら、チームの作業状況を多角的に把握できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub Projectsが提供する主な機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* テーブル / ボード / ロードマップビュー&lt;br /&gt;
*: 1つのプロジェクトに対して複数のビューを作成して、目的に応じた形式で作業状況を確認できる。&lt;br /&gt;
* カスタムフィールド&lt;br /&gt;
*: テキスト、数値、日付、単一選択、イテレーションの最大50個のフィールドを追加して、プロジェクト固有の情報を管理できる。&lt;br /&gt;
* 自動化&lt;br /&gt;
*: 組み込みワークフローやGitHub Actions、GraphQL APIを利用して、アイテムの追加やステータス変更を自動化できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトには最大50,000アイテムを登録でき、アーカイブ機能によってカスタムフィールドのデータを保持したまま表示から除外できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== プロジェクトの作成 ==&lt;br /&gt;
==== ユーザプロジェクトの作成 ====&lt;br /&gt;
ユーザ個人のプロジェクトを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubの右上にあるプロフィールアイコンを選択する。&lt;br /&gt;
# メニューから[Your projects]を選択する。&lt;br /&gt;
# Projectsページで[New project]ボタンを押下する。&lt;br /&gt;
# プロジェクトのタイプ (Table / Roadmap / Board) を選択する。&lt;br /&gt;
# プロジェクト名を入力して、[Create project]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 組織プロジェクトの作成 ====&lt;br /&gt;
組織 (Organization) 配下にプロジェクトを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# GitHubで対象の組織ページを開く。&lt;br /&gt;
# [Projects]タブを選択する。&lt;br /&gt;
# [New project]ボタンを押下する。&lt;br /&gt;
# プロジェクトのタイプとプロジェクト名を入力して、[Create project]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
組織プロジェクトは、組織内の複数リポジトリをまたいで、Issue や Pull Requestを管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトテンプレート ====&lt;br /&gt;
新規プロジェクト作成時にテンプレートを選択することにより、ビュー構成やカスタムフィールドをすぐに利用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テンプレートの種類は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* プリセットテンプレート&lt;br /&gt;
*: GitHubが公式に提供するテンプレートで、スプリント計画、バグ管理、フィーチャーリクエスト等のユースケースに対応している。&lt;br /&gt;
* 組織テンプレート&lt;br /&gt;
*: 組織内で作成・登録されたカスタムテンプレートを選択できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、テンプレートからプロジェクトを作成した場合にコピーされる要素とコピーされない要素を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ テンプレートコピーの対象&lt;br /&gt;
! コピーされる要素 !! コピーされない要素&lt;br /&gt;
|-&lt;br /&gt;
| ビュー構成 || アイテム (Issue / PR)&lt;br /&gt;
|-&lt;br /&gt;
| カスタムフィールドの定義 || コラボレータの設定&lt;br /&gt;
|-&lt;br /&gt;
| ドラフト問題 || リポジトリリンク&lt;br /&gt;
|-&lt;br /&gt;
| ワークフローの設定 || -&lt;br /&gt;
|-&lt;br /&gt;
| インサイト (チャート設定) || -&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プロジェクトの設定 ====&lt;br /&gt;
作成後のプロジェクトは、[Settings]から各種設定を変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロジェクトの基本設定&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| タイトル || プロジェクトの表示名を変更する。&lt;br /&gt;
|-&lt;br /&gt;
| 説明(README) || プロジェクトの概要や使い方をMarkdownで記述できる。&lt;br /&gt;
|-&lt;br /&gt;
| 可視性 || Public(公開)または Private(非公開)を選択する。&amp;lt;br&amp;gt;組織プロジェクトの場合は組織のメンバーのみに公開することもできる。&lt;br /&gt;
|-&lt;br /&gt;
| アクセス権 || コラボレータをロール (Read / Write / Admin) 付きで招待できる。&amp;lt;br&amp;gt;組織プロジェクトはベースロールを設定して組織メンバー全体に権限を付与できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== アイテムの管理 ==&lt;br /&gt;
==== アイテムの追加 ====&lt;br /&gt;
プロジェクトへのアイテム追加方法は複数用意されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロジェクトへのアイテム追加方法&lt;br /&gt;
|-&lt;br /&gt;
! 方法 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| URLの貼り付け || テーブルまたはボードビューの下部にある[Add item]フィールドに、Issue または Pull RequestのURLを貼り付けて追加する。&lt;br /&gt;
|-&lt;br /&gt;
| # 入力によるリポジトリ選択 || [Add item]フィールドで &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; を入力するとリポジトリ一覧が表示される。&amp;lt;br&amp;gt;リポジトリを選択後、Issue または Pull Requestを検索して追加する。&lt;br /&gt;
|-&lt;br /&gt;
| Issue / PR サイドバーからの追加 || Issue または Pull Requestの詳細ページにある右サイドバーの[Projects]セクションから直接プロジェクトへ追加できる。&lt;br /&gt;
|-&lt;br /&gt;
| 一括追加 || [Add item] - [Add items from repository]を選択して、フィルタ条件を指定することで複数のIssue / PRを1度に追加できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ドラフトアイテム ====&lt;br /&gt;
ドラフトアイテムは、プロジェクト限定の仮Issueとして作成できるアイテムである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リポジトリにIssueを作成する前の段階でアイデアやタスクを記録しておく用途に適している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドラフトアイテムは後から通常のIssueに変換できる。&amp;lt;br&amp;gt;&lt;br /&gt;
変換するには、ドラフトアイテムの詳細パネルを開き、[Convert to issue]ボタンを押下して対象リポジトリを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 編集・削除・アーカイブ ====&lt;br /&gt;
テーブルビューでのセル編集手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# テーブルビューで対象のセルを選択する。&lt;br /&gt;
# 値を直接入力または選択する。&lt;br /&gt;
# [Enter]キー または セル外を選択して確定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
一括編集の操作方法を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* コピー &amp;amp; ペースト&lt;br /&gt;
*: 複数のセルを選択して [Cmd] + [C]キー (macOS) または [Ctrl] + [C]キー (Windows / Linux) でコピーして、[Cmd] + [V]キー または [Ctrl] + [V]キーで貼り付ける。&lt;br /&gt;
* ドラッグによる複製&lt;br /&gt;
*: セルの右下に表示される青いハンドルをドラッグすることで、値を隣接するセルに複製できる。&lt;br /&gt;
* 複数セルの削除&lt;br /&gt;
*: 複数のセルを選択して、[Delete]キーで値を削除する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
操作を誤った場合は、ページ上部の[Undo]ボタンで直前の変更を取り消すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アーカイブはアイテムをプロジェクトの表示から除外する機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
アーカイブされたアイテムはカスタムフィールドのデータを保持したまま、[Settings] - [Archived items]ページから確認・復元できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 一括操作 ====&lt;br /&gt;
テーブルビューでは複数アイテムを選択して一括操作を実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# 行の左端にあるチェックボックスを選択して、複数アイテムを選択する。&lt;br /&gt;
# 画面上部に表示される操作バーから、ステータス変更・フィールド更新・アーカイブ・削除等の操作を実行する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ビュー ==&lt;br /&gt;
==== テーブルビュー ====&lt;br /&gt;
テーブルビューはスプレッドシート形式でアイテムを管理するビューである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各行がアイテム (Issue / PR / ドラフト) を表し、各列がフィールドに対応する。&amp;lt;br&amp;gt;&lt;br /&gt;
セルを選択して値を直接編集でき、列の追加・非表示・並べ替えを自由にカスタマイズできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
大量のアイテムを一覧で把握しながら効率的に編集する用途に最適である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ボードビュー (Kanban) ====&lt;br /&gt;
ボードビューはカンバン形式でアイテムをカード表示するビューである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
アイテムをドラッグ&amp;amp;ドロップで別のカラムに移動することでステータスを更新できる。&amp;lt;br&amp;gt;&lt;br /&gt;
カラムは単一選択フィールドの各オプションに対応しており、デフォルトでは[Status]フィールドを基準に表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ステータスの変遷を視覚的に追跡するスクラム・カンバン管理に最適である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ロードマップビュー ====&lt;br /&gt;
ロードマップビューはタイムライン形式でアイテムをガントチャート的に表示するビューである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
日付フィールド (開始日・終了日) を軸にしてアイテムの期間をバー表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
イテレーションフィールドと連携することで、スプリントの進行をタイムライン上で可視化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
マイルストーン管理やリリース計画の把握に最適である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ビューのカスタマイズ ====&lt;br /&gt;
各ビューはそれぞれ独立して設定を保存できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ ビューのカスタマイズ機能&lt;br /&gt;
|-&lt;br /&gt;
! 機能 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| フィルタ || 特定の条件に合致するアイテムのみを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| ソート || 指定したフィールドの値で昇順・降順に並べ替える。&lt;br /&gt;
|-&lt;br /&gt;
| グループ化 || 指定したフィールドの値でアイテムをグループに分けて表示する。&lt;br /&gt;
|-&lt;br /&gt;
| 表示フィールドの選択 || 表示する列を選択して不要なフィールドを非表示にする。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ビューの設定は、[Save changes]ボタンを押下することで保存される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
保存前は変更内容がビュー名の右側に表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== カスタムフィールド ==&lt;br /&gt;
==== フィールドの種類 ====&lt;br /&gt;
下表に、GitHub Projectsで作成できるカスタムフィールドの種類を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ カスタムフィールドの種類&lt;br /&gt;
! フィールド種類 !! 説明 !! 主な用途&lt;br /&gt;
|-&lt;br /&gt;
| テキスト || 任意のテキストを入力するフィールド || メモ、補足説明&lt;br /&gt;
|-&lt;br /&gt;
| 数値 || 数値を入力するフィールド || ストーリーポイント、見積工数&lt;br /&gt;
|-&lt;br /&gt;
| 日付 || カレンダーから日付を選択するフィールド || 期日、リリース予定日&lt;br /&gt;
|-&lt;br /&gt;
| 単一選択 || ドロップダウンから1つの値を選択するフィールド&amp;lt;br&amp;gt;色や説明を設定できる。 || 優先度、カテゴリ&lt;br /&gt;
|-&lt;br /&gt;
| イテレーション || 時間枠 (スプリント) に関連付けるフィールド || スプリント管理&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 組み込みフィールド ====&lt;br /&gt;
GitHub Projectsには、デフォルトで用意されている組み込みフィールドがある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロジェクトの主な組み込みフィールド&lt;br /&gt;
|-&lt;br /&gt;
! フィールド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Status || アイテムの進捗状態を管理するフィールド&amp;lt;br&amp;gt;デフォルトで Todo / In Progress / Done の3つのオプションが用意されている。&lt;br /&gt;
|-&lt;br /&gt;
| Assignees || アイテムに割り当てられた担当者を表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| Labels || Issue / PRに設定されたラベルを表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| 親課題 (Parent issue) || Sub-issues機能を使用している場合に親Issueを表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| Sub-issues progress || 親課題の配下にあるSub-issuesの完了率を表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| リンク済みPR (Linked pull requests) || Issueに紐付けられたPull Requestを表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| レビュアー (Reviewers) || Pull Requestのレビュアーを表示するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| 課題タイプ (Issue type) || Issueの種類 (Bug / Feature / Task等) を表示するフィールド&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== フィールドの作成 ====&lt;br /&gt;
新しいカスタムフィールドを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# テーブルビューの列ヘッダ右端にある[+]ボタンを押下する。&lt;br /&gt;
# [New field]を選択する。&lt;br /&gt;
# フィールド名を入力する。&lt;br /&gt;
# フィールドの種類 (テキスト / 数値 / 日付 / 単一選択 / イテレーション) を選択する。&lt;br /&gt;
# 単一選択の場合は選択肢を追加して、必要に応じて色と説明を設定する。&lt;br /&gt;
# [Create]ボタンを押下して、フィールドを作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
1つのプロジェクトに作成できるカスタムフィールドの上限は50個である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== フィルタリング・ソート・グループ化 ==&lt;br /&gt;
==== フィルタ構文 ====&lt;br /&gt;
ビューのフィルタフィールドに構文を入力することにより、表示するアイテムを絞り込める。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なフィルタ構文を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ フィルタ構文一覧&lt;br /&gt;
! 構文 !! 説明 !! 例&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;is:open&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;is:closed&amp;lt;/code&amp;gt; || Issue の状態でフィルタリングする || &amp;lt;u&amp;gt;is:open&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;is:merged&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;is:draft&amp;lt;/code&amp;gt; || PR の状態でフィルタリングする || &amp;lt;u&amp;gt;is:merged&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;is:issue&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;is:pr&amp;lt;/code&amp;gt; || アイテムの種類でフィルタリングする || &amp;lt;u&amp;gt;is:issue&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;label:&amp;lt;/code&amp;gt; || 指定したラベルを持つアイテムを絞り込む || &amp;lt;u&amp;gt;label:bug&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assignee:&amp;lt;/code&amp;gt; || 指定したユーザが担当するアイテムを絞り込む || &amp;lt;u&amp;gt;assignee:@me&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;no:&amp;lt;/code&amp;gt; || 指定フィールドが未設定のアイテムを絞り込む || &amp;lt;u&amp;gt;no:assignee&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;reason:&amp;lt;/code&amp;gt; || クローズの理由でフィルタリングする || &amp;lt;u&amp;gt;reason:completed&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;updated:&amp;lt;/code&amp;gt; || 更新日でフィルタリングする || &amp;lt;u&amp;gt;updated:&amp;gt;2024-01-01&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
フィルタ構文の先頭に &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; を付加することにより、否定条件として使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
例: &amp;lt;code&amp;gt;-label:bug&amp;lt;/code&amp;gt; は、bugラベルが付加されていないアイテムを表示する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複数の条件をスペースで区切って組み合わせることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
例: &amp;lt;code&amp;gt;is:open assignee:@me label:bug&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ソートとグループ化 ====&lt;br /&gt;
ビューの表示順序や分類をカスタマイズできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ソート&lt;br /&gt;
*: 列ヘッダをクリックする、または、ビューメニューの[Sort]オプションから対象フィールドと昇順・降順を指定する。&lt;br /&gt;
*: 複数フィールドによる複合ソートも設定できる。&lt;br /&gt;
* グループ化&lt;br /&gt;
*: ビューメニューの[Group by]オプションから対象フィールドを指定する。&lt;br /&gt;
*: 単一選択フィールドやイテレーションフィールドでグループ化すると、カテゴリ別にアイテムをまとめて表示できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ワークフロー自動化 ==&lt;br /&gt;
==== 組み込みワークフロー ====&lt;br /&gt;
GitHub Projectsには設定するだけで利用できる組み込みワークフローが用意されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Auto-add to project&lt;br /&gt;
*: 指定したリポジトリでIssue または Pull Requestが作成・更新された時に、フィルタ条件に合致する場合に自動的にプロジェクトへ追加するワークフローである。&lt;br /&gt;
*: ワークフローの設定上限はプランによって異なる。&lt;br /&gt;
* Auto-archive items&lt;br /&gt;
*: 条件 (クローズから一定期間経過等) に合致したアイテムを自動的にアーカイブするワークフローである。&lt;br /&gt;
*: アーカイブ後もカスタムフィールドのデータは保持される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、Auto-add to projectワークフローの設定上限を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Auto-add to project の設定上限 (プラン別)&lt;br /&gt;
! プラン !! 設定上限数&lt;br /&gt;
|-&lt;br /&gt;
| Free || 1&lt;br /&gt;
|-&lt;br /&gt;
| Pro / Team || 5&lt;br /&gt;
|-&lt;br /&gt;
| Enterprise || 20&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
既存のアイテムはワークフロー有効化後に自動追加されない。&amp;lt;br&amp;gt;&lt;br /&gt;
新規に作成・更新されたアイテムのみが追加対象となる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Actionsとの連携 ====&lt;br /&gt;
GitHub Actionsワークフローを使用して、より柔軟なプロジェクト自動化を実現できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubが公式に提供するアクション &amp;lt;code&amp;gt;actions/add-to-project&amp;lt;/code&amp;gt; を利用することにより、イベントをトリガーにしてアイテムの追加やフィールドの更新を自動化できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、Issueが作成された際に指定したプロジェクトへ自動追加する設定を示している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;github-token&amp;lt;/code&amp;gt; には &amp;lt;code&amp;gt;repo&amp;lt;/code&amp;gt; および &amp;lt;code&amp;gt;project&amp;lt;/code&amp;gt; スコープを持つPersonal Access Token (PAT) を設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: Add issue to project&lt;br /&gt;
 on:&lt;br /&gt;
    issues:&lt;br /&gt;
       types:&lt;br /&gt;
          - opened&lt;br /&gt;
 jobs:&lt;br /&gt;
    add-to-project:&lt;br /&gt;
       runs-on: ubuntu-latest&lt;br /&gt;
       steps:&lt;br /&gt;
          - uses: actions/add-to-project@v1.0.2&lt;br /&gt;
            with:&lt;br /&gt;
               project-url: https://github.com/orgs/YOUR_ORG/projects/1&lt;br /&gt;
               github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GraphQL APIによる自動化 ====&lt;br /&gt;
GitHub GraphQL APIを使用して、プロジェクトをプログラムから操作できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
APIを使用するために必要なスコープは以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ プロジェクトAPIに必要なスコープ&lt;br /&gt;
|-&lt;br /&gt;
! スコープ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;read:project&amp;lt;/code&amp;gt; || プロジェクト情報の読み取り(クエリ)に使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;project&amp;lt;/code&amp;gt; || プロジェクト情報の書き込み (ミューテーション) に使用する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
認証方法は、PAT (Personal Access Token) または GitHub Appsトークンを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プロジェクトのアイテム一覧を取得するクエリの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;graphql&amp;quot;&amp;gt;&lt;br /&gt;
 query {&lt;br /&gt;
    node(id: &amp;quot;PROJECT_ID&amp;quot;) {&lt;br /&gt;
       ... on ProjectV2 {&lt;br /&gt;
          items(first: 20) {&lt;br /&gt;
             nodes {&lt;br /&gt;
                id&lt;br /&gt;
                fieldValues(first: 8) {&lt;br /&gt;
                   nodes {&lt;br /&gt;
                      ... on ProjectV2ItemFieldTextValue {&lt;br /&gt;
                         text&lt;br /&gt;
                         field { ... on ProjectV2FieldCommon { name } }&lt;br /&gt;
                      }&lt;br /&gt;
                      ... on ProjectV2ItemFieldSingleSelectValue {&lt;br /&gt;
                         name&lt;br /&gt;
                         field { ... on ProjectV2FieldCommon { name } }&lt;br /&gt;
                      }&lt;br /&gt;
                   }&lt;br /&gt;
                }&lt;br /&gt;
             }&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== イテレーション ==&lt;br /&gt;
==== イテレーションフィールドの設定 ====&lt;br /&gt;
イテレーションフィールドを使用することにより、スプリントやタイムボックスを定義してアイテムを関連付けられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
イテレーションフィールドの作成手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# テーブルビューの列ヘッダ右端にある[+]ボタンを押下する。&lt;br /&gt;
# [New field]を選択し、フィールド種類で[Iteration]を選択する。&lt;br /&gt;
# 以下の項目を設定する。&lt;br /&gt;
## 開始日 (Start date)&lt;br /&gt;
##: イテレーションの開始日を指定する。&lt;br /&gt;
## 期間 (Duration)&lt;br /&gt;
##: イテレーションの長さを日数または週数で指定する。&lt;br /&gt;
# [Save]ボタンを押下すると、開始日と期間をもとに自動的に3つのイテレーションが作成される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
イテレーション設定では休憩期間 (Break) を挿入することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;休憩期間は祝日や連休等、スプリントを行わない期間を表現する時に使用する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スプリント計画への活用 ====&lt;br /&gt;
イテレーションフィールドを作成すると、以下の特殊な検索キーワードで現在・次回のスプリントを参照できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;@current&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 現在進行中のイテレーションに属するアイテムを絞り込む。&lt;br /&gt;
*: 例: フィルタに &amp;lt;u&amp;gt;iteration:@current&amp;lt;/u&amp;gt; を入力する。&lt;br /&gt;
* &amp;lt;code&amp;gt;@next&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 次のイテレーションに属するアイテムを絞り込む。&lt;br /&gt;
*: 例: フィルタに &amp;lt;u&amp;gt;iteration:@next&amp;lt;/u&amp;gt; を入力する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ロードマップビューでイテレーションフィールドを日付の基準に設定すると、スプリントの期間をタイムライン上に視覚的に表示できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インサイト ==&lt;br /&gt;
==== カスタムチャートの作成 ====&lt;br /&gt;
インサイト機能を使用することにより、プロジェクトのデータを集計したグラフを作成・共有できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
チャートを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# プロジェクトページの上部にある[Insights]タブを選択する。&lt;br /&gt;
# [New chart]ボタンを押下する。&lt;br /&gt;
# チャートの種類 (棒グラフ、円グラフ等) を選択する。&lt;br /&gt;
# X軸、Y軸、グループ化に使用するフィールドを選択する。&lt;br /&gt;
# 必要に応じてフィルタ条件を設定する。&lt;br /&gt;
# [Save changes]ボタンを押下してチャートを保存する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
インサイトで作成できるチャートの活用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 優先度別アイテム数&lt;br /&gt;
*: 単一選択フィールド (優先度) をX軸に設定して、各優先度に属するアイテム数を棒グラフで確認する。&lt;br /&gt;
* ステータス別進捗&lt;br /&gt;
*: [Status]フィールドをX軸に設定して、各ステータスのアイテム数を円グラフで確認する。&lt;br /&gt;
* 担当者別ワークロード&lt;br /&gt;
*: [Assignees]フィールドをX軸に設定して、各担当者が抱えるアイテム数を棒グラフで確認する。&lt;br /&gt;
* イテレーション別消化量&lt;br /&gt;
*: イテレーションフィールドをX軸、数値フィールド (ポイント) をY軸に設定して、スプリントごとの消化ポイントを確認する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Pull_Requests&amp;diff=14572</id>
		<title>GitHub - Pull Requests</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Pull_Requests&amp;diff=14572"/>
		<updated>2026-03-23T17:48:39Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == Pull Request (PR) は、あるブランチで行ったコード変更を別のブランチにマージするよう提案して、&amp;lt;br&amp;gt; チームメンバーによるレビューとディスカッションを経てリポジトリに統合するためのメカニズムである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; PRを活用することにより、コードの品質向上、知識の共有、バグの早期発見が可能となる。&amp;lt;br&amp;gt; 変更内容は差分 (diff) として可…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
Pull Request (PR) は、あるブランチで行ったコード変更を別のブランチにマージするよう提案して、&amp;lt;br&amp;gt;&lt;br /&gt;
チームメンバーによるレビューとディスカッションを経てリポジトリに統合するためのメカニズムである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRを活用することにより、コードの品質向上、知識の共有、バグの早期発見が可能となる。&amp;lt;br&amp;gt;&lt;br /&gt;
変更内容は差分 (diff) として可視化され、レビュアーはコメントや提案を通じてフィードバックを提供できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRページは、下表に示す4つのタブで構成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Pull Requestのタブ&lt;br /&gt;
|-&lt;br /&gt;
! タブ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Conversation || コメント、レビュー、イベントのタイムライン&lt;br /&gt;
|-&lt;br /&gt;
| Commits || PRに含まれるコミットの一覧&lt;br /&gt;
|-&lt;br /&gt;
| Checks || CI/CDやステータスチェックの結果&lt;br /&gt;
|-&lt;br /&gt;
| Files changed || 変更されたファイルの差分表示&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 開発モデル ==&lt;br /&gt;
GitHubでは、PRを活用する開発モデルとして主に2種類が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Pull Requestの主なコラボレーションモデル&lt;br /&gt;
|-&lt;br /&gt;
! モデル !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| フォーク &amp;amp; PRモデル || オープンソースプロジェクトに適したモデル&amp;lt;br&amp;gt;誰でもリポジトリをフォークして変更を加え、元のリポジトリへPRを送ることができる。&amp;lt;br&amp;gt;貢献者にリポジトリへの直接プッシュ権限を与える必要がない。&lt;br /&gt;
|-&lt;br /&gt;
| 共有リポジトリモデル || 小規模チームや社内プロジェクトに適したモデル&amp;lt;br&amp;gt;チームメンバーが同一リポジトリに対して直接プッシュ権限を持つ。&amp;lt;br&amp;gt;フィーチャーブランチを作成してPRを送る運用が一般的である。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pull Requestの作成 ==&lt;br /&gt;
==== Web UIでの作成 ====&lt;br /&gt;
GitHub Web UIからPRを作成する基本的な手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# ブランチに変更をプッシュした後、リポジトリページに移動する。&lt;br /&gt;
# 表示される通知バナーの[Compare &amp;amp; pull request]ボタンを押下する。&lt;br /&gt;
# baseブランチ (マージ先) と compareブランチ (変更元) を選択する。&lt;br /&gt;
# タイトルと説明を記入する。&lt;br /&gt;
# [Create Pull Request]ボタンを押下してPRを作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
baseブランチには変更のマージ先となるブランチ (例: &amp;lt;u&amp;gt;main&amp;lt;/u&amp;gt;) を指定して、compareブランチには自身が作業したフィーチャーブランチを指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ドラフトPull Request ====&lt;br /&gt;
ドラフトPRは、作業が進行中であることを示すための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
レビューの準備が整っていない段階でも、進捗を共有したり早期にフィードバックを得たりする目的で使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ドラフトPRの特徴は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* マージボタンが無効化されており、誤ってマージされる心配がない。&lt;br /&gt;
* レビュアーへのレビュー要求通知が自動送信されない。&lt;br /&gt;
* 作業内容を早期に共有して、方向性のフィードバックを受けることができる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
作成方法は、PR作成画面の[Create Pull Request]ボタン横のドロップダウンから[Create Draft Pull Request]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レビュー準備が完了したら、[Conversation]タブ下部の[Mark as ready for review]ボタンを押下することで、通常のPRに昇格できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PRテンプレート ====&lt;br /&gt;
PRテンプレートを設定することで、PR作成時に説明欄へ定型文を自動挿入できる。&amp;lt;br&amp;gt;&lt;br /&gt;
チームで統一したフォーマットのPR説明を記述するよう促すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* テンプレートファイルの配置場所&lt;br /&gt;
*: .github/pull_request_template.md&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テンプレートの記述例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;&lt;br /&gt;
 ## 変更内容&lt;br /&gt;
 &amp;lt;!-- 変更の概要を記述してください --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ## 変更の理由&lt;br /&gt;
 &amp;lt;!-- なぜこの変更が必要か記述してください --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ## テスト方法&lt;br /&gt;
 &amp;lt;!-- 動作確認の手順を記述してください --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ## 関連Issue&lt;br /&gt;
 &amp;lt;!-- 関連するIssue番号を記述してください (例: closes #123) --&amp;gt;&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== PRの説明の書き方 ====&lt;br /&gt;
効果的なPRの説明を書くことにより、レビュアーが変更内容を素早く理解できるようになる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRの説明に含めると良い項目を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* 変更の概要&lt;br /&gt;
*: 何を変更したか、なぜ変更が必要だったかを簡潔に説明する。&lt;br /&gt;
* 変更の影響範囲&lt;br /&gt;
*: どのコンポーネントやファイルに影響するかを明記する。&lt;br /&gt;
* テスト方法&lt;br /&gt;
*: レビュアーが動作確認できるよう、手順を記述する。&lt;br /&gt;
* スクリーンショット&lt;br /&gt;
*: UIの変更がある場合は、変更前後のスクリーンショットを添付する。&lt;br /&gt;
* 関連Issue&lt;br /&gt;
*: 関連するIssueやチケット番号を記載する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== コードレビュー ==&lt;br /&gt;
==== レビューの依頼 ====&lt;br /&gt;
PRの右側パネルにある[Reviewers]セクションから、レビューを依頼するユーザまたはチームを選択できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHubは、git blameのデータを分析して、変更されたコードに関連する知識を持つ可能性が高い貢献者をレビュアー候補として自動提案する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
レビュー依頼を受けたユーザには通知が送信され、レビュー待ちの状態としてマークされる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== レビューコメント ====&lt;br /&gt;
レビュアーはPRに対して複数の種類のコメントを残すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 一般コメント&lt;br /&gt;
*: [Conversation]タブのコメント欄から投稿する。&lt;br /&gt;
*: PR全体に対するフィードバックや質問に使用する。&lt;br /&gt;
* 行コメント&lt;br /&gt;
*: [Files changed]タブで特定のコード行にカーソルを合わせ、表示される[+]アイコンを選択して投稿する。&lt;br /&gt;
*: 特定のコード箇所に対する具体的な指摘に使用する。&lt;br /&gt;
* 提案 (Suggestion)&lt;br /&gt;
*: 行コメントの入力欄にある[Add a suggestion]ボタンを使用して記述する。&lt;br /&gt;
*: PR作成者が直接コードを修正・適用できる形式でコード変更を提案できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== レビューステータス ====&lt;br /&gt;
レビュアーはフィードバックを送信する場合に、下表に示す3つのステータスのいずれかを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ レビューステータス一覧&lt;br /&gt;
! ステータス !! 説明 !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| Comment || フィードバックのみ || マージの承認も拒否もしない場合に使用する。&amp;lt;br&amp;gt;質問や軽微な提案に適している。&lt;br /&gt;
|-&lt;br /&gt;
| Approve || マージ承認 || 変更内容に問題がなく、マージを承認する場合に使用する。&lt;br /&gt;
|-&lt;br /&gt;
| Request changes || 修正要求 || マージ前に修正が必要な問題がある場合に使用する。&amp;lt;br&amp;gt;修正が完了するまでマージがブロックされる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CODEOWNERSによる自動レビュー ====&lt;br /&gt;
CODEOWNERSファイルを設定することにより、特定のファイルやディレクトリの変更に対してレビュアーを自動的にアサインできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ファイルの配置場所&lt;br /&gt;
*: .github/CODEOWNERS&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CODEOWNERSファイルの記述例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 全てのファイルのオーナーを設定する&lt;br /&gt;
 * @global-owner1 @global-owner2&lt;br /&gt;
 &lt;br /&gt;
 # JavaScriptファイルのオーナーを設定する&lt;br /&gt;
 *.js @js-owner&lt;br /&gt;
 &lt;br /&gt;
 # docsディレクトリのオーナーを設定する&lt;br /&gt;
 /docs/ @docsteam&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
CODEOWNERSファイルの特徴と注意事項を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* パターンマッチングは .gitignore と同様の構文を使用する。&lt;br /&gt;
* ファイルサイズは、3[MB]未満に制限されている。&lt;br /&gt;
* リポジトリの[Settings] - [Branches]から[Require code owner review]を有効化することにより、CODEOWNERSに指定されたオーナーのレビューを必須にできる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Suggested Changesの適用 ====&lt;br /&gt;
レビュアーが提案 (Suggestion) を送信した場合、PR作成者はコメント上のボタンから直接コードに変更を適用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
適用方法には以下の2種類がある。&amp;lt;br&amp;gt;&lt;br /&gt;
* 個別適用&lt;br /&gt;
*: 各Suggestionコメントの[Commit suggestion]ボタンを押下して、提案を1件ずつ適用する。&lt;br /&gt;
* 一括適用&lt;br /&gt;
*: 各Suggestionコメントの[Add suggestion to batch]ボタンを押下して複数の提案をまとめ、後から一括でコミットする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Suggested Changesを適用してコミットすると、提案を行ったレビュアーが自動的にそのコミットのco-author (共同著者) として追加される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ステータスチェック ==&lt;br /&gt;
==== ステータスチェックとは ====&lt;br /&gt;
ステータスチェックは、PRがマージされる前に自動的に実行される検証プロセスである。&amp;lt;br&amp;gt;&lt;br /&gt;
テストの実行、コードのリント、ビルドの成功確認等、コードの品質を担保するための条件を自動チェックできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ステータスチェックの結果はPRの[Conversation]タブに表示され、各チェックの成否を確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 必須ステータスチェック ====&lt;br /&gt;
特定のステータスチェックが全てパスした場合のみマージを許可する設定が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings]タブに移動する。&lt;br /&gt;
# [Branches]セクションを選択する。&lt;br /&gt;
# 保護対象のブランチのルールを編集する。&lt;br /&gt;
# [Require status checks to pass before merging]を有効化する。&lt;br /&gt;
# 必須とするチェック項目を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub Actionsとの連携 ====&lt;br /&gt;
GitHub Actionsを使用することにより、PRへのプッシュやPRのオープンをトリガーとしてCI/CDパイプラインを自動実行できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRに対してステータスチェックを実行するワークフローの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: CI&lt;br /&gt;
 &lt;br /&gt;
 on:&lt;br /&gt;
   pull_request:&lt;br /&gt;
      branches: [ main ]&lt;br /&gt;
 &lt;br /&gt;
 jobs:&lt;br /&gt;
   test:&lt;br /&gt;
      runs-on: ubuntu-latest&lt;br /&gt;
      steps:&lt;br /&gt;
         - uses: actions/checkout@v4&lt;br /&gt;
         - name: Run tests&lt;br /&gt;
           run: npm test&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
上記のワークフローは、mainブランチへのPRが作成・更新されるたびに自動実行され、テスト結果がステータスチェックとしてPRに反映される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== マージ ==&lt;br /&gt;
==== マージコミット ====&lt;br /&gt;
デフォルトのマージ方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRブランチの全てのコミットをそのまま保持した上で、マージコミットを1つ追加してベースブランチに統合する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 git merge --no-ff feature-branch&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 全てのコミット履歴が保持される。&lt;br /&gt;
* マージコミットによりブランチの分岐・合流が履歴上で明確に確認できる。&lt;br /&gt;
* 複雑なコミット履歴になる場合がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== スカッシュマージ ====&lt;br /&gt;
PRブランチの複数のコミットを1つのコミットに圧縮してベースブランチに追加するマージ方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* コミット履歴がシンプルになる。&lt;br /&gt;
* 作業中の試行錯誤的なコミットを1つにまとめられる。&lt;br /&gt;
* 長期間運用するブランチを再利用する場合、マージ済みコミットのSHAが異なるため注意が必要である。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リベースマージ ====&lt;br /&gt;
PRブランチのコミットをベースブランチの先頭に順番に適用して、線形の履歴を作成するマージ方式である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* マージコミットが作成されず、線形の履歴が維持される。&lt;br /&gt;
* 各コミットには新しいSHAが付与される。&lt;br /&gt;
* コンフリクトが発生している場合は使用できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 自動マージ (Auto-merge) ====&lt;br /&gt;
必須ステータスチェックの完了およびレビュー承認の条件を満たした時点で、PRを自動的にマージする機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
有効化手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PRページの[Enable auto-merge]ボタンを押下する。&lt;br /&gt;
# マージ方式 (マージコミット、スカッシュ、リベース) を選択する。&lt;br /&gt;
# [Confirm auto-merge]を選択して確定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
必須チェックが全てパスし、必要なレビュー承認が得られると自動的にマージが実行される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マージキュー (Merge Queue) ====&lt;br /&gt;
複数のPRを順序立てて安全にマージするための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
各PRを個別にマージするのではなく、キューに追加された順に自動でテストおよびマージを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 複数PRが同時にマージされることによるコンフリクトリスクを軽減できる。&lt;br /&gt;
* マージキューはブランチ保護設定から有効化できる。&lt;br /&gt;
* キューに追加されたPRは、前のPRの内容を含んだ状態でテストが実行される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== マージ後の処理 ====&lt;br /&gt;
マージ完了後、PRのソースブランチ (head branch) を自動的に削除する設定が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
設定手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings]タブに移動する。&lt;br /&gt;
# [General]セクションの[Pull Requests]項目を確認する。&lt;br /&gt;
# [Automatically delete head branches]を有効化する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
誤って削除した場合でも、PRページの[Restore branch]ボタンからブランチを復元できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== コンフリクトの解決 ==&lt;br /&gt;
コンフリクトは、PRのソースブランチとベースブランチの両方で同一ファイルの同一箇所が変更された場合に発生する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;マージ前にコンフリクトを解決する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Web UIでの解決 ====&lt;br /&gt;
行レベルの単純なコンフリクトはGitHub Web UIで解決できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# PRページで[Resolve conflicts]ボタンを押下する。&lt;br /&gt;
# コンフリクトが発生しているファイルが表示される。&lt;br /&gt;
# コンフリクトマーカー (&amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=======&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;) を含む箇所を編集して、残すべき変更内容に修正する。&lt;br /&gt;
# [Mark as resolved]を選択する。&lt;br /&gt;
# 全てのファイルのコンフリクトを解決したら[Commit merge]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
複雑なコンフリクト (バイナリファイルや大規模な変更) はWeb UIでは解決できないため、コマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コマンドラインでの解決 ====&lt;br /&gt;
コマンドを使用したコンフリクト解決の手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 1. ベースブランチをチェックアウトして最新の状態に更新する&lt;br /&gt;
 git checkout main&lt;br /&gt;
 git pull origin main&lt;br /&gt;
 &lt;br /&gt;
 # 2. PRのソースブランチをチェックアウトする&lt;br /&gt;
 git checkout feature-branch&lt;br /&gt;
 &lt;br /&gt;
 # 3. ベースブランチをマージしてコンフリクトを発生させる&lt;br /&gt;
 git merge main&lt;br /&gt;
 &lt;br /&gt;
 # 4. コンフリクトが発生したファイルを手動で編集して解決する&lt;br /&gt;
 # (エディタでコンフリクトマーカーを削除して修正する)&lt;br /&gt;
 &lt;br /&gt;
 # 5. 解決済みファイルをステージングする&lt;br /&gt;
 git add .&lt;br /&gt;
 &lt;br /&gt;
 # 6. マージコミットを作成する&lt;br /&gt;
 git commit&lt;br /&gt;
 &lt;br /&gt;
 # 7. リモートにプッシュする&lt;br /&gt;
 git push origin feature-branch&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プッシュ後、GitHubのPRページにコンフリクトが解消されたことが反映される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pull Requestの管理 ==&lt;br /&gt;
==== クローズと再オープン ====&lt;br /&gt;
PRはマージせずにクローズすることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
作業の中断、方針変更、重複PRの整理等の場合にクローズを行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
クローズしたPRは、write権限を持つユーザがいつでも再オープンできる。&amp;lt;br&amp;gt;&lt;br /&gt;
再オープン時にはブランチが存在している必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ベースブランチの変更 ====&lt;br /&gt;
PR作成後にマージ先のベースブランチを変更できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
PRページのタイトル横にある[Edit]ボタンを押下して、ベースブランチのドロップダウンから変更先のブランチを選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ベースブランチの変更時には、以下に示す事柄に注意する。&amp;lt;br&amp;gt;&lt;br /&gt;
* 変更後の差分に応じてコミットが追加または削除される場合がある。&lt;br /&gt;
* 既存のレビューコメントが無効化される場合がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== コミットの追加 ====&lt;br /&gt;
オープン中のPRに対して、ソースブランチに新たなコミットをプッシュすることで変更を追加できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # 変更を加えてコミットする&lt;br /&gt;
 git add .&lt;br /&gt;
 git commit -m &amp;quot;&amp;lt;レビュー指摘の修正&amp;gt;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # PRのソースブランチにプッシュする&lt;br /&gt;
 git push origin feature-branch&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
プッシュ後、PRページに新しいコミットが自動的に反映される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== リバート ====&lt;br /&gt;
マージ済みのPRをリバートして変更を取り消すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# マージ済みのPRページを開く。&lt;br /&gt;
# [Revert]ボタンを押下する。&lt;br /&gt;
# 自動的に新しいリバートPRが作成される。&lt;br /&gt;
# リバートPRをレビューしてマージする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
リバート機能を使用するには、リポジトリへのwrite権限が必要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== その他の機能 ==&lt;br /&gt;
==== IssueとPRのリンク ====&lt;br /&gt;
PRの説明 または コメントにIssueへの参照を記述することにより、IssueとPRをリンクできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== キーワードによる自動クローズ =====&lt;br /&gt;
PRがマージされた時点で、関連するIssueを自動的にクローズするキーワードが使用できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動クローズに使用できるキーワードの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;fixes #123&amp;lt;/u&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;closes #123&amp;lt;/u&amp;gt;&lt;br /&gt;
* &amp;lt;u&amp;gt;resolves #123&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
1つのPRで最大10個のIssueを自動クローズできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 手動リンク =====&lt;br /&gt;
自動クローズが不要な場合は、キーワードなしで &amp;lt;u&amp;gt;#issue-number&amp;lt;/u&amp;gt; 形式で参照を記述することにより、IssueとPRを手動でリンクできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、PRページの右側パネルにある[Development]セクションからIssueを手動でリンクすることも可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 差分表示オプション ====&lt;br /&gt;
[Files changed]タブでは、コードの差分表示方法を切り替えられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 差分表示オプション&lt;br /&gt;
! オプション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| Unified || 変更前後を上下に並べて表示する。&amp;lt;br&amp;gt;変更内容の全体の流れが把握しやすい。&lt;br /&gt;
|-&lt;br /&gt;
| Split || 変更前 (左) と変更後 (右) を左右に並べて表示する。&amp;lt;br&amp;gt;変更箇所の対比が視覚的にわかりやすい。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
表示オプションは、[Files changed]タブの右上にある[Display settings] (歯車アイコン) から切り替えられる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== ファイルフィルタリング ====&lt;br /&gt;
変更ファイルが多い場合に、特定のファイルに絞り込んで差分を確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ファイルツリーナビゲーション&lt;br /&gt;
*: Files changedタブ左側のファイルツリーからディレクトリおよびファイルを選択して表示を絞り込む。&lt;br /&gt;
* 拡張子フィルタ&lt;br /&gt;
*: ファイルタイプ別にフィルタリングして特定の種類のファイルのみ表示する。&lt;br /&gt;
* CODEOWNERSフィルタ&lt;br /&gt;
*: 自分がオーナーとなっているファイルのみ表示する。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Issues&amp;diff=14571</id>
		<title>GitHub - Issues</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=GitHub_-_Issues&amp;diff=14571"/>
		<updated>2026-03-23T16:25:17Z</updated>

		<summary type="html">&lt;p&gt;Wiki: ページの作成:「== 概要 == GitHub Issuesは、プロジェクト内のバグ報告、機能リクエスト、タスク管理を一元化するための追跡ツールである。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Issueを活用することによりで、開発チームは作業内容を可視化し、優先度の管理や進捗追跡を効率的に行うことができる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Issuesが提供する主な機能は以下の通りである。&amp;lt;br&amp;gt; * バグ報告 *: 再現手順や期待動作を記録…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
GitHub Issuesは、プロジェクト内のバグ報告、機能リクエスト、タスク管理を一元化するための追跡ツールである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Issueを活用することによりで、開発チームは作業内容を可視化し、優先度の管理や進捗追跡を効率的に行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Issuesが提供する主な機能は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
* バグ報告&lt;br /&gt;
*: 再現手順や期待動作を記録し、開発者が問題を特定・修正しやすくする。&lt;br /&gt;
* 機能リクエスト&lt;br /&gt;
*: 新機能の提案や改善要望をチームで議論・評価する場として活用できる。&lt;br /&gt;
* タスク管理&lt;br /&gt;
*: 開発作業をチケット形式で管理し、担当者・期日・進捗を一元管理する。&lt;br /&gt;
* ドキュメント・質問&lt;br /&gt;
*: 仕様の確認や技術的な疑問点を記録し、チーム内の知識を蓄積する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Issueはラベル、マイルストーン、アサイニーと組み合わせることにより、大規模プロジェクトの管理にも対応できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issueの作成 ==&lt;br /&gt;
==== Web UIでの作成 ====&lt;br /&gt;
GitHubのWebインターフェースからIssueを作成する手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Issues]タブを選択する。&lt;br /&gt;
# [New issue]ボタンを押下する。&lt;br /&gt;
# テンプレートが設定されている場合は一覧から選択して、テンプレートなしで作成する場合は[Open a blank issue]を選択する。&lt;br /&gt;
# タイトルと説明 (本文) を入力する。&lt;br /&gt;
# 右側バーからラベル、マイルストーン、アサイニーを必要に応じて設定する。&lt;br /&gt;
# [Submit new issue]ボタンを選択して、Issueを作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
本文はMarkdown記法で記述でき、コードブロック、画像、リンクの挿入が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GitHub CLIでの作成 ====&lt;br /&gt;
GitHub CLIを使用すると、コマンドの実行によりIssueを作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
基本的な作成コマンドを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh issue create --title &amp;quot;&amp;lt;タイトル&amp;gt;&amp;quot; --body &amp;quot;&amp;lt;説明&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
オプションを指定した例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh issue create \&lt;br /&gt;
    --title &amp;quot;バグ: ログイン時にエラーが発生する&amp;quot; \&lt;br /&gt;
    --body &amp;quot;再現手順: ...&amp;quot; \&lt;br /&gt;
    --assignee @me \&lt;br /&gt;
    --label bug \&lt;br /&gt;
    --milestone &amp;quot;v1.0&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なオプションを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ gh issue create オプション一覧&lt;br /&gt;
! オプション !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--title&amp;lt;/code&amp;gt; || Issueのタイトルを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--body&amp;lt;/code&amp;gt; || Issueの本文を指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--assignee&amp;lt;/code&amp;gt; || 担当者を指定する。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;@me&amp;lt;/code&amp;gt; で自分自身を指定できる。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--label&amp;lt;/code&amp;gt; || ラベルを指定する。&amp;lt;br&amp;gt;複数指定する場合はカンマ区切りで指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--milestone&amp;lt;/code&amp;gt; || マイルストーンを指定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;--web&amp;lt;/code&amp;gt; || Webブラウザを開いて、Issue作成フォームを表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== URLクエリパラメータによる事前入力 ====&lt;br /&gt;
Issue 作成フォームのURLにクエリパラメータを付与することで、フォームの各フィールドを事前入力した状態で開くことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
パラメータ付きURLの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 https://github.com/owner/repo/issues/new?title=バグ報告&amp;amp;labels=bug,enhancement&amp;amp;assignees=username&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、利用可能なクエリパラメータを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ URLクエリパラメータ一覧&lt;br /&gt;
! パラメータ !! 説明 !! 例&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; || Issueタイトルを事前入力する。 || &amp;lt;u&amp;gt;?title=バグ報告&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; || Issue本文を事前入力する。 || &amp;lt;u&amp;gt;?body=再現手順を記載&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;labels&amp;lt;/code&amp;gt; || ラベルをカンマ区切りで指定する。 || &amp;lt;u&amp;gt;?labels=bug,enhancement&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assignees&amp;lt;/code&amp;gt; || 担当者のユーザ名を指定する。 || &amp;lt;u&amp;gt;?assignees=username&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;milestone&amp;lt;/code&amp;gt; || マイルストーン名を指定する。 || &amp;lt;u&amp;gt;?milestone=v1.0&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt; || 使用するテンプレートファイル名を指定する。 || &amp;lt;u&amp;gt;?template=bug_report.md&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
このURLをドキュメントやREADMEに掲載することにより、ユーザが適切な情報を入力しやすくなる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issueテンプレート ==&lt;br /&gt;
==== Markdownテンプレート ====&lt;br /&gt;
Markdown テンプレートを使用すると、Issue作成時に定型のフォームを提供できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テンプレートは &amp;lt;u&amp;gt;.github/ISSUE_TEMPLATE/&amp;lt;/u&amp;gt; ディレクトリ内に &amp;lt;u&amp;gt;.md&amp;lt;/u&amp;gt; ファイルとして配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ディレクトリ構成例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 .github/&lt;br /&gt;
 └── ISSUE_TEMPLATE/&lt;br /&gt;
    ├── bug_report.md&lt;br /&gt;
    ├── feature_request.md&lt;br /&gt;
    └── config.yml&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
テンプレートファイルの記述例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;&lt;br /&gt;
 ---&lt;br /&gt;
 name: バグ報告&lt;br /&gt;
 about: バグを報告するためのテンプレート&lt;br /&gt;
 title: &amp;quot;[BUG] &amp;quot;&lt;br /&gt;
 labels: bug&lt;br /&gt;
 assignees: &amp;quot;&amp;quot;&lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 ## バグの概要&lt;br /&gt;
 バグの内容を簡潔に記述してください。&lt;br /&gt;
 &lt;br /&gt;
 ## 再現手順&lt;br /&gt;
 1. ...&lt;br /&gt;
 2. ...&lt;br /&gt;
 &lt;br /&gt;
 ## 期待する動作&lt;br /&gt;
 本来はどのように動作すべきかを記述してください。&lt;br /&gt;
 &lt;br /&gt;
 ## 実際の動作&lt;br /&gt;
 実際にどのように動作したかを記述してください。&lt;br /&gt;
 &lt;br /&gt;
 ## スクリーンショット&lt;br /&gt;
 (該当する場合は画像を添付してください)&lt;br /&gt;
 &lt;br /&gt;
 ## 環境&lt;br /&gt;
 - OS:&lt;br /&gt;
 - Webブラウザ / バージョン:&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、フロントマターで指定できるフィールドを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Issueテンプレート (YAML) の主なフィールド&lt;br /&gt;
|-&lt;br /&gt;
! フィールド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; || テンプレート選択画面に表示される名前&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;about&amp;lt;/code&amp;gt; || テンプレート選択画面に表示される説明文&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; || Issueタイトルの初期値&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;labels&amp;lt;/code&amp;gt; || 自動的に付与するラベル&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assignees&amp;lt;/code&amp;gt; || 自動的に割り当てる担当者&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Issueフォーム (YAML形式) ====&lt;br /&gt;
Issueフォームは、YAML形式で定義する構造化フォームである。&amp;lt;br&amp;gt;&lt;br /&gt;
Markdownテンプレートよりも厳密な入力制御が可能で、必須フィールドの設定やドロップダウンの提供ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
フォームファイルは &amp;lt;u&amp;gt;.github/ISSUE_TEMPLATE/&amp;lt;/u&amp;gt; ディレクトリ内に &amp;lt;u&amp;gt;.yml&amp;lt;/u&amp;gt; ファイルとして配置する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
記述例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 name: バグ報告&lt;br /&gt;
 description: バグを報告するためのフォーム&lt;br /&gt;
 title: &amp;quot;[BUG] &amp;quot;&lt;br /&gt;
 labels: [&amp;quot;bug&amp;quot;]&lt;br /&gt;
 body:&lt;br /&gt;
   - type: markdown&lt;br /&gt;
     attributes:&lt;br /&gt;
       value: |&lt;br /&gt;
         バグ報告ありがとうございます。&lt;br /&gt;
         以下のフォームに必要事項を入力してください。&lt;br /&gt;
 &lt;br /&gt;
   - type: input&lt;br /&gt;
     id: title&lt;br /&gt;
     attributes:&lt;br /&gt;
       label: バグの概要&lt;br /&gt;
       placeholder: バグを一行で説明してください&lt;br /&gt;
     validations:&lt;br /&gt;
       required: true&lt;br /&gt;
 &lt;br /&gt;
   - type: textarea&lt;br /&gt;
     id: steps&lt;br /&gt;
     attributes:&lt;br /&gt;
       label: 再現手順&lt;br /&gt;
       description: バグを再現する手順を記載してください&lt;br /&gt;
       placeholder: |&lt;br /&gt;
         1. ...&lt;br /&gt;
         2. ...&lt;br /&gt;
     validations:&lt;br /&gt;
       required: true&lt;br /&gt;
 &lt;br /&gt;
   - type: dropdown&lt;br /&gt;
     id: severity&lt;br /&gt;
     attributes:&lt;br /&gt;
       label: 深刻度&lt;br /&gt;
       options:&lt;br /&gt;
         - 低 (軽微な問題)&lt;br /&gt;
         - 中 (機能に影響する問題)&lt;br /&gt;
         - 高 (クリティカルな問題)&lt;br /&gt;
     validations:&lt;br /&gt;
       required: true&lt;br /&gt;
 &lt;br /&gt;
   - type: checkboxes&lt;br /&gt;
     id: checklist&lt;br /&gt;
     attributes:&lt;br /&gt;
       label: 確認事項&lt;br /&gt;
       options:&lt;br /&gt;
         - label: 同様の Issue が既に報告されていないことを確認しました&lt;br /&gt;
           required: true&lt;br /&gt;
         - label: 最新バージョンで問題が発生することを確認しました&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、利用可能なフィールドタイプを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ フィールドタイプ一覧&lt;br /&gt;
! タイプ !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;markdown&amp;lt;/code&amp;gt; || 入力不可の説明文を表示する。&amp;lt;br&amp;gt;情報提供や注意書きに使用する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; || 一行のテキスト入力フィールド&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt; || 複数行のテキスト入力フィールド&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dropdown&amp;lt;/code&amp;gt; || プルダウンメニューから選択するフィールド&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;checkboxes&amp;lt;/code&amp;gt; || 複数選択可能なチェックボックスフィールド&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;validations: required: true&amp;lt;/code&amp;gt; を指定することで、そのフィールドへの入力を必須にできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== テンプレートチューザーのカスタマイズ ====&lt;br /&gt;
&amp;lt;u&amp;gt;.github/ISSUE_TEMPLATE/config.yml&amp;lt;/u&amp;gt; ファイルを作成することにより、テンプレート選択画面の動作をカスタマイズできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
config.ymlファイルの記述例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 blank_issues_enabled: false&lt;br /&gt;
 contact_links:&lt;br /&gt;
   - name: セキュリティの脆弱性&lt;br /&gt;
     url: https://example.com/security&lt;br /&gt;
     about: セキュリティの脆弱性はこちらから報告してください&lt;br /&gt;
   - name: コミュニティフォーラム&lt;br /&gt;
     url: https://forum.example.com&lt;br /&gt;
     about: 一般的な質問はフォーラムをご利用ください&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、config.ymlファイル設定項目を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ config.yml の主な設定項目&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;blank_issues_enabled&amp;lt;/code&amp;gt; || &amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt; に設定すると、テンプレートを使用せずにIssueを作成することを禁止する。&amp;lt;br&amp;gt;全てのIssueにテンプレートの使用を強制する場合に設定する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;contact_links&amp;lt;/code&amp;gt; || テンプレート選択画面に外部リソースへのリンクを追加する。&amp;lt;br&amp;gt;セキュリティポリシーページやコミュニティフォーラムへの誘導に利用できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issueの管理 ==&lt;br /&gt;
==== 編集・クローズ・再オープン ====&lt;br /&gt;
作成済みの Issue は、権限を持つユーザが編集、クローズ、再オープンを行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 編集&lt;br /&gt;
*: Issueの右上メニューから[Edit]を選択して、タイトルや本文を変更して[Update comment]を選択する。&lt;br /&gt;
* クローズ&lt;br /&gt;
*: Issueページ下部の[Close issue]ボタンを押下して、クローズ時にコメントを追加することもできる。&lt;br /&gt;
* 再オープン&lt;br /&gt;
*: クローズ済みのIssueで[Reopen issue]ボタンを押下する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでクローズ、再オープンを行う例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 # Issueをクローズする&lt;br /&gt;
 gh issue close 123&lt;br /&gt;
 &lt;br /&gt;
 # Issueを再オープンする&lt;br /&gt;
 gh issue reopen 123&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Issueの削除 ====&lt;br /&gt;
Issue の削除は永続的な操作であり、削除後の復元はできない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
削除権限は以下の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 個人所有リポジトリ&lt;br /&gt;
*: リポジトリの所有者のみが削除できる。&lt;br /&gt;
* 組織所有リポジトリ&lt;br /&gt;
*: 組織の管理者 (Admin) またはオーナー (Owner) のみが削除できる。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
削除はコメントも含めてリポジトリから完全に除去される。&amp;lt;br&amp;gt;&lt;br /&gt;
誤削除を防ぐため、通常はクローズ操作を推奨する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Issueのピン留め ====&lt;br /&gt;
リポジトリのIssuesページの上部に最大3つのIssueをピン留めして目立たせることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ピン留めの手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# ピン留めしたいIssueを開く。&lt;br /&gt;
# 右側バーの[Pin issue]を選択する。&lt;br /&gt;
# Issuesページの上部にIssueが固定表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ピン留めを解除するには、同じ手順で[Unpin issue]を選択する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ピン留めは最大3つまでという制限があるため、重要度の高いIssueを選んで設定する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Issueの転送 ====&lt;br /&gt;
Issueを別のリポジトリに転送することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
転送できる範囲は同一ユーザまたは同一組織内のリポジトリに限られる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
転送時のデータ保持ルールを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 保持されるもの&lt;br /&gt;
*: コメント、担当者の情報は転送先でも保持される。&lt;br /&gt;
* 条件付きで保持されるもの&lt;br /&gt;
*: ラベルとマイルストーンは、転送先リポジトリに同名のラベル、マイルストーンが存在する場合のみ保持される。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでの転送例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh issue transfer 123 new-owner/new-repo&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ラベル ==&lt;br /&gt;
==== デフォルトラベル ====&lt;br /&gt;
新しく作成されたリポジトリには、以下に示す9つのデフォルトラベルが自動的に設定される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ デフォルトラベル一覧&lt;br /&gt;
! ラベル名 !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bug&amp;lt;/code&amp;gt; || 予期しない動作や不具合を示す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;documentation&amp;lt;/code&amp;gt; || ドキュメントの改善や追加が必要であることを示す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;duplicate&amp;lt;/code&amp;gt; || 既存のIssue または Pull Requestと重複していることを示す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;enhancement&amp;lt;/code&amp;gt; || 新機能の追加や既存機能の改善を示す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;good first issue&amp;lt;/code&amp;gt; || 初めてコントリビュートする人に適したIssueであることを示す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;help wanted&amp;lt;/code&amp;gt; || メンテナーがコミュニティの協力を求めていることを示す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;invalid&amp;lt;/code&amp;gt; || Issueの内容が正確でない または 無効であることを示す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;question&amp;lt;/code&amp;gt; || 質問や調査が必要なIssueであることを示す。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wontfix&amp;lt;/code&amp;gt; || このIssueへの対応を行わないことを示す。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== カスタムラベルの管理 ====&lt;br /&gt;
プロジェクト固有のラベルを作成・編集・削除することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ラベル管理画面へのアクセス手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# リポジトリの[Settings]を開く。&lt;br /&gt;
# 左メニューから[Issues]を選択する。&lt;br /&gt;
# [Labels]セクションで[New label]を選択する。&lt;br /&gt;
# ラベル名、説明、カラーを設定して、[Save label]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
カラーは16進数カラーコード (例: &amp;lt;u&amp;gt;#d73a4a&amp;lt;/u&amp;gt;) で指定する。&amp;lt;br&amp;gt;&lt;br /&gt;
[Generate a random color]ボタンでランダムな色を自動生成することもできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでのラベル作成例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh label create &amp;quot;priority:high&amp;quot; --color &amp;quot;e11d48&amp;quot; --description &amp;quot;&amp;lt;高優先度のIssue&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== マイルストーン ==&lt;br /&gt;
==== マイルストーンの作成と管理 ====&lt;br /&gt;
マイルストーンは、リリースや期日に向けたIssue、Pull Requestのグループ管理機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
マイルストーンの作成手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# [Issues]タブを開く。&lt;br /&gt;
# [Milestones]ボタンを押下する。&lt;br /&gt;
# [New milestone]を選択する。&lt;br /&gt;
# 名前、説明、期日を入力して、[Create milestone]を選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、設定できる項目を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ マイルストーンの構成要素&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 名前(必須) || マイルストーンを識別するための名前&amp;lt;br&amp;gt;バージョン番号 (例: &amp;lt;u&amp;gt;v1.0.0&amp;lt;/u&amp;gt;) や スプリント名が使われることが多い。&lt;br /&gt;
|-&lt;br /&gt;
| 説明 || マイルストーンの目的や含まれる作業内容の概要&lt;br /&gt;
|-&lt;br /&gt;
| 期日 || マイルストーンの完了期日&amp;lt;br&amp;gt;設定すると期日超過時に警告が表示される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 進捗の追跡 ====&lt;br /&gt;
マイルストーンページでは、紐付けられたIssueとPull Requestの進捗を確認できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
表示される情報を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* オープン数とクローズ数&lt;br /&gt;
*: 未完了と完了のIssue/Pull Requestの件数が表示される。&lt;br /&gt;
* 完了パーセンテージ&lt;br /&gt;
*: クローズ済みのチケット数をもとに完了率が自動計算されて表示される。&lt;br /&gt;
* 期日までの残り日数&lt;br /&gt;
*: 期日が設定されている場合、残り日数または超過日数が表示される。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== アサイン (担当者) ==&lt;br /&gt;
==== 担当者の割り当て ====&lt;br /&gt;
Issueに担当者を割り当てることで、誰がそのIssueを対応するかを明確にできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
担当者の割り当て手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# Issueを開く。&lt;br /&gt;
# 右側バーの[Assignees]を選択する。&lt;br /&gt;
# ユーザ名を検索して選択する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
担当者には、リポジトリへのコラボレータとして登録されているユーザのみを指定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 複数担当者 ====&lt;br /&gt;
1つのIssueには最大10名の担当者を割り当てることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
GitHub CLIでの一括割り当て例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh issue edit 123 --add-assignee &amp;quot;user1,user2,user3&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
担当者を外す場合は以下のコマンドを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 gh issue edit 123 --remove-assignee &amp;quot;user1&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sub-issues ==&lt;br /&gt;
==== Sub-issueとは ====&lt;br /&gt;
Sub-issuesは、Issueを階層構造で管理するための機能である。&amp;lt;br&amp;gt;&lt;br /&gt;
2025年1月13日に正式提供が開始された。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Sub-issuesを使用することにより、大きなタスクを細かな作業単位に分割して、進捗を階層的に管理できる。&amp;lt;br&amp;gt;&lt;br /&gt;
複数リポジトリにまたがるSub-issuesの作成もサポートされている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Sub-issueの作成と管理 ====&lt;br /&gt;
下表に、Sub-issuesの仕様を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Sub-issuesの仕様&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 最大数 || 1つのIssueに対して最大100個のSub-issuesを作成できる。&lt;br /&gt;
|-&lt;br /&gt;
| ネスト階層 || 最大8段階のネストが可能である。&lt;br /&gt;
|-&lt;br /&gt;
| クロスリポジトリ || 同一組織内の別リポジトリのIssueをSub-issueとして登録できる。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Sub-issueの作成手順を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# 親となるIssueを開く。&lt;br /&gt;
# Issueページ内の[Create sub-issue]ボタンを押下する。&lt;br /&gt;
# 新規作成 または 既存Issueの追加を選択する。&lt;br /&gt;
# 必要な情報を入力して作成する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 進捗の可視化 ====&lt;br /&gt;
Sub-issuesを設定すると、親IssueのページでSub-issuesの完了状況がプログレスバーで表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、表示される情報を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Sub-issuesの進捗表示&lt;br /&gt;
|-&lt;br /&gt;
! 項目 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| 完了数と総数 || 完了したSub-issues数と全体のSub-issues数が表示される。&lt;br /&gt;
|-&lt;br /&gt;
| 完了率バー || クローズ済みのSub-issuesの割合がビジュアルで表示される。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
従来のタスクリスト (チェックボックス) よりも柔軟な管理が可能であり、Sub-issuesへの移行が推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 検索とフィルタリング ==&lt;br /&gt;
==== フィルタ構文 ====&lt;br /&gt;
Issuesの検索バーでは、フィルタ構文を使用して絞り込み検索ができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、主なフィルタ構文を示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ フィルタ構文一覧&lt;br /&gt;
! 構文 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;is:open&amp;lt;/code&amp;gt; || オープン状態のIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;is:closed&amp;lt;/code&amp;gt; || クローズ済みのIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assignee:@me&amp;lt;/code&amp;gt; || 自分が担当者のIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;assignee:username&amp;lt;/code&amp;gt; || 指定ユーザが担当者のIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;label:&amp;quot;bug&amp;quot;&amp;lt;/code&amp;gt; || 指定ラベルが付いたIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;milestone:&amp;quot;v1.0&amp;quot;&amp;lt;/code&amp;gt; || 指定マイルストーンに紐付いたIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;author:username&amp;lt;/code&amp;gt; || 指定ユーザが作成したIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;created:2025-01-01..2025-12-31&amp;lt;/code&amp;gt; || 指定期間内に作成されたIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sort:created-desc&amp;lt;/code&amp;gt; || 作成日時の降順で並べ替える。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;no:assignee&amp;lt;/code&amp;gt; || 担当者が未設定のIssueを表示する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;no:label&amp;lt;/code&amp;gt; || ラベルが未設定のIssueを表示する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
AND / OR演算子を組み合わせることで複合条件の検索が可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ネストは最大5段階まで対応している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== よく使用される検索クエリ ====&lt;br /&gt;
開発でよく使用される検索クエリの例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ よく使用される検索クエリ例&lt;br /&gt;
! クエリ !! 用途&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;is:open assignee:@me&amp;lt;/u&amp;gt; || 自分が担当するオープン中のIssueを確認する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;is:open label:bug&amp;lt;/u&amp;gt; || バグラベルの付いたオープン中のIssueを確認する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;is:open no:assignee label:bug&amp;lt;/u&amp;gt; || 担当者未設定のバグIssueを確認する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;is:open milestone:&amp;quot;v2.0&amp;quot;&amp;lt;/u&amp;gt; || 次のリリースに向けたオープンIssueを確認する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;is:closed author:@me&amp;lt;/u&amp;gt; || 自分が作成したクローズ済みIssueを確認する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;is:open label:&amp;quot;good first issue&amp;quot;&amp;lt;/u&amp;gt; || 初心者向けのオープンIssueを確認する。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;u&amp;gt;is:open sort:created-asc&amp;lt;/u&amp;gt; || 長期間オープンのまま放置されたIssueを確認する。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== タスクリスト ==&lt;br /&gt;
==== タスクリストの記法 ====&lt;br /&gt;
Issueの本文にMarkdownのチェックボックス記法を使用してタスクリストを作成できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
記法例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;&lt;br /&gt;
 ## 対応チェックリスト&lt;br /&gt;
 &lt;br /&gt;
 - [x] 問題の調査&lt;br /&gt;
 - [x] 修正方針の確定&lt;br /&gt;
 - [ ] コードの修正&lt;br /&gt;
 - [ ] テストの実施&lt;br /&gt;
 - [ ] ドキュメントの更新&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
記法のルールを以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;- [ ]&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 未完了のタスクを表す。&lt;br /&gt;
* &amp;lt;code&amp;gt;- [x]&amp;lt;/code&amp;gt;&lt;br /&gt;
*: 完了済みのタスクを表す。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
チェックボックスは、Issueページ上でクリックして切り替えることができる。&amp;lt;br&amp;gt;&lt;br /&gt;
タスクの完了数は、Issue一覧ページでもインジケーターとして表示される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Sub-issuesへの移行 ====&lt;br /&gt;
従来のタスクリストブロック機能は廃止され、Sub-issuesの使用が推奨されている。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Sub-issuesへの移行を推奨する理由を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 独立したトラッキング&lt;br /&gt;
*: 各タスクが独立したIssueとして管理されるため、個別のラベル・担当者・マイルストーン設定が可能になる。&lt;br /&gt;
* 進捗の可視化&lt;br /&gt;
*: 親Issueのページでプログレスバーによる完了率の可視化ができる。&lt;br /&gt;
* クロスリポジトリ対応&lt;br /&gt;
*: 異なるリポジトリのIssueをSub-issueとして紐付けることができる。&lt;br /&gt;
* 検索・フィルタリング&lt;br /&gt;
*: Sub-issuesを個別に検索・フィルタリングできる。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IssueとPull Requestの連携 ==&lt;br /&gt;
==== キーワードによる自動クローズ ====&lt;br /&gt;
Pull Request (PR) の説明文 または コミットメッセージに特定のキーワードとIssue番号を記述することにより、PRのマージ時に関連するIssueを自動的にクローズできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
下表に、自動クローズキーワードを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 自動クローズキーワード一覧&lt;br /&gt;
! キーワード !! バリエーション&lt;br /&gt;
|-&lt;br /&gt;
| close || &amp;lt;u&amp;gt;close&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;closes&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;closed&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| fix || &amp;lt;u&amp;gt;fix&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;fixes&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;fixed&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| resolve || &amp;lt;u&amp;gt;resolve&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;resolves&amp;lt;/u&amp;gt; / &amp;lt;u&amp;gt;resolved&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;&lt;br /&gt;
 ## 変更内容&lt;br /&gt;
 &lt;br /&gt;
 ログインエラーの原因を修正しました。&lt;br /&gt;
 &lt;br /&gt;
 Closes #123&lt;br /&gt;
 &lt;br /&gt;
 ## 関連 Issue&lt;br /&gt;
 &lt;br /&gt;
 Fixes octo-org/octo-repo#100&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
自動クローズが機能する条件を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* デフォルトブランチ (通常は &amp;lt;u&amp;gt;main&amp;lt;/u&amp;gt; または &amp;lt;u&amp;gt;master&amp;lt;/u&amp;gt;) をターゲットにしたPRでのみ有効である。&lt;br /&gt;
* 同一リポジトリのIssueは、&amp;lt;u&amp;gt;Closes #123&amp;lt;/u&amp;gt; の形式で指定する。&lt;br /&gt;
* 別リポジトリのIssueは、&amp;lt;u&amp;gt;Closes octo-org/octo-repo#100&amp;lt;/u&amp;gt; の形式で指定する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クロスリファレンス ====&lt;br /&gt;
IssueやPRの本文・コメントに &amp;lt;code&amp;gt;#番号&amp;lt;/code&amp;gt; を記述することにより、リポジトリ内の他のIssueやPRへの自動リンクが生成される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
クロスリファレンスの使用例を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;&lt;br /&gt;
 この問題は #123 に関連しています。&lt;br /&gt;
 また、#456 で報告された問題と同じ原因である可能性があります。&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
クロスリファレンスの仕様を以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 同一リポジトリ参照&lt;br /&gt;
*: &amp;lt;code&amp;gt;#番号&amp;lt;/code&amp;gt; でIssueまたはPRへのリンクが自動生成される。&lt;br /&gt;
* 別リポジトリ参照&lt;br /&gt;
*: &amp;lt;code&amp;gt;owner/repo#番号&amp;lt;/code&amp;gt; の形式で別リポジトリのIssueやPRを参照できる。&lt;br /&gt;
* PRからIssueへのリンク&lt;br /&gt;
*: PRの右側バーの[Development]セクションに、関連するIssueが表示される。&lt;br /&gt;
* リンク上限&lt;br /&gt;
*: 1つのPRに紐付けられるIssueは最大10件までである。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Git]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>