2025年12月9日火曜日

linuxserver openssh-server でリモートフォーワードを有効にする方法

linuxserver openssh-server でリモートフォーワードを有効にする方法

概要

デフォルトだと無効になっています

環境

  • macOS 15.7.1
  • docker 29.1.2
  • linuxserver/openssh-server 10.0_p1-r10-ls211

compose.yaml

services:
  ssh_server:
    image: ghcr.io/linuxserver/openssh-server
    container_name: ssh_server
    ports:
      - "2222:2222"
      - "10022:10022" # SSHリモートポートフォーワードトンネル用
    environment:
      - PUID=1000
      - PGID=1000
      - PASSWORD_ACCESS=true
      - USER_NAME=test
      - USER_PASSWORD=mypass
    volumes:
      - ./custom-cont-init.d:/custom-cont-init.d:ro
    restart: unless-stopped

custom-cont-init.d/01-sshd-config.sh

#!/bin/bash
# chmod +x config/custom-cont-init.d/01-sshd-config.sh を必ず実行

echo "[custom-init] modifying sshd_config..."

# AllowAgentForwarding
sed -i 's/#AllowAgentForwarding yes/AllowAgentForwarding yes/g' /config/sshd/sshd_config

# AllowTcpForwarding
sed -i 's/AllowTcpForwarding no/AllowTcpForwarding yes/g' /config/sshd/sshd_config

# GatewayPorts
sed -i 's/GatewayPorts no/GatewayPorts yes/g' /config/sshd/sshd_config

# X11Forwarding
sed -i 's/X11Forwarding no/X11Forwarding yes/g' /config/sshd/sshd_config

echo "[custom-init] done."
  • chmod +x config/custom-cont-init.d/01-sshd-config.sh

動作確認

  • docker compose up -d
  • docker compose exec ssh_server cat /config/sshd/sshd_config

GatewayPorts などが yes になっていることを確認します

最後に

カスタムスクリプトを配置するパスが /custom-cont-init.d でした
バージョンによって異なるのでご注意ください

参考サイト

2025年12月8日月曜日

ssh できるコンテナを気軽に立てる方法

ssh できるコンテナを気軽に立てる方法

概要

Mac などで ssh サーバを立てるのが面倒な場合に docker で簡単に構築できます

環境

  • macOS 15.7.1
  • docker 29.1.2
  • linuxserver/openssh-server 10.0_p1-r10-ls211

起動

docker run -d \
  -p 2222:2222 \
  -e PASSWORD_ACCESS=true \
  -e USER_PASSWORD=mypass \
  ghcr.io/linuxserver/openssh-server

ログイン

  • ssh linuxserver.io@192.168.1.100 -p 2222

ユーザを指定する

docker run -d \
  -p 2222:2222 \
  -e PASSWORD_ACCESS=true \
  -e USER_PASSWORD=mypass \
  -e USER_NAME=test \
  ghcr.io/linuxserver/openssh-server
  • ssh test@192.168.1.100 -p 2222

最後に

ssh の検証するときには便利です

参考サイト

2025年12月7日日曜日

ただのうpろだにcurlでファイルをアップロードする

ただのうpろだにcurlでファイルをアップロードする

概要

便利

環境

  • macOS 15.7.1
  • curl 8.17.0

アップロード

  • Basic認証のパスワードは公式のものを使うのでそのまま
  • file にはアップロードするファイルをフルパスで
  • delete_pass には削除用パスワードを設定
  • もし閲覧にも制限を設けたい場合には post_password も設定する
  • 時間制限を設けるパラメータはなさそう
curl -X POST https://tadaup.jp/wp-json/custom/v1/upload \
     -u "API:AoLU ets7 2zh3 gvqc cTEe BHfp" \
     -F "file[]=@/Users/user01/Downloads/G7gvWUFbwAAv6fq.jpeg" \
     -F "title=test with curl" \
     -F "comment=" \
     -F "delete_pass=xxx" \
     -F "post_password=" \
     -F "r18=no"

レスポンス

