# AssetManager 0.5.5.42 AssetManager is a self-hosted web application for managing IT equipment and other organizational assets. It provides asset inventory, software inventory, remote job execution, reporting, privacy/retention documentation, and optional integration with MeshCentral. The project is licensed under the **Apache License 2.0** and may be used, modified, and redistributed for private and commercial purposes under the terms of that license. ## Features - configurable asset categories, fields, status values, images, and assignments - asset lists, detail views, history, bulk editing, Excel import/export, duplicate merging, and tree views - hardware and software inventory with comparison and aggregation views - job definitions and remote job execution with status tracking, callbacks, retries, and logs - optional MeshCentral integration through the MeshCtrl command-line interface - local users, optional LDAP/Active Directory authentication, and a protected local emergency administrator - roles and asset visibility rules - multilingual user interface, dark mode, charts, and configurable appearance - integrated application backup and restore - privacy and retention documentation with text, HTML, and Excel exports ## Requirements - Docker Engine with Docker Compose - a supported PostgreSQL container as defined by `docker-compose.yml` - a suitable DNS name and HTTPS reverse proxy are recommended for production use - optional: reachable MeshCentral instance - optional: LDAP or Active Directory ## Installation Create the local environment file: ```bash cp .env.example .env ``` Set at least the required secrets 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 ``` Start the application: ```bash docker compose up -d --build ``` By default, AssetManager is exposed 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 information and must not be committed to a public repository. ## Authentication AssetManager supports local authentication and LDAP/Active Directory authentication. A protected local emergency administrator can be configured through environment variables so that administrative access remains possible if LDAP is unavailable. LDAP debug logging is optional and should normally remain disabled. When disabled, LDAP logs contain only reduced authentication information. ## MeshCentral integration MeshCentral integration is optional. AssetManager uses MeshCtrl for supported device queries, synchronization, presence information, file transfer, and remote jobs. AssetManager 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. ## Privacy and retention The application includes a **Security & Privacy** section for documenting processing activities, data categories, retention periods, recipients, international transfers, technical and organizational measures, and deletion checks. Reports can be exported as text, HTML, or Excel. Deletion functions are restricted to administrators. Exported reports do not include passwords, callback tokens, or other secrets. ## Updating Back up `.env` and the complete `data/` directory before updating. Copy the new `assetmanager/` directory over the existing project directory and rebuild the application container: ```bash docker compose down docker compose up -d --build docker compose logs --tail=100 -f ``` Historical release notes are available in [`docs/version-history/`](docs/version-history/README.md). ## Security Do not commit credentials, tokens, private keys, personal data, runtime databases, logs, backups, or internal deployment details. Security reporting guidance is available in [SECURITY.md](SECURITY.md). ## Third-party components Direct dependencies and license information are listed in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). During the Docker build, license files from installed Python and Node.js packages are collected under `/app/THIRD_PARTY_LICENSES/`. ## Contributing Contributions and bug reports are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for repository contribution requirements. ## License Copyright © 2026 Roland Reich Licensed under the Apache License, Version 2.0. See [LICENSE.txt](LICENSE.txt) for the complete license text.