GET STARTED
Quickstart
Get your Invenicum instance running and create your first AI-assisted collection in under 10 minutes.
Prerequisites
PostgreSQL
Primary database (v15+ recommended).
Included in ComposeNote: Invenicum uses the Google Gemini API, so you don’t need a powerful local GPU to process your item images.
Quick Setup
Create Docker Compose Configuration
Create a docker-compose.yml file with the following content:
version: '3.8'
services:
invenicum:
image: ghcr.io/lopiv2/invenicum:latest
container_name: invenicum
restart: unless-stopped
ports:
- "3000:3000"
environment:
NODE_ENV: production
# External database (MariaDB/MySQL)
DB_HOST: 192.168.1.100
DB_PORT: 3306
DB_USER: invenicum_user
DB_PASSWORD: change_this_password
DB_NAME: invenicum
# JWT security (change to a long unique value)
JWT_SECRET: change_this_jwt_secret
JWT_EXPIRES_IN: 24h
# Upload folder
UPLOAD_FOLDER: uploads/inventory
# GitHub OAuth (optional, leave empty if not used. MANDATORY for GitHub login)
GITHUB_CLIENT_ID: ""
GITHUB_CLIENT_SECRET: ""
# Minimum supported client app version
MIN_SUPPORTED_APP_VERSION: 0.0.0
volumes:
- uploads_data:/app/uploads/inventory
Start the Services
Run the following command in your terminal within the same folder:
Docker will pull the image and start the services in the background.
Access the Dashboard
Open your browser and go to http://localhost:3000. Follow the steps to create your initial admin account.
Create Your First Container
Create a container (e.g., “Shelf A” or “Toolbox”). These are the physical locations where you will organize your assets.
Define an Asset Type
”Asset Types are templates for your items.”
- Add a type (e.g., “Electronics”)
- Define custom fields you need to track.
Add Your First Item with AI
Veni Chat
”Add a blue Bosch drill that is in the garage…”
URL Import
Autofill data by pasting an Amazon or eBay link.
Barcode
Scan barcodes and let the AI find the metadata.
GitHub OAuth (Self-Hosted Admin Setup)
Who configures this?
In self-hosted deployments, GitHub OAuth is configured once by the instance administrator (the person who deploys the server), not by every end user.
Create a GitHub OAuth App
In GitHub, go to Developer settings and create a new OAuth App for this specific Invenicum instance.
Set the Authorization Callback URL
The callback must match your deployed URL. For web, use your instance origin (for example http://192.168.1.136:3002/
or https://inventory.example.com/).
If you run multiple environments (local/staging/production), create one OAuth App per environment to keep callbacks clean and avoid redirect mismatches.
Add credentials to your environment
Copy the Client ID and Client Secret to your server environment variables.
GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret # Optional: only needed if you want to force a specific redirect URI # for non-web/native flows. GITHUB_REDIRECT_URI=
Restart and verify
- Restart the backend after changing environment variables.
- Open your profile and click “Connect GitHub”.
- If GitHub shows a redirect URI error, verify callback URL and protocol (http/https) exactly.
Troubleshooting
Port 3000 is already in use
If port 3000 is occupied, edit your docker-compose.yml and change the ports line to “3001:3000”.
Database connection failed
Ensure the database container is running with docker ps and that credentials in DB_URL match the database settings.
Can’t connect to Gemini AI
Check that your API key is valid in Google AI Studio and that your server has internet access for external requests.