Compare commits

...

15 commits

Author SHA1 Message Date
szaimen
91474cbb9b Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-02 12:04:12 +00:00
Simon L.
a842cbb82a increase to 12.2.0
Some checks failed
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
Twig Lint / twig-lint (push) Has been cancelled
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-12-02 12:12:40 +01:00
Simon L.
d44d077a63 update oo
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-12-02 12:11:02 +01:00
Simon L.
d43d7e75e9
Merge pull request #7241 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-29.1.1-cli
build(deps): bump docker from 29.0.4-cli to 29.1.1-cli in /Containers/mastercontainer
2025-12-02 09:20:51 +01:00
Simon L.
4462ce994e
Merge pull request #7240 from nextcloud/dependabot/docker/Containers/docker-socket-proxy/haproxy-3.3.0-alpine
build(deps): bump haproxy from 3.2.9-alpine to 3.3.0-alpine in /Containers/docker-socket-proxy
2025-12-02 09:20:25 +01:00
dependabot[bot]
ae132c8d39
build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 29.0.4-cli to 29.1.1-cli.

---
updated-dependencies:
- dependency-name: docker
  dependency-version: 29.1.1-cli
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 04:34:06 +00:00
dependabot[bot]
1cdc4e3bef
build(deps): bump haproxy in /Containers/docker-socket-proxy
Bumps haproxy from 3.2.9-alpine to 3.3.0-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 04:33:44 +00:00
Simon L.
81775579b9
Merge pull request #7186 from nextcloud/enh/6933/update-backuplist
Some checks failed
Codespell / Check spelling (push) Waiting to run
Validate community containers / Validate community containers (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
Twig Lint / twig-lint (push) Waiting to run
Json Validator / Json Validator (push) Has been cancelled
Shellcheck / Check Shell (push) Has been cancelled
aio-interface: add button to update the backup list
2025-12-01 17:14:56 +01:00
Simon L.
dd64458f9a
Merge pull request #7194 from nextcloud/enh/6836/add-notifications-cc
add notifications community container
2025-12-01 16:48:40 +01:00
Simon L.
67456294cf
Merge pull request #7230 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-25.04.7.3.1
Some checks are pending
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
build(deps): bump collabora/code from 25.04.7.1.1 to 25.04.7.3.1 in /Containers/collabora
2025-12-01 13:24:04 +01:00
Simon L.
d76bea0251
Merge pull request #7235 from nextcloud/aio-dependency-update
PHP dependency updates
2025-12-01 13:23:41 +01:00
szaimen
2663ffeee5 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-01 12:03:40 +00:00
dependabot[bot]
b4ec51f99e
build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 25.04.7.1.1 to 25.04.7.3.1.

---
updated-dependencies:
- dependency-name: collabora/code
  dependency-version: 25.04.7.3.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:36:14 +00:00
Simon L.
1d6a1ffb17 add notifications community container
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-11-25 14:02:37 +01:00
Simon L.
01ad594ec5 aio-interface: add button to update the backup list
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-11-24 18:35:37 +01:00
17 changed files with 88 additions and 18 deletions

View file

@ -612,3 +612,12 @@ if [ "$BORG_MODE" = test ]; then
fi
fi
fi
if [ "$BORG_MODE" = list ]; then
echo "Updating backup list..."
if ! borg info > /dev/null; then
echo "Could not update the backup list."
exit 1
fi
# The update gets done automatically in the wrapper start.sh script.
fi

View file

@ -32,8 +32,8 @@ else
fi
# Validate BORG_MODE
if [ "$BORG_MODE" != backup ] && [ "$BORG_MODE" != restore ] && [ "$BORG_MODE" != check ] && [ "$BORG_MODE" != "check-repair" ] && [ "$BORG_MODE" != test ]; then
echo "No correct BORG_MODE mode applied. Valid are 'backup', 'check', 'restore' and 'test'."
if [ "$BORG_MODE" != backup ] && [ "$BORG_MODE" != restore ] && [ "$BORG_MODE" != check ] && [ "$BORG_MODE" != "check-repair" ] && [ "$BORG_MODE" != "test" ] && [ "$BORG_MODE" != "list" ]; then
echo "No correct BORG_MODE mode applied. Valid are 'backup', 'check', 'restore', 'test' and 'list'."
exit 1
fi

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/blob/master/docker/from-packages/Dockerfile
FROM collabora/code:25.04.7.1.1
FROM collabora/code:25.04.7.3.1
USER root
ARG DEBIAN_FRONTEND=noninteractive

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM haproxy:3.2.9-alpine
FROM haproxy:3.3.0-alpine
# hadolint ignore=DL3002
USER root

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
FROM docker:29.0.4-cli AS docker
FROM docker:29.1.1-cli AS docker
# Caddy is a requirement
FROM caddy:2.10.2-alpine AS caddy

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:9.1.0.1
FROM onlyoffice/documentserver:9.2.0.1
# USER root is probably used

View file

@ -5,7 +5,7 @@ This container allows to view the local borg repository in a web session. It als
- After adding and starting the container, you need to visit `https://ip.address.of.this.server:5801` in order to log in with the user `nextcloud` and the password that you can see next to the container in the AIO interface. (The web page uses a self-signed certificate, so you need to accept the warning).
- Then, you should see a terminal. There type in `borg mount /mnt/borgbackup/borg /tmp/borg` to mount the backup archive at `/tmp/borg` inside the container. Afterwards type in `nautilus /tmp/borg` which will show a file explorer and allows you to see all the files. You can then copy files and folders back to their initial mountpoints inside `/nextcloud_aio_volumes/`, `/host_mounts/` and `/docker_volumes/`. ⚠️ Be very carefully while doing that as can break your instance!
- After you are done with the operation, click on the terminal in the background and press `[CTRL]+[c]` multiple times to close any open application. Then run `umount /tmp/borg` to unmount the mountpoint correctly.
- You can also delete specific archives by running `borg list`, delete a specific archive e.g. via `borg delete --stats --progress "::20220223_174237-nextcloud-aio"` and compact the archives via `borg compact`. After doing so, make sure to update the backup archives list in the AIO interface! You can do so by clicking on the `Check backup integrity` button or `Create backup` button.
- You can also delete specific archives by running `borg list`, delete a specific archive e.g. via `borg delete --stats --progress "::20220223_174237-nextcloud-aio"` and compact the archives via `borg compact`. After doing so, make sure to update the backup archives list in the AIO interface! You can do so by clicking on the `Update backup list` button in the `Update backup list` section inside the `Backup and restore` section.
- ⚠️ After you are done doing your operations, remove the container for better security again from the stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers#how-to-remove-containers-from-aios-stack
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack

View file

@ -0,0 +1,23 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-notifications",
"display_name": "Notifications",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/notifications",
"image": "ghcr.io/szaimen/aio-notifications",
"image_tag": "v1",
"internal_port": "10000",
"restart": "unless-stopped",
"volumes": [
{
"source": "%WATCHTOWER_DOCKER_SOCKET_PATH%",
"destination": "/var/run/docker.sock",
"writeable": false
}
],
"environment": [
"TZ=%TIMEZONE%"
]
}
]
}