{"success":true,"post_id":1325317,"url":"https:\/\/tadaup.jp\/070953461325317\/","source_url":"https:\/\/tadaup.jp\/CKqGMnka.jpeg","thumbnail":"https:\/\/tadaup.jp\/CKqGMnka.jpeg"}

url がアップロードしたファイルのリンクです

削除

残念ながら API はないので手動で GUI から削除パスワードを使って削除します
今後実装されるかもです

最後に

アーカイブファイルはアップロードできないのでちゅういしてください
直リンクが発行されるのでそれにアクセスすればアーカイブファイルでもアップロードできます

参考サイト

2025年12月4日木曜日

VSCode で Remote tunnel する

VSCode で Remote tunnel する

概要

操作するファイルがリモートサーバにある場合に vscode.dev という中継サーバを介してローカルで起動している VSCode で編集することができます

環境

  • Ubuntu 24.04
    • code 1.106.3
  • Windows 11
    • VSCode 1.106.3

リモートサーバ側でトンネル作成

  • curl -Lk 'https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-x64' --output vscode_cli.tar.gz
  • tar -xf vscode_cli.tar.gz

これで code というバイナリが入手できます
あとはホームディレクトリに起動して code を起動します

  • cd
  • ./code tunnel

Github Account か Microsoft Account を選択する必要があるので Github Account を選択します

起動すると例のごとくhttps://github.com/login/device にアクセスしてトークンを取得して ./code tunnel に入力してあげます

これでトンネル用の URL が発行されるのでこれをブラウザに入力してもいいのですがそれだと code-server と変わらないので VSCode からアクセスしてみます

VSCode の Remote - Tunnels 拡張をインストールする

  • 左メニューの拡張を選択
  • Remote tunnel を入力して検索
  • 「Remote - Tunnels」拡張をインストール
  • 左メニューに Remote - Tunnels 拡張のアイコンが追加されるので選択
  • さきほど ./code tunnel で起動したサーバが一覧にあるのでそれを選択
  • 初回はブラウザで OAuth の認証が発生するので ./code tunnel と同じ Github Account でログインします
  • 接続に成功すると VSCode が再起動しサーバ上のファイルが操作できるようになります

その他

  • ローカルモードに切り替える場合は切断する必要があるので左下の接続先サーバを選択し「Close Remote Connection」を選択します
  • ./code tunnel 時にはトークンのみですが VSCode 側でトンネルと VSCode を紐づける場合にはブラウザの OAuth が必要になるので VSCode が起動する環境にブラウザがありかつそのブラウザから該当の Github Account でログインできる必要があるので注意しましょう

最後に

普通はこんな使い方しないのでどうしてもローカルで開発できない場合などに使うんだと思います

もしくは Powershell などを使いたくない場合なども使うのかなと思います

参考サイト

2025年11月22日土曜日

Speckit 超入門

Speckit 超入門

概要

code-server + speckit を試してみました
一応アプリは作成してくれましたが生成されるファイルが微妙に違うのでまだサポートしていないのかもしれません

環境

  • Ubuntu 24.04
  • speckit (specify 0.0.22)
  • code-server v4.105.1

インストール

  • uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

初期化

  • specify init speckit_test
    • copilot を選択
    • sh を選択

code-server を開く

  • speckit_test を vscode で開く
  • モデルを Claude Sonnet 4.5 にする

以下 code-server の Github copilot chat のチャット欄で作業します

規則作成

  • /speckit.constitution コード品質、テスト標準、ユーザーエクスペリエンスの一貫性、パフォーマンス要件に焦点を当てた原則を作成します。

/home/devops/work/speckit_test/.github/prompts/speckit.constitution.prompt.md が作成された

仕様作成

  • /speckit.specify 家庭や業務用キッチンで使用できるシンプルで視認性の高いタイマーを、Web ブラウザー経由で提供します。1分、3分、5分を設定するためのボタンを配置します。ボタンを押すと、その時間からカウントダウンが開始されます。カウントダウン中は、残り時間を目立つように表示します。カウントダウン中に再度ボタンを押すと、タイマーがリセットされ、新たなカウントダウンが開始されます。

