4.9 KiB
4.9 KiB
NanoKVM サーバー
これは NanoKVM のバックエンドサーバーの実装です。
詳細なドキュメントについては、Wiki を参照してください。
構造
server
├── common // 共通ユーティリティコンポーネント
├── config // サーバー設定
├── dl_lib // 共有オブジェクトライブラリ
├── include // 共有オブジェクトのヘッダーファイル
├── logger // ロギングシステム
├── middleware // サーバーミドルウェアコンポーネント
├── proto // API リクエスト/レスポンス定義
├── router // API ルートハンドラ
├── service // コアサービスの実装
├── utils // ユーティリティ関数
└── main.go
設定
設定ファイルのパスは /etc/kvm/server.yaml です。
proto: http
port:
http: 80
https: 443
cert:
crt: server.crt
key: server.key
# ログレベル (debug/info/warn/error)
# 注意: 本番環境では 'info' または 'error' を使用し、'debug' は開発環境でのみ使用してください
logger:
level: info
file: stdout
# 認証設定 (enable/disable)
# 注意: 認証を無効にするのは開発環境でのみ行ってください
authentication: enable
jwt:
# JWT 秘密鍵の設定。 空のままにすると、サーバー起動時にランダムな 64 バイトの鍵が自動的に生成されます。
secretKey: ""
# JWT トークンの有効期限(秒単位)。 デフォルト: 2678400 (31 日)
refreshTokenDuration: 2678400
# ユーザーがログアウトすると、すべての JWT トークンが無効になります。 デフォルト: true
revokeTokensOnLogout: true
# カスタム STUN サーバーのアドレス
stun: stun.l.google.com:19302
# カスタム TURN サーバーのアドレスと認証情報
turn:
turnAddr: turn.cloudflare.com:3478
turnUser: example_user
turnCred: example_cred
コンパイルとデプロイ
注意: Linux オペレーティングシステム (x86-64) を使用してください。このビルドプロセスは ARM、Windows、macOS では互換性がありません。
-
ツールチェーンのインストール
- 以下のリンクからツールチェーンをダウンロードします: ダウンロードリンク。
- ファイルを解凍し、
host-tools/gcc/riscv64-linux-musl-x86_64/binディレクトリを PATH 環境変数に追加します。 riscv64-unknown-linux-musl-gcc -vを実行します。バージョン情報が表示されれば、インストールは成功です。
-
プロジェクトのコンパイル
- プロジェクトのルートディレクトリから
cd serverを実行します。 go mod tidyを実行して Go の依存関係をインストールします。CGO_ENABLED=1 GOOS=linux GOARCH=riscv64 CC=riscv64-unknown-linux-musl-gcc CGO_CFLAGS="-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d" go buildを実行してプロジェクトをコンパイルします。- コンパイルが完了すると、
NanoKVM-Serverという名前の実行ファイルが生成されます。
- プロジェクトのルートディレクトリから
-
RPATH の変更
sudo apt install patchelfまたはpip install patchelfを実行して patchelf をインストールします。patchelf --versionを実行します。バージョンが 0.14 以上であることを確認します。patchelf --add-rpath \$ORIGIN/dl_lib NanoKVM-Serverを実行して、実行ファイルの RPATH を変更します。
-
アプリケーションのデプロイ
- デプロイ前に、ブラウザでアプリケーションを最新バージョンに更新します。手順はこちらを参照してください。
- コンパイルして生成された
NanoKVM-Serverファイルを使用して、NanoKVM の/kvmapp/server/ディレクトリ内の元のファイルを置き換えます。 - NanoKVM で
/etc/init.d/S95nanokvm restartを実行してサービスを再起動します。
手動更新
ファイルのアップロードには SSH が必要です。Web 設定で有効にしてください:
設定 > SSH
- GitHub から最新のアプリケーションをダウンロードします。
- ダウンロードしたファイルを解凍し、解凍したフォルダーの名前を
kvmappに変更します。 - NanoKVM 上の既存の
/kvmappディレクトリをバックアップし、新しいkvmappフォルダーに置き換えます。 - NanoKVM で
/etc/init.d/S95nanokvm restartを実行してサービスを再起動します。