Skip to main content

Installation — overview

Liberty Next is one server — a web application, its API and its job scheduler in a single process — plus a database and a folder of configuration files. Installing it means choosing where that server runs; everything after that is done with one command: ./liberty on a Docker host, liberty-ops on a Python install.


At a glance​

1 · Install./liberty install full2 · Sign inadmin + printed password3 · Licence & apps./liberty apps <wheel>4 · HTTPS./liberty ssl letsencrypt …5 · Operatestatus · doctor · backup6 · Upgrade./liberty upgradeA Docker install from start to finish — every step is one command run from release/Administer → App → Licensepaste the key once signed inOptional on a test serverHTTPS needs the full layout

Which installation?​

You want…InstallPage
A production or test server for several usersDocker — full layout: Liberty Next, PostgreSQL, Traefik (HTTPS), pgAdmin, Portainer on one hostDocker
A quick trial or a demo on a laptopDocker — light layout: one container, SQLiteDocker
A host where Docker is not allowedPython install with pipx, run by systemd, PostgreSQL of your ownPython server
Several nodes in a Docker SwarmSwarm: the full layout adapted to docker stack deployDocker

The licensed applications (Nomasx-1, Nomajde) and the bundled Nomaflow jobs need PostgreSQL: choose the full layout or a Python install with your own PostgreSQL.


Install in three commands​

On a Linux host with Docker and the Compose plugin:

git clone --depth 1 --filter=blob:none --sparse https://github.com/fblettner/liberty-next.git
cd liberty-next && git sparse-checkout set release && cd release
./liberty install full # or: ./liberty install light

The command generates the secrets, starts the stack, waits until it answers and prints the sign-in details. Open http://<host>/ (port 8000 on the light layout), sign in as admin with the printed password, and the server is ready.

Then, in this order and only if you need them:

  1. Licence — Liberty Next → Administer → App → License: paste the key you were delivered.
  2. Licensed apps — ./liberty apps liberty_apps-<version>-py3-none-any.whl (Licensed apps).
  3. HTTPS — ./liberty ssl letsencrypt --domain liberty.example.com --email ops@example.com (HTTPS and Traefik).

The one command​

Every operation on a Docker install goes through release/liberty, run from the release/ folder:

CommandUse it to
./liberty install [light|full]Install (once).
./liberty statusSee versions, health, pending migrations, last upgrade.
./liberty doctorList what is wrong and how to fix it.
./liberty apps <wheel>Add or refresh the licensed apps.
./liberty ssl letsencrypt|provided|offSwitch HTTPS on, change mode or switch it off.
./liberty backup / restore <dir>Save and restore everything the install holds.
./liberty upgrade / rollbackUpgrade with a backup first; undo the last upgrade.

A Python install has the same verbs in liberty-ops. The full reference is on Operations.

Never run docker compose -f … by hand

The install records which compose files it uses (layout, HTTPS, licensed apps) in release/.env. A docker compose -f docker-compose.full.yml up -d names only the first file: the container comes back without the licensed apps and without HTTPS, and the install looks empty. Use ./liberty start, ./liberty upgrade… which always reuse the recorded files.


Read in order​

  1. Architecture — what runs where, which data lives in which volume.
  2. Docker or Python server — the installation itself.
  3. Licensed apps — the licence, the apps bundle, the application databases.
  4. HTTPS and Traefik — certificates and the reverse proxy.
  5. Operations — status, doctor, backups, logs, troubleshooting.
  6. Upgrade and rollback — moving to a new release.
  7. Production checklist — what to check before users arrive.