Install from source
Use this when you do not want Docker. You end up with the same result as the
Docker quick start: one process serving the web interface and the API on port 8091.
The source code is not publicly available yet. During pre-alpha, you need access to the repository to follow this guide. The public release is planned for Q1 2027.
Debian and Raspberry Pi OS
On 64-bit Debian, Ubuntu, or Raspberry Pi OS, the installer sets up the server as a systemd service. It brings
its own Python, so you can skip the rest of this page. Download the bundle for your machine (amd64 or
arm64) from the repository's server-latest release, then:
tar -xzf minipam-server-linux-arm64.tar.gz
sudo sh minipam-server/install.sh
It prints the address and a one-time bootstrap token for
creating the first admin. The configuration is in
/etc/minipam/server.yml, and sudo minipam-cli runs the command-line tools. Run the installer of a newer
bundle to update. sudo sh minipam-server/install.sh --uninstall removes the server and keeps your data; add
--purge to delete the data too.
What you need
- Python 3.14
- Node.js 22.12 or newer, with npm (only to build the web interface)
- Go, only if you also want to build an agent
1. Install the server
From the repository root:
python3.14 -m venv .venv
.venv/bin/pip install .
2. Build the web interface
cd app-ui
npm ci
VITE_API_BASE_URL=/ npm run build
cd ..
This writes the interface to app-ui/dist. VITE_API_BASE_URL=/ tells the interface to call the API on the
same address it was loaded from. Without it, a build served by MiniPAM calls port 8000 and every request
fails.
3. Create the configuration file
The server reads its settings from one file. The checked-in app-server/config.yml is set up for development,
so create your own app-server/config.local.yml. Git ignores this file, so your bootstrap token stays out of
commits:
server:
database:
location: bin/data/database.db # relative to this file
services:
web-api:
listen:
http: 0.0.0.0:8091
frontend-directory: ../app-ui/dist # relative to this file
authentication:
bootstrap-token: "paste-the-generated-token-here"
Generate the bootstrap token with openssl rand -hex 32. It is the single-use secret for
creating the first admin from the browser.
Keys you leave out take their defaults. The full example lists every key with comments.
4. Start the server
cd app-server
../.venv/bin/python cli.py run --config config.local.yml
The database is created on first start, and later versions migrate it automatically. Open
http://localhost:8091 and continue with Create the first admin.
To keep it running, start the same command from a systemd unit or another process supervisor. Run it from the
app-server directory.