Compare commits

...

19 Commits

Author SHA1 Message Date
Simon L.
9f9a002ba7 increase to 11.2.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-06-23 13:58:14 +02:00
Simon L.
3c729d0746 Merge pull request #6575 from nextcloud/dependabot/docker/Containers/whiteboard/nextcloud-releases/whiteboard-v1.1.1
build(deps): bump nextcloud-releases/whiteboard from v1.0.5 to v1.1.1 in /Containers/whiteboard
2025-06-23 13:09:28 +02:00
dependabot[bot]
3b93da5ff5 build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.0.5 to v1.1.1.

---
updated-dependencies:
- dependency-name: nextcloud-releases/whiteboard
  dependency-version: v1.1.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 11:08:51 +00:00
Simon L.
e5d7b7cd7e Merge pull request #6571 from G-Pereira/patch-1
readme: fix typo in backup migration section
2025-06-22 12:11:59 +02:00
Gonçalo Pereira
ec654ecd58 Typo in readme on backup migration section
Signed-off-by: Gonçalo Pereira <goncalo_pereira@outlook.pt>
2025-06-21 00:59:34 +01:00
Simon L.
a9de130a2c Merge pull request #6542 from nextcloud/dependabot/docker/Containers/talk-recording/python-3.13.5-alpine3.21
build(deps): bump python from 3.13.4-alpine3.21 to 3.13.5-alpine3.21 in /Containers/talk-recording
2025-06-20 10:21:08 +02:00
Simon L.
f13ed5b637 Merge pull request #6535 from nextcloud/enh/noid/move-button-to-new-line
app: move the button to a new line
2025-06-20 10:20:17 +02:00
Apoorv Parle
2552c24c6f Merge pull request #5568 from apparle/enable_local_testability
mastercontainer: enable local testability
2025-06-20 10:17:45 +02:00
Simon L.
676fa6ccbf Merge pull request #6533 from apparle/podman-compatibility
watchtower: change to a well-maintained repo and add podman compatibility
2025-06-20 10:16:03 +02:00
Simon L.
92f1421b7e Merge pull request #6551 from nextcloud/enh/noid/add-onlyoffice-logic
entrypoint.sh: add additional logic for ONLYOFFICE_HOST
2025-06-20 10:15:27 +02:00
Simon L.
31b55a9aef Merge pull request #6566 from nextcloud/fix/nextcloud-container-stuck-terminating
fix: nextcloud container sometimes becoming stuck terminating
2025-06-20 10:10:06 +02:00
Simon L.
05b8319c29 Merge pull request #6569 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-25.04.3.1.1
build(deps): bump collabora/code from 25.04.2.2.1 to 25.04.3.1.1 in /Containers/collabora
2025-06-20 10:08:56 +02:00
dependabot[bot]
b2ce65472e build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 25.04.2.2.1 to 25.04.3.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-20 04:42:51 +00:00
Richard Steinmetz
2f8b349262 fix: nextcloud container sometimes becoming stuck terminating
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-19 14:48:45 +02:00
Simon L.
4344148cdd entrypoint.sh: add additional logic for ONLYOFFICE_HOST
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-06-16 14:21:05 +02:00
Apoorv Parle
eb533eef28 Use watchtower image directly instead of building it
Signed-off-by: Apoorv Parle <19315187+apparle@users.noreply.github.com>
2025-06-13 05:35:10 -07:00
dependabot[bot]
c174ee3a9a build(deps): bump python in /Containers/talk-recording
Bumps python from 3.13.4-alpine3.21 to 3.13.5-alpine3.21.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-13 04:56:44 +00:00
Simon L.
3957a03b2d app: move the button to a new line
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-06-12 14:23:35 +02:00
Apoorv Parle
ee23d43ca7 Update watchtower to a well-maintained fork and add podman support
Signed-off-by: Apoorv Parle <19315187+apparle@users.noreply.github.com>
2025-06-11 22:48:52 -07:00
13 changed files with 54 additions and 19 deletions

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.2.2.1
FROM collabora/code:25.04.3.1.1
USER root
ARG DEBIAN_FRONTEND=noninteractive

View File

