{"id":50139889,"url":"https://github.com/tobiaswaelde/ezinventory","last_synced_at":"2026-05-24T00:34:02.145Z","repository":{"id":352855549,"uuid":"1216188691","full_name":"tobiaswaelde/ezinventory","owner":"tobiaswaelde","description":"ezinventory is a lightweight, self-hosted inventory management system for tracking assets, managing stock levels, and organizing resources. Built as a modern full-stack web application with a clean dashboard, REST API, and database integration.","archived":false,"fork":false,"pushed_at":"2026-05-18T11:17:28.000Z","size":2492,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T00:34:00.682Z","etag":null,"topics":["admin-dashboard","asset-management","asset-tracking","business-tools","crud","dashboard","database","docker","fullstack","inventory","inventory-management","inventory-system","inventory-tracking","open-source","productivity-tool","rest-api","self-hosted","stock-management","warehouse-management","web-application"],"latest_commit_sha":null,"homepage":"https://tobiaswaelde.github.io/ezinventory/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tobiaswaelde.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-20T16:53:30.000Z","updated_at":"2026-04-21T21:51:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tobiaswaelde/ezinventory","commit_stats":null,"previous_names":["tobiaswaelde/ezinventory"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tobiaswaelde/ezinventory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobiaswaelde%2Fezinventory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobiaswaelde%2Fezinventory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobiaswaelde%2Fezinventory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobiaswaelde%2Fezinventory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobiaswaelde","download_url":"https://codeload.github.com/tobiaswaelde/ezinventory/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobiaswaelde%2Fezinventory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33417487,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"ssl_error","status_checked_at":"2026-05-23T22:14:43.778Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin-dashboard","asset-management","asset-tracking","business-tools","crud","dashboard","database","docker","fullstack","inventory","inventory-management","inventory-system","inventory-tracking","open-source","productivity-tool","rest-api","self-hosted","stock-management","warehouse-management","web-application"],"created_at":"2026-05-24T00:34:01.394Z","updated_at":"2026-05-24T00:34:02.133Z","avatar_url":"https://github.com/tobiaswaelde.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EZ Inventory\n\n![Version](https://img.shields.io/github/v/release/tobiaswaelde/ezinventory)\n[![API CI](https://github.com/tobiaswaelde/ezinventory/actions/workflows/api-ci.yml/badge.svg?branch=main)](https://github.com/tobiaswaelde/ezinventory/actions/workflows/api-ci.yml)\n[![App CI](https://github.com/tobiaswaelde/ezinventory/actions/workflows/app-ci.yml/badge.svg?branch=main)](https://github.com/tobiaswaelde/ezinventory/actions/workflows/app-ci.yml)\n[![API Coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/tobiaswaelde/ezinventory/main/.github/badges/api-coverage.json)](https://github.com/tobiaswaelde/ezinventory/actions/workflows/api-ci.yml)\n[![App Coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/tobiaswaelde/ezinventory/main/.github/badges/app-coverage.json)](https://github.com/tobiaswaelde/ezinventory/actions/workflows/app-ci.yml)\n\nEZ Inventory is a mobile-first, open-source inventory system with QR workflows.\n\nThis README is written for admins who want to run EZ Inventory with Docker.\n\n## 1) Quickstart (Docker)\n\nRequirements:\n- Docker Engine + Docker Compose plugin\n\nStart locally:\n\n```bash\ngit clone https://github.com/tobiaswaelde/ezinventory.git\ncd ezinventory\ncp .env.example .env\ndocker compose up -d --build\n```\n\nOpen the app:\n- App: `http://localhost:3000`\n- API health: `http://localhost:3001/api/v1/health`\n- API docs (Scalar): `http://localhost:3001/api/docs`\n\nStop services:\n\n```bash\ndocker compose down\n```\n\n## 2) First Admin Login and Setup\n\n1. Open `http://localhost:3000`.\n2. Create your first account at `/auth/signup`.\n3. Go to `Settings` and switch `Registration Mode` to `ADMIN_ONLY` for production.\n4. Create additional users in `Settings` \u003e `Create User (Admin)`.\n5. Register your passkey in `Settings` \u003e `Profile Security`.\n\n## 3) What You Can Do in the App\n\n- `Dashboard`: quick links to scanning, inventory structure, and label printing\n- `Inventory`: create locations and nested containers\n- `Scan`: scan/lookup item codes and run quick stock actions\n- `Labels`: generate QR + barcode labels and print A4 sheets\n- `Settings`: admin controls (registration mode, users, permissions, passkeys)\n\nFull feature docs with screenshots:\n- https://tobiaswaelde.github.io/ezinventory/admin-feature-tour\n\n## 4) Environment Variables (Admin Essentials)\n\nMain variables used in Docker setup:\n- `DATABASE_URL`: PostgreSQL connection string\n- `CORS_ORIGIN`: CORS allowed origin(s), `*` for local dev\n- `NUXT_PUBLIC_API_BASE_URL`: app -\u003e API URL\n- `AUTH_ACCESS_TOKEN_SECRET`: JWT access secret\n- `AUTH_REFRESH_TOKEN_SECRET`: JWT refresh secret\n- `AUTH_PASSKEY_RP_ID`: passkey relying party id\n- `AUTH_PASSKEY_ORIGIN`: passkey origin URL\n\nTemplates:\n- Root: `.env.example`\n- API: `apps/api/.env.example`\n- Deployment: `.env.deploy.example`\n\n## 5) Documentation for Admins\n\n- Docs landing page: `docs/index.md`\n- Admin quickstart: `docs/admin-quickstart.md`\n- Feature tour with screenshots: `docs/admin-feature-tour.md`\n- Operations runbook: `docs/operations.md`\n- Architecture reference: `docs/architecture.md`\n\nRun docs locally:\n\n```bash\npnpm install\npnpm docs:dev\n```\n\n## 6) Useful Admin Commands\n\nRebuild and restart after updates:\n\n```bash\ngit pull\ndocker compose up -d --build\n```\n\nView logs:\n\n```bash\ndocker compose logs -f api\ndocker compose logs -f app\n```\n\nRun screenshot generator for docs:\n\n```bash\npnpm docs:screenshots\n```\n\n## 7) Project Structure\n\n- `apps/api` - NestJS API\n- `apps/app` - Nuxt app (PWA)\n- `packages/contracts` - generated OpenAPI contracts\n- `docs` - VitePress documentation\n\n## Community\n\n- Contributing: `CONTRIBUTING.md`\n- Security policy: `SECURITY.md`\n- License: `LICENSE`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobiaswaelde%2Fezinventory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobiaswaelde%2Fezinventory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobiaswaelde%2Fezinventory/lists"}