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:
cp .env.example .env
Set at least the required secrets in .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:
docker compose up -d --build
By default, AssetManager is exposed on port 8088.
Persistent data
Runtime data is stored in bind mounts below data/:
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:
docker compose down
docker compose up -d --build
docker compose logs --tail=100 -f
Historical release notes are available in docs/version-history/.
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.
Third-party components
Direct dependencies and license information are listed in 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 for repository contribution requirements.
License
Copyright © 2026 Roland Reich
Licensed under the Apache License, Version 2.0. See LICENSE.txt for the complete license text.