@@ -8,6 +8,9 @@ FROM caddy:2.10.0-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.4/alpine3.21/fpm/Dockerfile
FROM php:8.4.8-fpm-alpine3.21
ARG AIO_GIT_URL="https://github.com/nextcloud-releases/all-in-one.git"
ARG AIO_GIT_BRANCH="main"
EXPOSE 80
EXPOSE 8080
EXPOSE 8443
@@ -64,7 +67,7 @@ RUN set -ex; \
wget https://getcomposer.org/installer -O - | php -- --install-dir=/usr/local/bin --filename=composer; \
chmod +x /usr/local/bin/composer; \
cd /var/www/docker-aio; \
git clone https://github.com/nextcloud-releases/all-in-one.git --depth 1 .; \
git clone "$AIO_GIT_URL" --depth 1 --single-branch --branch "$AIO_GIT_BRANCH" .; \
find ./ -maxdepth 1 -mindepth 1 -not -path ./php -not -path ./community-containers -exec rm -r {} \; ; \
rm -r ./php/tests; \
chown www-data:www-data -R /var/www/docker-aio; \

View File

@@ -676,7 +676,12 @@ fi
# OnlyOffice
if [ "$ONLYOFFICE_ENABLED" = 'yes' ]; then
while ! nc -z "$ONLYOFFICE_HOST" 80; do
if echo "$ONLYOFFICE_HOST" | grep -q "nextcloud-.*-onlyoffice"; then
ONLYOFFICE_PORT=80
else
ONLYOFFICE_PORT=443
fi
while ! nc -z "$ONLYOFFICE_HOST" "$ONLYOFFICE_PORT"; do
echo "waiting for OnlyOffice to become available..."
sleep 5
done
@@ -690,7 +695,11 @@ if [ "$ONLYOFFICE_ENABLED" = 'yes' ]; then
php /var/www/html/occ config:system:set onlyoffice jwt_secret --value="$ONLYOFFICE_SECRET"
php /var/www/html/occ config:app:set onlyoffice jwt_secret --value="$ONLYOFFICE_SECRET"
php /var/www/html/occ config:system:set onlyoffice jwt_header --value="AuthorizationJwt"
php /var/www/html/occ config:app:set onlyoffice DocumentServerUrl --value="https://$NC_DOMAIN/onlyoffice"
if echo "$ONLYOFFICE_HOST" | grep -q "nextcloud-.*-onlyoffice"; then
ONLYOFFICE_HOST="$NC_DOMAIN/onlyoffice"
export ONLYOFFICE_HOST
fi
php /var/www/html/occ config:app:set onlyoffice DocumentServerUrl --value="https://$ONLYOFFICE_HOST"
else
if [ "$REMOVE_DISABLED_APPS" = yes ] && [ -d "/var/www/html/custom_apps/onlyoffice" ] && [ -n "$ONLYOFFICE_SECRET" ] && [ "$(php /var/www/html/occ config:system:get onlyoffice jwt_secret)" = "$ONLYOFFICE_SECRET" ]; then
php /var/www/html/occ app:remove onlyoffice

View File

@@ -26,4 +26,11 @@ else
fi
fi
sleep inf
signal_handler() {
exit 0
}
trap signal_handler SIGINT SIGTERM
sleep inf &
wait $!

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM python:3.13.4-alpine3.21
FROM python:3.13.5-alpine3.21
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh

View File

@@ -1,11 +1,5 @@
# syntax=docker/dockerfile:latest
FROM golang:1.24.4-alpine3.21 AS go
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
build-base; \
go install github.com/containrrr/watchtower@76f9cea516593fabb8ca91ff13de55caa6aa0a8b;
FROM ghcr.io/nicholas-fedor/watchtower:1.11.3 AS watchtower
FROM alpine:3.21.3
@@ -13,7 +7,7 @@ RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache bash ca-certificates tzdata
COPY --from=go /go/bin/watchtower /watchtower
COPY --from=watchtower /watchtower /watchtower
COPY --chmod=775 start.sh /start.sh

View File

@@ -9,6 +9,13 @@ elif ! test -r /var/run/docker.sock; then
exit 1
fi
if [ -f /run/.containerenv ]; then
# If running under podman disable memory_swappiness setting in watchtower.
# It is a necessary workaround until https://github.com/containers/podman/issues/23824 gets fixed.
echo "Running under Podman. Setting WATCHTOWER_DISABLE_MEMORY_SWAPPINESS to 1."
export WATCHTOWER_DISABLE_MEMORY_SWAPPINESS=1
fi
if [ -n "$CONTAINER_TO_UPDATE" ]; then
exec /watchtower --cleanup --debug --run-once "$CONTAINER_TO_UPDATE"
else

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/nextcloud/whiteboard/blob/main/Dockerfile
FROM ghcr.io/nextcloud-releases/whiteboard:v1.0.5
FROM ghcr.io/nextcloud-releases/whiteboard:v1.1.1
USER root
RUN set -ex; \

