Files
BatchuKVM/server/README_JA.md

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 では互換性がありません。

  1. ツールチェーンのインストール

    1. 以下のリンクからツールチェーンをダウンロードします: ダウンロードリンク
    2. ファイルを解凍し、host-tools/gcc/riscv64-linux-musl-x86_64/bin ディレクトリを PATH 環境変数に追加します。
    3. riscv64-unknown-linux-musl-gcc -v を実行します。バージョン情報が表示されれば、インストールは成功です。
  2. プロジェクトのコンパイル

    1. プロジェクトのルートディレクトリから cd server を実行します。
    2. go mod tidy を実行して Go の依存関係をインストールします。
    3. 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 を実行してプロジェクトをコンパイルします。
    4. コンパイルが完了すると、NanoKVM-Server という名前の実行ファイルが生成されます。
  3. RPATH の変更

    1. sudo apt install patchelf または pip install patchelf を実行して patchelf をインストールします。
    2. patchelf --version を実行します。バージョンが 0.14 以上であることを確認します。
    3. patchelf --add-rpath \$ORIGIN/dl_lib NanoKVM-Server を実行して、実行ファイルの RPATH を変更します。
  4. アプリケーションのデプロイ

    1. デプロイ前に、ブラウザでアプリケーションを最新バージョンに更新します。手順はこちらを参照してください。
    2. コンパイルして生成された NanoKVM-Server ファイルを使用して、NanoKVM の /kvmapp/server/ ディレクトリ内の元のファイルを置き換えます。
    3. NanoKVM で /etc/init.d/S95nanokvm restart を実行してサービスを再起動します。

手動更新

ファイルのアップロードには SSH が必要です。Web 設定で有効にしてください: 設定 > SSH

  1. GitHub から最新のアプリケーションをダウンロードします。
  2. ダウンロードしたファイルを解凍し、解凍したフォルダーの名前を kvmapp に変更します。
  3. NanoKVM 上の既存の /kvmapp ディレクトリをバックアップし、新しい kvmapp フォルダーに置き換えます。
  4. NanoKVM で /etc/init.d/S95nanokvm restart を実行してサービスを再起動します。