uVersion
Français
Télécharger →

Wiki

Installer sur Windows

Une ligne PowerShell : code d'activation, PostgreSQL via winget, service Windows, pare-feu, certificat TLS.

Windows 10, 11 ou Windows Server 2019+ (x64). Installation en une ligne PowerShell.

Installer

1. Ouvrir PowerShell en Administrateur

Clic droit sur l'icône PowerShell → Exécuter en tant qu'administrateur. Le script refuse de se lancer autrement, et vous le dit.

2. Coller la commande d'installation

Une seule ligne, à coller telle quelle dans la fenêtre que vous venez d'ouvrir :

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

Le script enchaîne alors, sous vos yeux :

  • la demande du code d'activation, seule question posée : voir l'étape suivante
  • le téléchargement du binaire et la vérification de l'archive
  • l'installation de PostgreSQL via winget s'il est absent (environ 2 minutes)
  • la création de la base, du rôle et du service Windows, et l'ouverture du pare-feu (8443, plus 8080 en repli)
  • l'enregistrement de l'entrée Programmes et fonctionnalités
  • le démarrage du service, la génération du certificat TLS auto-signé, puis l'affichage du mot de passe administrateur et de l'empreinte SHA-256 du certificat

Tout se passe dans votre fenêtre PowerShell, vous voyez chaque étape. C'est l'équivalent Windows du sudo apt install de Linux.

3. Saisir le code d'activation

C'est la seule question posée : tous les autres choix passent par des paramètres, décrits plus bas. Le champ accepte trois formes : le code court UV-XXXX-XXXX-XXXX, un chemin vers un fichier contenant votre clé de licence complète, ou cette clé collée directement. Avec la première forme seulement, le script contacte licence.uversion.io pour échanger le code contre la clé.

4. Noter le récapitulatif de fin

L'installation se termine sur un encadré : identifiant admin, mot de passe temporaire, adresse du serveur et empreinte du certificat. Notez-les.

Le récapitulatif affiché en fin d'installation : identifiant admin, mot de passe temporaire et adresse du serveur.

Si la fenêtre a été fermée trop vite, le mot de passe est encore sur le disque tant qu'il n'a pas été changé :

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

Ce fichier disparaît dès que vous changez le mot de passe : une erreur « Cannot find path » signifie donc que le changement a déjà eu lieu.

Vous pouvez ensuite suivre Premier login.

Windows Server 2019 et 2022 : PostgreSQL d'abord

winget n'existe pas sur Windows Server 2019 ni sur Windows Server 2022. Le script s'arrête alors net, avec un message qui vous le dit explicitement. Ce n'est pas une panne : installez d'abord PostgreSQL 16 à la main, puis relancez la même commande. Le script détecte le service PostgreSQL existant et l'utilise au lieu d'en installer un.

Variante non interactive (CI, déploiement scripté)

La forme courte iwr ... | iex ne peut recevoir aucun paramètre : elle exécute le script sans lui transmettre d'arguments, et un -DataDir ajouté à la fin serait silencieusement ignoré. Dès que vous voulez passer une option, utilisez la forme ci-dessous, qui construit un bloc de script explicite.

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

Les neuf paramètres acceptés :

ParamètreDéfautRôle
-LicenceKey(demandé) Code d'activation, ou clé de licence complète. Évite la question.
-InstallDirC:\Program Files\uVersion Où atterrit le binaire.
-DataDirC:\ProgramData\uVersion Où atterrissent vos données, la configuration et les secrets. C'est le dossier qui grossit, donc celui à placer sur votre grand disque.
-DbOnDataDirdésactivé Place aussi la base PostgreSQL dans le dossier de données, pour qu'un seul disque survivant suffise à reconstruire le serveur. Voir l'encadré ci-dessous.
-Port8080 Port de repli en HTTP simple, utilisé seulement si vous désactivez TLS dans la configuration. Le port HTTPS normal est 8443.
-BindAddress0.0.0.0 Interface d'écoute. Le défaut écoute sur toutes.
-DownloadUrluversion.io Source de l'archive. À changer pour installer depuis un miroir interne.
-Reconfiguredésactivé Réécrit config.toml même s'il existe déjà.
-Updatedésactivé Met à jour le binaire d'une installation existante et redémarre le service, sans retoucher PostgreSQL, la licence ni la configuration. C'est ce que déclenche le bouton « Mettre à jour » du panneau d'administration.

-DbOnDataDir décide si un seul disque suffit à remonter votre serveur. Sans lui, la base PostgreSQL reste à part : si la machine meurt, le disque de données survivant contient le contenu de vos fichiers, mais plus aucune révision, aucun compte, aucun verrou ni aucune permission. Avec lui, un seul disque plus PostgreSQL et ce script suffisent à reconstruire le serveur ailleurs. Contrepartie : ce disque porte alors aussi la clé de licence et les mots de passe, et la base ne peut être rouverte que par la version majeure de PostgreSQL qui l'a créée.

