Part-DB-server/src
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
..
ApiPlatform Updated to API Platform 4 2025-08-04 23:32:42 +02:00
ApiResource Added API endpoint for generating labels (#1234) 2026-02-15 16:03:07 +01:00
Command Add custom KiCad autocomplete list settings (#1342) 2026-04-15 00:01:00 +02:00
Configuration Added system to restrict permissions based on API token level 2023-08-28 21:20:59 +02:00
Controller Add Docker update support via Watchtower integration (#1330) 2026-05-03 23:00:31 +02:00
DataFixtures Added custom part status (#1053) 2025-10-27 21:58:16 +01:00
DataTables Use big E for si value formatting output 2026-04-15 22:57:02 +02:00
Doctrine Fixed phpstan issues 2026-04-15 23:27:10 +02:00
Entity Increase possible length of the vendor barcode column in part lots 2026-03-07 21:54:46 +01:00
EntityListeners Do not remove associated Project BOM entries if part is deleted 2025-10-17 21:30:40 +02:00
EnvVarProcessors Allow that the DEFAULT_URI does not end with a slash 2025-12-04 23:31:42 +01:00
EventListener Replace hardcoded entity type names with synonym placeholders in English and German translations (#1128) 2025-12-07 14:09:22 +01:00
Events Write to event log, when a user gets impersonated 2023-07-08 23:07:06 +02:00
EventSubscriber Add Docker update support via Watchtower integration (#1330) 2026-05-03 23:00:31 +02:00
Exceptions Label Scanner Enhancements: LCSC barcode, create part, augmented scanning (#1194) 2026-02-22 21:26:44 +01:00
Form Fixed phpstan issues 2026-05-03 00:18:38 +02:00
Helpers Fixed static analysis issues 2026-03-01 23:18:27 +01:00
Migration Fixed problems with container injection into migrations 2025-07-12 23:39:26 +02:00
Repository Allow to read amazon labels for part retrieval and creation 2026-02-22 23:16:39 +01:00
Security Allow to set stocktake date for part lots 2026-02-10 22:23:54 +01:00
Serializer Fixed tests 2026-03-07 22:47:05 +01:00
Services Add Docker update support via Watchtower integration (#1330) 2026-05-03 23:00:31 +02:00
Settings Show hint of google/gemini-2.5-flash-lite in placeholder 2026-05-03 16:54:06 +02:00
State Added API endpoint for generating labels (#1234) 2026-02-15 16:03:07 +01:00
Translation Do not output HTML chars in translations escaped in CDATA to ensure consistentcy with crowdin XMLs 2026-02-07 17:33:32 +01:00
Twig Allow to select which method should be used to in "Create from URL feature" 2026-05-02 23:23:20 +02:00
Validator Ran rector 2026-02-14 23:33:40 +01:00
.preload.php Added copyright/license info to files 2022-11-29 21:21:26 +01:00
Kernel.php Added declare strict types to all files 2023-06-11 18:59:07 +02:00