[Solved] Unable to migrate nextcloud all-in-one from one docker server to another

  • Nextcloud Server version (e.g., 29.x.x):
    • Nextcloud AIO v.11.1.0
  • Operating system and version (e.g., Ubuntu 24.04):
    • Linux docker 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
  • Web server and version (e.g, Apache 2.4.25):
    • N/A (how can I find this)?
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • Nginx Proxy Manager NPM --- v2.12.3
  • PHP version (e.g, 8.3):
    • N/A (how can I find this)?
  • Is this the first time you’ve seen this error? (Yes / No):
    • No
  • When did this problem seem to first start?
    • after trying to migrate from one docker server to another
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • migration from a docker server inside a baremetal OS, into a docker server inside a proxmox virtual machine
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • I am using Cloudflare for dns provisioning

Summary of the issue you are facing:

When I start the nextcloud-aio-mastercontainer it asks me for my admin password (which I am able to provide), and continue to the next screen.

There I observe that all the containers are stopped and that there is an update for the mastercontainer.

Push the update button and an error shows up stating that the interface will reload in 10 seconds.

After that timeout I get back again on this last screen and cannot get past it.

Log entries

Nextcloud

2025-07-12T08:27:12.828511917Z Initial startup of Nextcloud All-in-One complete!
2025-07-12T08:27:12.828529655Z You should be able to open the Nextcloud AIO Interface now on port 8080 of this server!
2025-07-12T08:27:12.828533281Z E.g. https://internal.ip.of.this.server:8080
2025-07-12T08:27:12.828535808Z ⚠ Important: do always use an ip-address if you access this port and not a domain as HSTS might block access to it later!
2025-07-12T08:27:12.828538621Z 
2025-07-12T08:27:12.828540731Z If your server has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatically by opening the Nextcloud AIO Int
erface via:
2025-07-12T08:27:12.828543128Z https://your-domain-that-points-to-this-server.tld:8443
2025-07-12T08:27:14.150063446Z {"level":"info","ts":1752308834.1497838,"msg":"maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined"}
2025-07-12T08:27:14.150287222Z {"level":"info","ts":1752308834.1499448,"msg":"GOMEMLIMIT is updated","package":"github.com/KimMachineGun/automemlimit/memlimit","GOMEMLIMIT":7488667238,"prev
ious":9223372036854775807}
2025-07-12T08:27:14.150303840Z {"level":"info","ts":1752308834.1500728,"msg":"using config from file","file":"/Caddyfile"}
2025-07-12T08:27:14.151510119Z {"level":"info","ts":1752308834.1513462,"msg":"adapted config to JSON","adapter":"caddyfile"}
2025-07-12T08:27:14.152490413Z [Sat Jul 12 08:27:14.152305 2025] [mpm_event:notice] [pid 144:tid 144] AH00489: Apache/2.4.62 (Unix) OpenSSL/3.3.3 configured -- resuming normal operations
2025-07-12T08:27:14.152644369Z [Sat Jul 12 08:27:14.152546 2025] [core:notice] [pid 144:tid 144] AH00094: Command line: 'httpd -D FOREGROUND'
2025-07-12T08:27:14.153650564Z {"level":"info","ts":1752308834.1534631,"msg":"serving initial configuration"}
2025-07-12T08:27:14.161148072Z [12-Jul-2025 08:27:14] NOTICE: fpm is running, pid 149
2025-07-12T08:27:14.161166911Z [12-Jul-2025 08:27:14] NOTICE: ready to handle connections
2025-07-12T08:29:56.263594153Z Deleting duplicate sessions



2025-07-12T08:52:28.290068821Z NOTICE: PHP message: Slim Application Error
2025-07-12T08:52:28.290095910Z Type: Exception
2025-07-12T08:52:28.290099518Z Code: 0
2025-07-12T08:52:28.290102273Z Message: Could not pull image ghcr.io/nextcloud-releases/aio-watchtower:latest: {"message":"Get \"https://ghcr.io/v2/\": dial tcp: lookup ghcr.io on 192.168.115.254:53: no such host"}
2025-07-12T08:52:28.290105364Z File: /var/www/docker-aio/php/src/Docker/DockerActionManager.php
2025-07-12T08:52:28.290107806Z Line: 633
2025-07-12T08:52:28.290110323Z Trace: #0 /var/www/docker-aio/php/src/Controller/DockerController.php(56): AIO\Docker\DockerActionManager->PullImage(Object(AIO\Container\Container))
2025-07-12T08:52:28.290122521Z #1 /var/www/docker-aio/php/src/Controller/DockerController.php(224): AIO\Controller\DockerController->PerformRecursiveContainerStart('nextcloud-aio-w...')
2025-07-12T08:52:28.290125837Z #2 /var/www/docker-aio/php/src/Controller/DockerController.php(217): AIO\Controller\DockerController->startWatchtower()
2025-07-12T08:52:28.290128645Z #3 /var/www/docker-aio/php/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(38): AIO\Controller\DockerController->StartWatchtowerContainer(Object(GuzzleHttp\Psr7\ServerRequest), Object(GuzzleHttp\Psr7\Response), Array)
2025-07-12T08:52:28.290131614Z #4 /var/www/docker-aio/php/vendor/slim/slim/Slim/Routing/Route.php(363): Slim\Handlers\Strategies\RequestResponse->__invoke(Array, Object(GuzzleHttp\Psr7\ServerRequest), Object(GuzzleHttp\Psr7\Response), Array)
2025-07-12T08:52:28.290134538Z #5 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(73): Slim\Routing\Route->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290137217Z #6 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(73): Slim\MiddlewareDispatcher->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290139826Z #7 /var/www/docker-aio/php/vendor/slim/slim/Slim/Routing/Route.php(321): Slim\MiddlewareDispatcher->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290142379Z #8 /var/www/docker-aio/php/vendor/slim/slim/Slim/Routing/RouteRunner.php(74): Slim\Routing\Route->run(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290145069Z #9 /var/www/docker-aio/php/vendor/slim/csrf/src/Guard.php(482): Slim\Routing\RouteRunner->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290148492Z #10 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(177): Slim\Csrf\Guard->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Slim\Routing\RouteRunner))
2025-07-12T08:52:28.290151478Z #11 /var/www/docker-aio/php/vendor/slim/twig-view/src/TwigMiddleware.php(117): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290154162Z #12 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(129): Slim\Views\TwigMiddleware->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
2025-07-12T08:52:28.290157009Z #13 /var/www/docker-aio/php/src/Middleware/AuthMiddleware.php(36): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290160429Z #14 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(280): AIO\Middleware\AuthMiddleware->__invoke(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
2025-07-12T08:52:28.290163273Z #15 /var/www/docker-aio/php/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php(77): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290167622Z #16 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(129): Slim\Middleware\ErrorMiddleware->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
2025-07-12T08:52:28.290173088Z #17 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(73): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290175906Z #18 /var/www/docker-aio/php/vendor/slim/slim/Slim/App.php(209): Slim\MiddlewareDispatcher->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290178614Z #19 /var/www/docker-aio/php/vendor/slim/slim/Slim/App.php(193): Slim\App->handle(Object(GuzzleHttp\Psr7\ServerRequest))
2025-07-12T08:52:28.290181133Z #20 /var/www/docker-aio/php/public/index.php(191): Slim\App->run()
2025-07-12T08:52:28.290183520Z #21 {main}
2025-07-12T08:52:28.290185755Z Tips: To display error details in HTTP response set "displayErrorDetails" to true in the ErrorHandler constructor.
root@docker:~# 
[0] 0:bash*                                                                                                                                                          


Configuration

Nextcloud

Since only mastercontainer starts I have no access to occ command and no access to nextcloud config either.

N/A

I am sorry if this seems too elusive. I am ofcourse willing to divulge further information.

Thank you.

Did You notice
“lookup ghcr.io on 192.168.115.254:53: no such host”}"
in Your log?