Où vont les fichiers

Tout vit dans le dossier de données, C:\ProgramData\uVersion par défaut : la configuration (config.toml), le contenu de vos fichiers versionnés (data\chunks), le certificat TLS et son empreinte (data\tls), et le mot de passe administrateur initial.

Ce dossier contient aussi trois secrets en clair : licence-key (votre clé de licence), db-password (le mot de passe de la base uVersion) et postgres-superuser-password (celui du compte administrateur de PostgreSQL). Ils sont protégés par des permissions réservées aux administrateurs. Traitez ce dossier comme un coffre : ne le copiez pas sur un partage réseau ouvert, et effacez ces fichiers avant qu'un disque ne quitte votre contrôle.

Après toute modification manuelle de config.toml, redémarrez le service pour qu'elle soit prise en compte :

Restart-Service uVersionServer

Vérifier l'installation

Quatre contrôles indépendants. Remplacez C:\ProgramData\uVersion par votre dossier de données si vous en avez choisi un autre.

1. Le service tourne

Get-Service uVersionServer

Attendu : Status: Running.

2. Le serveur écoute en HTTPS sur 8443

Get-NetTCPConnection -LocalPort 8443 -State Listen

Une ligne doit apparaître. Rien du tout alors que le service tourne signifie en général que TLS a été désactivé dans la configuration : le serveur passe alors en HTTP simple et 8443 n'écoute plus.

3. Réafficher l'empreinte du certificat

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

C'est l'empreinte que chaque poste confirme à sa première connexion.

4. Relire la configuration active

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

Si le service refuse de démarrer, le moyen le plus direct de voir pourquoi est de lancer le binaire en avant-plan : les erreurs de démarrage s'affichent alors directement dans votre fenêtre. C'est d'ailleurs la commande que le script d'installation vous propose lui-même quand il constate l'échec.

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

Arrêtez ensuite avec Ctrl+C, puis Start-Service uVersionServer. Si le service ne démarre même pas assez loin pour produire une erreur, l'Observateur d'événements Windows (eventvwr.msc) le consigne dans le journal Système, source Service Control Manager. N'y cherchez pas de journal applicatif au nom d'uVersion : le serveur écrit sur sa sortie standard, il n'enregistre pas de source d'événements Windows, donc une commande du type Get-EventLog -Source uVersionServer ne retournera jamais rien.

Désinstaller

Attention : les commandes ci-dessous suppriment vos dépôts, l'historique, les comptes utilisateurs et les configurations. Sauvegardez la base et copiez votre dossier de données si vous voulez pouvoir revenir en arrière.

Deux manières équivalentes. Les deux exécutent le même script (uninstall.ps1), qui gère le service, le pare-feu, la variable d'environnement machine, le dossier de données, le binaire, l'entrée Programmes et fonctionnalités, et la base PostgreSQL.

Méthode 1 : par Programmes et fonctionnalités

  1. Win+R → appwiz.cpl → Entrée
  2. Trouvez uVersion Server dans la liste
  3. Clic droit → Désinstaller
  4. Une fenêtre PowerShell administrateur s'ouvre et déroule le script de façon visible

Méthode 2 : par PowerShell en Administrateur

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

Le script affiche vos deux chemins au démarrage, puis un bloc de vérification à la fin : vous devez y voir « OK absent » en vert pour le service, le dossier d'installation, le dossier de données et l'entrée Programmes et fonctionnalités.

Cas d'une installation personnalisée faite avant août 2026. Le script de désinstallation retrouve désormais tout seul les chemins réellement utilisés : l'installation les inscrit à côté de son entrée Programmes et fonctionnalités, et la désinstallation les relit. Vous n'avez donc rien à préciser, même si vous aviez choisi un -DataDir personnalisé.

Cela n'a pas toujours été le cas : une installation antérieure à ce correctif n'a pas inscrit ses chemins, et la désinstallation retombe alors sur les valeurs par défaut. Si vous êtes dans ce cas et que vous aviez personnalisé un chemin, passez-les explicitement, sinon la base que -DbOnDataDir devait préserver risque d'être supprimée pendant que les secrets, eux, restent en place :

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

Aussi désinstaller PostgreSQL ?

Par défaut, uninstall.ps1 ne touche pas à PostgreSQL : d'autres applications peuvent s'en servir. Pour le retirer également :

$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

Le test [byte[]] est nécessaire : selon le type de contenu servi, Invoke-WebRequest -UseBasicParsing peut renvoyer le corps de la réponse sous forme de tableau d'octets ou de chaîne. Le motif ci-dessus fonctionne dans les deux cas.

Attention : -RemovePostgreSQL retire toute installation PostgreSQL de la machine, pas seulement la base d'uVersion. Ne l'utilisez que si vous êtes certain que rien d'autre ne s'en sert.