uVersion
English
Download →

Wiki

Install on Ubuntu / Debian

The .deb package with debconf: activation code, PostgreSQL, systemd service, self-signed TLS.

Ubuntu 24.04+, Debian 13+ (x86_64). 3 steps.

Install

  1. Download the package

    cd /tmp && wget -N https://uversion.io/downloads/server/uversion-server_latest_amd64.deb

    The _latest_ URL always points to the most recent published version. The -N flag tells wget to re-download only if the remote file is newer: handy for updating without piling up .deb.1, .deb.2, etc. copies. cd /tmp avoids a cosmetic apt warning ("unsandboxed as root") when the .deb is in your home dir.

  2. Install

    sudo apt install ./uversion-server_latest_amd64.deb

    The installer prompts you for:

    FieldDefaultRequired
    Activation code·Yes
    Data directory/var/lib/uversionEditable

    The postinst contacts licence.uversion.io to exchange the code for your full licence key and write it to /etc/uversion/config.toml. A self-signed TLS certificate is generated on first startup; its SHA-256 fingerprint is shown at the end of the install. See TLS fingerprint.

  3. Done. The initial admin code is shown at the end of the install in a colored box. If you missed it:

    sudo cat /var/lib/uversion/initial-admin-password
The summary printed at the end of install: admin username, temporary password and server address.

You can then follow First login.

Verify the installation

systemctl status uversion-server              # active (running)
ss -tlnp | grep 8443                          # le service ecoute en HTTPS sur 8443
sudo cat /var/lib/uversion/data/tls/fingerprint  # empreinte TLS (a re-afficher)
sudo journalctl -u uversion-server -n 50      # logs recents

Uninstall

Warning: the commands below remove your repositories, history, user accounts and configurations. Make a PostgreSQL backup (pg_dump uversion) and copy /var/lib/uversion/ if you want to be able to restore.

The apt purge command removes the binary, the systemd unit, the debconf answers, and (via the postrm script) /etc/uversion/ as well as the uversion system user. Only the PostgreSQL database and the data dir /var/lib/uversion/ (created by the postinst script) are deliberately preserved and must be cleaned up by hand.

Full procedure:

# 1. Arrêter le service
sudo systemctl stop uversion-server 2>/dev/null
sudo systemctl disable uversion-server 2>/dev/null

# 2. Purge du paquet
sudo apt purge -y uversion-server

# 3. Forcer debconf à oublier les réponses du paquet
echo PURGE | sudo debconf-communicate uversion-server 2>/dev/null || true

# 4. Base PostgreSQL + role
sudo -u postgres psql -c "DROP DATABASE IF EXISTS uversion;"
sudo -u postgres psql -c "DROP ROLE IF EXISTS uversion;"

# 5. Data dir (chunks + initial-admin-password)
sudo rm -rf /var/lib/uversion

# 6. User système (normalement déjà retiré par 'apt purge' via postrm ; sans effet si absent)
sudo deluser --remove-home uversion 2>/dev/null || sudo userdel uversion 2>/dev/null

Verification:

systemctl status uversion-server                                # "not-found" ou "inactive"
ls /etc/uversion /var/lib/uversion 2>&1                         # "No such file"
which uversion-server                                           # (vide)
sudo -u postgres psql -tAc "SELECT 1 FROM pg_database WHERE datname='uversion';"   # (vide)
sudo -u postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname='uversion';"      # (vide)
id uversion                                                     # "no such user"