uVersion
Português
Baixar →

Wiki

Instalar no Windows

Uma linha de PowerShell: código de ativação, PostgreSQL via winget, serviço do Windows, firewall, certificado TLS.

Windows 10, 11 ou Windows Server 2019+ (x64). Instalação com uma única linha de PowerShell.

Instalar

1. Abrir o PowerShell como Administrador

Clique com o botão direito no ícone do PowerShell → Executar como administrador. Caso contrário, o script se recusa a iniciar, e avisa você.

2. Colar o comando de instalação

Uma única linha, para colar tal como está na janela que você acabou de abrir:

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

O script então executa, diante dos seus olhos:

  • a solicitação do código de ativação, a única pergunta feita: veja a etapa seguinte
  • o download do binário e a verificação do arquivo
  • a instalação do PostgreSQL via winget se estiver ausente (cerca de 2 minutos)
  • a criação do banco de dados, da função e do serviço do Windows, e a abertura do firewall (8443, mais 8080 de fallback)
  • o registro da entrada em Programas e Recursos
  • o início do serviço, a geração do certificado TLS autoassinado e, em seguida, a exibição da senha de administrador e da impressão digital SHA-256 do certificado

Tudo acontece na sua janela do PowerShell, você vê cada etapa. É o equivalente no Windows ao sudo apt install do Linux.

3. Digitar o código de ativação

É a única pergunta feita: todas as outras escolhas passam por parâmetros, descritos mais abaixo. O campo aceita três formas: o código curto UV-XXXX-XXXX-XXXX, um caminho para um arquivo que contém sua chave de licença completa, ou essa chave colada diretamente. Somente com a primeira forma, o script contata licence.uversion.io para trocar o código pela chave.

4. Anotar o resumo final

A instalação termina com uma caixa: usuário admin, senha temporária, endereço do servidor e impressão digital do certificado. Anote-os.

O resumo exibido ao fim da instalação: usuário admin, senha temporária e endereço do servidor.

Se a janela foi fechada rápido demais, a senha ainda está no disco enquanto não tiver sido alterada:

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

Esse arquivo desaparece assim que você altera a senha: um erro "Cannot find path" significa, portanto, que a alteração já ocorreu.

Em seguida, você pode seguir Primeiro login.

Windows Server 2019 e 2022: PostgreSQL primeiro

O winget não existe no Windows Server 2019 nem no Windows Server 2022. O script então para imediatamente, com uma mensagem que avisa você explicitamente. Não é uma falha: instale primeiro o PostgreSQL 16 manualmente e execute novamente o mesmo comando. O script detecta o serviço PostgreSQL existente e o utiliza em vez de instalar um.

Variante não interativa (CI, implantação com scripts)

A forma curta iwr ... | iex não pode receber nenhum parâmetro: ela executa o script sem lhe passar argumentos, e um -DataDir adicionado ao final seria silenciosamente ignorado. Assim que você quiser passar uma opção, use a forma abaixo, que constrói um bloco de script explícito.

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

Os nove parâmetros aceitos:

ParâmetroPadrãoFunção
-LicenceKey(perguntado) Código de ativação, ou chave de licença completa. Evita a pergunta.
-InstallDirC:\Program Files\uVersion Onde o binário fica.
-DataDirC:\ProgramData\uVersion Onde ficam seus dados, a configuração e os segredos. É a pasta que cresce, portanto a que deve ser colocada no seu disco grande.
-DbOnDataDirdesativado Coloca também o banco de dados PostgreSQL na pasta de dados, para que um único disco sobrevivente baste para reconstruir o servidor. Veja a caixa abaixo.
-Port8080 Porta de fallback em HTTP simples, usada apenas se você desativar o TLS na configuração. A porta HTTPS normal é 8443.
-BindAddress0.0.0.0 Interface de escuta. O padrão escuta em todas.
-DownloadUrluversion.io Origem do arquivo. Altere para instalar a partir de um espelho interno.
-Reconfiguredesativado Reescreve o config.toml mesmo que ele já exista.
-Updatedesativado Atualiza o binário de uma instalação existente e reinicia o serviço, sem mexer no PostgreSQL, na licença nem na configuração. É o que o botão "Atualizar" do painel de administração aciona.

O -DbOnDataDir decide se um único disco basta para restabelecer seu servidor. Sem ele, o banco de dados PostgreSQL fica à parte: se a máquina morrer, o disco de dados sobrevivente contém o conteúdo dos seus arquivos, mas nenhuma revisão, nenhuma conta, nenhum bloqueio nem nenhuma permissão a mais. Com ele, um único disco mais o PostgreSQL e este script bastam para reconstruir o servidor em outro lugar. Em contrapartida: esse disco carrega então também a chave de licença e as senhas, e o banco de dados só pode ser reaberto pela versão principal do PostgreSQL que o criou.

