uVersion
日本語
ダウンロード →

Wiki

Windows へのインストール

PowerShell 一行:アクティベーションコード、winget 経由の PostgreSQL、Windows サービス、ファイアウォール、TLS 証明書。

Windows 10、11 または Windows Server 2019 以降(x64)。PowerShell 一行でインストールします。

インストール

1. PowerShell を管理者として開く

PowerShell アイコンを右クリック → 管理者として実行。 それ以外の方法では、スクリプトは実行を拒否し、その旨を伝えます。

2. インストールコマンドを貼り付ける

いま開いたウィンドウに、そのまま貼り付ける一行です:

iwr https://uversion.io/downloads/server/install.ps1 -UseBasicParsing | iex

スクリプトは目の前で次を順に実行します:

  • アクティベーションコードの入力を求めます。尋ねられる唯一の質問です:次の ステップを参照してください
  • バイナリのダウンロードとアーカイブの検証
  • PostgreSQL がなければ winget で導入します(約 2 分)
  • データベース、ロール、Windows サービスの作成と、ファイアウォールの開放 (8443、加えてフォールバックの 8080)
  • プログラムと機能のエントリの登録
  • サービスの起動、自己署名 TLS 証明書の生成、続いて管理者パスワード証明書の SHA-256 フィンガープリントの表示

すべては PowerShell ウィンドウ内で行われ、各ステップを確認できます。Linux の sudo apt install に相当する Windows 版です。

3. アクティベーションコードを入力する

尋ねられる唯一の質問です:ほかの選択はすべて、後述のパラメータで 行います。入力欄は 3 つの形式を受け付けます:短いコード UV-XXXX-XXXX-XXXX、完全なライセンスキーを含むファイルへのパス、 またはそのキーを直接貼り付けたもの。最初の形式の場合にのみ、スクリプトは licence.uversion.io に接続してコードをキーと交換します。

4. 最後の概要を控える

インストールは枠で囲まれた表示で終わります:admin ユーザー名、一時 パスワード、サーバーアドレス、証明書のフィンガープリント。これらを控えてください。

インストール終了時に表示される概要:admin ユーザー名、一時パスワード、サーバーアドレス。

ウィンドウを早く閉じすぎた場合でも、パスワードが変更されていない かぎり、まだディスク上に残っています:

Get-Content "C:\ProgramData\uVersion\initial-admin-password"

このファイルはパスワードを変更するとすぐに消えます: したがって「Cannot find path」エラーは、変更がすでに行われたことを意味します。

続いて 初回ログイン に進めます。

Windows Server 2019 と 2022:まず PostgreSQL

winget は Windows Server 2019 にも Windows Server 2022 にも存在しません。その場合スクリプトはそこで止まり、その旨を はっきりと伝えるメッセージを表示します。これは故障ではありません:まず PostgreSQL 16 を手動でインストールし、同じコマンドを再実行してください。スクリプトは既存の PostgreSQL サービスを検出し、新たに導入する代わりにそれを使用します。

非対話モードの変種(CI、スクリプト化されたデプロイ)

短い形式 iwr ... | iexいかなるパラメータも 受け取れません:引数を渡さずにスクリプトを実行するため、末尾に付けた -DataDir は 黙って無視されます。オプションを渡したい場合は、明示的なスクリプトブロックを構築する 以下の形式を使ってください。

