Commit Graph

8510 Commits

Author SHA1 Message Date
Simon L. b4e4ff8fd7 fix a detail
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-22 16:04:34 +02:00
Simon L. d2fbb711d2 feat(desec): surface domain notice at top, drop in-flow credentials
Hide the "Your deSEC login credentials" block during the in-flight
register/verify steps — the credentials are still shown in the dedicated
"deSEC account credentials" section once the domain is registered.

Extract the deSEC domain info/dnsmasq-caution notice into a reusable include
and also show it at the top of the initial-install flow, directly above the
"download and start containers" explanation, while keeping it in the
Community Containers section where it already appeared.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-22 16:04:34 +02:00
Simon L. 13c762c720 fix(desec): style the email field and stack the modal form inputs
The email input was unstyled because input[type="email"] was missing from
the text/password input rules, and the deSEC form's inline-block inputs
flowed side by side. Add the email type to the input styling rules and lay
the deSEC modal form out as a vertical stack with full-width inputs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-22 16:04:33 +02:00
Simon L. 454905c852 feat(desec): run registration flow in a modal iframe
Move the deSEC "register a free domain" flow out of the inline containers
page form and into a modal backed by a dedicated /desec view loaded in an
iframe. The multi-step register -> verify -> domain process now re-renders
inside the modal, so the user can adjust the details and complete email
verification without reloading the whole page each step. Only once the
domain is fully registered does the view reload the parent containers page.

- add /desec route + desec.twig standalone view
- add desec-modal.js (open/close, backdrop + Escape) and desec-done.js
  (parent reload on completion)
- redirect register POST to the /desec view so steps stay in the modal
- drop the redundant <details> wrapper in desec-register.twig, add heading
- style the modal and let <button class="button"> pick up button styles
- drive the modal iframe in the Playwright specs and update the QA checklist

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-22 13:24:50 +02:00
Simon L. 164b150817 docs(desec): document the free deSEC domain option
Mention and recommend the built-in deSEC free domain registration across the
readme, reverse-proxy and local-instance guides, and add a deSEC step to the
new-instance QA checklist.

Co-Authored-By: szaimen <42591237+szaimen@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-18 13:19:16 +02:00
Simon L. 60230cc636 ci(desec): add ToS-safe deSEC API version drift guard
desec-api-version-watch.yml is a scheduled workflow that watches the public
desec-stack "API Versions and Roadmap" table (no calls to the live deSEC API, so
it respects their ToS) and fails if it changes, prompting a review of the mock
and DesecManager against any new API version.

Co-Authored-By: szaimen <42591237+szaimen@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-18 13:19:16 +02:00
Simon L. 4c8012adcd test(desec): end-to-end Playwright coverage against a local mock
- desec-mock.mjs: a dependency-free Node mock of the deSEC API endpoints the code
  uses, with the real status-code semantics (202 on account creation, 403 until
  verified then 200 + token, 201/409 on domain creation) plus /__control hooks to
  verify and reset state.
- desec-register.spec.js / desec-existing.spec.js drive the real AIO UI through
  the register -> verify -> domain flow and the existing-account login flow;
  desec-helpers.js holds the shared login helper. Each scenario ends by setting a
  domain, so they run as separate CI steps with a re-seed in between.
- seed-desec-mock-config.php points desec_api_base / desec_update_url at the mock
  (config key only, no env override, so production is unaffected) and seeds a
  known master password, since seeding configuration.json makes AIO consider
  itself already installed and /setup no longer shows a generated password.
- Both Playwright workflows start the mock, mount ./community-containers so the
  caddy/dnsmasq definitions enabled by the flow are present, seed the config, and
  run the two deSEC specs with a re-seed between them.

Co-Authored-By: szaimen <42591237+szaimen@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-18 13:19:16 +02:00
Simon L. 0753c6c902 feat(desec): wire caddy/dnsmasq community containers into the flow
- caddy.json: pass DESEC_TOKEN to the caddy container so it can solve the DNS-01
  challenge for the registered dedyn.io domain.
- community-containers.twig: when the domain was registered via deSEC, explain
  that caddy and dnsmasq were enabled automatically and link the required dnsmasq
  router change, with a caution to disable dnsmasq on publicly reachable hosts.
- compose.yaml: mention the built-in deSEC free domain option alongside Tailscale
  in the reverse-proxy hint.

