「OpenCodeの設定 - リモートアクセス」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == OpenCodeはクライアント・サーバアーキテクチャを備えており、リモートアクセス機能を標準でサポートしている。<br> <br> <code>opencode serve</code> コマンドを使用することで、ヘッドレスHTTPサーバとして動作させ、別のPCからアクセスできる。<br> また、<code>opencode web</code> コマンドを使用することで、WebブラウザベースのWebインターフェースを…」
 
編集の要約なし
22行目: 22行目:
*: ファイアウォール設定、サービス登録に必要である。
*: ファイアウォール設定、サービス登録に必要である。
<br>
<br>
==== サーバ側 (RHEL / SUSE) ====
* OpenCodeのインストール
*: <code>curl</code> または <code>npm</code> コマンドでインストールする。
*: <br>
* ネットワーク接続
*: クライアントからサーバへのネットワーク接続が必要である。
*: <br>
* root権限またはsudo権限
*: firewalld設定、systemdサービス登録に必要である。
==== クライアント側 (Windows 11) ====
==== クライアント側 (Windows 11) ====
* Webブラウザ
* Webブラウザ
50行目: 59行目:
<br>
<br>
===== Web UI付きサーバモード =====
===== Web UI付きサーバモード =====
ブラウザからアクセス可能なWeb UIを提供するサーバを起動する。<br>
Webブラウザからアクセス可能なWeb UIを提供するサーバを起動する。<br>
<br>
<br>
  opencode web --hostname 0.0.0.0 --port 4096
  opencode web --hostname 0.0.0.0 --port 4096
56行目: 65行目:
サーバ起動時の出力例を以下に示す。<br>
サーバ起動時の出力例を以下に示す。<br>
<br>
<br>
  Local access:      http://localhost:4096
Local access:      <nowiki>http://localhost:4096</nowiki>
  Network access:    http://192.168.1.100:4096
Network access:    <nowiki>http://192.168.1.100:4096</nowiki>
<br>
<br>
===== 起動オプション =====
===== 起動オプション =====
83行目: 92行目:
  <syntaxhighlight lang="powershell">
  <syntaxhighlight lang="powershell">
  # Windows (PowerShell)
  # Windows (PowerShell)
  $env:OPENCODE_SERVER_PASSWORD = "your-secure-password"
  $env:OPENCODE_SERVER_PASSWORD = "<任意のパスワード>" # これはHTTPベーシック認証のパスワードとして使用される
                                                      # クライアントがサーバにアクセスする時に入力を求められる
  $env:OPENCODE_SERVER_USERNAME = "opencode"  # オプション (デフォルト: opencode)
  $env:OPENCODE_SERVER_USERNAME = "opencode"  # オプション (デフォルト: opencode)
   
   
119行目: 129行目:
   
   
  # 環境変数を設定
  # 環境変数を設定
  nssm set OpenCode-Server AppEnvironmentExtra OPENCODE_SERVER_PASSWORD=your-secure-password
  nssm set OpenCode-Server AppEnvironmentExtra OPENCODE_SERVER_PASSWORD=<任意のパスワード>
   
   
  # 作業ディレクトリを設定
  # 作業ディレクトリを設定
