nextcloud-aio + lldap + stalwart

Hi everyone, first-time user around here, I’m exploring and trying to configure a nextcloud-aio instance for friends and family. I’m currently doing tests on a Windows 11 laptop via Docker Desktop before I move to a dedicated Unix server.

I searched but didn’t find another thread mentioning my issue, maybe I missed something simple.

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 31.0.8
  • Operating system and version (e.g., Ubuntu 24.04):
    • Microsoft Windows 11 Professionnel 10.0.26100
    • with Docker Desktop 4.45.0
    • Alpine Linux v3.22 for containers
  • Web server and version (e.g, Apache 2.4.25):
    • Apache/2.4.65 (Unix)
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • Caddy v2.10.2
  • PHP version (e.g, 8.3):
    • 8.3.25
  • Is this the first time you’ve seen this error? (Yes / No):
    • Yes
  • When did this problem seem to first start?
    • always
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • AIO
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issue you are facing:

The issue I need your help with is about correctly connecting community containers lldap & stalwart to my nextcloud-aio instance.

My goal is to create my users only once, and for them to be able to use the different services with the same one account (nextcloud, mail, jellyfin, etc.)

Currently :

  • a new user created via lldap can connect to nextcloud :white_check_mark:

  • When accessing the Mail app native integration, he is now automatically connected :white_check_mark:

  • with correct email address detected :white_check_mark:

  • But he is not able to send or receive emails :cross_mark:

  • And the default folders from stalwart do not appear :cross_mark:

  • The nextcloud instance cannot send emails either :cross_mark:

Steps to replicate it (hint: details matter!):

Notion Page containing my steps

Log entries

Note: I replaced my actual domain by domain.fr, the subdomains were left unchanged. You should notice there is the main domain, which is used for email creation, e.g. user@domain.fr, the nextcloud subdomain, nextcloud.domain.fr, and different subdomains for nextcloud, e.g. ldap.nextcloud.domain.fr or mail.nextcloud.domain.fr

Nextcloud

Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.