Co-Authored-By: szaimen <42591237+szaimen@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-18 13:19:16 +02:00
Simon L. 1868738f56 feat(desec): add register -> verify -> domain UI
- includes/desec-register.twig renders the multi-step deSEC flow: enter email
  (optionally an existing password), the awaiting-verification step, and the
  account-registered step, with friendly messaging for the ambiguous "email
  already registered" case (deSEC returns 202 either way to prevent enumeration).
- containers.twig includes the deSEC section under the domain-entry UI; index.php
  passes the deSEC config/state (email, password, registered/awaiting flags) to
  the view.
- Move the deSEC password reveal from an inline style to a CSS class (no inline
  CSS/JS in templates) and bump the style.css cache-buster to v13 in layout.twig
  and log.twig.

Co-Authored-By: szaimen <42591237+szaimen@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-18 13:19:16 +02:00
Simon L. f7987b26ac feat(desec): add deSEC account + domain registration backend
Add the server-side deSEC (dedyn.io) free dynamic-DNS flow so users without a
domain can obtain one from the AIO interface.

- DesecManager drives the full flow against the deSEC API, matching its real
  semantics: account creation returns HTTP 202 + email verification (no token),
  a token is obtained via /auth/login/ only after the email is verified, domain
  registration handles 201/409, and a wildcard CNAME rrset is created for new
  accounts. Existing accounts can be used by supplying a password.
- The "awaiting verification" step is derived from the stored credentials (email
  + generated password but no token and no domain yet), not a separate flag.
  register() returns false for that state so the controller can re-render the
  awaiting-verification UI instead of surfacing it as an error.
- DesecController exposes POST /api/desec/register; DependencyInjection wires the
  manager; account credentials (email, generated password, token) are stored in
  the AIO configuration and DESEC_TOKEN is exposed to the caddy container.
- The dynamic-DNS record is refreshed with the current public IP on container
  start (DockerController) and via the cron path (Cron/UpdateDesecIp, cron.sh).
- Fix an undefined-variable bug in the desecToken/desecPassword config setters
  that prevented credentials from being persisted.

