Compare commits

...

8 Commits

Author SHA1 Message Date
Simon L.
3dffd46e8b Merge pull request #6219 from nextcloud/aio-helm-update
Helm Chart updates
2025-03-25 10:46:54 +01:00
szaimen
7f76f622e1 Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-25 09:46:29 +00:00
Simon L.
ac2c97a08e Revert changes to helm-chart updates
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-03-25 10:45:35 +01:00
Simon L.
d5c195aa0c Merge pull request #6217 from nextcloud/enh/6123/move-images-to-ghcr.io
move images to ghcr.io
2025-03-25 10:41:36 +01:00
Simon L.
5d090018f9 move images to ghcr.io
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-03-25 10:36:25 +01:00
Simon L.
b8d08fc77b Merge pull request #6139 from nextcloud/aio-yaml-update
Yaml updates
2025-03-25 09:48:17 +01:00
szaimen
167c2dc389 Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-21 12:03:18 +00:00
Simon L.
91e99dcba9 Update develop.md
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-03-20 17:30:49 +01:00
20 changed files with 76 additions and 48 deletions

View File

@@ -29,7 +29,7 @@ jobs:
run: |
docker rm --force nextcloud-aio-{mastercontainer,apache,notify-push,nextcloud,redis,database,domaincheck,whiteboard,imaginary,talk,collabora,borgbackup} || true
docker volume rm nextcloud_aio_{mastercontainer,apache,database,database_dump,nextcloud,nextcloud_data,redis,backup_cache,elasticsearch} || true
docker pull nextcloud/all-in-one:develop
docker pull ghcr.io/nextcloud-releases/all-in-one:develop
docker run \
-d \
--init \
@@ -40,7 +40,7 @@ jobs:
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env SKIP_DOMAIN_VALIDATION=true \
--env APACHE_PORT=11000 \
nextcloud/all-in-one:develop
ghcr.io/nextcloud-releases/all-in-one:develop
echo Waiting for 10 seconds for the development container to start ...
sleep 10
@@ -61,7 +61,7 @@ jobs:
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env SKIP_DOMAIN_VALIDATION=false \
--env APACHE_PORT=11000 \
nextcloud/all-in-one:develop
ghcr.io/nextcloud-releases/all-in-one:develop
echo Waiting for 10 seconds for the development container to start ...
sleep 10

View File

@@ -283,10 +283,10 @@ if [ "$?" = 6 ]; then
exit 1
fi
# Check if auth.docker.io is reachable
# Check if ghcr.io is reachable
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
if ! curl https://auth.docker.io/token 2>&1 | grep -q token; then
print_red "Could not reach https://auth.docker.io."
if ! curl https://ghcr.io 2>&1; then
print_red "Could not reach https://ghcr.io."
echo "Most likely is something blocking access to it."
echo "You should be able to fix this by using https://github.com/nextcloud/all-in-one/tree/main/manual-install"
exit 1

View File

