Commit Graph
8769 Commits
Author SHA1 Message Date
dependabot[bot] cb6db59601 build(deps): bump azure/setup-helm in /.github/workflows
Bumps [azure/setup-helm](https://github.com/azure/setup-helm) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/azure/setup-helm/releases)
- [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md)
- [Commits](https://github.com/azure/setup-helm/compare/dda3372f752e03dde6b3237bc9431cdc2f7a02a2...9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310)

---
updated-dependencies:
- dependency-name: azure/setup-helm
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-30 12:03:57 +00:00
dependabot[bot] d21c7f3f12 build(deps): bump guzzlehttp/guzzle from 7.12.3 to 7.13.1 in /php
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.12.3 to 7.13.1.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.13/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.12.3...7.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-30 12:02:48 +00:00
dependabot[bot] edb30dba4f build(deps): bump nats in /Containers/talk
Bumps nats from 2.14.2-scratch to 2.14.3-scratch.

---
updated-dependencies:
- dependency-name: nats
  dependency-version: 2.14.3-scratch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-30 04:07:43 +00:00
Simon L. 20d54c9663 ConfigurationManager: remove unused isx64Platform method
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-29 14:51:34 +02:00
Simon L. 117497b651 Fix snap-to-AIO migration docs (#8396) 2026-06-28 22:08:14 +02:00
Simon L.andClaude Opus 4.8 0f2b54e7c6 Fix snap-to-AIO migration docs
The snap migration section had several issues that caused the database
conversion step to fail (as reported at
https://help.nextcloud.com/t/migration-from-snap-installation-to-docker-aio/246329):

- The conversion container overrode the entrypoint with `--entrypoint bash`,
  so the Nextcloud source was never rsynced from /usr/src/nextcloud to
  /var/www/html. occ was missing and, with the config mounted to the wrong
  path, occ reported "Nextcloud is not installed". Now the container runs
  with its normal entrypoint (no admin/DB env vars, so it stages files
  without installing) and occ is invoked via `docker exec`.
- The temporary config is now mounted to /var/www/html/config/config.php and
  made writable (chmod 666) since db:convert-type writes the new DB settings
  back into it as www-data.
- The temporary MySQL container now starts with --skip-log-bin to avoid the
  "You do not have the SUPER privilege and binary logging is enabled" import
  error.
- The SNAP_DATA mount is read-write since the conversion writes to the data
  directory.
- Updated the version placeholder example and corrected the typical snap
  datadirectory path.

Verified end-to-end with real MySQL/PostgreSQL/Nextcloud containers: the
conversion runs clean and pg_dump produces a valid database-dump.sql.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-28 22:05:46 +02:00
Simon L. b25cccde1e Revise pull request template for clarity and completeness (#8380) 2026-06-26 13:34:10 +02:00
Pablo Zmdl 4ee32ec9bc Publish release policy
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-06-26 13:26:45 +02:00
Simon L. 7ce7e0cd25 address review
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-26 13:05:06 +02:00
Simon L. 37d1b9632b update NPMplus screenshot (#8387) 2026-06-26 11:41:44 +02:00
Simon L. c2a26934ca Update AIO version from 13.3.0 to 13.3.1
Signed-off-by: Simon L. <szaimen@e.mail.de>
v13.3.1
2026-06-26 10:31:40 +02:00
ZoeyandCopilot Autofix powered by AI adf1cfdf78 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Zoey <zoey@z0ey.de>
2026-06-25 21:37:57 +02:00
Zoey cc3cd9fd17 update NPMplus screenshot
Signed-off-by: Zoey <zoey@z0ey.de>
2026-06-25 21:35:20 +02:00
Pablo Zmdl 84341f4c71 Use test path that exists on macos, too
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-06-25 17:22:06 +02:00
Simon L. d54d9c7ff2 Nextcloud dependency update (#8385) 2026-06-25 15:00:20 +02:00
Simon L. 49f4731c91 apache: re-introduce X-Forwarded-Proto https so that onlyoffice and eurooffice always work no matter the actual reverse proxy config in front of it (#8379) 2026-06-25 14:59:11 +02:00
szaimen 5be7645a56 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-25 12:58:48 +00:00
Simon L. d6ea25f6ed Apply suggestion from @szaimen
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-25 14:58:40 +02:00
Simon L. 3d13a55e10 PHP dependency updates (#8375) 2026-06-25 14:58:06 +02:00
Simon L. bebb5d4847 eurooffice should only get enabled on new instances (#8378) 2026-06-25 14:57:44 +02:00
Simon L. 1feee6ecd7 Revise pull request template for clarity and completeness
Updated security issue reporting instructions and added new checkboxes for PR summary and AI content.

Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-24 17:55:25 +02:00
Simon L. 78faad6716 apache: re-introduce X-Forwarded-Proto https so that onlyoffice and eurooffice always work no matter the actual reverse proxy config in front of it
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-24 15:12:51 +02:00
Simon L.andClaude Opus 4.8 6fc913bc41 eurooffice should only get enabled on new instances
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-24 14:58:40 +02:00
szaimen 0bfcb3696c php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-24 12:41:14 +00:00
Simon L. 5f317a2b17 build(deps): bump actions/checkout from 6.0.3 to 7.0.0 in /.github/workflows (#8374) 2026-06-24 14:23:54 +02:00
dependabot[bot] 0544068385 build(deps): bump actions/checkout in /.github/workflows
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-24 12:05:45 +00:00
Simon L.andClaude Opus 4.8 cea187d6cb harp helm: drop redundant token file, add service account, fix host aliases docs
- Remove HARP_K8S_BEARER_TOKEN_FILE: HaRP already defaults it to the
  in-cluster service account token path, so templating it added nothing.
- Add HARP_SERVICE_ACCOUNT_NAME so the harp pod can run under a service
  account the user grants the required RBAC to, and document the setup.
- Correct the HARP_K8S_HOST_ALIASES docs: it is a comma-separated list of
  hostname:ip pairs, not JSON.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-24 13:17:48 +02:00
Simon L.andClaude Opus 4.8 45297ac60e Make harp Kubernetes backend configurable in helm chart
When harp syncs over from the manual-install to the helm chart it needs
the Kubernetes backend (HP_K8S_*) instead of the docker backend. The
update-helm script now injects these env vars into the harp deployment,
templated to values.yaml, and the chart readme documents them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-24 13:06:02 +02:00
szaimen c40cb1cffe Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-24 12:47:26 +02:00
Simon L. 9a00c904d4 ship harp also for manual-install
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-24 12:42:07 +02:00
Simon L. d65a00d61e change scrutiny port to port 8001 (#8366) v13.3.0 2026-06-24 10:49:15 +02:00
Simon L. c3c22d3ae9 change scrutiny port to port 8001
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-23 16:48:35 +02:00
Simon L. fc7ddf26e8 increase to v13.3.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-23 16:07:41 +02:00
Simon L. cd61f66467 add desec (#7995)
## Summary
- Integrates Desec into the AIO interface which simplifies the domain
registration and domain setup.
- You can either create a new account directly or use an existing
account.
- You have a button that you can open where the process will be done.
After the process is done, the whole page reloads and you can continue
with the setup.
- Caddy and dnsmasq community containers will be activated during the
process which will take over the cert generation and enable split-brain
dns.
- Community containers will work automatically for example Vaultwarden
as the subdomains of the desec domain point automatically via a wildcard
dns entry towards the main desec domain.
- Playwright tests are added to ensure that the system works as expected
in the future
- the desec api is mocked via a small node js based file.
- the qa and other docs were updated to mention desec
2026-06-23 15:05:42 +02:00
Simon L. e0c208da19 Apply suggestion from @szaimen
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-23 14:53:54 +02:00
Simon L.andPablo Zmdl 1fdda55421 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>
2026-06-23 14:52:05 +02:00
Pablo ZmdlandSimon L. 84f76d61dc nextcloud-entrypoint: Introduce a new marker for cert bundle setup (#8364)
* Introduce a new marker for cert bundle setup

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

* Update Containers/nextcloud/entrypoint.sh

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

* Update Containers/nextcloud/entrypoint.sh

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

---------

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
Signed-off-by: Pablo Zmdl <57864086+pabzm@users.noreply.github.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2026-06-23 12:15:44 +02:00
Simon L. f62a81b651 PHP dependency updates (#8365) 2026-06-23 08:57:09 +02:00
Simon L.andClaude Opus 4.8 7e50969d02 feat(desec): keep the typed slug across the registration flow
A slug typed into the deSEC form was lost when the form re-rendered after a
201 redirect (e.g. on the awaiting-verification step), forcing the user to
re-enter it. Persist the requested slug in the AIO config when register()
runs and pre-fill the slug input from it on every step, then clear it once a
domain is set. Stored in configuration.json rather than a URL parameter so it
survives the multi-step flow without leaking into the iframe address.

Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 16:04:36 +02:00
Simon L.andClaude Opus 4.8 0d2ce61af3 fix(desec): only reveal the deSEC password for AIO-created accounts
The containers page showed "Reveal deSEC password" for every deSEC domain,
but when the user logs in with their own existing account AIO stores an
empty password, so the reveal exposed nothing useful. Gate the reveal on a
stored password: AIO-created accounts show the generated credentials as
before; existing accounts now just say the domain is managed via that
account and to log in at desec.io with your own password.

Also clear the stored generated password in the awaiting-verification path
when the user logs in with their own password (the email already had an
account), so a non-empty stored password reliably means "AIO generated this
account" — and report the account as not-new so no wildcard CNAME is created
on a domain the user manages themselves.

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:36 +02:00
Simon L. ebad4fd06f fix spelling
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-22 16:04:35 +02:00
Simon L.andClaude Opus 4.8 9cfd5b41f6 fix(desec): reuse an existing slug the user already owns
Logging in with an existing deSEC account and entering a slug you already
own failed with "Domain limit exceeded": registerDomain() always tried to
POST /domains/, which deSEC rejects (403 when the account is at its quota,
400/409 when the name is taken) even though the domain belongs to you.

Now, for a user-specified slug, a 400/403/409 triggers an ownership check
(GET /domains/{name}/); if the account already owns the domain it is reused
and registration completes. Otherwise a clear message is shown (over-limit
vs. taken by someone else). Random-slug registration is unchanged.

Update the deSEC mock to mirror the real status codes (per-account ownership,
domain limit -> 403, taken name -> 400, GET /domains/{name}/) and add a spec
that exercises the over-limit ownership-recovery path.

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:35 +02:00
Simon L. b5e35c90d8 move the desec template another time
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-22 16:04:35 +02:00
Simon L.andClaude Opus 4.8 ac112f3b42 docs(dnsmasq): note auto IP detection is Linux-only, not Docker Desktop
dnsmasq runs in host network mode and auto-detects the host's LAN IP. On
Docker Desktop (Windows/macOS) containers run inside a Linux VM isolated
from the real host LAN, so detection yields the wrong IP and local DNS
resolution does not work. Call this out in the dnsmasq readme and the
in-app deSEC domain notice.

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:35 +02:00
Simon L.andClaude Opus 4.8 ee1bf5f88a ci(desec): drop obsolete SKIP_DOMAIN_VALIDATION from the deSEC test step
The deSEC registration entry point now renders regardless of
SKIP_DOMAIN_VALIDATION (it was moved out of the skip-validation guard), and
the deSEC flow already sets the domain with validation skipped internally.
Remove the now-unnecessary SKIP_DOMAIN_VALIDATION=false override from the
deSEC Playwright steps in both workflows and update the stale spec comment.

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.andClaude Opus 4.8 ef7e320c61 fix(desec): keep modal markup and script with the moved entry block
The deSEC entry <details> was moved up above the domain submit form, but the
#desec-modal container and desec-modal.js were left behind inside the
skip_domain_validation block. Move them up to sit directly after the entry
block so the open button, modal, and wiring script are always rendered
together (and present even when domain validation is skipped). This restores
the modal flow the Playwright tests drive via #desec-frame.

Signed-off-by: Simon L. <szaimen@e.mail.de>
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. 64d49c1b59 move desec futher up in the containers template
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-22 16:04:34 +02:00
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.andClaude Opus 4.8 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.andClaude Opus 4.8 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