Files
Pablo Zmdl 93cf3d3931 Two factor authentication for both login variants
This adds optional two factor authentication based on shared
TOTP-secrets to both login variants (password and AIO token
authentication).

The 2FA can be enabled as soon as the containers are running in a
section below the backup configuration. As long as it is not enabled,
the AIO UI shows a warning at the top, and inside the Nextcloud a
notification is shown to all Nextcloud admins, strongly recommending to
enable it. The Nextcloud admin notification is sent via the
mastercontainer's `cron.sh`, thus will be renewed whenever it is
dismissed.

In order to show the notices, this PR includes a notification system for
the AIO UI, providing two variants: notices, and warnings. Notices have
a green background and border and vanish after 5 seconds. Warnings have
a orange-leaning yellow background and border and don't vanish (and
can't be dismissed manually, neither).

Another visual improvement is highlighted section headlines: If the URL
hash matches an `h2` element's ID, the `h2` is highlighted and if the
`h2` is followed by a `detail` element, that `detail` is opened. If
effect, browsing to `#two-factor-auth` jumps to the section, which is
highlighted and opened already (as shown in the second screenshot
below).

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
AI-assistant: Claude Opus 4.8
2026-08-20 16:33:29 +02:00
..
2021-11-30 11:20:42 +01:00
2021-11-30 13:59:41 +01:00
2026-03-18 17:56:37 +01:00
2026-03-20 04:40:46 +00:00
2026-05-20 10:55:39 +00:00

PHP Docker Controller

This is the code for the PHP Docker controller.

How to run

Running this locally requires :

1. Install the development environment

This project uses Composer as dependency management software. It is very similar to NPM. The command to install all dependencies is:

composer install

2. Access to docker socket

The root user has all privileges including access to the Docker socket. But it is not recommended to launch the local instance with full privileges, consider the docker group for docker access without being root. See https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user

3. Run a nextcloud-aio-mastercontainer container

This application manages containers, including its own container. So you need to run a nextcloud-aio-mastercontainer container for the application to work properly.

Here is a command to quickly launch a container :

docker run \
--rm \
--name nextcloud-aio-mastercontainer \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/nextcloud-releases/all-in-one:latest

4. Start your server

With this command you will launch the server:

# Make sure to launch this command with a user having access to the docker socket.
SKIP_DOMAIN_VALIDATION=true composer run dev

You can then access the web interface at http://localhost:8080.

Note: You can restart the server by preceding the command with other environment variables.

Composer routine

Command Description
composer run dev Starts the development server
composer run psalm Run Psalm static analysis
composer run psalm:strict Run Psalm static analysis strict
composer run psalm:update-baseline Run Psalm with --update-baseline arg
composer run lint Run PHP Syntax check
composer run lint:twig Run Twig Syntax check
composer run php-deprecation-detector Run PHP Deprecation Detector