@@ -11,7 +11,7 @@ sudo docker run \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:develop
ghcr.io/nextcloud-releases/all-in-one:develop
```
And you are done :)
It will now also select the developer channel for all other containers automatically.
@@ -19,6 +19,9 @@ It will now also select the developer channel for all other containers automatic
## How to publish new releases?
Simply use https://github.com/nextcloud/all-in-one/issues/180 as template.
## How to update existing instances to a new major Nextcloud version?
Simply use https://github.com/nextcloud/all-in-one/issues/6198 as template.
## How to build new containers
Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/repo-sync.yml and run the workflow that will first sync the repo and then build new container that automatically get published to `develop` and `develop-arm64`.

View File

@@ -341,7 +341,7 @@ services:
init: false
healthcheck:
start_period: 60s
test: clamdcheck.sh
test: /healthcheck.sh
interval: 30s
timeout: 30s
start_interval: 5s
@@ -351,7 +351,6 @@ services:
environment:
- TZ=${TIMEZONE}
- MAX_SIZE=${NEXTCLOUD_UPLOAD_LIMIT}
- CLAMD_STARTUP_TIMEOUT=90
volumes:
- nextcloud_aio_clamav:/var/lib/clamav:rw
restart: unless-stopped
@@ -359,9 +358,11 @@ services:
- clamav
read_only: true
tmpfs:
- /var/lock
- /var/log/clamav
- /tmp
- /var/log/clamav
- /run/clamav
- /var/log/supervisord
- /var/run/supervisord
cap_drop:
- NET_RAW

View File

@@ -1,6 +1,6 @@
name: nextcloud-aio-helm-chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 10.7.0
version: 10.9.0
apiVersion: v2
keywords:
- latest

View File

@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
image: nextcloud/aio-apache:20250306_093458
image: nextcloud/aio-apache:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -55,17 +55,15 @@ spec:
{{- end }}
containers:
- env:
- name: CLAMD_STARTUP_TIMEOUT
value: "90"
- name: MAX_SIZE
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-clamav:20250306_093458
image: nextcloud/aio-clamav:20250325_084656
readinessProbe:
exec:
command:
- clamdcheck.sh
- /healthcheck.sh
failureThreshold: 9
initialDelaySeconds: 60
periodSeconds: 30
@@ -73,7 +71,7 @@ spec:
livenessProbe:
exec:
command:
- clamdcheck.sh
- /healthcheck.sh
failureThreshold: 9
initialDelaySeconds: 60
periodSeconds: 30

View File

@@ -35,7 +35,7 @@ spec:
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
image: nextcloud/aio-collabora:20250306_093458
image: nextcloud/aio-collabora:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -64,7 +64,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-postgresql:20250306_093458
image: nextcloud/aio-postgresql:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -54,7 +54,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
image: nextcloud/aio-fulltextsearch:20250306_093458
image: nextcloud/aio-fulltextsearch:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-imaginary:20250306_093458
image: nextcloud/aio-imaginary:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -180,7 +180,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
image: nextcloud/aio-nextcloud:20250306_093458
image: nextcloud/aio-nextcloud:20250325_084656
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment!
securityContext:
# The items below only work in container context

View File

@@ -55,7 +55,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-notify-push:20250306_093458
image: nextcloud/aio-notify-push:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-onlyoffice:20250306_093458
image: nextcloud/aio-onlyoffice:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-redis:20250306_093458
image: nextcloud/aio-redis:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:20250306_093458
image: nextcloud/aio-talk:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk-recording:20250306_093458
image: nextcloud/aio-talk-recording:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -48,7 +48,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-whiteboard:20250306_093458
image: nextcloud/aio-whiteboard:20250325_084656
readinessProbe:
exec:
command:

View File

@@ -13,7 +13,7 @@
"nextcloud-aio-whiteboard"
],
"display_name": "Apache",
"image": "nextcloud/aio-apache",
"image": "ghcr.io/nextcloud-releases/aio-apache",
"user": "33",
"init": true,
"healthcheck": {
@@ -84,7 +84,7 @@
"container_name": "nextcloud-aio-database",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Database",
"image": "nextcloud/aio-postgresql",
"image": "ghcr.io/nextcloud-releases/aio-postgresql",
"user": "999",
"init": true,
"healthcheck": {
@@ -149,7 +149,7 @@
"nextcloud-aio-docker-socket-proxy"
],
"display_name": "Nextcloud",
"image": "nextcloud/aio-nextcloud",
"image": "ghcr.io/nextcloud-releases/aio-nextcloud",
"init": true,
"healthcheck": {
"start_period": "0s",
@@ -271,7 +271,7 @@
"container_name": "nextcloud-aio-notify-push",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Notify Push",
"image": "nextcloud/aio-notify-push",
"image": "ghcr.io/nextcloud-releases/aio-notify-push",
"user": "33",
"init": true,
"healthcheck": {
@@ -319,7 +319,7 @@
"container_name": "nextcloud-aio-redis",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Redis",
"image": "nextcloud/aio-redis",
"image": "ghcr.io/nextcloud-releases/aio-redis",
"user": "999",
"init": true,
"healthcheck": {
@@ -361,7 +361,7 @@
"image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
"display_name": "Collabora",
"image": "nextcloud/aio-collabora",
"image": "ghcr.io/nextcloud-releases/aio-collabora",
"init": true,
"healthcheck": {
"start_period": "60s",
@@ -404,7 +404,7 @@
"image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
"display_name": "Talk",
"image": "nextcloud/aio-talk",
"image": "ghcr.io/nextcloud-releases/aio-talk",
"user": "1000",
"init": true,
"healthcheck": {
@@ -466,7 +466,7 @@
"container_name": "nextcloud-aio-talk-recording",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Talk Recording",
"image": "nextcloud/aio-talk-recording",
"image": "ghcr.io/nextcloud-releases/aio-talk-recording",
"user": "122",
"init": true,
"healthcheck": {
@@ -518,7 +518,7 @@
{
"container_name": "nextcloud-aio-borgbackup",
"image_tag": "%AIO_CHANNEL%",
"image": "nextcloud/aio-borgbackup",
"image": "ghcr.io/nextcloud-releases/aio-borgbackup",
"init": true,
"environment": [
"BORG_REMOTE_REPO=%BORGBACKUP_REMOTE_REPO%",
@@ -586,7 +586,7 @@
{
"container_name": "nextcloud-aio-watchtower",
"image_tag": "%AIO_CHANNEL%",
"image": "nextcloud/aio-watchtower",
"image": "ghcr.io/nextcloud-releases/aio-watchtower",
"init": true,
"environment": [
"CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer"
@@ -606,7 +606,7 @@
{
"container_name": "nextcloud-aio-domaincheck",
"image_tag": "%AIO_CHANNEL%",
"image": "nextcloud/aio-domaincheck",
"image": "ghcr.io/nextcloud-releases/aio-domaincheck",
"init": true,
"ports": [
{
@@ -637,7 +637,7 @@
"container_name": "nextcloud-aio-clamav",
"image_tag": "%AIO_CHANNEL%",
"display_name": "ClamAV",
"image": "nextcloud/aio-clamav",
"image": "ghcr.io/nextcloud-releases/aio-clamav",
"user": "100",
"init": false,
"healthcheck": {
@@ -683,7 +683,7 @@
"container_name": "nextcloud-aio-onlyoffice",
"image_tag": "%AIO_CHANNEL%",
"display_name": "OnlyOffice",
"image": "nextcloud/aio-onlyoffice",
"image": "ghcr.io/nextcloud-releases/aio-onlyoffice",
"init": true,
"healthcheck": {
"start_period": "60s",
@@ -729,7 +729,7 @@
"container_name": "nextcloud-aio-imaginary",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Imaginary",
"image": "nextcloud/aio-imaginary",
"image": "ghcr.io/nextcloud-releases/aio-imaginary",
"user": "65534",
"init": true,
"healthcheck": {
@@ -771,7 +771,7 @@
"image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1709",
"display_name": "Fulltextsearch",
"image": "nextcloud/aio-fulltextsearch",
"image": "ghcr.io/nextcloud-releases/aio-fulltextsearch",
"init": false,
"healthcheck": {
"start_period": "60s",
@@ -819,7 +819,7 @@
"container_name": "nextcloud-aio-docker-socket-proxy",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Docker Socket Proxy",
"image": "nextcloud/aio-docker-socket-proxy",
"image": "ghcr.io/nextcloud-releases/aio-docker-socket-proxy",
"init": true,
"internal_port": "2375",
"environment": [
@@ -845,7 +845,7 @@
"container_name": "nextcloud-aio-whiteboard",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Whiteboard",
"image": "nextcloud/aio-whiteboard",
"image": "ghcr.io/nextcloud-releases/aio-whiteboard",
"user": "65534",
"init": true,
"healthcheck": {

View File

@@ -742,6 +742,33 @@ readonly class DockerActionManager {
}
}
private function GetCurrentImageName(): string {
$cacheKey = 'aio-image-name';
$imageName = apcu_fetch($cacheKey);
if ($imageName !== false && is_string($imageName)) {
return $imageName;
}
$containerName = 'nextcloud-aio-mastercontainer';
$url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
try {
$output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
$imageNameArray = explode(':', $output['Config']['Image']);
if (count($imageNameArray) === 2) {
$imageName = $imageNameArray[0];
} else {
error_log("No tag was found when getting the current channel. You probably did not follow the documentation correctly. Changing the imageName to the default " . $output['Config']['Image']);
$imageName = $output['Config']['Image'];
}
apcu_add($cacheKey, $imageName);
return $imageName;
} catch (\Exception $e) {
error_log('Could not get current imageName ' . $e->getMessage());
}
return 'nextcloud/all-in-one';
}
public function GetCurrentChannel(): string {
$cacheKey = 'aio-ChannelName';
$channelName = apcu_fetch($cacheKey);
@@ -753,7 +780,6 @@ readonly class DockerActionManager {
$url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
try {
$output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
$containerChecksum = $output['Image'];
$tagArray = explode(':', $output['Config']['Image']);
if (count($tagArray) === 2) {
$tag = $tagArray[1];
@@ -771,7 +797,7 @@ readonly class DockerActionManager {
}
public function IsMastercontainerUpdateAvailable(): bool {
$imageName = 'nextcloud/all-in-one';
$imageName = $this->GetCurrentImageName();
$containerName = 'nextcloud-aio-mastercontainer';
$tag = $this->GetCurrentChannel();