# AssetManager 0.5.5.29 AssetManager is a self-hosted web application for managing IT equipment and other organizational assets. The project is released under the **Apache License 2.0** and may be used, modified, and redistributed for private and commercial purposes. ## Features - configurable asset categories, fields, and status values - asset lists, detail views, history, assignment, and return workflows - Excel import and export, bulk changes, duplicate merging, and tree views - hardware and software inventory - job definitions and job execution with status tracking, callbacks, retries, and logs - local user management and optional LDAP authentication - protected local emergency administrator even when LDAP is enabled - roles, visibility rules, translations, dark mode, and configurable appearance - integrated backup and restore functions - optional MeshCentral integration through the MeshCtrl command-line interface ## MeshCentral integration The integration is optional. AssetManager uses MeshCtrl for supported device queries and remote jobs. It does not access the MeshCentral database directly. MeshCentral and MeshCtrl are independent third-party projects and are not part of this repository; they are installed as dependencies during the Docker build. ## Requirements - Docker Engine with Docker Compose - a suitable DNS name and HTTPS reverse proxy are recommended for production installations - optionally, a reachable MeshCentral instance - optionally, LDAP or Active Directory ## Installation ```bash cp .env.example .env ``` Set at least these values in `.env`: ```env POSTGRES_PASSWORD=CHANGE_ME SESSION_SECRET=CHANGE_ME_LONG_RANDOM LOCAL_ADMIN_USERNAME=emergency-admin LOCAL_ADMIN_PASSWORD=CHANGE_ME_MIN_12_CHARS ``` Then start the application: ```bash docker compose up -d --build ``` By default, the application is available on port `8088`. ## Persistent data Runtime data is stored in bind mounts below `data/`: ```text data/ ├── config/ application configuration ├── postgres/ PostgreSQL database ├── uploads/ uploaded files ├── logs/ logs and diagnostics ├── backups/ application backups └── scripts/ deployed scripts ``` These directories and `.env` may contain credentials, personal data, or internal operational data and must not be committed to a public repository. ## Updating Always back up `.env` and the complete `data/` directory before updating. Copy the new `assetmanager/` directory over the existing project directory and run: ```bash docker compose down docker compose up -d --build docker compose logs --tail=100 -f ``` Detailed release notes are stored in [`docs/version-history/`](docs/version-history/README.md). ## Creating a sanitized public source archive The exporter creates a sanitized ZIP archive with exactly one top-level directory named `assetmanager/`: ```bash python tools/create_github_source.py ``` Before exporting, the script validates versions, license metadata, sensitive runtime files, and unwanted product-comparison references. ## Validation ```bash python tools/check_public_release.py python tools/check_translations.py python tools/validate_release.py ``` ## Documentation - [Client communication and software deployment architecture](docs/architecture/SOFTWARE-CLIENT-ARCHITECTURE.md) - [Version history](docs/version-history/README.md) - [Contributing](CONTRIBUTING.md) - [Security policy](SECURITY.md) - [Third-party notices](THIRD_PARTY_NOTICES.md) ## Third-party components Direct dependencies and their license types are listed in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). During the Docker build, license files from the installed Python and Node.js packages are collected under `/app/THIRD_PARTY_LICENSES/`. ## Contributing Contributions and forks are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md). A submission is a proposal and does not create an obligation to include it in the official project. ## Security Do not disclose credentials or exploitable details in a public issue. See [SECURITY.md](SECURITY.md). ## License Copyright © 2026 Roland Reich Licensed under the Apache License, Version 2.0. See [LICENSE.txt](LICENSE.txt) for the complete license text.