mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-05-21 19:00:33 +00:00
Compare commits
19 Commits
Anvil5465-
...
v11.2.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9f9a002ba7 | ||
|
|
3c729d0746 | ||
|
|
3b93da5ff5 | ||
|
|
e5d7b7cd7e | ||
|
|
ec654ecd58 | ||
|
|
a9de130a2c | ||
|
|
f13ed5b637 | ||
|
|
2552c24c6f | ||
|
|
676fa6ccbf | ||
|
|
92f1421b7e | ||
|
|
31b55a9aef | ||
|
|
05b8319c29 | ||
|
|
b2ce65472e | ||
|
|
2f8b349262 | ||
|
|
4344148cdd | ||
|
|
eb533eef28 | ||
|
|
c174ee3a9a | ||
|
|
3957a03b2d | ||
|
|
ee23d43ca7 |
@@ -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
|
||||
|
||||
@@ -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; \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -26,4 +26,11 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep inf
|
||||
signal_handler() {
|
||||
exit 0
|
||||
}
|
||||
|
||||
trap signal_handler SIGINT SIGTERM
|
||||
|
||||
sleep inf &
|
||||
wait $!
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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; \
|
||||
|
||||
@@ -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>
|
||||
|
||||
10
develop.md
10
develop.md
@@ -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`
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user