mirror of
https://github.com/nextcloud/all-in-one.git
synced 2025-12-19 22:16:49 +00:00
parent
d5c195aa0c
commit
94d29988da
6 changed files with 27 additions and 54 deletions
6
.github/workflows/playwright.yml
vendored
6
.github/workflows/playwright.yml
vendored
|
|
@ -29,7 +29,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
docker rm --force nextcloud-aio-{mastercontainer,apache,notify-push,nextcloud,redis,database,domaincheck,whiteboard,imaginary,talk,collabora,borgbackup} || true
|
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 volume rm nextcloud_aio_{mastercontainer,apache,database,database_dump,nextcloud,nextcloud_data,redis,backup_cache,elasticsearch} || true
|
||||||
docker pull ghcr.io/nextcloud-releases/all-in-one:develop
|
docker pull nextcloud/all-in-one:develop
|
||||||
docker run \
|
docker run \
|
||||||
-d \
|
-d \
|
||||||
--init \
|
--init \
|
||||||
|
|
@ -40,7 +40,7 @@ jobs:
|
||||||
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
|
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
|
||||||
--env SKIP_DOMAIN_VALIDATION=true \
|
--env SKIP_DOMAIN_VALIDATION=true \
|
||||||
--env APACHE_PORT=11000 \
|
--env APACHE_PORT=11000 \
|
||||||
ghcr.io/nextcloud-releases/all-in-one:develop
|
nextcloud/all-in-one:develop
|
||||||
echo Waiting for 10 seconds for the development container to start ...
|
echo Waiting for 10 seconds for the development container to start ...
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
|
|
@ -61,7 +61,7 @@ jobs:
|
||||||
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
|
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
|
||||||
--env SKIP_DOMAIN_VALIDATION=false \
|
--env SKIP_DOMAIN_VALIDATION=false \
|
||||||
--env APACHE_PORT=11000 \
|
--env APACHE_PORT=11000 \
|
||||||
ghcr.io/nextcloud-releases/all-in-one:develop
|
nextcloud/all-in-one:develop
|
||||||
echo Waiting for 10 seconds for the development container to start ...
|
echo Waiting for 10 seconds for the development container to start ...
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
|
|
|
||||||
3
.github/workflows/update-helm.yml
vendored
3
.github/workflows/update-helm.yml
vendored
|
|
@ -14,8 +14,7 @@ jobs:
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: update helm chart
|
- name: update helm chart
|
||||||
run: |
|
run: |
|
||||||
GHCR_TOKEN="$(curl https://ghcr.io/token\?scope\="repository:nextcloud-releases/all-in-one:pull" | jq '.token')"
|
DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
|
||||||
DOCKER_TAG="$(curl -H "Authorization: Bearer ${GHCR_TOKEN}" -L -s 'https://ghcr.io/v2/nextcloud-releases/all-in-one/tags/list?page_size=1024' | jq '.tags' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
|
|
||||||
export DOCKER_TAG
|
export DOCKER_TAG
|
||||||
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
|
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
|
||||||
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
|
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
|
||||||
|
|
|
||||||
|
|
@ -283,10 +283,10 @@ if [ "$?" = 6 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if ghcr.io is reachable
|
# Check if auth.docker.io is reachable
|
||||||
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
|
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
|
||||||
if ! curl https://ghcr.io 2>&1; then
|
if ! curl https://auth.docker.io/token 2>&1 | grep -q token; then
|
||||||
print_red "Could not reach https://ghcr.io."
|
print_red "Could not reach https://auth.docker.io."
|
||||||
echo "Most likely is something blocking access to it."
|
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"
|
echo "You should be able to fix this by using https://github.com/nextcloud/all-in-one/tree/main/manual-install"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ sudo docker run \
|
||||||
--publish 8443:8443 \
|
--publish 8443:8443 \
|
||||||
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
|
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
|
||||||
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
|
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
|
||||||
ghcr.io/nextcloud-releases/all-in-one:develop
|
nextcloud/all-in-one:develop
|
||||||
```
|
```
|
||||||
And you are done :)
|
And you are done :)
|
||||||
It will now also select the developer channel for all other containers automatically.
|
It will now also select the developer channel for all other containers automatically.
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
"nextcloud-aio-whiteboard"
|
"nextcloud-aio-whiteboard"
|
||||||
],
|
],
|
||||||
"display_name": "Apache",
|
"display_name": "Apache",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-apache",
|
"image": "nextcloud/aio-apache",
|
||||||
"user": "33",
|
"user": "33",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
@ -84,7 +84,7 @@
|
||||||
"container_name": "nextcloud-aio-database",
|
"container_name": "nextcloud-aio-database",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "Database",
|
"display_name": "Database",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-postgresql",
|
"image": "nextcloud/aio-postgresql",
|
||||||
"user": "999",
|
"user": "999",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
@ -149,7 +149,7 @@
|
||||||
"nextcloud-aio-docker-socket-proxy"
|
"nextcloud-aio-docker-socket-proxy"
|
||||||
],
|
],
|
||||||
"display_name": "Nextcloud",
|
"display_name": "Nextcloud",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-nextcloud",
|
"image": "nextcloud/aio-nextcloud",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
"start_period": "0s",
|
"start_period": "0s",
|
||||||
|
|
@ -271,7 +271,7 @@
|
||||||
"container_name": "nextcloud-aio-notify-push",
|
"container_name": "nextcloud-aio-notify-push",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "Notify Push",
|
"display_name": "Notify Push",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-notify-push",
|
"image": "nextcloud/aio-notify-push",
|
||||||
"user": "33",
|
"user": "33",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
@ -319,7 +319,7 @@
|
||||||
"container_name": "nextcloud-aio-redis",
|
"container_name": "nextcloud-aio-redis",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "Redis",
|
"display_name": "Redis",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-redis",
|
"image": "nextcloud/aio-redis",
|
||||||
"user": "999",
|
"user": "999",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
@ -361,7 +361,7 @@
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
|
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
|
||||||
"display_name": "Collabora",
|
"display_name": "Collabora",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-collabora",
|
"image": "nextcloud/aio-collabora",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
"start_period": "60s",
|
"start_period": "60s",
|
||||||
|
|
@ -404,7 +404,7 @@
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
|
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
|
||||||
"display_name": "Talk",
|
"display_name": "Talk",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-talk",
|
"image": "nextcloud/aio-talk",
|
||||||
"user": "1000",
|
"user": "1000",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
@ -466,7 +466,7 @@
|
||||||
"container_name": "nextcloud-aio-talk-recording",
|
"container_name": "nextcloud-aio-talk-recording",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "Talk Recording",
|
"display_name": "Talk Recording",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-talk-recording",
|
"image": "nextcloud/aio-talk-recording",
|
||||||
"user": "122",
|
"user": "122",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
@ -518,7 +518,7 @@
|
||||||
{
|
{
|
||||||
"container_name": "nextcloud-aio-borgbackup",
|
"container_name": "nextcloud-aio-borgbackup",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-borgbackup",
|
"image": "nextcloud/aio-borgbackup",
|
||||||
"init": true,
|
"init": true,
|
||||||
"environment": [
|
"environment": [
|
||||||
"BORG_REMOTE_REPO=%BORGBACKUP_REMOTE_REPO%",
|
"BORG_REMOTE_REPO=%BORGBACKUP_REMOTE_REPO%",
|
||||||
|
|
@ -586,7 +586,7 @@
|
||||||
{
|
{
|
||||||
"container_name": "nextcloud-aio-watchtower",
|
"container_name": "nextcloud-aio-watchtower",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-watchtower",
|
"image": "nextcloud/aio-watchtower",
|
||||||
"init": true,
|
"init": true,
|
||||||
"environment": [
|
"environment": [
|
||||||
"CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer"
|
"CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer"
|
||||||
|
|
@ -606,7 +606,7 @@
|
||||||
{
|
{
|
||||||
"container_name": "nextcloud-aio-domaincheck",
|
"container_name": "nextcloud-aio-domaincheck",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-domaincheck",
|
"image": "nextcloud/aio-domaincheck",
|
||||||
"init": true,
|
"init": true,
|
||||||
"ports": [
|
"ports": [
|
||||||
{
|
{
|
||||||
|
|
@ -637,7 +637,7 @@
|
||||||
"container_name": "nextcloud-aio-clamav",
|
"container_name": "nextcloud-aio-clamav",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "ClamAV",
|
"display_name": "ClamAV",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-clamav",
|
"image": "nextcloud/aio-clamav",
|
||||||
"user": "100",
|
"user": "100",
|
||||||
"init": false,
|
"init": false,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
@ -683,7 +683,7 @@
|
||||||
"container_name": "nextcloud-aio-onlyoffice",
|
"container_name": "nextcloud-aio-onlyoffice",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "OnlyOffice",
|
"display_name": "OnlyOffice",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-onlyoffice",
|
"image": "nextcloud/aio-onlyoffice",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
"start_period": "60s",
|
"start_period": "60s",
|
||||||
|
|
@ -729,7 +729,7 @@
|
||||||
"container_name": "nextcloud-aio-imaginary",
|
"container_name": "nextcloud-aio-imaginary",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "Imaginary",
|
"display_name": "Imaginary",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-imaginary",
|
"image": "nextcloud/aio-imaginary",
|
||||||
"user": "65534",
|
"user": "65534",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
@ -771,7 +771,7 @@
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1709",
|
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1709",
|
||||||
"display_name": "Fulltextsearch",
|
"display_name": "Fulltextsearch",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-fulltextsearch",
|
"image": "nextcloud/aio-fulltextsearch",
|
||||||
"init": false,
|
"init": false,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
"start_period": "60s",
|
"start_period": "60s",
|
||||||
|
|
@ -819,7 +819,7 @@
|
||||||
"container_name": "nextcloud-aio-docker-socket-proxy",
|
"container_name": "nextcloud-aio-docker-socket-proxy",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "Docker Socket Proxy",
|
"display_name": "Docker Socket Proxy",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-docker-socket-proxy",
|
"image": "nextcloud/aio-docker-socket-proxy",
|
||||||
"init": true,
|
"init": true,
|
||||||
"internal_port": "2375",
|
"internal_port": "2375",
|
||||||
"environment": [
|
"environment": [
|
||||||
|
|
@ -845,7 +845,7 @@
|
||||||
"container_name": "nextcloud-aio-whiteboard",
|
"container_name": "nextcloud-aio-whiteboard",
|
||||||
"image_tag": "%AIO_CHANNEL%",
|
"image_tag": "%AIO_CHANNEL%",
|
||||||
"display_name": "Whiteboard",
|
"display_name": "Whiteboard",
|
||||||
"image": "ghcr.io/nextcloud-releases/aio-whiteboard",
|
"image": "nextcloud/aio-whiteboard",
|
||||||
"user": "65534",
|
"user": "65534",
|
||||||
"init": true,
|
"init": true,
|
||||||
"healthcheck": {
|
"healthcheck": {
|
||||||
|
|
|
||||||
|
|
@ -742,33 +742,6 @@ 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 {
|
public function GetCurrentChannel(): string {
|
||||||
$cacheKey = 'aio-ChannelName';
|
$cacheKey = 'aio-ChannelName';
|
||||||
$channelName = apcu_fetch($cacheKey);
|
$channelName = apcu_fetch($cacheKey);
|
||||||
|
|
@ -780,6 +753,7 @@ readonly class DockerActionManager {
|
||||||
$url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
|
$url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
|
||||||
try {
|
try {
|
||||||
$output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
|
$output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
|
||||||
|
$containerChecksum = $output['Image'];
|
||||||
$tagArray = explode(':', $output['Config']['Image']);
|
$tagArray = explode(':', $output['Config']['Image']);
|
||||||
if (count($tagArray) === 2) {
|
if (count($tagArray) === 2) {
|
||||||
$tag = $tagArray[1];
|
$tag = $tagArray[1];
|
||||||
|
|
@ -797,7 +771,7 @@ readonly class DockerActionManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function IsMastercontainerUpdateAvailable(): bool {
|
public function IsMastercontainerUpdateAvailable(): bool {
|
||||||
$imageName = $this->GetCurrentImageName();
|
$imageName = 'nextcloud/all-in-one';
|
||||||
$containerName = 'nextcloud-aio-mastercontainer';
|
$containerName = 'nextcloud-aio-mastercontainer';
|
||||||
|
|
||||||
$tag = $this->GetCurrentChannel();
|
$tag = $this->GetCurrentChannel();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue