Requirements
What the portable Oblive installation needs on macOS and Linux.
Supported Hosts
The installer supports macOS and Linux on AMD64/x86_64 and ARM64. Windows and WSL 1 are not supported by this release.
You need:
- enough disk space for the Oblive images, PostgreSQL, Redis, Garage, and agent workspaces;
- network access to
oblive.dev,downloads.oblive.dev, Amazon ECR Public, and Codex/OpenAI; - the default ports below, or free alternatives configured after installation; and
- permission to run a local Docker-compatible daemon.
You do not need Bun, Git, jq, or a source checkout to use Oblive.
Docker and Compose
Oblive requires the docker command, a running daemon, and the Docker Compose plugin. The installer
reuses a working installation. If Docker is missing, it offers an explicit installation path:
- on macOS, Homebrew and Docker Desktop; or
- on Linux, Docker’s official convenience script after showing its dry run.
The installer never silently changes Linux group membership and never runs the installed oblive
command with sudo. Docker Desktop has its own terms and must be started as a desktop application.
Verify an existing installation with:
docker info
docker compose versionAgent Authentication
The friendly default is a local Codex login. The installer offers the official Codex CLI when it is
missing and runs codex login only when no working login exists. Oblive mounts only the resulting
auth.json into its credential synchronizer; agent containers do not receive your host Codex
configuration, sessions, plugins, or global skills.
Advanced installations can use an API key instead:
export OPENAI_API_KEY="your-key"
curl -fsSL https://oblive.dev/install.sh | sh -s -- --auth api-keyThe API key remains a host environment variable and must be present whenever the stack starts.
Default Ports
| Service | Default Port | Purpose |
|---|---|---|
| Backend | 3000 | HTTP API, health, and local API reference |
| Frontend | 3001 | Oblive product interface |
| PostgreSQL | 5432 | Canonical operational state and pgvector |
| Redis | 6379 | Live signals and worker wakeups |
| Garage S3 | 3900 | Local S3-compatible object API |
| Garage admin | 3903 | Local storage administration |
Every published port binds to 127.0.0.1 by default. Change a host port in local-stack.json when
it conflicts; container-to-container traffic continues to use private Compose DNS names.
Optional Public Callbacks
Some provider callbacks require externally managed HTTPS hostnames. If you expose the frontend or backend through a tunnel or reverse proxy, protect both with an external access policy. The local control plane has no end-user authentication gate and must not be placed behind an unrestricted public tunnel.