2026年2月1日日曜日

GeminiCLIでウェブサイトを作成する方法について

 あまプロでは授業でAIを使う事が有ります。
先日、無料プランでGeminiCLIの環境を構築してウェブサイトを作成したので、あメログ。

先ず、LXDでGeminiCLI用のコンテナを作成します。
ホスト(パソコン)に直接GeminiCLIをインストールしても良ぇけど、アンインストール時にあっちこっち削除して回るのが面倒なので、コンテナ内にインストールします。

LXDが未インストールの場合は

#インストール
sudo apt install lxd
#初期化
lxd init
を実行します。

GeminiCLIの利用には無料プランであってもGoogleアカウントが要りますので、作成しておいて下さい。
アカウントの作成方法は…Geminiに聞こう(最近は携帯番号が要るみたいです)。 

LXDでコンテナを作成します。

# イメージはお好みで何となくアルパインの最新版
lxc init images:alpine/edge container-name
#コンテナが作成されている事を確認
lxc list
#コンテナの5173ポートをホストの5173へ転送
sudo lxc config device add container-name http proxy listen=tcp:0.0.0.0:5173 connect=tcp:127.0.0.1:5173 bind=host
#転送設定確認
lxc config device show container-name
#コンテナ起動
lxc start container-name
#コンテナにログイン
lxc exec container-name ash
#アップデート
apk -U upgrade
#nodeとnvmをインストール
apk add nodejs nvm
#バージョン確認
node --version
npm --version
#GeminiCLIインストール
npm install -g @google/gemini-cli
#GeminiCLI起動
gemini
#初回起動時に認証を求められるので、1. Login with Googleを選択します
#選択するとめっちゃ長いURLが表示されますのでそれをコピーして、ホストのブラウザでアクセスします。
#(複数アカウントを持っている場合)どのアカウントを使います?許可します?と訊かれるので、許可します。
#ブラウザにちょっと長い認証コードが表示されるので、コピーしてコンテナのターミナルに貼り付けて、認証完了です
#完了するとこんな感じで表示されます。

表示は英語ですけど、日本語も通じます。
日本語でプロンプト(指示とか質問とか)を入力すると、作業や回答を返してくれます。
例えば

おしゃれなプログラミング教室のウェブサイトを作成して下さい。

と入力すると、カレントディレクトリにウェブサイトを生成してくれます。
生成作業中にセキュリティ上の確認が要る場合は、都度回答する必要があります(基本、日本語で訊いてきます)。
例えばウェブサイトを作成する際にBootstrapReactViteを使って良いか?等です。

取り敢えず、全部の確認に許可で答えると、2〜3分程で下記のファイル群が生成されました。 

.
├── index.html
├── src
├── index.html
├── package.json
├── tsconfig.json
└── vite.config.ts

サイトをビルドする為にnpmコマンドを実行する必要があるのですが、GeminiCLIはコマンドを実行できなかったので、GeminiCLIを終了します(これは設定で回避できるかも)。
GeminiCLIを終了するには、Ctrl+Dを2回押し(または/quit)です。
終了時にどれだけGeminiCLIを利用したかが表示されます。
無料プランには限りが有りますので、ご注意を。

GeminiCLIを終了後、手動で下記コマンドを実行します。
というか、GeminiCLIが「実行できなかったんで、自分で下記を実行して」と出力しています。

#必要なパッケージインストール
npm install
#ビルドしてウェブサーバ起動 外部からのアクセスを許可
npm run dev -- --host 0.0.0.0

では最後にホストのブラウザで確認します。 
http://localhost:5173/


ちゃんと生成されてますね。
レスポンシブデザイン(スマホ表示)も問題なさそうです。

以上、GeminiCLIでウェブサイトを作成する方法でした。

最後に使用したコンテナを削除して終了(継続して使用する場合は不要)です。

#コンテナ停止
lxc stop container-name
#コンテナ削除
lxc delete container-name

0 件のコメント:

コメントを投稿

つっこみ