Co-Authored-By: szaimen <42591237+szaimen@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-18 13:19:16 +02:00
Simon L. 03bc7ebded add dnsmasq community container (#8355) 2026-06-17 17:04:59 +02:00
Simon L. 7f4fa35d83 add dnsmasq community container
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-17 16:53:03 +02:00
Simon L. 8d83379dda Imaginary update (#8354) 2026-06-17 15:30:12 +02:00
szaimen 193deab48c imaginary-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-17 13:29:44 +00:00
Simon L. 0baf4b4f79 aio-interface: show better instructions what should be done if you did not see a password (#8349) 2026-06-17 14:32:54 +02:00
Simon L. 20d2e847b2 build(deps): bump guzzlehttp/guzzle from 7.11.2 to 7.12.0 in /php (#8352) 2026-06-17 14:15:58 +02:00
dependabot[bot] 453f0542ad build(deps): bump guzzlehttp/guzzle from 7.11.2 to 7.12.0 in /php
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.11.2 to 7.12.0.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.12/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.11.2...7.12.0)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-version: 7.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 12:03:04 +00:00
Simon L. 29d014489d add Contributing and agents.md files to the repo (#8295)
* add AI-Policy and Contributing and agents.md files to the repo

Signed-off-by: Simon L. <szaimen@e.mail.de>

* Apply suggestions from code review

Co-authored-by: Pablo Zmdl <57864086+pabzm@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>

* remove the ai-policy file

Signed-off-by: Simon L. <szaimen@e.mail.de>

* Apply suggestion from @szaimen

Signed-off-by: Simon L. <szaimen@e.mail.de>

* Apply suggestion from @szaimen

Signed-off-by: Simon L. <szaimen@e.mail.de>

---------

Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Pablo Zmdl <57864086+pabzm@users.noreply.github.com>
2026-06-17 13:42:23 +02:00
Simon L. 8584e1a5a4 remove the registry.gitlab.collabora.com/collabora-online/docker:latest image (#8350) 2026-06-17 13:17:24 +02:00
Simon L. 787fa22a81 remove the registry.gitlab.collabora.com/collabora-online/docker:latest image
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-17 12:18:16 +02:00
Simon L. dc24f16fdd aio-interface: show better instructions what should be done if you did not see a password
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-17 11:52:50 +02:00
Simon L. 660a128708 update remaining docker images to alpine 3.24 (#8348) 2026-06-17 11:47:43 +02:00
Simon L. 2ebbf41566 update remaining docker images to alpine 3.24
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-17 11:31:04 +02:00
Simon L. 77c8664ef7 build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/clamav (#8338) 2026-06-17 11:29:30 +02:00
Simon L. 0be2b59e02 build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/watchtower (#8344) 2026-06-17 11:29:17 +02:00
Simon L. cc5c036843 build(deps): bump python from 3.14.5-alpine3.23 to 3.14.6-alpine3.23 in /Containers/talk-recording (#8343) 2026-06-17 11:29:08 +02:00
Simon L. b450f4b810 build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/talk (#8342) 2026-06-17 11:28:57 +02:00
Simon L. d13dd3bbfd build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/notify-push (#8341) 2026-06-17 11:28:47 +02:00
Simon L. 08a1e1f280 build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/imaginary (#8340) 2026-06-17 11:28:12 +02:00
Simon L. d32fbe6417 build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/domaincheck (#8339) 2026-06-17 11:28:04 +02:00
Simon L. ee0e985941 build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/borgbackup (#8337) 2026-06-17 11:27:56 +02:00
Simon L. dbfb9e981f build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/alpine (#8336) 2026-06-17 11:27:09 +02:00
Simon L. 489fe418d8 apache: set default for AIO_LOG_LEVEL (#8347) 2026-06-17 11:26:28 +02:00
Simon L. 12dbef85cb apache: set default for AIO_LOG_LEVEL
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-17 11:24:46 +02:00
Simon L. 653e518fab add joplin to the community containers overview
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-17 11:17:35 +02:00
dependabot[bot] ff07bd3b5c build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/watchtower
Bumps alpine from 3.23.4 to 3.24.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:08:43 +00:00
dependabot[bot] 34bca93480 build(deps): bump python in /Containers/talk-recording
Bumps python from 3.14.5-alpine3.23 to 3.14.6-alpine3.23.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.14.6-alpine3.23
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:08:39 +00:00
dependabot[bot] b0737277a1 build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/talk
Bumps alpine from 3.23.4 to 3.24.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:08:36 +00:00
dependabot[bot] 4dd354dd43 build(deps): bump alpine in /Containers/notify-push
Bumps alpine from 3.23.4 to 3.24.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:08:24 +00:00
dependabot[bot] 2ff86376da build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/imaginary
Bumps alpine from 3.23.4 to 3.24.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:07:40 +00:00
dependabot[bot] 8a19b91830 build(deps): bump alpine in /Containers/domaincheck
Bumps alpine from 3.23.4 to 3.24.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:07:35 +00:00
dependabot[bot] c4d09f5756 build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/clamav
Bumps alpine from 3.23.4 to 3.24.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:07:31 +00:00
dependabot[bot] ac03df3eeb build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/borgbackup
Bumps alpine from 3.23.4 to 3.24.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:07:28 +00:00
dependabot[bot] 64529186af build(deps): bump alpine from 3.23.4 to 3.24.1 in /Containers/alpine
Bumps alpine from 3.23.4 to 3.24.1.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 04:07:25 +00:00
Copilot fc4bb548a4 aio-interface: fix nginx reverse proxy read timeout blocks AIO from starting consecutive containers (#8016)
* Fix: prevent nginx proxy read timeout from blocking AIO container startup

When AIO runs behind an nginx reverse proxy and a user clicks Start,
image pulls produce no streaming output for minutes at a time. nginx's
proxy_read_timeout fires, drops the upstream connection, and PHP then
aborts on the next write attempt (ignore_user_abort defaults to false),
leaving all containers after the first one never started.

Two fixes:
1. startStreamingResponse(): add ignore_user_abort(true) so PHP never
   terminates if the connection is already gone.
2. PullImage(): stream the Docker NDJSON pull response and write a
   "Pulling image" heartbeat at most once every 5 s, keeping the nginx
   connection alive.  Also surfaces Docker-level stream errors that the
   old buffered call silently ignored, guards against malformed
   newline-free responses with a 1 MB buffer limit, and unifies the
   duplicate catch-block retry logic.

Agent-Logs-Url: https://github.com/nextcloud/all-in-one/sessions/4fd13605-63fb-4693-8a95-89ccec31f7d3

Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>

* As heartbeat send a dot regularly

Rather than repeating the message, send a "magic" dot, which gets
appended to the previous line.

Previously the heartbeats weren't sent regulary because reading the data
into a buffer caused a lag.

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>

* Remove left-over constants

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>

* Reduce timeout to stay within nginx's default timeout of 5s

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>

* Fix duplicated library namespace inclusion

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>

* Deal with preg_replace possibly returning null

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>

* update the version tag

Signed-off-by: Simon L. <szaimen@e.mail.de>

---------

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
Co-authored-by: Pablo Zmdl <pablo@nextcloud.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2026-06-16 17:49:18 +02:00
Simon L. d20eb5edda PHP dependency updates (#8332) 2026-06-16 17:37:12 +02:00
lonode 11e6f55212 [Community Containers] Adding joplin-server (#7983)
* added joplin-server

Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* update to container sidecar

added depends

Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Use latest

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Typo

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Freeze postgres

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Add secret for Joplin DB

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Freeze PGDATA location

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Fix port publishing

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* fix typo

Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* fix typo : swap user/db

Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Update community-containers/joplin-server/joplin-server.json

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Update community-containers/joplin-server/joplin-server.json

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* Update caddy docs to mention subdomain

Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>

* some adjustments to the readme

Signed-off-by: Simon L. <szaimen@e.mail.de>

---------

Signed-off-by: lonode <32384862+lonode@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2026-06-16 15:57:53 +02:00
Nicolas Binette bb7d32a2f2 Add AzuraCast community container (#8176)
* Add AzuraCast community container

Signed-off-by: Nicolas Binette <biguenique@nuee.cc>

* Update Caddy readme to mention AzuraCast

Signed-off-by: Nicolas Binette <biguenique@nuee.cc>

* azuracast: consolidate storage/* volumes into single storage volume

Replace seven granular mounts under /var/azuracast/storage with a single
nextcloud_aio_azuracast_storage volume, matching AzuraCast's official
docker-compose layout. Remove nextcloud_aio_azuracast_uploads from
backup_volumes (media files are captured via stations and AzuraCast's
own backup archives in /var/azuracast/backups).

Signed-off-by: Nicolas Binette <biguenique@nuee.cc>

* azuracast: change HTTP/HTTPS ports to 10080/10443, expose on host

Use ports recommended by AzuraCast docs for reverse proxy deployments.
Expose port 10080 (HTTP) with %APACHE_IP_BINDING% following the vaultwarden
pattern, and port 10443 (HTTPS) on all interfaces for direct access.
Update readme accordingly.

Signed-off-by: Nicolas Binette <biguenique@nuee.cc>

* azuracast: replace shared volume with %NEXTCLOUD_MOUNT%, document filesystem sharing

Replace the named volume nextcloud_aio_azuracast_shared with the AIO-native
%NEXTCLOUD_MOUNT% mechanism. The volume is silently skipped if NEXTCLOUD_MOUNT
is not configured in AIO.

Update readme.md:
- Document NEXTCLOUD_MOUNT as the advanced file sharing approach, with setup
  instructions and a comparison to the SFTP approach
- Clarify default access behavior: files (mode 644) are world-readable by both
  processes; some AzuraCast directories (mode 700) require intervention
- Document POSIX ACL commands for unlocking read-only or bidirectional access
  on specific paths, with a note that they must be re-run after structural
  changes by AzuraCast
- Minor wording and formatting improvements throughout

Tested on a live AzuraCast instance: rename and bidirectional move confirmed
working after ACL application; containers start correctly without UMASK override.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Nicolas Binette <biguenique@nuee.cc>

* Update community-containers/azuracast/azuracast.json

Do not expose internal HTTP port 10080 on host.

Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Nicolas Binette <biguenique@nuee.cc>

* azuracast: add to community containers overview diagram

Add AzuraCast entry to the Media group of the mermaid overview
diagram in community-containers/readme.md, as requested by szaimen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Nicolas Binette <biguenique@nuee.cc>

* fix the json

Signed-off-by: Simon L. <szaimen@e.mail.de>

* Apply suggestion from @szaimen

Signed-off-by: Simon L. <szaimen@e.mail.de>

* Apply suggestion from @szaimen

Signed-off-by: Simon L. <szaimen@e.mail.de>

---------

Signed-off-by: Nicolas Binette <biguenique@nuee.cc>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2026-06-16 15:47:15 +02:00
szaimen 894f68ea6c php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-16 13:39:24 +00:00
Simon L. ac2df1b4ad build(deps): bump guzzlehttp/guzzle from 7.11.1 to 7.11.2 in /php (#8330) 2026-06-16 14:30:16 +02:00