📢 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ブラウザからアクセス可能な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: <nowiki>http://localhost:4096</nowiki> | |||
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 = " | $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= | 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:// | # 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 | |description={{PAGENAME}} - OpenCodeのリモートアクセス機能とWindows Server/Windows 11/RHEL/SUSE Linux環境での設定方法 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | ||
}} | }} | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:設定]] | [[カテゴリ:設定]] | ||