Onde os arquivos ficam

Tudo vive na pasta de dados, C:\ProgramData\uVersion por padrão: a configuração (config.toml), o conteúdo dos seus arquivos versionados (data\chunks), o certificado TLS e sua impressão digital (data\tls) e a senha de administrador inicial.

Esta pasta também contém três segredos em texto claro: licence-key (sua chave de licença), db-password (a senha do banco de dados uVersion) e postgres-superuser-password (a da conta de administrador do PostgreSQL). Eles são protegidos por permissões reservadas aos administradores. Trate esta pasta como um cofre: não a copie para um compartilhamento de rede aberto, e apague estes arquivos antes que um disco deixe de estar sob seu controle.

Após qualquer modificação manual do config.toml, reinicie o serviço para que ela seja aplicada:

Restart-Service uVersionServer

Verificar a instalação

Quatro verificações independentes. Substitua C:\ProgramData\uVersion pela sua pasta de dados se você escolheu outra.

1. O serviço está em execução

Get-Service uVersionServer

Esperado: Status: Running.

2. O servidor escuta em HTTPS na 8443

Get-NetTCPConnection -LocalPort 8443 -State Listen

Uma linha deve aparecer. Nada, enquanto o serviço está em execução, geralmente significa que o TLS foi desativado na configuração: o servidor passa então para HTTP simples e a 8443 não escuta mais.

3. Reexibir a impressão digital do certificado

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

É a impressão digital que cada estação confirma na sua primeira conexão.

4. Reler a configuração ativa

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

Se o serviço se recusar a iniciar, a maneira mais direta de ver por quê é iniciar o binário em primeiro plano: os erros de inicialização aparecem então diretamente na sua janela. É, aliás, o comando que o script de instalação lhe propõe quando constata a falha.

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

Depois pare com Ctrl+C, então Start-Service uVersionServer. Se o serviço nem chega a iniciar o suficiente para produzir um erro, o Visualizador de Eventos do Windows (eventvwr.msc) o registra no log Sistema, origem Service Control Manager. Não procure ali um log de aplicação com o nome uVersion: o servidor escreve na sua saída padrão, ele não registra uma origem de eventos do Windows, então um comando do tipo Get-EventLog -Source uVersionServer nunca retornará nada.

Desinstalar

Atenção: os comandos abaixo excluem seus repositórios, o histórico, as contas de usuário e as configurações. Faça um backup do banco de dados e copie sua pasta de dados se quiser poder voltar atrás.

Duas maneiras equivalentes. Ambas executam o mesmo script (uninstall.ps1), que gerencia o serviço, o firewall, a variável de ambiente da máquina, a pasta de dados, o binário, a entrada em Programas e Recursos e o banco de dados PostgreSQL.

Método 1: via Programas e Recursos

  1. Win+R → appwiz.cpl → Enter
  2. Encontre uVersion Server na lista
  3. Clique com o botão direito → Desinstalar
  4. Uma janela do PowerShell de administrador abre e executa o script de forma visível

Método 2: via PowerShell como Administrador

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

O script mostra seus dois caminhos no início e, ao final, um bloco de verificação: você deve ver "OK absent" em verde para o serviço, o diretório de instalação, a pasta de dados e a entrada em Programas e Recursos.

Caso de uma instalação personalizada feita antes de agosto de 2026. O script de desinstalação agora encontra sozinho os caminhos realmente usados: a instalação os inscreve ao lado da sua entrada em Programas e Recursos, e a desinstalação os relê. Portanto, você não precisa especificar nada, mesmo que tenha escolhido um -DataDir personalizado.

Nem sempre foi assim: uma instalação anterior a essa correção não inscreveu seus caminhos, e a desinstalação recai então nos valores padrão. Se você está nesse caso e tinha personalizado um caminho, passe-os explicitamente, caso contrário o banco de dados que o -DbOnDataDir deveria preservar corre o risco de ser excluído enquanto os segredos, por sua vez, permanecem no lugar:

$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"

Desinstalar o PostgreSQL também?

Por padrão, o uninstall.ps1 não mexe no PostgreSQL: outros aplicativos podem usá-lo. Para removê-lo também:

$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

A verificação [byte[]] é necessária: dependendo do tipo de conteúdo servido, o Invoke-WebRequest -UseBasicParsing pode retornar o corpo da resposta como um array de bytes ou como uma string. O padrão acima funciona nos dois casos.

Atenção: -RemovePostgreSQL remove toda instalação do PostgreSQL da máquina, não apenas o banco de dados do uVersion. Use apenas se tiver certeza de que nada mais o usa.