FleetManager Server
Docker installation of FleetManager on your own server.
Prerequisites
- Linux server with Docker and Docker Compose
- Reverse proxy with HTTPS termination (e.g. Traefik, nginx)
- At least 1 GB RAM and 10 GB disk space
1. Set up Docker Compose
Create a docker-compose.yml:
version: "3.8"
services:
fleetmanager:
image: brinkhausgmbh/fleetmanager:latest
restart: unless-stopped
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://fleet:${DB_PASSWORD}@db:5432/fleetmanager
- SECRET_KEY=${SECRET_KEY}
- ALLOWED_ORIGINS=https://fleet.example.com
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
environment:
- POSTGRES_DB=fleetmanager
- POSTGRES_USER=fleet
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
pgdata: 2. Environment Variables
Create a .env file in the same directory:
# Database password
DB_PASSWORD=a-secure-password
# Secret key for JWT tokens
SECRET_KEY=a-long-random-string
# Optional: SMTP for password reset
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=fleet@example.com
SMTP_PASSWORD=smtp-password Important: Protect the .env file with
chmod 600 .env.
3. Start and Verify
# Start the stack
docker compose up -d
# Check logs
docker compose logs -f fleetmanager
# Health check
curl -sk https://fleet.example.com/health Updating to a New Version
docker compose pull
docker compose up -d Database migrations are run automatically on startup.
Docker Image
The official image is published on Docker Hub:
docker pull brinkhausgmbh/fleetmanager:latest
# Or a specific version:
docker pull brinkhausgmbh/fleetmanager:5.10.0
Available tags: :latest,
:X.Y.Z,
:X.Y,
:X
Changelog
5.10.0 2026-07-01
Added
- Structured status values: the status tree renders booleans as status lamps, localized timestamps, and sizes, durations and percentages with units
5.8.0 2026-06-03
Changed
- Artifacts are attributed to the producing service: the "Artifacts" tab now appears only on the Log Collector instead of on every service of the machine
5.7.1 2026-06-02
Fixed
- Concurrent first reports of the same instance (e.g. heartbeat + diagnostics) caused an HTTP 500 error during ingest
5.7.0 2026-06-02
Added
- Fleet hierarchy: optional levels "Location" (e.g. "Hall 1") and "Group" (e.g. "Security audit") in the dashboard tree
- Sort priorities: reporting software controls the ordering of groups and services
- Compact display: with only a single group, the group node is omitted
Changed
- Security module names switched to descriptive English names (e.g. sec-auth → authentication)
5.6.0 2026-06-02
Added
- Log bundles: edges upload compressed log bundles via the Log Collector — chunked and resumable
- New "Artifacts" tab in machine detail with per-bundle download
- Automatic cleanup for artifacts: per-customer retention, default 14 days
5.5.0 2026-06-02
Added
- Host metrics: edges continuously report CPU, RAM and disk usage via the Log Collector
- New "Resources" view in machine detail with recent data points and min/avg/max summary
- Per-customer retention configurable for the metrics time series
Changed
- The Log Collector is exempt from the device license limit
5.4.0 2026-05-28
Added
- Machines can be given a customer-specific name — edited via the pencil icon (manager/admin)
5.3.1 2026-05-04
Fixed
- Database initialization: migration error on freshly set up databases fixed
5.2.1 2026-03-18
Fixed
- Assigning an existing user to an additional customer caused a 500 error
5.2.0 2026-03-18
Added
- English as second language: dashboard, customer management, whitelist, logs, settings, login and help texts
- Language switcher in user menu and on login/registration pages
- Backend error messages are translated automatically in the frontend
- Date formats adapt to the selected language
5.1.1 2026-03-17
Added
- Existing users can be assigned to an additional customer instead of being created anew
5.0.1 2026-03-17
Added
- Customer switcher in the app bar: dropdown for switching between customers (with multiple assignments)
5.0.0 2026-03-17
Added
- Multi-customer: a user can be assigned to multiple customers
- Switch customer context without re-authentication
4.16.0 2026-03-17
Changed
- Login by email instead of username (username still accepted)
- Registration without username — derived from the email address
4.15.0 2026-03-17
Added
- Email is a required field when creating users — each email address only once per user
4.14.3 2026-03-17
Fixed
- Added missing display names for security modules (Cron/Timer, Hardening, Kernel, Services, Users)
4.14.2 2026-03-17
Added
- Display names for security modules in dashboard and whitelist (e.g. sec-auth → "Authentication")
4.14.1 2026-03-17
Changed
- Onboarding guide: "MQTT token" renamed to "security token", direct link to token creation
4.13.1 2026-03-11
Changed
- Traffic light color now follows diagnostic severity only — whitelisted messages correctly result in a green light
4.13.0 2026-03-11
Added
- Agent command system: modules can advertise available commands (e.g. "Renew baseline") in the dashboard
- New "Commands" tab in instance detail dialog for triggering and tracking agent commands
- Command queue: commands are automatically delivered on next agent contact
- Confirmation dialog before command execution with i18n labels and icons
Fixed
- Whitelist rules with square brackets in message patterns were not applied during ingest
4.12.2 2026-03-11
Added
- Firewall rule changes shown as color-coded diff view in status log
Fixed
- Status snapshots from security agents were discarded on receipt
4.11.0 2026-03-11
Added
- Customer management: license column shows device usage and limit exceeded status
- SSO to license portal: "Upgrade license" without re-authentication
4.10.0 2026-03-11
Added
- OS detection: OS type and version visible in dashboard
- Device usage display in license dialog with progress bar
- Dashboard warning banner when device limit is exceeded
- Soft-limit enforcement: after 14-day grace period, new devices are rejected when limit is exceeded
4.9.0 2026-03-10
Added
- Delete own account: users can self-delete their account
- Onboarding guide in dashboard: guided first-time setup with step-by-step instructions
- Customer-specific rejection logs visible under Logs
Security
- Password complexity rules: minimum 10 characters, upper/lowercase, digit or special character
4.8.0 2026-03-10
Added
- Self-service registration: new customers can create an account directly from the login page
- Per-customer licensing with license key validation against the license server
- License management in dashboard: view, enter and change license key
- Support contact information based on license tier
4.7.1 2026-03-08
Fixed
- Dashboard: Help text icon only shown when help text is available
- Dashboard: Negative cache prevents repeated API requests for missing help texts
4.7.0 2026-03-08
Added
- Diagnostic help texts: New ingest endpoint and dashboard integration (tooltip + overlay)
- Ingest API responds with HTTP 202 when help texts are missing
4.6.3 2026-03-06
Added
- CHANGELOG.md and RELEASING.md for unified release process
- CI: GitLab Release job with automatic changelog extraction
4.6.0 2026-03-05
Added
- Versioned DB migrations
Fixed
- View definition corrected
4.5.1 2026-03-05
Added
- Traffic light: sticky alerts ignored when last batch is green
- Version tooltip in frontend
4.4.0 2026-03-04
Added
- Diagnostics whitelist: pattern-based event suppression
0.9.0 2026-03-04
Added
- Security monitoring: alert stickiness, notifications, retention, log search
- Password reset and 2FA (TOTP)
- OpenAPI documentation with tags and response models
- Status snapshots: full StatusEngine tree
Start for free — 5 devices included
Fleet monitoring and security compliance in under 10 minutes. No credit card required.