162行目: 172行目:
# [名前:]項目では、<u>OpenCode Server</u> と入力して完了する。
# [名前:]項目では、<u>OpenCode Server</u> と入力して完了する。
# <br>
# <br>
<br><br>
== サーバ側の設定 (RHEL / SUSE) ==
==== OpenCodeのインストール ====
OpenCodeのインストール方法は、[[インストール - OpenCode]]のページを参照すること。<br>
<br>
==== サーバの起動 ====
===== ヘッドレスサーバモード =====
APIのみを提供するヘッドレスサーバを起動する。<br>
<br>
opencode serve --hostname 0.0.0.0 --port 4096
<br>
===== Web UI付きサーバモード =====
ブラウザからアクセス可能なWeb UIを提供するサーバを起動する。<br>
<br>
opencode web --hostname 0.0.0.0 --port 4096
<br>
サーバ起動時の出力例を以下に示す。<br>
<br>
Local access:      <nowiki>http://localhost:4096</nowiki>
Network access:    <nowiki>http://192.168.1.100:4096</nowiki>
<br>
==== 認証の設定 ====
サーバへのアクセスを保護するために、HTTPベーシック認証を設定する。<br>
<br>
===== 環境変数の設定 =====
<syntaxhighlight lang="sh">
export OPENCODE_SERVER_PASSWORD="your-secure-password"
export OPENCODE_SERVER_USERNAME="opencode"  # オプション (デフォルト: opencode)
# 認証付きでサーバ起動
opencode web --hostname 0.0.0.0 --port 4096
</syntaxhighlight>
<br>
==== systemdサービスとしての登録 ====
OpenCodeサーバをsystemdサービスとして登録して、バックグラウンドで自動起動するように設定する。<br>
<br>
===== ユーザサービスとしての登録 =====
ユーザ権限で動作するサービスとして登録する方法である。<br>
<br>
Systemdサービスファイルを作成する。<br>
mkdir -p ~/.config/systemd/user/
vi ~/.config/systemd/user/opencode-web.service
<br>
<syntaxhighlight lang="ini">
[Unit]
Description=OpenCode Web Server
After=network.target
[Service]
Type=simple
ExecStart=/path/to/opencode web --hostname 0.0.0.0 --port 4096
Environment=OPENCODE_SERVER_PASSWORD=<任意のパスワード>
WorkingDirectory=<任意のプロジェクトディレクトリ  例: /home/<ユーザ名>/projects>
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
</syntaxhighlight>
<br>
===== ユーザサービスの管理コマンド =====
# サービスの有効化 (ログイン時自動起動)
systemctl --user enable opencode-web
# サービスの開始
systemctl --user start opencode-web
# サービスの状態確認
systemctl --user status opencode-web
# サービスの停止
systemctl --user stop opencode-web
# サービスの再起動
systemctl --user restart opencode-web
# サービスの無効化
systemctl --user disable opencode-web
<br>
===== システムサービスとしての登録 =====
システム全体で動作するサービスとして登録する場合、以下のファイルを作成する。<br>
<br>
sudo vi /etc/systemd/system/opencode-web.service
<br>
<syntaxhighlight lang="ini">
[Unit]
Description=OpenCode Web Server
After=network.target
[Service]
Type=simple
User=opencode
Group=opencode
ExecStart=/path/to/opencode web --hostname 0.0.0.0 --port 4096
Environment=OPENCODE_SERVER_PASSWORD=<任意のパスワード>
WorkingDirectory=<任意のプロジェクトディレクトリ  例: /opt/opencode/projects>
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
</syntaxhighlight>
<br>
===== システムサービスの管理コマンド =====
# systemdの設定を再読み込み
sudo systemctl daemon-reload
# サービスの有効化
sudo systemctl enable opencode-web
# サービスの開始
sudo systemctl start opencode-web
# サービスの状態確認
sudo systemctl status opencode-web
# サービスのログ確認
sudo journalctl -u opencode-web -f
<br>
==== ファイアウォール設定 (firewalld) ====
===== ポートの開放 =====
# ポート4096を開放 (一時的)
sudo firewall-cmd --zone=public --add-port=4096/tcp
# ポート4096を開放 (永続的)
sudo firewall-cmd --zone=public --add-port=4096/tcp --permanent
# 設定を反映
sudo firewall-cmd --reload
<br>
===== 設定の確認 =====
# 開放されているポートを確認
sudo firewall-cmd --zone=public --list-ports
# 全ての設定を確認
sudo firewall-cmd --zone=public --list-all
<br>
===== サービスとして定義する方法 =====
カスタムサービスとして定義することにより、管理しやすくなる。<br>
<br>
sudo vi /etc/firewalld/services/opencode.xml
<br>
<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>OpenCode Server</short>
  <description>OpenCode remote access server</description>
  <port protocol="tcp" port="4096"/>
