uVersion
Español
Descargar →

Wiki

Instalar en Windows

Una línea de PowerShell: código de activación, PostgreSQL vía winget, servicio de Windows, firewall, certificado TLS.

Windows 10, 11 o Windows Server 2019+ (x64). Instalación con una sola línea de PowerShell.

Instalar

1. Abrir PowerShell como Administrador

Haz clic derecho en el icono de PowerShell → Ejecutar como administrador. El script se niega a iniciarse de otro modo, y te lo indica.

2. Pegar el comando de instalación

Una sola línea, para pegar tal cual en la ventana que acabas de abrir:

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

El script se ejecuta entonces, ante tus ojos:

  • la solicitud del código de activación, la única pregunta planteada: ver el paso siguiente
  • la descarga del binario y la verificación del archivo
  • la instalación de PostgreSQL mediante winget si falta (unos 2 minutos)
  • la creación de la base de datos, del rol y del servicio de Windows, y la apertura del firewall (8443, más 8080 de reserva)
  • el registro de la entrada en Programas y características
  • el inicio del servicio, la generación del certificado TLS autofirmado y luego la visualización de la contraseña de administrador y de la huella SHA-256 del certificado

Todo ocurre en tu ventana de PowerShell, ves cada paso. Es el equivalente en Windows del sudo apt install de Linux.

3. Introducir el código de activación

Es la única pregunta planteada: todas las demás decisiones pasan por parámetros, descritos más abajo. El campo acepta tres formas: el código corto UV-XXXX-XXXX-XXXX, una ruta a un archivo que contiene tu clave de licencia completa, o esa clave pegada directamente. Solo con la primera forma, el script contacta con licence.uversion.io para cambiar el código por la clave.

4. Anotar el resumen final

La instalación termina con un recuadro: usuario admin, contraseña temporal, dirección del servidor y huella del certificado. Anótalos.

El resumen mostrado al final de la instalación: usuario admin, contraseña temporal y dirección del servidor.

Si la ventana se cerró demasiado rápido, la contraseña sigue en el disco mientras no se haya cambiado:

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

Este archivo desaparece en cuanto cambias la contraseña: un error "Cannot find path" significa por tanto que el cambio ya ha ocurrido.

Después puedes seguir Primer inicio de sesión.

Windows Server 2019 y 2022: PostgreSQL primero

winget no existe en Windows Server 2019 ni en Windows Server 2022. El script se detiene entonces en seco, con un mensaje que te lo indica explícitamente. No es una avería: instala primero PostgreSQL 16 a mano y vuelve a ejecutar el mismo comando. El script detecta el servicio PostgreSQL existente y lo usa en lugar de instalar uno.

Variante no interactiva (CI, despliegue con scripts)

La forma corta iwr ... | iex no puede recibir ningún parámetro: ejecuta el script sin transmitirle argumentos, y un -DataDir añadido al final se ignoraría silenciosamente. En cuanto quieras pasar una opción, usa la forma de abajo, que construye un bloque 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

Los nueve parámetros aceptados:

ParámetroPredeterminadoFunción
-LicenceKey(se pregunta) Código de activación, o clave de licencia completa. Evita la pregunta.
-InstallDirC:\Program Files\uVersion Dónde aterriza el binario.
-DataDirC:\ProgramData\uVersion Dónde aterrizan tus datos, la configuración y los secretos. Es la carpeta que crece, así que la que hay que colocar en tu disco grande.
-DbOnDataDirdesactivado Coloca también la base de datos PostgreSQL en la carpeta de datos, para que un solo disco superviviente baste para reconstruir el servidor. Ver el recuadro de abajo.
-Port8080 Puerto de reserva en HTTP simple, usado solo si desactivas TLS en la configuración. El puerto HTTPS normal es 8443.
-BindAddress0.0.0.0 Interfaz de escucha. El valor predeterminado escucha en todas.
-DownloadUrluversion.io Origen del archivo. Cámbialo para instalar desde un espejo interno.
-Reconfiguredesactivado Reescribe config.toml aunque ya exista.
-Updatedesactivado Actualiza el binario de una instalación existente y reinicia el servicio, sin tocar PostgreSQL, la licencia ni la configuración. Es lo que activa el botón "Actualizar" del panel de administración.

-DbOnDataDir decide si un solo disco basta para volver a levantar tu servidor. Sin él, la base de datos PostgreSQL queda aparte: si la máquina muere, el disco de datos superviviente contiene el contenido de tus archivos, pero ya ninguna revisión, ninguna cuenta, ningún bloqueo ni ningún permiso. Con él, un solo disco más PostgreSQL y este script bastan para reconstruir el servidor en otro lugar. Contrapartida: ese disco lleva entonces también la clave de licencia y las contraseñas, y la base de datos solo puede reabrirse con la versión mayor de PostgreSQL que la creó.

