Install in one line
Pick the line that matches your machine. The installer detects your OS, checks every prerequisite, generates all secrets, and brings the full stack up. No manual config.
curl -fsSL https://raw.githubusercontent.com/akashsebastian333/agentum/opensource/installation/install.sh | bashiwr -useb https://raw.githubusercontent.com/akashsebastian333/agentum/opensource/installation/install.ps1 | iexDocker Desktop must be running.
What you get, ~3 minutes later
Section titled “What you get, ~3 minutes later”Lupid is up
~3 minutes after running the one-liner
- Dashboard
- http://localhost:3000
- Admin email
admin@lupid.local- Admin password
<freshly generated, printed once, also in .env>
Both values are written to .env at the install directory (mode 0600). Back it up.
Open the URL, sign in with the printed credentials, you’re done.
What the installer actually does
Section titled “What the installer actually does”-
Detects your OS (Linux distro, macOS, or Windows) and the package manager available. If a prereq is missing it prints the exact distro-specific install command — you don’t have to memorise it.
-
Verifies prereqs:
dockerdaemon reachable,docker compose(v2 or legacy v1),git,openssl, andcurlorwget. -
Clones the repo into
./lupid(or--dir <path>) with--depth 1. -
Generates secrets via
openssl rand. Every credential is cryptographically random — there are no defaults baked into the image:POSTGRES_PASSWORDAGENTUM_ENCRYPTION_KEY_HEX(AES-256-GCM at rest)AGENTUM_CAPABILITY_SECRET_HEX(HMAC for capability tokens)AGENTUM_OPERATOR_SECRET_HEX(HMAC for operator-API auth)NEXTAUTH_SECRET(dashboard cookie encryption)AGENTUM_ADMIN_PASSWORD(the first admin user)
-
Writes
.envat mode0600(owner-read-only). -
docker compose up -d --build— builds the Rust + Next.js images, starts Postgres, Lupid, and the dashboard. -
Waits for the dashboard to respond on
http://localhost:3000(up to 240s). -
Prints the admin credentials to your terminal exactly once. They also live in
<install-dir>/.env, so keep that file safe.
curl -fsSL https://raw.githubusercontent.com/akashsebastian333/agentum/opensource/installation/install.sh \ | bash -s -- --dir /opt/lupid --admin-email ops@yourco.com| Flag | Default | Purpose |
|---|---|---|
--dir <path> | ./lupid | Install location |
--admin-email <addr> | admin@lupid.local | First admin email |
--branch <name> | opensource | Git branch |
--with-clickhouse | off | Also start the ClickHouse audit warehouse |
--no-start | off | Clone + write .env, skip docker compose up |
--reset | off | Wipe an existing install at --dir |
--yes | off | Non-interactive — skip the ClickHouse prompt |
--wait <seconds> | 240 | Dashboard readiness timeout |
--help | — | Show usage |
Set environment variables before piping into iex:
$env:LUPID_DIR = 'C:\lupid'$env:LUPID_ADMIN_EMAIL = 'ops@yourco.com'iwr -useb https://raw.githubusercontent.com/akashsebastian333/agentum/opensource/installation/install.ps1 | iex| Env var | Default | Purpose |
|---|---|---|
LUPID_DIR | .\lupid | Install dir |
LUPID_ADMIN_EMAIL | admin@lupid.local | First admin email |
LUPID_BRANCH | opensource | Git branch |
LUPID_WITH_CLICKHOUSE=1 | off | Also start ClickHouse |
LUPID_NO_START=1 | off | Skip docker compose up |
LUPID_RESET=1 | off | Wipe existing install |
LUPID_YES=1 | off | Non-interactive |
LUPID_WAIT_SECONDS | 240 | Readiness timeout |
Prerequisites the installer checks
Section titled “Prerequisites the installer checks”| Tool | Linux | macOS | Windows |
|---|---|---|---|
| Docker 24+ | apt install docker.io (or dnf/pacman/apk) | Docker Desktop | Docker Desktop |
| Docker Compose v2 | shipped with Docker 24+ | shipped with Desktop | shipped with Desktop |
git, openssl | usually preinstalled | brew install git openssl | shipped with Git for Windows |
curl or wget | usually preinstalled | preinstalled | shipped with Git for Windows |
The installer also runs three soft pre-checks: port :3000 already in use, disk space
under 2 GB, Docker socket permission denied. Each one prints a one-line warning and
the suggested fix.
Day-2 commands
Section titled “Day-2 commands”cd lupid
docker compose logs -f # tail every servicedocker compose ps # container healthdocker compose down # stop the stack, keep datadocker compose down -v # stop AND wipe all named volumesReset the whole install with new secrets and a fresh DB:
curl -fsSL https://raw.githubusercontent.com/akashsebastian333/agentum/opensource/installation/install.sh \ | bash -s -- --reset