Skip to main content

Neo4j-backed FastAPI app with React frontend for IT inventory graph management.

Project description

faik-inventory

Neo4j-backed FastAPI app with a React frontend for managing an IT inventory graph.

Requirements

  • Python 3.14
  • Node.js 22+ (development only)

Environment

Set these as needed before starting the app:

export NEO4J_URI="bolt://127.0.0.1:7687"
export NEO4J_USER="neo4j"
export NEO4J_PASSWORD="your-password"
export NEO4J_DATABASE="neo4j"

Install

Install backend dependencies:

pip install -r requirements.txt

Configure git to use project hooks:

git config core.hooksPath .githooks

This enables pre-commit checks that prevent committing Neo4j database files and ensure tests pass.

1) Run On Bare Python Docker Image With Embedded Neo4j

Fastest path (Debian-based python:3.14 image), in order:

  1. Install Neo4j prerequisites and Neo4j itself:
apt-get update
apt-get install -y curl ca-certificates gnupg procps
curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key | gpg --dearmor -o /usr/share/keyrings/neo4j.gpg
echo 'deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable latest' > /etc/apt/sources.list.d/neo4j.list
apt-get update
apt-get install -y neo4j
neo4j --version
  1. Install the app package:
# From package index:
pip install faik-inventory

# Or from a built wheel:
# pip install dist/faik_inventory-*.whl
  1. Start the app with embedded/managed Neo4j:
faik-inventory --managed-neo4j --host 0.0.0.0 --port 8000

Do not start Neo4j manually as root in this mode; let faik-inventory --managed-neo4j launch it. Managed mode defaults to NEO4J_USER=neo4j and NEO4J_PASSWORD=neo4j unless you override FAIK_INVENTORY_MANAGED_NEO4J_USER / FAIK_INVENTORY_MANAGED_NEO4J_PASSWORD.

Managed Neo4j runtime data is stored under:

~/.local/share/faik-inventory/neo4j/

Optional: override managed paths and ports:

faik-inventory \
  --managed-neo4j \
  --managed-neo4j-home /opt/neo4j \
  --managed-neo4j-dir ~/.local/share/faik-inventory \
  --managed-neo4j-bolt-port 7687 \
  --managed-neo4j-http-port 7474

If managed Neo4j prerequisites are missing, the CLI prints Debian-based install commands and exits.

2) Run On Normal Python With Remote Neo4j

Set your remote Neo4j environment values, then run:

faik-inventory --host 0.0.0.0 --port 8000

or in development mode:

uvicorn app:app --reload

3) Development

Install frontend dependencies:

npm install

Before running the app locally, build frontend assets:

npm run build

Then run FastAPI:

uvicorn app:app --reload

Open:

http://127.0.0.1:8000

Wheel build/publish automation is handled in Tekton jobs under k8s/tekton.

If you change files under src/, rebuild before refreshing:

npm run build

The backend serves the built frontend from static/app/.

Notes

  • The / route serves the built React app, not the old Jinja page.
  • If the frontend build is missing, the app returns a message telling you to run npm install and npm run build.

Test string

Pipeline trigger check: deploy key added on 2026-03-05.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

faik_inventory-1.0.10-py3-none-any.whl (256.3 kB view details)

Uploaded Python 3

File details

Details for the file faik_inventory-1.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for faik_inventory-1.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 9599ba445171a6c5873f5dac7fa6e1aa6ba35064a59f0e75011a37f5c56892e5
MD5 0c653adfb4b33d9176f3ab867687064f
BLAKE2b-256 322bd35275a2b1c86a32341b6337666e5df752113fd31841c20a4980c66d4109

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page