/home/devops/work/speckit_test/.github/prompts/speckit.specify.prompt.md が作成されました

実装計画作成

  • /speckit.plan HTML5、JavaScript(ES6)、CSS3 で作成してください

/home/devops/work/speckit_test/.github/prompts/speckit.plan.prompt.md が作成されました

作業タスクの作成

  • /speckit.tasks

/home/devops/work/speckit_test/.github/prompts/speckit.tasks.prompt.md が作成されました

実装

  • /speckit.implement

/home/devops/work/speckit_test/.github/prompts/speckit.implement.prompt.md が作成されました

また実際に作成されたコードは以下の通りです

ls -ltrR kitchen-timer/
kitchen-timer/:
total 24
drwxr-xr-x 3 devops docker 4096 Nov 21 13:23 assets
-rw-r--r-- 1 devops docker 1844 Nov 21 13:24 index.html
drwxr-xr-x 2 devops docker 4096 Nov 21 13:24 css
drwxr-xr-x 2 devops docker 4096 Nov 21 13:26 js
-rw-r--r-- 1 devops docker 7522 Nov 21 13:26 README.md

kitchen-timer/assets:
total 4
drwxr-xr-x 2 devops docker 4096 Nov 21 13:23 sounds

kitchen-timer/assets/sounds:
total 0

kitchen-timer/css:
total 8
-rw-r--r-- 1 devops docker 6334 Nov 21 13:24 styles.css

kitchen-timer/js:
total 16
-rw-r--r-- 1 devops docker 2975 Nov 21 13:25 timer.js
-rw-r--r-- 1 devops docker 3650 Nov 21 13:25 audio.js
-rw-r--r-- 1 devops docker 6150 Nov 21 13:26 app.js

動作確認

  • cd speckit_test/kitchen-timer
  • python -m http.server 8000
  • curl localhost:8000

最後に

code-server で speckit を動かしてみました
冒頭にも紹介しましたが挙動が微妙でまだ code-server ではサポートしていないのかもしれません

本当は git コマンドで branch も作成してくれるよういなのですがやってくれませんでした

またモデルが GPT-4.1 だと動きませんでした

続けて修正、エンハンスなどしたい場合は /speckit.specify から再度行います

参考サイト

2025年11月21日金曜日

GCP で CPU 監視する方法

GCP で CPU 監視する方法

概要

コンソールでの手順を紹介します

環境

  • GCP (2025/11/21 時点)

手順

  1. Compute Engine のページを開く
  2. 「VM インスタンス」を選択
  3. 監視したい VM を選択
  4. 「オブザーバビリティ」を選択
  5. 右上にある「推奨アラート」を選択
  6. VM Instance - High CPU Utilization (web) を選択 -> 作成
  7. 「通知チャンネルを使用」で通知したいチャネルを選択 -> 作成

確認

モニタリングにアラートポリシーがあることを確認しましょう

最後に

GCP の VM で CPU 監視する方法を紹介しました
コンソール作業なので UI が変わった場合は手順が変わるので注意してください

しきい値を変えたい場合はポリシーを直接変更すれば OK です

Slack の通知チャネルを作成する方法は以下の参考リンクを参照してください

参考サイト

2025年11月11日火曜日

Ubuntu に uv をインストールする方法

Ubuntu に uv をインストールする方法

概要

グローバルな環境にインストールする方法を紹介します
基本は mcp などに使う場合にこの方法でインストールします

環境

  • Ubuntu 24.04
  • uv 0.9.8

コマンド

curl -LsSf https://astral.sh/uv/install.sh | sh

ログ

downloading uv 0.9.8 x86_64-unknown-linux-gnu
no checksums to verify
installing to /home/devops/.local/bin
  uv
  uvx
everything's installed!

インストールされるパス

ホームディレクトリの .local/bin 配下なので注意してください
PATH が設定されていない場合は PATH に追加しましょう

アップグレードする方法

再度インストールするための curl を叩けば OK です

最後に

pip を使ってインストールする場合はパスや管理方法が変わるので注意しましょう

参考サイト