View File

@@ -10,7 +10,7 @@ declare(strict_types=1);
*/
/** @var array $_ */ ?>
<div id="allinone" class="section">
<h2><?php p($l->t('Nextcloud All-in-One'));?></h2>
<h2><?php p($l->t('Nextcloud All-in-One'));?></h2><br/>
<a href="<?php p($_['AIOLoginUrl']);?>" class="button" target="_blank">Open Nextcloud AIO Interface ↗</a><br><br>
<p><a href="https://github.com/nextcloud/all-in-one#how-to-easily-log-in-to-the-aio-interface">Click here for more infos on this feature (e.g. also on how to change the link in the button)</a></p>
</div>

View File

@@ -47,3 +47,13 @@ This is documented here: https://github.com/nextcloud-releases/all-in-one/tree/m
## How to connect to the database?
Simply run `sudo docker exec -it nextcloud-aio-database psql -U oc_nextcloud nextcloud_database` and you should be in.
## How to locally build and test changes to mastercontainer?
1. Push changes to your own git fork and branch.
1. Use below commands to build mastercontainer image for a custom git url and branch:
```
cd Containers/mastercontainer
docker buildx build -t ghcr.io/nextcloud-releases/all-in-one:latest --build-arg AIO_GIT_URL="https://github.com/my-fork-repo/all-in-one.git" --build-arg AIO_GIT_BRANCH="my-feature-branch" --load .
```
1. Start a container with above built image.
1. Since the hash of a locally built image doesn't match the latest release mastercontainer, it prompts for a mandatory update. To temporarily bypass the update suffix `?bypass_mastercontainer_update` to the URL. Eg: `https://localhost:8080/containers?bypass_mastercontainer_update`

View File

@@ -82,6 +82,11 @@ $app->get('/containers', function (Request $request, Response $response, array $
$dockerController = $container->get(\AIO\Controller\DockerController::class);
$dockerActionManger->ConnectMasterContainerToNetwork();
$dockerController->StartDomaincheckContainer();
// Check if bypass_mastercontainer_update is provided on the URL, a special developer mode to bypass a mastercontainer update and use local image.
$params = $request->getQueryParams();
$bypass_mastercontainer_update = isset($params['bypass_mastercontainer_update']);
return $view->render($response, 'containers.twig', [
'domain' => $configurationManager->GetDomain(),
'apache_port' => $configurationManager->GetApachePort(),
@@ -91,7 +96,7 @@ $app->get('/containers', function (Request $request, Response $response, array $
'nextcloud_password' => $configurationManager->GetAndGenerateSecret('NEXTCLOUD_PASSWORD'),
'containers' => (new \AIO\ContainerDefinitionFetcher($container->get(\AIO\Data\ConfigurationManager::class), $container))->FetchDefinition(),
'borgbackup_password' => $configurationManager->GetAndGenerateSecret('BORGBACKUP_PASSWORD'),
'is_mastercontainer_update_available' => $dockerActionManger->IsMastercontainerUpdateAvailable(),
'is_mastercontainer_update_available' => ( $bypass_mastercontainer_update ? false : $dockerActionManger->IsMastercontainerUpdateAvailable() ),
'has_backup_run_once' => $configurationManager->hasBackupRunOnce(),
'is_backup_container_running' => $dockerActionManger->isBackupContainerRunning(),
'backup_exit_code' => $dockerActionManger->GetBackupcontainerExitCode(),

View File

@@ -17,7 +17,7 @@
<div class="container">
<main>
<h1>Nextcloud AIO v11.1.0</h1>
<h1>Nextcloud AIO v11.2.0</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>

View File

@@ -801,7 +801,7 @@ If you have the borg backup feature enabled, you can copy it over to the new hos
1. Note the path where the backups are stored and the encryption password
1. Navigate to the backup folder
1. Create archive of the backup so it's easier to copy: `tar -czvf borg.tar.gz borg`
1. Copy the archive over to the new host: `cp borg.tar.gz user@new.host:/mnt`. Make sure to replace `user` with your actual user and `new.host` with the IP or domain of the actual host. You can also use another way to copy the archive.
1. Copy the archive over to the new host: `scp borg.tar.gz user@new.host:/mnt`. Make sure to replace `user` with your actual user and `new.host` with the IP or domain of the actual host. You can also use another way to copy the archive.
1. Switch to the new host
1. Go to the folder you put the backup archive and extract it with `tar -xf borg.tar.gz`
1. Follow the installation guide to create a new aio instance, but do not start the containers yet (the `docker run` or `docker compose up -d` command)