Part-DB-server/tests/Services
Sebastian Almberg d346708150
Add Docker update support via Watchtower integration (#1330)
* Add Docker update support via Watchtower integration

Add web-based Docker container updates using Watchtower HTTP API.
When configured with WATCHTOWER_API_URL and WATCHTOWER_API_TOKEN
environment variables, administrators can trigger container updates
from the Update Manager page.

Features:
- WatchtowerClient service for Watchtower HTTP API communication
- Docker update progress page with animated Docker whale logo
- Real-time step tracking: Trigger, Pull, Stop, Restart, Health Check, Verify
- CSP-compatible progress bar using CSS classes
- Translated UI strings via Stimulus values
- Health endpoint polling to detect container restart
- Watchtower setup documentation for Docker installations
- WatchtowerClient made nullable for non-Docker installations
- Unit tests for WatchtowerClient

* Fixed translation message IDs

* Switch Watchtower docs to maintained nicholas-fedor fork

The original containrrr/watchtower is no longer maintained (last release
Nov 2023). Point users to the drop-in compatible active fork and add an
info note explaining why. No code changes — the HTTP API is identical,
so WatchtowerClient works against either image.

* Fixed exception when github is not reachable

* Only show version string in health endpoint, when user has permissions

* Do not expose watchtower API port in example docker-compose file

* Show if updates, backup restore and backup download are allowed in update manager page

* Report 'not authorized' for version in health endpoint if user lacks permission

---------

Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
2026-05-03 23:00:31 +02:00
..
AI Added tests for AIPlatformRegistry 2026-05-02 22:12:36 +02:00
Attachments Ran rector and made tests final 2026-02-14 23:32:43 +01:00
EDA Enhance KiCad integration: API v2, batch EDA editing, field export control (#1241) 2026-03-01 22:10:13 +01:00
EntityMergers/Mergers Ran rector and made tests final 2026-02-14 23:32:43 +01:00
Formatters Ran rector and made tests final 2026-02-14 23:32:43 +01:00
ImportExportSystem Fix fallback filename (#1238) 2026-02-15 14:41:25 +01:00
InfoProviderSystem Fix creating parts from TME if the SPN contains percent signs (#1337) 2026-04-06 14:42:54 +02:00
LabelSystem Implement parsing of TME QR codes (#1324) 2026-03-29 14:53:31 +02:00
LogSystem Ran rector and made tests final 2026-02-14 23:32:43 +01:00
Misc Ran rector and made tests final 2026-02-14 23:32:43 +01:00
Parameters Ran rector and made tests final 2026-02-14 23:32:43 +01:00
Parts Ran rector and made tests final 2026-02-14 23:32:43 +01:00
ProjectSystem Add price columns to project BOM table and build price summary (#1345) 2026-04-15 22:13:07 +02:00
System Add Docker update support via Watchtower integration (#1330) 2026-05-03 23:00:31 +02:00
Trees Ran rector and made tests final 2026-02-14 23:32:43 +01:00
UserSystem Ran rector and made tests final 2026-02-14 23:32:43 +01:00
ElementTypeNameGeneratorTest.php Ran rector and made tests final 2026-02-14 23:32:43 +01:00
ElementTypesTest.php Ran rector and made tests final 2026-02-14 23:32:43 +01:00