View file

@ -0,0 +1,12 @@
## Notifications
This container allows other AIO community containers to send admin notifications to Nextcloud users.
### Notes
- It needs to be enabled for the [scrutiny container](https://github.com/nextcloud/all-in-one/tree/main/community-containers/scrutiny) for example to make use of admin notifications that are sent if a smartctl failure was found.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
https://github.com/szaimen/aio-notifications
### Maintainer
https://github.com/szaimen

View file

@ -6,7 +6,7 @@ This container bundles Scrutiny which is a frontend for SMART stats and auto-con
- ⚠️ This container mounts all devices from the host inside the container in order to be able to access the drives and smartctl stats which is a security issue. However no better solution was found for the time being.
- This container only works on Linux and not on Docker-Desktop.
- After adding and starting the container, you need to visit `http://internal.ip.of.server:8000` which will show the dashboard for your drives.
- It currently does not support sending notifications as no good solution was found yet that makes this possible. See https://github.com/szaimen/aio-scrutiny/issues/3
- It supports sending notifications in case of a smartctl failure if you enable the notifications community container: https://github.com/nextcloud/all-in-one/tree/main/community-containers/notifications
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository

View file

@ -5,7 +5,7 @@
"display_name": "Scrutiny",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/scrutiny",
"image": "ghcr.io/szaimen/aio-scrutiny",
"image_tag": "v1",
"image_tag": "v2",
"internal_port": "8000",
"init": false,
"restart": "unless-stopped",

View file

@ -438,7 +438,7 @@ services:
environment:
- TZ=${TIMEZONE}
- ES_JAVA_OPTS=${FULLTEXTSEARCH_JAVA_OPTIONS}
- bootstrap.memory_lock=true
- bootstrap.memory_lock=false
- cluster.name=nextcloud-aio
- discovery.type=single-node
- logger.level=WARN

12
php/composer.lock generated
View file

@ -1644,16 +1644,16 @@
},
{
"name": "twig/twig",
"version": "v3.22.0",
"version": "v3.22.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "4509984193026de413baf4ba80f68590a7f2c51d"
"reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/4509984193026de413baf4ba80f68590a7f2c51d",
"reference": "4509984193026de413baf4ba80f68590a7f2c51d",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/1de2ec1fc43ab58a4b7e80b214b96bfc895750f3",
"reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3",
"shasum": ""
},
"require": {
@ -1707,7 +1707,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.22.0"
"source": "https://github.com/twigphp/Twig/tree/v3.22.1"
},
"funding": [
{
@ -1719,7 +1719,7 @@
"type": "tidelift"
}
],
"time": "2025-10-29T15:56:47+00:00"
"time": "2025-11-16T16:01:12+00:00"
}
],
"packages-dev": [

View file

@ -60,6 +60,7 @@ $app->get('/api/docker/getwatchtower', AIO\Controller\DockerController::class .
$app->post('/api/docker/start', AIO\Controller\DockerController::class . ':StartContainer');
$app->post('/api/docker/backup', AIO\Controller\DockerController::class . ':StartBackupContainerBackup');
$app->post('/api/docker/backup-check', AIO\Controller\DockerController::class . ':StartBackupContainerCheck');
$app->post('/api/docker/backup-list', AIO\Controller\DockerController::class . ':StartBackupContainerList');
$app->post('/api/docker/backup-check-repair', AIO\Controller\DockerController::class . ':StartBackupContainerCheckRepair');
$app->post('/api/docker/backup-test', AIO\Controller\DockerController::class . ':StartBackupContainerTest');
$app->post('/api/docker/restore', AIO\Controller\DockerController::class . ':StartBackupContainerRestore');

View file

@ -105,6 +105,11 @@ readonly class DockerController {
return $response->withStatus(201)->withHeader('Location', '.');
}
public function StartBackupContainerList(Request $request, Response $response, array $args) : Response {
$this->listBackup();
return $response->withStatus(201)->withHeader('Location', '.');
}
public function checkBackup() : void {
$config = $this->configurationManager->GetConfig();
$config['backup-mode'] = 'check';
@ -114,6 +119,15 @@ readonly class DockerController {
$this->PerformRecursiveContainerStart($id);
}
private function listBackup() : void {
$config = $this->configurationManager->GetConfig();
$config['backup-mode'] = 'list';
$this->configurationManager->WriteConfig($config);
$id = 'nextcloud-aio-borgbackup';
$this->PerformRecursiveContainerStart($id);
}
public function StartBackupContainerRestore(Request $request, Response $response, array $args) : Response {
$config = $this->configurationManager->GetConfig();
$config['backup-mode'] = 'restore';

View file

@ -17,7 +17,7 @@
<div class="container">
<main>
<h1>Nextcloud AIO v12.1.4</h1>
<h1>Nextcloud AIO v12.2.0</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@ -501,6 +501,17 @@
<input type="submit" value="Restore selected backup" onclick="return confirm('Restore the selected backup? Are you sure that you want to restore the selected backup? This will stop all running containers and restore the selected backup. It is recommended to create a backup first. You might also want to check the backup integrity.')" />
</form>
<h3>Update backup list</h3>
<details>
<summary>Click here to reveal this option</summary>
<p>If you use an external snapshot tool to restore the server that runs AIO, you might run into a problem that the above listed available backups are not up-to-date to restore your server from. You can click the button below to update this list.</p>
<form method="POST" action="api/docker/backup-list" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input type="submit" value="Update backup list" />
</form>
</details>
<h3>Daily backup and automatic updates</h3>
{% if daily_backup_time == "" %}
<p>By entering a time below and submitting it, you can enable daily backups. It will create them at the entered time in 24h format. E.g. <strong>04:00</strong> will create backups at 4 am UTC and <strong>16:00</strong> at 4 pm UTC. When creating the backup, containers will be stopped and restarted after the backup is complete.</p>

View file

@ -970,7 +970,7 @@ sudo borg compact
```
After doing so, make sure to update the backup archives list in the AIO interface!<br>
You can do so by clicking on the `Check backup integrity` button or `Create backup` button.
You can do so by clicking on the `Update backup list` button in the `Update backup list` section inside the `Backup and restore` section.
---