System requirements

Installing from the console with a single install.sh command server — bash $ sudo ./install.sh → Checking the server: Python 3.14, packages → Database: PostgreSQL · tables ready → Owner account: created → Installation key saved ✓ Done. The site is running: https://yoursite.com $

install.sh recognises the system by itself

  • Debian, Ubuntuapt
  • Fedora, RHEL, Rockydnf
  • Arch Linuxpacman
  • Alpineapk
  • openSUSEzypper
  • FreeBSDpkg

It installs any missing system packages itself. On hosting without root access it simply skips this step.

Under the hood

Proven technology, nothing exotic

D-LIS Light stands on tools that thousands of developers know. If you ever want to build something on top, you will not be left with code nobody understands.

Python 3.14 and Django 6
A mature framework that runs large sites all over the world.
SQLite, MySQL, PostgreSQL
A small site starts on a single database file; a bigger one moves to a database server.
Tailwind CSS
A light look without heavy themes. You set the colours and typefaces in the panel.
Over 1000 tests
Every version passes the full set of automated tests before it reaches the update channel.
Updates with a description
The panel checks whether a new version is out and shows what changed in it.
Linux and FreeBSD
The install.sh script prepares the server and puts the site up with a single command.

Minimum versions

This much is enough to start

The installer checks Python and SQLite itself before it writes anything. It shows the minimum for a database server as you choose one, so that a version that is too old does not surface at the first connection.

Python

3.12+

With the venv and pip modules. The CMS works in its own environment .venv.

SQLite

3.37+

What counts is the system library, not the package from pip. The database works in WAL mode.

MySQL / MariaDB

8.4+ / 10.11+

The mysqlclient driver, and where it is missing – PyMySQL, which installs on any hosting.

PostgreSQL

15+

The psycopg 3 or psycopg2 driver. On FreeBSD the system packages are the easiest route.

Server

What it needs server

An ordinary server or hosting with Python support is enough. No cloud services, no paid licences and no outside accounts.

  • Python3.12 or newer

    With the venv and pip modules – this is what the whole CMS runs on.

  • Web servernginx or another

    It takes traffic over HTTPS and serves static files and photos itself.

  • Application servergunicorn, uWSGI, Passenger

    It runs the CMS in the background; on your own server systemd keeps an eye on it.

  • HTTPS certificateLet’s Encrypt, free of charge

    One certbot command and the certificate renews itself.

  • Databasedatabase server optional

    With SQLite the whole database is one file. A database server is only needed for MySQL or PostgreSQL.

Only five Python libraries. Django, Pillow, cryptography, segno and python-dotenv – that is all the CMS pulls from requirements.txt. Fewer dependencies mean fewer things that can break on an update.

The path of a request: browser, nginx, application server, D-LIS Light, database Browser a visitor or an editor in the panel nginx HTTPS · redirect from http /static/ /media/ straight from disk gunicorn or uWSGI, Passenger · unix socket D-LIS Light Django 6.1 · Python 3.12+ Database SQLite · MySQL / MariaDB · PostgreSQL request response

Database

Three engines to choose from, one panel

You choose in the installation wizard. The content, the look and the panel work exactly the same wherever the data lives.

The simplest start

SQLite

The whole database in one file

It needs no database server and no sign-in. It is enough for sites on a single server written by a handful of editors.

Minimum
SQLite 3.37
Driver
built into Python
Backups
from the panel, in one click

MySQL / MariaDB

The most common database on hosting

You will find the sign-in details in your hosting panel, next to the database you created earlier. The wizard installs the driver by itself.

Minimum
MySQL 8.4, MariaDB 10.11
Driver
mysqlclient or PyMySQL
Backups
mysqldump from the console

PostgreSQL

For bigger sites

When the site grows or stands on your own server. On Linux the driver installs in a few seconds.

Minimum
PostgreSQL 15
Driver
psycopg 3 or psycopg2
Backups
pg_dump from the console

With MySQL and PostgreSQL, create the database before installing

The wizard creates the tables in it, but not the database itself – and that is deliberate. An account that can create databases has rights to everything on the server, and a password like that should not lie in a file read at every start of the site. Create the database and a separate user in your hosting panel, and enter their details in the wizard.

Installation

Two routes, the same result

You have your own server – use the console. You have hosting with a control panel – open the wizard in the browser. Both routes check and save exactly the same things.

From the console: ./install.sh

Your own server with root access

  • It recognises the system and installs the missing packages.
  • It creates the environment .venv and installs the libraries.
  • It asks about the database, the domain and the owner account.
  • With --sprawdz it only shows the plan and changes nothing.

In the browser: /install/

Hosting that supports Python applications

  • It checks the Python version, SQLite and file permissions.
  • It suggests the commands right for your system.
  • It installs the driver for the chosen database on request.
  • It leads you step by step, without a single command in the console.

Right after installation the site has

  • tables in the chosen database
  • an owner account for the panel
  • a .env file with the server settings
  • an installation key that encrypts the passwords in the database

Installation happens once. Running it again will not overwrite the owner account or the domains of a running site.

The site’s shield

Security

Protection switched on from day one

In production mode the safeguards switch themselves on. There is nothing to add to the server configuration and no plugins to look for.

Forced HTTPS
A redirect from http, the HSTS header and cookies sent over an encrypted channel only.
Script policy (CSP)
A foreign script injected into the content or an SVG file will not run in the browser.
Encrypted service passwords
The mail password in the database is encrypted with the installation key. A copy of the database alone will not give it away.
Two-factor sign-in
The panel can be entered with a code from an app on your phone, not with a password alone.
Security headers as standard
Strict-Transport-Security Content-Security-Policy X-Frame-Options: DENY nosniff Referrer-Policy Permissions-Policy

Not sure whether your server is enough?

Write and tell us what hosting or server you have. We will say which installation route to take and which database to choose.

Choose a version to download

The list shows only the packages that are on the server right now.

Older releases stay available for as long as their packages are on the server.