</service>
</syntaxhighlight>
<br>
# サービスを追加
sudo firewall-cmd --zone=public --permanent --add-service=opencode
sudo firewall-cmd --reload
<br><br>
<br><br>


183行目: 348行目:
# 設定画面を開く。
# 設定画面を開く。
# サーバ選択ダイアログでデフォルトサーバURLを設定する。
# サーバ選択ダイアログでデフォルトサーバURLを設定する。
# http://server-ip:4096 を入力する。
# http://<サーバのIPアドレス>:4096 を入力する。
# 接続を確認する。
# 接続を確認する。
<br>
<br>
404行目: 569行目:
  taskkill /PID <pid> /F
  taskkill /PID <pid> /F
  </syntaxhighlight>
  </syntaxhighlight>
<br>
===== Linux (RHEL / SUSE) の場合 =====
<syntaxhighlight lang="bash">
# 使用中のポートを確認
sudo ss -tlnp | grep :4096
# または lsofを使用
sudo lsof -i :4096
# プロセスを終了
sudo kill <pid>
</syntaxhighlight>
<br>
<br>
==== 認証エラー ====
==== 認証エラー ====
417行目: 594行目:
  echo $env:OPENCODE_SERVER_PASSWORD
  echo $env:OPENCODE_SERVER_PASSWORD
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<syntaxhighlight lang="bash">
# Linux (bash)
echo $OPENCODE_SERVER_USERNAME
echo $OPENCODE_SERVER_PASSWORD
</syntaxhighlight>
<br>
<br>
==== ログの確認方法 ====
==== ログの確認方法 ====
432行目: 615行目:
===== デバッグモードでの起動 =====
===== デバッグモードでの起動 =====
  opencode web --hostname 0.0.0.0 --port 4096 --log-level DEBUG
  opencode web --hostname 0.0.0.0 --port 4096 --log-level DEBUG
<br>
==== systemdサービスのトラブルシューティング (Linux) ====
===== サービスが起動しない場合 =====
* サービスファイルのパスが正しいか確認する。
*: <br>
* ExecStartのパスを確認する。
*: <code>which opencode</code> で実際のパスを確認し、サービスファイルのパスと照合する。
*: <br>
* 環境変数が正しく設定されているか確認する。
*: <br>
===== サービスのログを確認 =====
<syntaxhighlight lang="bash">
# ユーザサービスのログ
journalctl --user -u opencode-web -f
# システムサービスのログ
sudo journalctl -u opencode-web -f
# 直近のログを確認
sudo journalctl -u opencode-web -n 50
</syntaxhighlight>
<br>
===== ユーザサービスがログイン時に自動起動しない場合 =====
ユーザサービスをログイン時に自動起動させるには、lingeringを有効にする必要がある。<br>
<syntaxhighlight lang="bash">
# lingeringを有効化
loginctl enable-linger $USER
# 確認
ls /var/lib/systemd/linger
</syntaxhighlight>
<br>
<br>
==== WSLでの問題 ====
==== WSLでの問題 ====
516行目: 730行目:
{{#seo:
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,OpenCode,Remote Access,Server,Client,Windows Server,Windows 11,GLM-5,Z.ai,SSH,HTTPS,nginx,NSSM,SUSE,Linux
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,OpenCode,Remote Access,Server,Client,Windows Server,Windows 11,GLM-5,Z.ai,SSH,HTTPS,nginx,NSSM,SUSE,Linux,RHEL,systemd,firewalld
|description={{PAGENAME}} - OpenCodeのリモートアクセス機能とWindows Server/Windows 11環境での設定方法 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|description={{PAGENAME}} - OpenCodeのリモートアクセス機能とWindows Server/Windows 11/RHEL/SUSE Linux環境での設定方法 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:設定]]
[[カテゴリ:設定]]