& ([scriptblock]::Create((iwr https://uversion.io/downloads/server/install.ps1 -UseBasicParsing).Content)) `
    -LicenceKey "UV-XXXX-XXXX-XXXX" -DataDir "D:\uVersion" -DbOnDataDir

受け付けられる 9 つのパラメータ:

パラメータ既定値役割
-LicenceKey(尋ねられる) アクティベーションコード、または完全なライセンスキー。質問を省きます。
-InstallDirC:\Program Files\uVersion バイナリの配置先。
-DataDirC:\ProgramData\uVersion データ、設定、シークレットの配置先。容量が増えていくフォルダなので、大きな ディスクに置くべきものです。
-DbOnDataDir無効 PostgreSQL データベースもデータフォルダに置き、残った 1 台のディスクだけで サーバーを再構築できるようにします。下の囲みを参照してください。
-Port8080 プレーン HTTP のフォールバックポート。設定で TLS を無効にした場合にのみ 使われます。通常の HTTPS ポートは 8443 です。
-BindAddress0.0.0.0 待ち受けインターフェース。既定ではすべてで待ち受けます。
-DownloadUrluversion.io アーカイブの取得元。内部ミラーからインストールする場合に変更します。
-Reconfigure無効 すでに存在していても config.toml を書き換えます。
-Update無効 既存インストールのバイナリを更新してサービスを再起動します。PostgreSQL、 ライセンス、設定には手を触れません。管理パネルの「更新」ボタンが起動するのが これです。

-DbOnDataDir は、1 台のディスクだけでサーバーを 復旧できるかどうかを決めます。これがないと PostgreSQL データベースは別に残ります: マシンが壊れた場合、残ったデータディスクにはファイルの内容は入っていますが、リビジョンも、 アカウントも、ロックも、権限も一切ありません。これがあれば、1 台のディスクに加えて PostgreSQL とこのスクリプトがあれば、別の場所でサーバーを再構築できます。引き換えに:その ディスクはライセンスキーとパスワードも保持することになり、データベースはそれを作成した PostgreSQL のメジャーバージョンでしか再び開けません。

ファイルの保存先

すべては既定でデータフォルダ C:\ProgramData\uVersion に置かれます: 設定config.toml)、バージョン管理されたファイルの内容 (data\chunks)、TLS 証明書とそのフィンガープリント (data\tls)、そして初期管理者パスワードです。

このフォルダには 3 つのシークレットも平文で入っていますlicence-key(ライセンスキー)、db-password(uVersion データベースのパスワード)、postgres-superuser-password(PostgreSQL の 管理者アカウントのパスワード)。これらは管理者専用の権限で保護されています。この フォルダを金庫のように扱ってください:オープンなネットワーク共有にコピーせず、ディスクが あなたの管理下を離れる前にこれらのファイルを消去してください。

config.toml を手動で変更したら、反映させるためにサービスを再起動して ください:

Restart-Service uVersionServer

インストールの確認

独立した 4 つの確認です。別のデータフォルダを選んだ場合は C:\ProgramData\uVersion をそれに置き換えてください。

1. サービスが動いている

Get-Service uVersionServer

期待される結果:Status: Running

2. サーバーが 8443 で HTTPS を待ち受けている

Get-NetTCPConnection -LocalPort 8443 -State Listen

1 行が表示されるはずです。サービスが動いているのに何も出ない場合は、たいてい設定で TLS が無効にされています:その場合サーバーはプレーン HTTP に切り替わり、8443 は もう待ち受けません。

3. 証明書のフィンガープリントを再表示する

Get-Content "C:\ProgramData\uVersion\data\tls\fingerprint"

これは各端末が初回接続時に確認するフィンガープリントです。

4. 有効な設定を読み直す

Get-Content "C:\ProgramData\uVersion\config.toml"

サービスが起動を拒否する場合、その理由を見る最も直接的な 方法は、バイナリをフォアグラウンドで起動することです:起動エラーが そのままウィンドウに表示されます。これは、失敗を検出したときにインストールスクリプト 自身が提案するコマンドでもあります。

$env:CONFIG_PATH = 'C:\ProgramData\uVersion\config'
& 'C:\Program Files\uVersion\uversion-server.exe'

そのあと Ctrl+C で止め、Start-Service uVersionServer を実行します。サービスが エラーを出すところまで起動すらしない場合、Windows のイベントビューアー (eventvwr.msc)がシステムログのソース Service Control Manager に記録します。そこに uVersion という名前の アプリケーションログを探さないでください:サーバーは標準出力に書き出すだけで、Windows の イベントソースは登録しません。したがって Get-EventLog -Source uVersionServer のようなコマンドは何も返しません。

アンインストール

注意:以下のコマンドはリポジトリ、履歴、ユーザーアカウント、設定を 削除します。元に戻せるようにしたい場合は、データベースをバックアップし、データフォルダを コピーしてください。

同等の方法が 2 つあります。どちらも同じスクリプト(uninstall.ps1)を実行し、 サービス、ファイアウォール、マシンの環境変数、データフォルダ、バイナリ、プログラムと機能の エントリ、PostgreSQL データベースを処理します。

方法 1:プログラムと機能から

  1. Win+R → appwiz.cpl → Enter
  2. リストから uVersion Server を見つけます
  3. 右クリック → アンインストール
  4. 管理者権限の PowerShell ウィンドウが開き、スクリプトが表示されながら実行されます

方法 2:PowerShell を管理者として実行

iwr https://uversion.io/downloads/server/uninstall.ps1 -UseBasicParsing | iex

スクリプトは開始時に 2 つのパスを表示し、最後に検証ブロックを表示します:サービス、 インストールフォルダ、データフォルダ、プログラムと機能のエントリについて、緑色の "OK absent" が表示されるはずです。

2026 年 8 月より前に行ったカスタムインストールの場合。 アンインストールスクリプトは、実際に使われたパスを今では自動で見つけます:インストールが それらをプログラムと機能のエントリの隣に記録し、アンインストールがそれを読み戻します。 したがって、カスタムの -DataDir を選んでいたとしても、何も指定する必要は ありません。

常にそうだったわけではありません:この修正より前のインストールはパスを 記録しておらず、その場合アンインストールは既定値に戻ります。この状況に該当しかつ パスをカスタマイズしていた場合は、それらを明示的に渡してください。さもないと -DbOnDataDir が守るはずだったデータベースが削除される一方で、シークレットは そのまま残るおそれがあります:

$body = (iwr "https://uversion.io/downloads/server/uninstall.ps1" -UseBasicParsing).Content
if ($body -is [byte[]]) { $body = [Text.Encoding]::UTF8.GetString($body) }
& ([scriptblock]::Create($body)) -InstallDir "D:\uVersion\bin" -DataDir "D:\uVersion"

PostgreSQL もアンインストールしますか?

デフォルトでは uninstall.ps1 は PostgreSQL に触れません:他のアプリが 使用している可能性があります。あわせて削除するには:

$body = (iwr "https://uversion.io/downloads/server/uninstall.ps1" -UseBasicParsing).Content
if ($body -is [byte[]]) { $body = [Text.Encoding]::UTF8.GetString($body) }
& ([scriptblock]::Create($body)) -RemovePostgreSQL

[byte[]] のチェックは必要です:配信されるコンテンツの種類によって、 Invoke-WebRequest -UseBasicParsing はレスポンスの本文をバイト配列または 文字列で返すことがあります。上記のパターンは両方のケースで動作します。

注意-RemovePostgreSQL は uVersion のデータベースだけでなく、 マシン上のすべての PostgreSQL インストールを削除します。他に何も これを使用していないと確信できる場合にのみ使用してください。