Dónde van los archivos

Todo vive en la carpeta de datos, C:\ProgramData\uVersion por defecto: la configuración (config.toml), el contenido de tus archivos versionados (data\chunks), el certificado TLS y su huella (data\tls), y la contraseña de administrador inicial.

Esta carpeta también contiene tres secretos en texto claro: licence-key (tu clave de licencia), db-password (la contraseña de la base de datos uVersion) y postgres-superuser-password (la de la cuenta de administrador de PostgreSQL). Están protegidos por permisos reservados a los administradores. Trata esta carpeta como una caja fuerte: no la copies a un recurso de red abierto, y borra estos archivos antes de que un disco deje de estar bajo tu control.

Tras cualquier modificación manual de config.toml, reinicia el servicio para que se aplique:

Restart-Service uVersionServer

Verificar la instalación

Cuatro comprobaciones independientes. Sustituye C:\ProgramData\uVersion por tu carpeta de datos si has elegido otra.

1. El servicio está en marcha

Get-Service uVersionServer

Esperado: Status: Running.

2. El servidor escucha en HTTPS en el 8443

Get-NetTCPConnection -LocalPort 8443 -State Listen

Debe aparecer una línea. Nada en absoluto mientras el servicio está en marcha suele significar que se ha desactivado TLS en la configuración: el servidor pasa entonces a HTTP simple y el 8443 ya no escucha.

3. Volver a mostrar la huella del certificado

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

Es la huella que cada puesto confirma en su primera conexión.

4. Releer la configuración activa

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

Si el servicio se niega a iniciarse, la forma más directa de ver por qué es lanzar el binario en primer plano: los errores de arranque se muestran entonces directamente en tu ventana. Es, de hecho, el comando que el script de instalación te propone él mismo cuando constata el fallo.

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

Detén luego con Ctrl+C, después Start-Service uVersionServer. Si el servicio ni siquiera arranca lo suficiente para producir un error, el Visor de eventos de Windows (eventvwr.msc) lo registra en el registro Sistema, origen Service Control Manager. No busques ahí un registro de aplicación con el nombre de uVersion: el servidor escribe en su salida estándar, no registra un origen de eventos de Windows, así que un comando del tipo Get-EventLog -Source uVersionServer nunca devolverá nada.

Desinstalar

Atención: los comandos siguientes eliminan tus repositorios, el historial, las cuentas de usuario y las configuraciones. Haz una copia de seguridad de la base de datos y copia tu carpeta de datos si quieres poder volver atrás.

Dos formas equivalentes. Ambas ejecutan el mismo script (uninstall.ps1), que gestiona el servicio, el firewall, la variable de entorno de la máquina, la carpeta de datos, el binario, la entrada en Programas y características y la base de datos PostgreSQL.

Método 1: mediante Programas y características

  1. Win+R → appwiz.cpl → Intro
  2. Encuentra uVersion Server en la lista
  3. Clic derecho → Desinstalar
  4. Se abre una ventana de PowerShell de administrador y ejecuta el script de forma visible

Método 2: mediante PowerShell como Administrador

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

El script muestra tus dos rutas al inicio, y luego un bloque de verificación al final: deberías ver "OK absent" en verde para el servicio, el directorio de instalación, la carpeta de datos y la entrada en Programas y características.

Caso de una instalación personalizada hecha antes de agosto de 2026. El script de desinstalación ahora encuentra por sí solo las rutas realmente usadas: la instalación las inscribe junto a su entrada en Programas y características, y la desinstalación las vuelve a leer. Por tanto, no tienes que especificar nada, aunque hayas elegido un -DataDir personalizado.

No siempre ha sido así: una instalación anterior a esta corrección no inscribió sus rutas, y la desinstalación recae entonces en los valores predeterminados. Si estás en este caso y habías personalizado una ruta, pásalas explícitamente, de lo contrario la base de datos que -DbOnDataDir debía preservar corre el riesgo de ser eliminada mientras que los secretos, por su parte, permanecen en su sitio:

$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 también PostgreSQL?

Por defecto, uninstall.ps1 no toca PostgreSQL: otras aplicaciones pueden usarlo. Para eliminarlo también:

$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

La comprobación [byte[]] es necesaria: según el tipo de contenido servido, Invoke-WebRequest -UseBasicParsing puede devolver el cuerpo de la respuesta como un arreglo de bytes o como una cadena. El patrón anterior funciona en ambos casos.

Atención: -RemovePostgreSQL elimina toda instalación de PostgreSQL de la máquina, no solo la base de datos de uVersion. Úsalo solo si estás seguro de que nada más lo usa.