Port 53 is for DNS. Sorry, can’t provide more help.

1 Like

Hi @MichaelFliegner. Thank you for your answer and interest in my question. :slight_smile:

Well that did puzzle me, but I was not able to solve that DNS issue from the docker.service perspective. The /etc/docker/daemon.json file was already ‘provisioned’ with the recommended settings:

 { "dns" : [ "1.1.1.1" , "8.8.8.8" ] }

is ‘laying’ therein. :slight_smile: .

And there was a ‘quirky’ behavior, despite that setting. By that quirkiness, I mean: If I issued docker pull... (to get any of the required images that were spewing those error messages at the nextcloud-aio-mastercontainer docker logs), from the machine where the docker.service was running, I, most oddly, wouldn’t be greeted with any error. Meaning that the underlying OS – or just the docker service, one of them, that is… – was indeed coping well with DNS resolving. Notice that the /etc/docker/daemon.json file was already set with the same DNS’ that it has currently.

So I ‘guess’ that something was overriding that ‘local’ docker setting and using a more broad one. Which one?

Well I think it was the underlying OS (that was not handling out things very well).

Why?

Because they only began to ‘behave’ when I corrected them.

Look at the image and see for yourself:

After setting those, on the above image, things began to come together!

Also, but not sure if this would matter:

I was trying to migrate the NC-AIO from one server to another. I ‘neglectedly overlooked’ the migration instructions from NC-AIO ‘recipes’. After all, it was my ‘first’ time trying to migrate several docker services from one server onto another. I chose to go a generic way, and that did not pay off as expected.

The migration approach that I took was to ‘use’ the docker save command, like this:

docker image save -o imagens.tar \\
    imagem-nextcloud-aio-apache:latest \\
    imagem-nextcloud-aio-whiteboard:latest \\
    imagem-nextcloud-aio-notify-push:latest \\
    imagem-nextcloud-aio-nextcloud:latest \\
    imagem-nextcloud-aio-imaginary:latest \\
    imagem-nextcloud-aio-redis:latest \\
    imagem-nextcloud-aio-database:latest \\
    imagem-nextcloud-aio-talk:latest \\
    imagem-nextcloud-aio-collabora:latest \\
    imagem-nextcloud-aio-mastercontainer:latest

This command, was issued in the original server.

On the ‘receiving one’, not only did I use the docker load command, but also, and obviously, had to ‘present’ the nextcloud-aio-mastercontainer docker service with the ‘underlying’ data from the original server. (An extra configuration setup).

Meanwhile, I also took the liberty to tag those saved images (right or wrong?) with the same tags available from upstream. (Was this mandatory, for the migration process to work??) I don’t actually know.

What I know, presently, is that the NC-AIO service is up and running.

I think the main reason for this is that ‘subtle’ but ‘drastic’ change inside the systemd-resolved.service configuration!

Thank you for your hint! @MichaelFliegner ! I think it really is/was decisive!

And the solution (I guess) was pointed out by that ‘hiccup’ in the logs!

I am going to elect your hint as a sort of solution, due to its inheritant merit! And stress out that /etc/systemd/resolved.conf file was the cherry-on-top! :smiling_face:

Cheers!

:sun:

P.s.: Almost forgetting this: Apologies for the late answer!

1 Like

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.