{"reqId":"1WcJxKGh8v3tJLJpkJrG","level":3,"time":"2025-09-13T10:07:52+00:00","remoteAddr":"127.0.0.1","user":"test.001","app":"mail","method":"GET","url":"/apps/mail/","message":"Could not load account mailboxes: IMAP error synchronizing account 2: Mail server closed the connection unexpectedly.","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0","version":"31.0.8.1","exception":{"Exception":"OCA\\Mail\\Exception\\ServiceException","Message":"IMAP error synchronizing account 2: Mail server closed the connection unexpectedly.","Code":4,"Trace":[{"file":"/var/www/html/custom_apps/mail/lib/Service/MailManager.php","line":139,"function":"sync","class":"OCA\\Mail\\IMAP\\MailboxSync","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/custom_apps/mail/lib/Controller/PageController.php","line":149,"function":"getMailboxes","class":"OCA\\Mail\\Service\\MailManager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":200,"function":"index","class":"OCA\\Mail\\Controller\\PageController","type":"->","args":[]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":114,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Mail\\Controller\\PageController"},"index"]},{"file":"/var/www/html/lib/private/AppFramework/App.php","line":161,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Mail\\Controller\\PageController"},"index"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Mail\\Controller\\PageController","index",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"mail.page.index"}]},{"file":"/var/www/html/lib/base.php","line":1061,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/mail/"]},{"file":"/var/www/html/index.php","line":24,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/html/custom_apps/mail/lib/IMAP/MailboxSync.php","Line":110,"Previous":{"Exception":"Horde_Imap_Client_Exception","Message":"Mail server closed the connection unexpectedly.","Code":4,"Trace":[{"file":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Socket.php","line":4562,"function":"read","class":"Horde_Imap_Client_Socket_Connection_Socket","type":"->","args":[]},{"file":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Socket.php","line":4319,"function":"_getLine","class":"Horde_Imap_Client_Socket","type":"->","args":[{"__class__":"Horde_Imap_Client_Interaction_Pipeline","data":{"modseqs":[],"modseqs_nouid":[]},"fetch":{"__class__":"Horde_Imap_Client_Fetch_Results"}}]},{"file":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Socket.php","line":4243,"function":"_sendCmdChunk","class":"Horde_Imap_Client_Socket","type":"->","args":[{"__class__":"Horde_Imap_Client_Interaction_Pipeline","data":{"modseqs":[],"modseqs_nouid":[]},"fetch":{"__class__":"Horde_Imap_Client_Fetch_Results"}},[{"__class__":"Horde_Imap_Client_Interaction_Command","debug":[],"literalplus":true,"literal8":false,"on_error":null,"on_success":null,"pipeline":{"__class__":"Horde_Imap_Client_Interaction_Pipeline","data":{"modseqs":[],"modseqs_nouid":[]},"fetch":{"__class__":"Horde_Imap_Client_Fetch_Results"}},"response":null,"tag":"1"}]]},{"file":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Socket.php","line":232,"function":"_sendCmd","class":"Horde_Imap_Client_Socket","type":"->","args":[{"__class__":"Horde_Imap_Client_Interaction_Command","debug":[],"literalplus":true,"literal8":false,"on_error":null,"on_success":null,"pipeline":{"__class__":"Horde_Imap_Client_Interaction_Pipeline","data":{"modseqs":[],"modseqs_nouid":[]},"fetch":{"__class__":"Horde_Imap_Client_Fetch_Results"}},"response":null,"tag":"1"}]},{"file":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Base.php","line":669,"function":"_initCapability","class":"Horde_Imap_Client_Socket","type":"->","args":[]},{"file":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Socket.php","line":384,"function":"_capability","class":"Horde_Imap_Client_Base","type":"->","args":["STARTTLS"]},{"file":"/var/www/html/custom_apps/mail/lib/IMAP/HordeImapClient.php","line":60,"function":"_login","class":"Horde_Imap_Client_Socket","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Base.php","line":853,"function":"_login","class":"OCA\\Mail\\IMAP\\HordeImapClient","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Base.php","line":1404,"function":"login","class":"Horde_Imap_Client_Base","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/custom_apps/mail/lib/IMAP/FolderMapper.php","line":52,"function":"listMailboxes","class":"Horde_Imap_Client_Base","type":"->","args":["*",5,{"delimiter":true,"attributes":true,"special_use":true}]},{"file":"/var/www/html/custom_apps/mail/lib/IMAP/MailboxSync.php","line":107,"function":"getFolders","class":"OCA\\Mail\\IMAP\\FolderMapper","type":"->","args":["*** sensitive parameters replaced ***",{"__class__":"OCA\\Mail\\IMAP\\HordeImapClient","cacheFields":["HICenv","HICflags","HIChdrs","HICdate","HICsize","And 1 more entries, set log level to debug to see all entries"],"changed":true,"statuscache":true}]},{"file":"/var/www/html/custom_apps/mail/lib/Service/MailManager.php","line":139,"function":"sync","class":"OCA\\Mail\\IMAP\\MailboxSync","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/custom_apps/mail/lib/Controller/PageController.php","line":149,"function":"getMailboxes","class":"OCA\\Mail\\Service\\MailManager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":200,"function":"index","class":"OCA\\Mail\\Controller\\PageController","type":"->","args":[]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":114,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Mail\\Controller\\PageController"},"index"]},{"file":"/var/www/html/lib/private/AppFramework/App.php","line":161,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Mail\\Controller\\PageController"},"index"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Mail\\Controller\\PageController","index",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"mail.page.index"}]},{"file":"/var/www/html/lib/base.php","line":1061,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/mail/"]},{"file":"/var/www/html/index.php","line":24,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/html/custom_apps/mail/vendor/bytestream/horde-imap-client/lib/Horde/Imap/Client/Socket/Connection/Socket.php","Line":147},"message":"Could not load account mailboxes: IMAP error synchronizing account 2: Mail server closed the connection unexpectedly.","exception":[],"CustomMessage":"Could not load account mailboxes: IMAP error synchronizing account 2: Mail server closed the connection unexpectedly."},"id":"68c54609af0b8"}
{"reqId":"bB3v2HWpYYMEANzj51Po","level":3,"time":"2025-09-13T08:52:16+00:00","remoteAddr":"127.0.0.1","user":"admin","app":"index","method":"POST","url":"/apps/user_ldap/ajax/wizard.php","message":"ldap_get_attributes(): Argument #2 ($entry) must be of type LDAP\\ResultEntry, false given","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0","version":"31.0.8.1","exception":{"Exception":"TypeError","Message":"ldap_get_attributes(): Argument #2 ($entry) must be of type LDAP\\ResultEntry, false given","Code":0,"Trace":[{"function":"ldap_get_attributes","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/user_ldap/lib/LDAP.php","line":285,"function":"call_user_func_array","args":["*** sensitive parameters replaced ***",["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]]},{"file":"/var/www/html/apps/user_ldap/lib/LDAP.php","line":136,"function":"invokeLDAPMethod","class":"OCA\\User_LDAP\\LDAP","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/user_ldap/lib/Wizard.php","line":330,"function":"getAttributes","class":"OCA\\User_LDAP\\LDAP","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/apps/user_ldap/lib/Wizard.php","line":285,"function":"getUserAttributes","class":"OCA\\User_LDAP\\Wizard","type":"->","args":[]},{"file":"/var/www/html/apps/user_ldap/ajax/wizard.php","line":62,"function":"determineAttributes","class":"OCA\\User_LDAP\\Wizard","type":"->","args":[]},{"file":"/var/www/html/lib/private/Route/Route.php","line":134,"args":["/var/www/html/apps/user_ldap/ajax/wizard.php"],"function":"require_once"},{"function":"OC\\Route\\{closure}","class":"OC\\Route\\Route","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":324,"function":"call_user_func","args":[{"__class__":"Closure"},{"_route":"user_ldap_ajax_wizard"}]},{"file":"/var/www/html/lib/base.php","line":1061,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/user_ldap/ajax/wizard.php"]},{"file":"/var/www/html/index.php","line":24,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/html/apps/user_ldap/lib/LDAP.php","Line":285,"message":"ldap_get_attributes(): Argument #2 ($entry) must be of type LDAP\\ResultEntry, false given","exception":[],"CustomMessage":"ldap_get_attributes(): Argument #2 ($entry) must be of type LDAP\\ResultEntry, false given"},"id":"68c54613b5f35"}

Web Browser

If the problem is related to the Web interface, open your browser inspector Console and Network tabs while refreshing (reloading) and reproducing the problem. Provide any relevant output/errors here that appear.

index.mjs:51  [WARN] viewer: Some mimes were ignored because they are not enabled in the server previews config Object
log @ index.mjs:51
init.js:13 Init after app creation
NotificationsApp.vue:434 Notifications permissions not yet requested
NotificationsApp.vue:207 Has notify_push enabled, slowing polling to 15 minutes
NotificationsApp.vue:380 Polling interval updated to 900000
NotificationsApp.vue:251 Started background fetcher as session_keepalive is enabled
Home.vue:114 loading first mailbox of first account 0 priority
index.mjs:51  [WARN] mail: No follow-up tag available Object
log @ index.mjs:51
infinite-scroll.js:199 binding <div data-v-0634df2e class="app-content-list envelope-list" infinite-scroll-immediate-check="false" infinite-scroll-distance="300" role="heading" aria-level="2">…</div> Object e
NotificationsApp.vue:336 Got notification data, restoring default polling interval.
index.esm.js:76  Uncaught (in promise) TypeError: Cannot read properties of null (reading 'querySelectorAll')
    at d (index.esm.js:76:51)
    at b (index.esm.js:530:18)
    at focus-trap.esm.js:333:27
    at Array.map (<anonymous>)
    at w (focus-trap.esm.js:332:46)
    at Object.activate (focus-trap.esm.js:863:9)
    at i.useFocusTrap (NcModal.mjs:554:22)
index.esm.js:76  Uncaught (in promise) TypeError: Cannot read properties of null (reading 'querySelectorAll')
    at d (index.esm.js:76:51)
    at b (index.esm.js:530:18)
    at focus-trap.esm.js:333:27
    at Array.map (<anonymous>)
    at w (focus-trap.esm.js:332:46)
    at Object.activate (focus-trap.esm.js:863:9)
    at i.useFocusTrap (NcModal.mjs:554:22)
/apps/mail/api/outbox/1:1   Failed to load resource: the server responded with a status of 500 ()
index.mjs:54  [ERROR] mail: Failed to send message 1 from outbox Object
log @ index.mjs:54
index.mjs:54  [ERROR] mail: Could not delay-send message 1 Object
log @ index.mjs:54
NotificationsApp.vue:311 Refreshing notifications are notify_push event
/apps/mail/api/outbox/2:1   Failed to load resource: the server responded with a status of 500 ()
index.mjs:54  [ERROR] mail: Failed to send message 2 from outbox Object
log @ index.mjs:54
index.mjs:54  [ERROR] mail: Could not delay-send message 2 Object
log @ index.mjs:54
NotificationsApp.vue:311 Refreshing notifications are notify_push event
index.esm.js:76  Uncaught (in promise) TypeError: Cannot read properties of null (reading 'querySelectorAll')
    at d (index.esm.js:76:51)
    at b (index.esm.js:530:18)
    at focus-trap.esm.js:333:27
    at Array.map (<anonymous>)
    at w (focus-trap.esm.js:332:46)
    at Object.activate (focus-trap.esm.js:863:9)
    at i.useFocusTrap (NcModal.mjs:554:22)
/apps/mail/api/drafts/2:1   Failed to load resource: the server responded with a status of 404 ()
index.mjs:54  [ERROR] mail: Could not save draft Objectapp: "mail"error: K {message: 'Request failed with status code 404', name: 'AxiosError', code: 'ERR_BAD_REQUEST', config: {…}, request: XMLHttpRequest, …}level: 2uid: "test.001"[[Prototype]]: Object
log @ index.mjs:54
index.mjs:51  [WARN] mail: No follow-up tag available Object
log @ index.mjs:51
infinite-scroll.js:199 binding <div data-v-0634df2e class="app-content-list envelope-list" infinite-scroll-immediate-check="false" infinite-scroll-distance="300" role="heading" aria-level="2">…</div> Object e
vue.runtime.esm.js:3065  TypeError: this.getPopoverTriggerContainerElement is not a function
    at i.removeFloatingVueAriaDescribedBy (NcPopover-DxTXnL3u.mjs:172:37)
    at i.afterShow (NcPopover-DxTXnL3u.mjs:264:12)
    at mn (vue.runtime.esm.js:3033:30)
    at i.n (vue.runtime.esm.js:1832:20)
    at mn (vue.runtime.esm.js:3033:30)
    at e.$emit (vue.runtime.esm.js:3732:17)
    at i.$_applyShowEffect (floating-vue.es.js:786:12)
    at i.$_applyShow (floating-vue.es.js:743:18)
hn @ vue.runtime.esm.js:3065
pn @ vue.runtime.esm.js:3057
un @ vue.runtime.esm.js:3024
(anonymous) @ vue.runtime.esm.js:3035
Promise.catch
mn @ vue.runtime.esm.js:3035
n @ vue.runtime.esm.js:1832
mn @ vue.runtime.esm.js:3033
e.$emit @ vue.runtime.esm.js:3732
$_applyShowEffect @ floating-vue.es.js:786
$_applyShow @ floating-vue.es.js:743
setTimeout
$_scheduleShow @ floating-vue.es.js:709
show @ floating-vue.es.js:509
$_autoShowHide @ floating-vue.es.js:849
mn @ vue.runtime.esm.js:3033
e.run @ vue.runtime.esm.js:3550
aa @ vue.runtime.esm.js:4141
(anonymous) @ vue.runtime.esm.js:3159
_n @ vue.runtime.esm.js:3081
Promise.then
fn @ vue.runtime.esm.js:3106
Cn @ vue.runtime.esm.js:3171
ra @ vue.runtime.esm.js:4227
e.update @ vue.runtime.esm.js:3529
e.notify @ vue.runtime.esm.js:732
set @ vue.runtime.esm.js:976
Sa.Ma.set @ vue.runtime.esm.js:5376
openMenu @ NcActions-DdARGGZ_.mjs:419
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
mn @ vue.runtime.esm.js:3033
e.$emit @ vue.runtime.esm.js:3732
show @ floating-vue.es.js:510
e @ floating-vue.es.js:875
[Violation] Forced reflow while executing JavaScript took 30ms
OutboxService.js:55   POST https://nextcloud.domain.fr/apps/mail/api/outbox/2 500 (Internal Server Error)
(anonymous) @ xhr.js:195
xhr @ xhr.js:15
lt @ dispatchRequest.js:51
_request @ Axios.js:187
request @ Axios.js:40
(anonymous) @ Axios.js:226
(anonymous) @ bind.js:5
(anonymous) @ OutboxService.js:55
sendMessage @ outboxStore.js:156
a @ pinia.mjs:1399
(anonymous) @ outboxStore.js:201
setTimeout
(anonymous) @ outboxStore.js:199
sendMessageWithUndo @ outboxStore.js:179
a @ pinia.mjs:1399
sendMessageNow @ OutboxMessageListItem.vue:160
await in sendMessageNow
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
mn @ vue.runtime.esm.js:3033
e.$emit @ vue.runtime.esm.js:3732
onClick @ actionText-fFcUPi2g.mjs:77
handleClick @ NcActionButton-DC3oAI2L.mjs:143
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
s._wrapper @ vue.runtime.esm.js:7500
outboxStore.js:161  [ERROR] mail: Failed to send message 2 from outbox {app: 'mail', uid: 'test.001', level: 2, error: K}app: "mail"error: Kcode: "ERR_BAD_RESPONSE"config: {transitional: {…}, adapter: Array(3), transformRequest: Array(1), transformResponse: Array(1), timeout: 0, …}message: "Request failed with status code 500"name: "AxiosError"request: XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, …}response: {data: {…}, status: 500, statusText: '', headers: Me, config: {…}, …}status: 500stack: "AxiosError: Request failed with status code 500\n    at je (https://nextcloud.domain.fr/custom_apps/mail/js/mail.js?v=ce18e376-0:2:1330715)\n    at XMLHttpRequest.g (https://nextcloud.domain.fr/custom_apps/mail/js/mail.js?v=ce18e376-0:2:1334997)\n    at pt.request (https://nextcloud.domain.fr/custom_apps/mail/js/mail.js?v=ce18e376-0:2:1343233)\n    at async https://nextcloud.domain.fr/custom_apps/mail/js/mail.js?v=ce18e376-0:2:1112825\n    at async Object.sendMessage (https://nextcloud.domain.fr/custom_apps/mail/js/mail.js?v=ce18e376-0:2:1112738)\n    at async https://nextcloud.domain.fr/custom_apps/mail/js/mail.js?v=ce18e376-0:2:1113578"[[Prototype]]: Errorlevel: 2uid: "test.001"[[Prototype]]: Object
log @ index.mjs:54
error @ index.mjs:72
sendMessage @ outboxStore.js:161
await in sendMessage
a @ pinia.mjs:1399
(anonymous) @ outboxStore.js:201
setTimeout
(anonymous) @ outboxStore.js:199
sendMessageWithUndo @ outboxStore.js:179
a @ pinia.mjs:1399
sendMessageNow @ OutboxMessageListItem.vue:160
await in sendMessageNow
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
mn @ vue.runtime.esm.js:3033
e.$emit @ vue.runtime.esm.js:3732
onClick @ actionText-fFcUPi2g.mjs:77
handleClick @ NcActionButton-DC3oAI2L.mjs:143
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
s._wrapper @ vue.runtime.esm.js:7500
outboxStore.js:208  [ERROR] mail: Could not delay-send message 2 {app: 'mail', uid: 'test.001', level: 2, message: {…}}
log @ index.mjs:54
error @ index.mjs:72
(anonymous) @ outboxStore.js:208
setTimeout
(anonymous) @ outboxStore.js:199
sendMessageWithUndo @ outboxStore.js:179
a @ pinia.mjs:1399
sendMessageNow @ OutboxMessageListItem.vue:160
await in sendMessageNow
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
mn @ vue.runtime.esm.js:3033
e.$emit @ vue.runtime.esm.js:3732
onClick @ actionText-fFcUPi2g.mjs:77
handleClick @ NcActionButton-DC3oAI2L.mjs:143
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
s._wrapper @ vue.runtime.esm.js:7500
OutboxMessageListItem.vue:165  [ERROR] mail: Could not send or copy message {app: 'mail', uid: 'test.001', level: 2, error: K}
log @ index.mjs:54
error @ index.mjs:72
sendMessageNow @ OutboxMessageListItem.vue:165
await in sendMessageNow
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
mn @ vue.runtime.esm.js:3033
e.$emit @ vue.runtime.esm.js:3732
onClick @ actionText-fFcUPi2g.mjs:77
handleClick @ NcActionButton-DC3oAI2L.mjs:143
mn @ vue.runtime.esm.js:3033
n @ vue.runtime.esm.js:1832
s._wrapper @ vue.runtime.esm.js:7500

Web server (Apache)

The output of your Apache/nginx/system log in /var/log/____:

2025-09-13T08:13:46.876241943Z Waiting for Nextcloud to start...
2025-09-13T08:13:51.879153946Z Waiting for Nextcloud to start...
2025-09-13T08:13:56.883079953Z Connection to nextcloud-aio-nextcloud (172.18.0.10) 9000 port [tcp/*] succeeded!
2025-09-13T08:13:57.573154660Z /usr/lib/python3.12/site-packages/supervisor/options.py:13: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
2025-09-13T08:13:57.573177211Z   import pkg_resources
2025-09-13T08:13:58.699519318Z [Sat Sep 13 10:13:58.699061 2025] [mpm_event:notice] [pid 73:tid 73] AH00489: Apache/2.4.65 (Unix) configured -- resuming normal operations
2025-09-13T08:13:58.699540001Z [Sat Sep 13 10:13:58.699117 2025] [core:notice] [pid 73:tid 73] AH00094: Command line: '/usr/local/apache2/bin/httpd -D FOREGROUND'
2025-09-13T08:13:58.701322070Z {"level":"info","ts":1757751238.7010307,"msg":"maxprocs: Leaving GOMAXPROCS=20: CPU quota undefined"}
2025-09-13T08:13:58.701753741Z {"level":"info","ts":1757751238.7015312,"msg":"GOMEMLIMIT is updated","package":"github.com/KimMachineGun/automemlimit/memlimit","GOMEMLIMIT":30149111808,"previous":9223372036854775807}
2025-09-13T08:13:58.701767472Z {"level":"info","ts":1757751238.7015975,"msg":"using config from file","file":"/tmp/Caddyfile"}
2025-09-13T08:13:58.704387525Z {"level":"info","ts":1757751238.7040293,"msg":"adapted config to JSON","adapter":"caddyfile"}
2025-09-13T08:13:58.713939715Z {"level":"info","ts":1757751238.713523,"msg":"serving initial configuration"}

Reverse Proxy (Caddy)

The output of your Apache/nginx/system log in /var/log/____:


2025-09-13T08:13:45.308691246Z Waiting for nextcloud to start
2025-09-13T08:13:50.311301154Z Waiting for nextcloud to start
2025-09-13T08:13:55.313379590Z Connection to nextcloud-aio-nextcloud (172.18.0.10) 9001 port [tcp/*] succeeded!
2025-09-13T08:13:55.313766611Z + '[' -f /nextcloud/admin/files/nextcloud-aio-caddy/allowed-countries.txt ']'
2025-09-13T08:13:55.313791143Z + echo 'Waiting for allowed-countries.txt file to be created'
2025-09-13T08:13:55.313799787Z + sleep 5
2025-09-13T08:13:55.313777564Z Waiting for allowed-countries.txt file to be created
2025-09-13T08:14:00.313836433Z + '[' -f /nextcloud/admin/files/nextcloud-aio-caddy/allowed-countries.txt ']'
2025-09-13T08:14:00.313945290Z + echo 'Waiting for allowed-countries.txt file to be created'
2025-09-13T08:14:00.313960649Z + sleep 5
2025-09-13T08:14:00.314283865Z Waiting for allowed-countries.txt file to be created
2025-09-13T08:14:05.320469964Z Waiting for allowed-countries.txt file to be created
2025-09-13T08:14:05.320509972Z + '[' -f /nextcloud/admin/files/nextcloud-aio-caddy/allowed-countries.txt ']'
2025-09-13T08:14:05.320620764Z + echo 'Waiting for allowed-countries.txt file to be created'
2025-09-13T08:14:05.320635801Z + sleep 5
2025-09-13T08:14:10.324808925Z + '[' -f /nextcloud/admin/files/nextcloud-aio-caddy/allowed-countries.txt ']'
2025-09-13T08:14:10.325634594Z ++ dig nextcloud-aio-caddy A +short +search
2025-09-13T08:14:10.327610717Z ++ head -1
2025-09-13T08:14:10.369762802Z + IPv4_ADDRESS=172.18.0.3
2025-09-13T08:14:10.370590840Z ++ echo 172.18.0.3
2025-09-13T08:14:10.370606263Z ++ sed 's|[0-9]\+$|0/16|'
2025-09-13T08:14:10.371362966Z + IPv4_ADDRESS=172.18.0.0/16
2025-09-13T08:14:10.371767578Z ++ sed 's|trusted_proxies.*|trusted_proxies static 172.18.0.0/16|' /Caddyfile
2025-09-13T08:14:10.372618028Z + CADDYFILE='{
2025-09-13T08:14:10.372625773Z     auto_https disable_redirects
2025-09-13T08:14:10.372627233Z 
2025-09-13T08:14:10.372628347Z     storage file_system {
2025-09-13T08:14:10.372631034Z         root /data/caddy
2025-09-13T08:14:10.372632092Z     }
2025-09-13T08:14:10.372633120Z 
2025-09-13T08:14:10.372643153Z     servers {
2025-09-13T08:14:10.372644508Z         trusted_proxies static 172.18.0.0/16
2025-09-13T08:14:10.372645782Z     }
2025-09-13T08:14:10.372646886Z 
2025-09-13T08:14:10.372647940Z     log {
2025-09-13T08:14:10.372649002Z         level ERROR
2025-09-13T08:14:10.372650002Z     }
2025-09-13T08:14:10.372650948Z }
2025-09-13T08:14:10.372651957Z 
2025-09-13T08:14:10.372652928Z (GEOFILTER) {
2025-09-13T08:14:10.372654006Z     @geofilter {
2025-09-13T08:14:10.372655055Z         not maxmind_geolocation {
2025-09-13T08:14:10.372656143Z             db_path "/data/GeoLite2-Country.mmdb"
2025-09-13T08:14:10.372657359Z             allow_countries
2025-09-13T08:14:10.372658428Z         }
2025-09-13T08:14:10.372659387Z         not remote_ip private_ranges
2025-09-13T08:14:10.372660493Z         # Exclude IP-address of scan.nexcloud.com so that scanning still works
2025-09-13T08:14:10.372661635Z         not remote_ip 95.217.53.149
2025-09-13T08:14:10.372662795Z     }
2025-09-13T08:14:10.372663747Z     respond @geofilter "Access denied" 403 {
2025-09-13T08:14:10.372664921Z 		close
2025-09-13T08:14:10.372666102Z 	}
2025-09-13T08:14:10.372667199Z }
2025-09-13T08:14:10.372668167Z 
2025-09-13T08:14:10.372669134Z https://{$NC_DOMAIN}:443 {
2025-09-13T08:14:10.372670125Z     # import GEOFILTER
2025-09-13T08:14:10.372671183Z     reverse_proxy nextcloud-aio-apache:{$APACHE_PORT}
2025-09-13T08:14:10.372672242Z 
2025-09-13T08:14:10.372673170Z     # TLS options
2025-09-13T08:14:10.372674161Z     tls {
2025-09-13T08:14:10.372675178Z         issuer acme {
2025-09-13T08:14:10.372676214Z             disable_http_challenge
2025-09-13T08:14:10.372677311Z         }
2025-09-13T08:14:10.372678322Z     }
2025-09-13T08:14:10.372679357Z }'
2025-09-13T08:14:10.372704604Z + echo '{
2025-09-13T08:14:10.372713593Z     auto_https disable_redirects
2025-09-13T08:14:10.372721750Z 
2025-09-13T08:14:10.372723115Z     storage file_system {
2025-09-13T08:14:10.372724247Z         root /data/caddy
2025-09-13T08:14:10.372725279Z     }
2025-09-13T08:14:10.372726587Z 
2025-09-13T08:14:10.372727618Z     servers {
2025-09-13T08:14:10.372728646Z         trusted_proxies static 172.18.0.0/16
2025-09-13T08:14:10.372729748Z     }
2025-09-13T08:14:10.372730700Z 
2025-09-13T08:14:10.372731705Z     log {
2025-09-13T08:14:10.372732754Z         level ERROR
2025-09-13T08:14:10.372733792Z     }
2025-09-13T08:14:10.372734863Z }
2025-09-13T08:14:10.372735862Z 
2025-09-13T08:14:10.372736825Z (GEOFILTER) {
2025-09-13T08:14:10.372737823Z     @geofilter {
2025-09-13T08:14:10.372738879Z         not maxmind_geolocation {
2025-09-13T08:14:10.372740011Z             db_path "/data/GeoLite2-Country.mmdb"
2025-09-13T08:14:10.372741198Z             allow_countries
2025-09-13T08:14:10.372742214Z         }
2025-09-13T08:14:10.372743248Z         not remote_ip private_ranges
2025-09-13T08:14:10.372744356Z         # Exclude IP-address of scan.nexcloud.com so that scanning still works
2025-09-13T08:14:10.372745460Z         not remote_ip 95.217.53.149
2025-09-13T08:14:10.372746554Z     }
2025-09-13T08:14:10.372747543Z     respond @geofilter "Access denied" 403 {
2025-09-13T08:14:10.372748677Z 		close
2025-09-13T08:14:10.372749820Z 	}
2025-09-13T08:14:10.372750897Z }
2025-09-13T08:14:10.372751910Z 
2025-09-13T08:14:10.372752892Z https://{$NC_DOMAIN}:443 {
2025-09-13T08:14:10.372753902Z     # import GEOFILTER
2025-09-13T08:14:10.372754996Z     reverse_proxy nextcloud-aio-apache:{$APACHE_PORT}
2025-09-13T08:14:10.372756073Z 
2025-09-13T08:14:10.372757028Z     # TLS options
2025-09-13T08:14:10.372758022Z     tls {
2025-09-13T08:14:10.372758991Z         issuer acme {
2025-09-13T08:14:10.372760090Z             disable_http_challenge
2025-09-13T08:14:10.372761207Z         }
2025-09-13T08:14:10.372762220Z     }
2025-09-13T08:14:10.372763196Z }'
2025-09-13T08:14:10.373126134Z ++ head -n 1 /nextcloud/admin/files/nextcloud-aio-caddy/allowed-countries.txt
2025-09-13T08:14:10.373619085Z + ALLOW_CONTRIES=
2025-09-13T08:14:10.373925319Z + echo ''
2025-09-13T08:14:10.373986316Z + grep -q '^[A-Z ]\+$'
2025-09-13T08:14:10.374509577Z + '[' -f /nextcloud/admin/files/nextcloud-aio-caddy/GeoLite2-Country.mmdb ']'
2025-09-13T08:14:10.374523612Z + '[' -f /nextcloud/admin/files/nextcloud-aio-caddy/block-vaultwarden-admin ']'
2025-09-13T08:14:10.374986533Z ++ dig A +short nextcloud-aio-vaultwarden
2025-09-13T08:14:13.026569095Z + '[' -n '' ']'
2025-09-13T08:14:13.028476691Z ++ dig A +short nextcloud-aio-stalwart
2025-09-13T08:14:13.047042682Z + '[' -n 172.18.0.5 ']'
2025-09-13T08:14:13.047065600Z + grep -q 'mail.{$NC_DOMAIN}' /Caddyfile
2025-09-13T08:14:13.047945735Z + cat
2025-09-13T08:14:13.049344960Z ++ dig A +short nextcloud-aio-lldap
2025-09-13T08:14:13.059499233Z + '[' -n 172.18.0.4 ']'
2025-09-13T08:14:13.059531006Z + grep -q nextcloud-aio-lldap /Caddyfile
2025-09-13T08:14:13.060109790Z + cat
2025-09-13T08:14:13.061183082Z ++ dig A +short nextcloud-aio-nocodb
2025-09-13T08:14:15.618543256Z + '[' -n '' ']'
2025-09-13T08:14:15.618577001Z + nc -z -w 30 host.docker.internal 8096
2025-09-13T08:14:15.622705208Z ++ dig A +short nextcloud-aio-jellyseerr
2025-09-13T08:14:18.257435586Z + '[' -n '' ']'
2025-09-13T08:14:18.259519113Z ++ dig A +short nextcloud-aio-nextcloud-exporter
2025-09-13T08:14:20.849397641Z + '[' -n '' ']'
2025-09-13T08:14:20.849434302Z + mkdir -p /data/caddy-imports
2025-09-13T08:14:20.851887669Z + grep -q /data/caddy-imports /Caddyfile
2025-09-13T08:14:20.852935259Z + echo 'import /data/caddy-imports/*'
2025-09-13T08:14:20.852945423Z + echo '# empty file so that caddy does not print a warning'
2025-09-13T08:14:20.853002836Z + '[' '' = 1 ']'
2025-09-13T08:14:20.853411185Z ++ sed 's|  import GEOFILTER|# import GEOFILTER|' /Caddyfile
2025-09-13T08:14:20.854232403Z + CADDYFILE='{
2025-09-13T08:14:20.854237410Z     auto_https disable_redirects
2025-09-13T08:14:20.854238850Z 
2025-09-13T08:14:20.854239965Z     storage file_system {
2025-09-13T08:14:20.854241019Z         root /data/caddy
2025-09-13T08:14:20.854242041Z     }
2025-09-13T08:14:20.854243034Z 
2025-09-13T08:14:20.854244284Z     servers {
2025-09-13T08:14:20.854245379Z         trusted_proxies static 172.18.0.0/16
2025-09-13T08:14:20.854246515Z     }
2025-09-13T08:14:20.854247512Z 
2025-09-13T08:14:20.854248462Z     log {
2025-09-13T08:14:20.854249451Z         level ERROR
2025-09-13T08:14:20.854250477Z     }
2025-09-13T08:14:20.854251473Z }
2025-09-13T08:14:20.854252521Z 
2025-09-13T08:14:20.854253470Z (GEOFILTER) {
2025-09-13T08:14:20.854254475Z     @geofilter {
2025-09-13T08:14:20.854255511Z         not maxmind_geolocation {
2025-09-13T08:14:20.854331728Z             db_path "/data/GeoLite2-Country.mmdb"
2025-09-13T08:14:20.854333396Z             allow_countries
2025-09-13T08:14:20.854334536Z         }
2025-09-13T08:14:20.854335526Z         not remote_ip private_ranges
2025-09-13T08:14:20.854336671Z         # Exclude IP-address of scan.nexcloud.com so that scanning still works
2025-09-13T08:14:20.854337830Z         not remote_ip 95.217.53.149
2025-09-13T08:14:20.854338897Z     }
2025-09-13T08:14:20.854339851Z     respond @geofilter "Access denied" 403 {
2025-09-13T08:14:20.854341032Z 		close
2025-09-13T08:14:20.854342200Z 	}
2025-09-13T08:14:20.854343264Z }
2025-09-13T08:14:20.854344222Z 
2025-09-13T08:14:20.854345260Z https://{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854346356Z     # import GEOFILTER
2025-09-13T08:14:20.854347442Z     reverse_proxy nextcloud-aio-apache:{$APACHE_PORT}
2025-09-13T08:14:20.854348517Z 
2025-09-13T08:14:20.854349454Z     # TLS options
2025-09-13T08:14:20.854350463Z     tls {
2025-09-13T08:14:20.854351422Z         issuer acme {
2025-09-13T08:14:20.854352445Z             disable_http_challenge
2025-09-13T08:14:20.854353500Z         }
2025-09-13T08:14:20.854355036Z     }
2025-09-13T08:14:20.854356067Z }
2025-09-13T08:14:20.854357001Z https://mail.{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854358043Z     # import GEOFILTER
2025-09-13T08:14:20.854359048Z     reverse_proxy nextcloud-aio-stalwart:10003
2025-09-13T08:14:20.854360262Z 
2025-09-13T08:14:20.854361222Z     # TLS options
2025-09-13T08:14:20.854362269Z     tls {
2025-09-13T08:14:20.854363269Z         issuer acme {
2025-09-13T08:14:20.854364321Z             disable_http_challenge
2025-09-13T08:14:20.854365334Z         }
2025-09-13T08:14:20.854366321Z     }
2025-09-13T08:14:20.854367351Z }
2025-09-13T08:14:20.854368310Z https://autoconfig.{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854369367Z     route /mail/config-v1.1.xml {
2025-09-13T08:14:20.854370410Z         reverse_proxy nextcloud-aio-stalwart:10003
2025-09-13T08:14:20.854371486Z     }
2025-09-13T08:14:20.854372455Z     route {
2025-09-13T08:14:20.854373454Z         abort
2025-09-13T08:14:20.854374433Z     }
2025-09-13T08:14:20.854375412Z 
2025-09-13T08:14:20.854376385Z     # TLS options
2025-09-13T08:14:20.854377364Z     tls {
2025-09-13T08:14:20.854378357Z         issuer acme {
2025-09-13T08:14:20.854382252Z             disable_http_challenge
2025-09-13T08:14:20.854383362Z         }
2025-09-13T08:14:20.854384435Z     }
2025-09-13T08:14:20.854385442Z }
2025-09-13T08:14:20.854386427Z https://autodiscover.{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854387486Z     route /autodiscover/autodiscover.xml {
2025-09-13T08:14:20.854388557Z         reverse_proxy nextcloud-aio-stalwart:10003
2025-09-13T08:14:20.854389642Z     }
2025-09-13T08:14:20.854390616Z     route {
2025-09-13T08:14:20.854391625Z         abort
2025-09-13T08:14:20.854392599Z     }
2025-09-13T08:14:20.854393558Z 
2025-09-13T08:14:20.854394512Z     # TLS options
2025-09-13T08:14:20.854395518Z     tls {
2025-09-13T08:14:20.854396615Z         issuer acme {
2025-09-13T08:14:20.854397788Z             disable_http_challenge
2025-09-13T08:14:20.854398809Z         }
2025-09-13T08:14:20.854399779Z     }
2025-09-13T08:14:20.854400728Z }
2025-09-13T08:14:20.854401728Z https://ldap.{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854402811Z     # import GEOFILTER
2025-09-13T08:14:20.854403879Z     reverse_proxy nextcloud-aio-lldap:17170
2025-09-13T08:14:20.854404913Z 
2025-09-13T08:14:20.854405875Z     # TLS options
2025-09-13T08:14:20.854406857Z     tls {
2025-09-13T08:14:20.854407807Z         issuer acme {
2025-09-13T08:14:20.854408829Z             disable_http_challenge
2025-09-13T08:14:20.854409881Z         }
2025-09-13T08:14:20.854410847Z     }
2025-09-13T08:14:20.854411818Z }
2025-09-13T08:14:20.854412790Z import /data/caddy-imports/*'
2025-09-13T08:14:20.854413873Z + echo '{
2025-09-13T08:14:20.854414856Z     auto_https disable_redirects
2025-09-13T08:14:20.854415957Z 
2025-09-13T08:14:20.854416888Z     storage file_system {
2025-09-13T08:14:20.854417895Z         root /data/caddy
2025-09-13T08:14:20.854418934Z     }
2025-09-13T08:14:20.854419909Z 
2025-09-13T08:14:20.854420877Z     servers {
2025-09-13T08:14:20.854422021Z         trusted_proxies static 172.18.0.0/16
2025-09-13T08:14:20.854424655Z     }
2025-09-13T08:14:20.854425690Z 
2025-09-13T08:14:20.854426718Z     log {
2025-09-13T08:14:20.854427685Z         level ERROR
2025-09-13T08:14:20.854428686Z     }
2025-09-13T08:14:20.854429646Z }
2025-09-13T08:14:20.854430629Z 
2025-09-13T08:14:20.854433239Z (GEOFILTER) {
2025-09-13T08:14:20.854434296Z     @geofilter {
2025-09-13T08:14:20.854435356Z         not maxmind_geolocation {
2025-09-13T08:14:20.854437199Z             db_path "/data/GeoLite2-Country.mmdb"
2025-09-13T08:14:20.854438393Z             allow_countries
2025-09-13T08:14:20.854439409Z         }
2025-09-13T08:14:20.854440427Z         not remote_ip private_ranges
2025-09-13T08:14:20.854441501Z         # Exclude IP-address of scan.nexcloud.com so that scanning still works
2025-09-13T08:14:20.854442713Z         not remote_ip 95.217.53.149
2025-09-13T08:14:20.854443716Z     }
2025-09-13T08:14:20.854444693Z     respond @geofilter "Access denied" 403 {
2025-09-13T08:14:20.854445786Z 		close
2025-09-13T08:14:20.854446798Z 	}
2025-09-13T08:14:20.854447800Z }
2025-09-13T08:14:20.854448789Z 
2025-09-13T08:14:20.854449805Z https://{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854450811Z     # import GEOFILTER
2025-09-13T08:14:20.854451805Z     reverse_proxy nextcloud-aio-apache:{$APACHE_PORT}
2025-09-13T08:14:20.854452916Z 
2025-09-13T08:14:20.854453869Z     # TLS options
2025-09-13T08:14:20.854455023Z     tls {
2025-09-13T08:14:20.854455985Z         issuer acme {
2025-09-13T08:14:20.854456979Z             disable_http_challenge
2025-09-13T08:14:20.854458021Z         }
2025-09-13T08:14:20.854458991Z     }
2025-09-13T08:14:20.854459967Z }
2025-09-13T08:14:20.854460904Z https://mail.{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854461936Z     # import GEOFILTER
2025-09-13T08:14:20.854462929Z     reverse_proxy nextcloud-aio-stalwart:10003
2025-09-13T08:14:20.854463951Z 
2025-09-13T08:14:20.854464944Z     # TLS options
2025-09-13T08:14:20.854465947Z     tls {
2025-09-13T08:14:20.854466925Z         issuer acme {
2025-09-13T08:14:20.854467924Z             disable_http_challenge
2025-09-13T08:14:20.854468934Z         }
2025-09-13T08:14:20.854469903Z     }
2025-09-13T08:14:20.854470919Z }
2025-09-13T08:14:20.854471875Z https://autoconfig.{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854472918Z     route /mail/config-v1.1.xml {
2025-09-13T08:14:20.854473924Z         reverse_proxy nextcloud-aio-stalwart:10003
2025-09-13T08:14:20.854475019Z     }
2025-09-13T08:14:20.854475963Z     route {
2025-09-13T08:14:20.854476994Z         abort
2025-09-13T08:14:20.854477964Z     }
2025-09-13T08:14:20.854478936Z 
2025-09-13T08:14:20.854481344Z     # TLS options
2025-09-13T08:14:20.854482395Z     tls {
2025-09-13T08:14:20.854483389Z         issuer acme {
2025-09-13T08:14:20.854484426Z             disable_http_challenge
2025-09-13T08:14:20.854485451Z         }
2025-09-13T08:14:20.854486423Z     }
2025-09-13T08:14:20.854487391Z }
2025-09-13T08:14:20.854488351Z https://autodiscover.{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854489397Z     route /autodiscover/autodiscover.xml {
2025-09-13T08:14:20.854490452Z         reverse_proxy nextcloud-aio-stalwart:10003
2025-09-13T08:14:20.854491507Z     }
2025-09-13T08:14:20.854492475Z     route {
2025-09-13T08:14:20.854493440Z         abort
2025-09-13T08:14:20.854494497Z     }
2025-09-13T08:14:20.854495470Z 
2025-09-13T08:14:20.854496432Z     # TLS options
2025-09-13T08:14:20.854497405Z     tls {
2025-09-13T08:14:20.854498370Z         issuer acme {
2025-09-13T08:14:20.854499411Z             disable_http_challenge
2025-09-13T08:14:20.854500443Z         }
2025-09-13T08:14:20.854501403Z     }
2025-09-13T08:14:20.854502346Z }
2025-09-13T08:14:20.854503288Z https://ldap.{$NC_DOMAIN}:443 {
2025-09-13T08:14:20.854504280Z     # import GEOFILTER
2025-09-13T08:14:20.854505343Z     reverse_proxy nextcloud-aio-lldap:17170
2025-09-13T08:14:20.854506391Z 
2025-09-13T08:14:20.854507326Z     # TLS options
2025-09-13T08:14:20.854508341Z     tls {
2025-09-13T08:14:20.854509311Z         issuer acme {
2025-09-13T08:14:20.854510318Z             disable_http_challenge
2025-09-13T08:14:20.854511330Z         }
2025-09-13T08:14:20.854512310Z     }
2025-09-13T08:14:20.854513273Z }
2025-09-13T08:14:20.854514284Z import /data/caddy-imports/*'
2025-09-13T08:14:20.854515343Z + set +x
2025-09-13T08:14:21.174944298Z {"level":"info","ts":1757751261.1745617,"msg":"maxprocs: Leaving GOMAXPROCS=20: CPU quota undefined"}
2025-09-13T08:14:21.174978516Z {"level":"info","ts":1757751261.1748357,"msg":"GOMEMLIMIT is updated","package":"github.com/KimMachineGun/automemlimit/memlimit","GOMEMLIMIT":30149111808,"previous":9223372036854775807}
2025-09-13T08:14:21.175371010Z {"level":"info","ts":1757751261.1749196,"msg":"using config from file","file":"/Caddyfile"}
2025-09-13T08:14:21.179398190Z {"level":"info","ts":1757751261.178851,"msg":"adapted config to JSON","adapter":"caddyfile"}
2025-09-13T08:14:21.199499295Z {"level":"info","ts":1757751261.1990662,"msg":"failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 7168 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details."}
2025-09-13T08:14:21.203511185Z {"level":"info","ts":1757751261.2033067,"msg":"serving initial configuration"}

Configuration

Nextcloud

The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):

{
    "system": {
        "one-click-instance": true,
        "one-click-instance.user-limit": 100,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "check_data_directory_permissions": false,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "overwritehost": "nextcloud.domain.fr",
        "overwriteprotocol": "https",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "nextcloud.domain.fr"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "31.0.8.1",
        "overwrite.cli.url": "https:\/\/nextcloud.domain.fr\/",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "updatechecker": false,
        "loglevel": 2,
        "log_type": "file",
        "logfile": "\/var\/www\/html\/data\/nextcloud.log",
        "log_rotate_size": 10485760,
        "log.condition": {
            "apps": [
                "admin_audit"
            ]
        },
        "preview_max_x": 2048,
        "preview_max_y": 2048,
        "jpeg_quality": 60,
        "enabledPreviewProviders": {
            "1": "OC\\Preview\\Image",
            "2": "OC\\Preview\\MarkDown",
            "3": "OC\\Preview\\MP3",
            "4": "OC\\Preview\\TXT",
            "5": "OC\\Preview\\OpenDocument",
            "6": "OC\\Preview\\Movie",
            "7": "OC\\Preview\\Krita"
        },
        "enable_previews": true,
        "upgrade.disable-web": true,
        "mail_smtpmode": "smtp",
        "trashbin_retention_obligation": "auto, 30",
        "versions_retention_obligation": "auto, 30",
        "activity_expire_days": 30,
        "simpleSignUpLink.shown": false,
        "share_folder": "\/Shared",
        "one-click-instance.link": "https:\/\/nextcloud.com\/all-in-one\/",
        "upgrade.cli-upgrade-link": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/2726",
        "updatedirectory": "\/nc-updater",
        "maintenance_window_start": 100,
        "allow_local_remote_servers": true,
        "davstorage.request_timeout": 3600,
        "documentation_url.server_logs": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/5425",
        "htaccess.RewriteBase": "\/",
        "dbpersistent": false,
        "auth.bruteforce.protection.enabled": true,
        "ratelimit.protection.enabled": true,
        "files_external_allow_create_new_local": false,
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory",
        "default_phone_region": "FR",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_sendmailmode": "smtp",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "25",
        "mail_smtpauth": true,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "DOMAIN": "nextcloud.domain.fr"
    }
}

Apps

The output of occ app:list (if possible).

Enabled:
  - activity: 4.0.0
  - admin_audit: 1.21.0
  - bruteforcesettings: 4.0.0
  - circles: 31.0.0
  - cloud_federation_api: 1.14.0
  - comments: 1.21.0
  - contactsinteraction: 1.12.0
  - dashboard: 7.11.0
  - dav: 1.33.0
  - federatedfilesharing: 1.21.0
  - federation: 1.21.0
  - files: 2.3.1
  - files_antivirus: 6.0.4
  - files_downloadlimit: 4.0.0
  - files_pdfviewer: 4.0.0
  - files_reminders: 1.4.0
  - files_sharing: 1.23.1
  - files_trashbin: 1.21.0
  - files_versions: 1.24.0
  - firstrunwizard: 4.0.0
  - logreader: 4.0.0
  - lookup_server_connector: 1.19.0
  - mail: 5.4.0
  - nextcloud-aio: 0.8.0
  - nextcloud_announcements: 3.0.0
  - notifications: 4.0.0
  - notify_push: 1.2.0
  - oauth2: 1.19.1
  - password_policy: 3.0.0
  - photos: 4.0.0
  - privacy: 3.0.0
  - profile: 1.0.0
  - provisioning_api: 1.21.0
  - recommendations: 4.0.0
  - related_resources: 2.0.0
  - serverinfo: 3.0.0
  - settings: 1.14.0
  - sharebymail: 1.21.0
  - support: 3.0.0
  - survey_client: 3.0.0
  - systemtags: 1.21.1
  - text: 5.0.0
  - theming: 2.6.1
  - twofactor_backupcodes: 1.20.0
  - updatenotification: 1.21.0
  - user_ldap: 1.22.0
  - user_status: 1.11.0
  - viewer: 4.0.0
  - weather_status: 1.11.0
  - webhook_listeners: 1.2.0
  - workflowengine: 2.13.0
Disabled:
  - app_api: 5.0.2 (installed 5.0.2)
  - encryption: 2.19.0
  - files_external: 1.23.0
  - suspicious_login: 9.0.1
  - twofactor_nextcloud_notification: 5.0.0
  - twofactor_totp: 13.0.0-dev.0

Any help will be appreciated :slight_smile:

Hi, for help on this I guess its best to open an issue here: GitHub · Where software is built

Thanks for the reply, I’ve created netxcloud-aio + lldap + stalwart · Issue #78 · docjyJ/aio-stalwart · GitHub

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