123 lines
4.2 KiB
Markdown
123 lines
4.2 KiB
Markdown
# AssetManager 0.5.5.30
|
|
|
|
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.
|