Cannot deploy AIO on Synology/Docker

Issued this command:

docker run -it \
--name nextcloud-aio-mastercontainer \
--restart always \
-p 6080:80 \
-p 8080:8080 \
-p 6443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

Open up https://192.168.3.33:8080 to perform setup, and then proceed to login.
The login fails with:

Slim Application Error

The application could not run because of the following error:
Details
Type: GuzzleHttp\Exception\ServerException
Code: 500
Message: Server error: `POST http://localhost/v1.41/containers/nextcloud-aio-domaincheck/start` resulted in a `500 Internal Server Error` response: {"message":"driver failed programming external connectivity on endpoint nextcloud-aio-domaincheck (3f40dca9fddae10fc29bf (truncated...)
File: /var/www/docker-aio/php/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
Line: 113
Trace

#0 /var/www/docker-aio/php/vendor/guzzlehttp/guzzle/src/Middleware.php(69): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response), NULL, Array, NULL)
#1 /var/www/docker-aio/php/vendor/guzzlehttp/promises/src/Promise.php(204): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response))
#2 /var/www/docker-aio/php/vendor/guzzlehttp/promises/src/Promise.php(153): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), NULL)
#3 /var/www/docker-aio/php/vendor/guzzlehttp/promises/src/TaskQueue.php(48): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()
#4 /var/www/docker-aio/php/vendor/guzzlehttp/promises/src/Promise.php(248): GuzzleHttp\Promise\TaskQueue->run(true)
#5 /var/www/docker-aio/php/vendor/guzzlehttp/promises/src/Promise.php(224): GuzzleHttp\Promise\Promise->invokeWaitFn()
#6 /var/www/docker-aio/php/vendor/guzzlehttp/promises/src/Promise.php(269): GuzzleHttp\Promise\Promise->waitIfPending()
#7 /var/www/docker-aio/php/vendor/guzzlehttp/promises/src/Promise.php(226): GuzzleHttp\Promise\Promise->invokeWaitList()
#8 /var/www/docker-aio/php/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending()
#9 /var/www/docker-aio/php/vendor/guzzlehttp/guzzle/src/Client.php(187): GuzzleHttp\Promise\Promise->wait()
#10 /var/www/docker-aio/php/vendor/guzzlehttp/guzzle/src/ClientTrait.php(95): GuzzleHttp\Client->request('POST', 'http://localhos...', Array)
#11 /var/www/docker-aio/php/src/Docker/DockerActionManager.php(177): GuzzleHttp\Client->post('http://localhos...')
#12 /var/www/docker-aio/php/src/Controller/DockerController.php(50): AIO\Docker\DockerActionManager->StartContainer(Object(AIO\Container\Container))
#13 /var/www/docker-aio/php/src/Controller/DockerController.php(220): AIO\Controller\DockerController->PerformRecursiveContainerStart('nextcloud-aio-d...')
#14 /var/www/docker-aio/php/public/index.php(72): AIO\Controller\DockerController->StartDomaincheckContainer()
#15 /var/www/docker-aio/php/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(43): Closure->{closure}(Object(GuzzleHttp\Psr7\ServerRequest), Object(GuzzleHttp\Psr7\Response), Array)
#16 /var/www/docker-aio/php/vendor/slim/slim/Slim/Routing/Route.php(384): Slim\Handlers\Strategies\RequestResponse->__invoke(Object(Closure), Object(GuzzleHttp\Psr7\ServerRequest), Object(GuzzleHttp\Psr7\Response), Array)
#17 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(81): Slim\Routing\Route->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#18 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(81): Slim\MiddlewareDispatcher->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#19 /var/www/docker-aio/php/vendor/slim/slim/Slim/Routing/Route.php(341): Slim\MiddlewareDispatcher->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#20 /var/www/docker-aio/php/vendor/slim/slim/Slim/Routing/RouteRunner.php(84): Slim\Routing\Route->run(Object(GuzzleHttp\Psr7\ServerRequest))
#21 /var/www/docker-aio/php/vendor/slim/csrf/src/Guard.php(456): Slim\Routing\RouteRunner->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#22 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(209): Slim\Csrf\Guard->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Slim\Routing\RouteRunner))
#23 /var/www/docker-aio/php/vendor/slim/twig-view/src/TwigMiddleware.php(115): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#24 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(147): Slim\Views\TwigMiddleware->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#25 /var/www/docker-aio/php/src/Middleware/AuthMiddleware.php(38): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#26 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(313): AIO\Middleware\AuthMiddleware->__invoke(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#27 /var/www/docker-aio/php/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php(107): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#28 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(147): Slim\Middleware\ErrorMiddleware->process(Object(GuzzleHttp\Psr7\ServerRequest), Object(Psr\Http\Server\RequestHandlerInterface@anonymous))
#29 /var/www/docker-aio/php/vendor/slim/slim/Slim/MiddlewareDispatcher.php(81): Psr\Http\Server\RequestHandlerInterface@anonymous->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#30 /var/www/docker-aio/php/vendor/slim/slim/Slim/App.php(215): Slim\MiddlewareDispatcher->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#31 /var/www/docker-aio/php/vendor/slim/slim/Slim/App.php(199): Slim\App->handle(Object(GuzzleHttp\Psr7\ServerRequest))
#32 /var/www/docker-aio/php/public/index.php(155): Slim\App->run()
#33 {main}

Lets continue in You've set NEXTCLOUD_DATADIR but not to an allowed value - #13 by BetoHydroxyButyrate

I find that there is a new container created: nextcloud-aio-domaincheck.
This is in state “created” not running.
It has the bridge network assigned.
It is trying to use port 443.

If I attempt to run it, I get “request failed with status code 500”.

# docker container start nextcloud-aio-domaincheck
Error response from daemon: driver failed programming external connectivity on endpoint nextcloud-aio-domaincheck (383a85d20eb6bf2c38274d3093bec885a630530b8558f24800ddd1d6dfab9ae0): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use
Error: failed to start containers: nextcloud-aio-domaincheck

This is a new issue, not related to NEXTCLOUD_DATADIR.

Okay then lets continue here

Yesy the domaincheck container is trying to use port 443 on the host. Hence my question if that port is already in use on the host.

443 is used by the NAS for the WEB console.
If I pass in APACHE_PORT as an ENV var to the docker-compose, will that be passed along?

Getting some pressure to rejoin humanity for a bit…

Yes, that is how it works :+1:

That did it.
Perhaps the readme.md should spell out the requirement to map the 443 port.
I am now running on the macvlan with no reverse proxy, just a remapping of the APACHE_PORT.

Thanks!

It mentions this requirement. Do you havw ideas how to make it better visible?
See https://user-images.githubusercontent.com/42591237/167639939-d3dfb1b4-666e-4ff0-a967-82c238b41b39.png and
https://github.com/nextcloud/all-in-one#which-ports-are-mandatory-to-be-open-in-your-firewallrouter

When I was reading the Readme.md, I saw the sentence regarding port 443, followed the link to the reverse proxy documentation, but that was all about reverse proxy. I thought I was deploying onto the macvlan, as I did not really understand how things would flow, so I backed out of that page and ignored all the rest.
I think there should be a better description of what the AIO is going to do.
A better description of the assumptions. Some idea of the mechanism / eventual result.

Perhaps a mechanism to allow deployment using macvlan-based fixed IP allocations.

The fact that it was blowing up with no clear indication that it was the port 443 conflict was confusing. Perhaps no-one else will stumble down that path, so perhaps no sense fixing things.

After getting it all working, I can’t get it to accept a valid IP address. I put an entry in my PiHole local DNS for nextcloud.xxx.com but that was rejected by the setup: no idea why. I never saw queries logged on the PiHole. All DNS req are dnatted to the PiHole, so explicit attempts to use 8.8.8.8 or 1.1.1.1 get diverted, so I should have been able to see the query come in.

So i tried a fixed IP address (192.168.3.something) and that was rejected.

I’ve moved onto trying other things now. It was a matter of minutes to get the linuxserver.io version up, on the macvlan as desired, although the DB selection seems unfortunate.

Alrighty thanks for the feedback! I’ll try to explain it a bit better somehow that the project uses port 443 by default.

Also I will document that ip-addresses for Nextcloud are indeed not supported.