Back to Open Inventory

Documentation

From clone tofirst record.

A practical path through local Docker deployment, secure configuration, the REST API, and the operational details that keep your inventory durable.

Start here

What you are deploying

Open Inventory is a Next.js application backed by PostgreSQL. The checked-in Compose stack starts the database, runs every bundled migration, then starts the application with persistent volumes for database data and local uploads.

Application

A standalone Next.js production image.

Database

PostgreSQL 16 with migration gating.

Storage

Persistent local uploads or Openinary.

Authentication

Local roles with optional Auth0.

01 · Installation

Choose the easiest path for your server

Run the guided Docker installer on any host with Git, Docker Compose v2, OpenSSL, and curl, or import the catalog-ready definitions for Dokploy and Coolify. All three paths use the same production image, migrations, health check, and persistent storage model.

Docker Compose

Clone the repository and let the installer create secure settings and start the complete stack.

Quick start

Dokploy template

Import the platform-native definition now; it is ready for one-click catalog inclusion.

Open Dokploy files

Coolify template

Import the matching service definition now; it is ready for one-click catalog inclusion.

Open Coolify files

Docker quick start

The installer creates a private .env, generates the required secrets and a bootstrap administrator, starts PostgreSQL and Open Inventory, and waits for the health check. You do not need Node.js or a manually prepared password hash for this path.

three commands
git clone https://github.com/Utzel-Butzel/inventory.git
cd inventory
./scripts/install.sh

First login

When installation finishes, the terminal prints the admin email (by default [email protected]) and an automatically generated bootstrap password. Sign in at http://localhost:3000, then change the password under Settings → Users. The production start converts the bootstrap value to bcrypt before the server starts and removes its plaintext value from the running process; the database stores only the hash after the first successful login.

Dokploy and Coolify

Pick your platform, open its deploy directory, and import the included template or Compose definition. It configures PostgreSQL, persistent uploads, port 3000, and/api/health. The platform generates the bootstrap password as a secret; find it in Dokploy's or Coolify's environment UI for the initial login. Change the password in Settings → Users; the bootstrap credential cannot replace an existing account.

02 · Configuration

Keep the core local. Add only what you need.

Database and local files can stay on your infrastructure. Maps, hosted storage, Auth0, and AI providers are explicit integrations you can configure or leave disabled.

Accounts and roles

The guided deployment paths generate the first bootstrap login automatically. Change that password after signing in, then manage admin, editor, and viewer accounts from Settings. Auth0 is optional.

File storage

Use the persistent local upload volume by default, or point Open Inventory at an Openinary service.

AI assistance

OpenAI-compatible analysis and OpenAI or Google image editing are optional. Nothing is sent to an AI provider until you configure and use it.

Maps and location

Street and satellite defaults require external tile services. Compatible tile URLs can be replaced with your own infrastructure.

Read every environment option in the README

03 · Integration

A scoped API, described in the repository.

Administrators can issue expiring, revocable bearer tokens. The public OpenAPI 3.1 files document resource, stock, scan, purchase-order, authentication, and statistics endpoints.

JSON REST API

Stable versioned routes under /api/v1.

Scoped tokens

Read, write, and AI permissions.

OpenAPI 3.1

YAML and JSON descriptions included.

04 · Operations

Make durability part of the deployment.

Open Inventory keeps database records and stored media as one logical dataset. Back them up together, test recovery, and use the built-in health endpoint for deployment checks.

Deployment checklist

The boring things that keep the useful things safe.

  • Health check returns 200 at /api/health
  • Database and upload volumes are persistent
  • PostgreSQL and uploads are backed up together
  • Login, upload, and token flows are smoke-tested
  • Remote AUTH_URL is the exact HTTPS origin
  • AI and storage credentials are set only when used

Need the complete reference?

The repository README covers Docker, Dokploy, Coolify, authentication, stock behavior, native iOS, and every environment variable.

Open README