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
Which installation?
| You want… | Install | Page |
|---|---|---|
| A production or test server for several users | Docker — full layout: Liberty Next, PostgreSQL, Traefik (HTTPS), pgAdmin, Portainer on one host | Docker |
| A quick trial or a demo on a laptop | Docker — light layout: one container, SQLite | Docker |
| A host where Docker is not allowed | Python install with pipx, run by systemd, PostgreSQL of your own | Python server |
| Several nodes in a Docker Swarm | Swarm: the full layout adapted to docker stack deploy | Docker |
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:
- Licence — Liberty Next → Administer → App → License: paste the key you were delivered.
- Licensed apps —
./liberty apps liberty_apps-<version>-py3-none-any.whl(Licensed apps). - 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:
| Command | Use it to |
|---|---|
./liberty install [light|full] | Install (once). |
./liberty status | See versions, health, pending migrations, last upgrade. |
./liberty doctor | List what is wrong and how to fix it. |
./liberty apps <wheel> | Add or refresh the licensed apps. |
./liberty ssl letsencrypt|provided|off | Switch HTTPS on, change mode or switch it off. |
./liberty backup / restore <dir> | Save and restore everything the install holds. |
./liberty upgrade / rollback | Upgrade with a backup first; undo the last upgrade. |
A Python install has the same verbs in liberty-ops. The full reference is on Operations.
docker compose -f … by handThe 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
- Architecture — what runs where, which data lives in which volume.
- Docker or Python server — the installation itself.
- Licensed apps — the licence, the apps bundle, the application databases.
- HTTPS and Traefik — certificates and the reverse proxy.
- Operations — status, doctor, backups, logs, troubleshooting.
- Upgrade and rollback — moving to a new release.
- Production checklist — what to check before users arrive.