Files
nextcloud/Containers/mastercontainer
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
..

Nextcloud All-in-One mastercontainer

This folder contains the OCI/Docker container definition, along with associated resources and configuration files, for building the mastercontainer as part of the Nextcloud All-in-One project. This container hosts the Nextcloud AIO interface1 , and a dedicated PHP environment for it (which is completely independent of the Nextcloud Server).

Overview

The mastercontainer acts as the central orchestration service for the deployment and management of all other containers in the Nextcloud All-in-One stack. It hosts:

  • A dedicated PHP SAPI/backend (php-fpm) for AIO itself (not Nextcloud Server)
  • A Caddy server enabling self-signed HTTPS access to the AIO frontend on port 8080/tcp.
  • A Caddy server enabling trusted HTTPS access to the AIO frontend on port 8443/tcp.
    • Caddy will automatically issue a Let's Encrypt issued certificate if port 80 and 8443 is open/forwarded and a domain pointer is in place; then, simply open the Nextcloud AIO interface using the domain (https://your-domain-that-points-to-this-server.tld:8443). The Let's Encrypt certificate request will use an ACME HTTP-01 challenge.
  • Miscellaneous support services specific to AIO (backup management, health checks, etc.)

Key Responsibilities

  • Orchestrates the deployment and lifecycle of all Nextcloud service containers
  • Handles initial setup and container configuration
  • Coordinates image updates
  • Monitors general system health

It triggers the initial installation and ensures the smooth operation of the Nextcloud All-in-One stack.

Contents

  • Dockerfile: Instructions for building the mastercontainer image.
  • Entrypoint script: The start.sh script is used for container initialization and runtime configuration before starting supervisord.
  • Nextcloud All-in-One Controller App: The core AIO orchestrator that handles configuration and settings for the containers.
  • Supervisor: The supervisord.conf file defines the long-running services hosted within the container (php-fpm, cron, etc.)

Usage

This container should be used as the trigger image when deploying the Nextcloud All-in-One stack in a Docker or other OCI-compliant container environment. For detailed deployment instructions, refer to the project documentation.

Contributing

Contributions are welcome! Please follow the Nextcloud project's guidelines and submit pull requests or issues via the main repository.

License

This folder and its contents are licensed under the GNU AGPLv3, in line with the rest of Nextcloud All-in-One.


  1. The Nextcloud All-in-One interface allows users to install, configure, and manage their Nextcloud instance and related containers via a secure web interface and API. It automates and simplifies complex tasks such as container orchestration, backups, updates, and service management for users deploying Nextcloud in Docker environments. ↩︎