Comments (17)
Thank you! Will look over the weekend, thanks for your patience 🙏🏼
from davis.
hi,
I just pulled :edge
and ran authentication again, here are the results:
davis.log
from davis.
Hi @Elbullazul
I have unfortunately little experience on LDAP in general to help diagnose.
Could you try to set the application in dev mode (APP_ENV=dev) and see the logs you have?
from davis.
I get a seemingly unrelated HTTP 500 when accessing davis when in dev mode:
the container prints a similar warning: NOTICE: PHP message: 2024-05-13T10:23:11+00:00 [critical] Uncaught Error: Class "Symfony\Bundle\WebProfilerBundle\WebProfilerBundle" not found
from davis.
Ah, yes, indeed, as you need the dev dependencies installed to be able to run in dev mode. You can install them with composer install
inside the running container. Otherwise, do you have an easy way to reproduce (with a public lldap server for instance)?
from davis.
composer isn't in the path:
OCI runtime exec failed: exec failed: unable to start container process: exec: "composer": executable file not found in $PATH: unknown
how do I run it? sorry, I haven't used PHP before and I'm a little lost
from davis.
Yes if you're not used to the composer / PHP ecosystem it's not that easy I admit.
Run a shell in the container, go to the /var/www/davis/
folder, and then run composer install
there, it should work
from davis.
Had some trouble with composer, apparently it wasn't installed in the container. Ran apk add composer
, then installed the dependencies, but in the end I managed to install the dependencies.
There was a lot of stuff in dev.log
, but the relevant info seems to be this:
[2024-05-14T19:13:48.488117-04:00] doctrine.INFO: Disconnecting [] []
[2024-05-14T19:13:48.674031-04:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET http://davis.localhost/favicon.ico" (from "https://davis.localhost/dav/")" at /var/www/davis/vendor/symfony/http-kernel/EventListener/RouterListener.php line 135 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET http://davis.localhost/favicon.ico\" (from \"https://davis.localhost/dav/\") at /var/www/davis/vendor/symfony/http-kernel/EventListener/RouterListener.php:135)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException(code: 0): No routes found for \"/favicon.ico/\". at /var/www/davis/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:74)"} []
[2024-05-14T19:13:48.716686-04:00] php.INFO: User Deprecated: Since symfony/security-guard 5.3: The "Symfony\Component\Security\Guard\Authenticator\GuardBridgeAuthenticator" class is deprecated, use the new authenticator system instead. {"exception":"[object] (ErrorException(code: 0): User Deprecated: Since symfony/security-guard 5.3: The \"Symfony\\Component\\Security\\Guard\\Authenticator\\GuardBridgeAuthenticator\" class is deprecated, use the new authenticator system instead. at /var/www/davis/vendor/symfony/security-guard/Authenticator/GuardBridgeAuthenticator.php:35)"} []
do you have an easy way to reproduce
Here is my lldap compose project:
version: "3"
# ENV variables are $BINDS, $TZ, $TOKEN, $PASSWORD, $DB_USER, $DB_PASS and $DB_NAME
services:
lldap:
image: lldap/lldap:stable
container_name: lldap
volumes:
- ${BINDS}/lldap/data:/data
environment:
- UID=1000
- GID=1000
- TZ=$TZ
- LLDAP_JWT_SECRET=$TOKEN
- LLDAP_LDAP_USER_PASS=$PASSWORD
- LLDAP_LDAP_BASE_DN=dc=example,dc=com
- LLDAP_DATABASE_URL=postgres://${DB_USER}:${DB_PASS}@lldap-db:5432/${DB_NAME}?sslmode=disable&connect_timeout=10
# - LLDAP_VERBOSE=true # for debugging
restart: unless-stopped
depends_on:
- lldap-db
# ports:
# - "3890:3890" # For LDAP
# - "17170:17170" # web front-end
lldap-db:
image: postgres:15 #latest
container_name: lldap-db
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASS}
- POSTGRES_DB=${DB_NAME}
volumes:
- ${BINDS}/lldap/pgdb:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "${DB_USER}", "-d", "${DB_NAME}"]
interval: 10s
start_period: 30s
restart: unless-stopped
from davis.
[2024-05-14T19:13:48.488117-04:00] doctrine.INFO: Disconnecting [] []
[2024-05-14T19:13:48.674031-04:00] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET http://davis.localhost/favicon.ico" (from "https://davis.localhost/dav/")" at /var/www/davis/vendor/symfony/http-kernel/EventListener/RouterListener.php line 135 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET http://davis.localhost/favicon.ico\" (from \"https://davis.localhost/dav/\") at /var/www/davis/vendor/symfony/http-kernel/EventListener/RouterListener.php:135)\n[previous exception] [object] (Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException(code: 0): No routes found for \"/favicon.ico/\". at /var/www/davis/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:74)"} []
[2024-05-14T19:13:48.716686-04:00] php.INFO: User Deprecated: Since symfony/security-guard 5.3: The "Symfony\Component\Security\Guard\Authenticator\GuardBridgeAuthenticator" class is deprecated, use the new authenticator system instead. {"exception":"[object] (ErrorException(code: 0): User Deprecated: Since symfony/security-guard 5.3: The \"Symfony\\Component\\Security\\Guard\\Authenticator\\GuardBridgeAuthenticator\" class is deprecated, use the new authenticator system instead. at /var/www/davis/vendor/symfony/security-guard/Authenticator/GuardBridgeAuthenticator.php:35)"} []
Hum, no errors at all in there. If you still have the full log, can you send it to me? In case I see something interesting
from davis.
Had a closer look and this might be the cause?
[2024-05-14T19:13:18.759154-04:00] app.ERROR: [500]: ErrorException - Warning: Undefined variable $ldap [{"file":"/var/www/davis/src/Services/LDAPAuth.php","line":187,"function":"ldapOpen","class":"App\\Services\\LDAPAuth","type":"->","args":"****"},{"file":"/var/www/davis/vendor/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php","line":103,"function":"validateUserPass","class":"App\\Services\\LDAPAuth","type":"->","args":"****"},{"file":"/var/www/davis/vendor/sabre/dav/lib/DAV/Auth/Plugin.php","line":179,"function":"check","class":"Sabre\\DAV\\Auth\\Backend\\AbstractBasic","type":"->","args":[{"Sabre\\HTTP\\Request":"GET /dav/ HTTP/1.1\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\nSec-Fetch-Site: cross-site\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Dest: document\r\nUpgrade-Insecure-Requests: 1\r\nAuthorization: Basic REDACTED\r\nSec-Gpc: 1\r\nDnt: 1\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-CA,en-US;q=0.7,en;q=0.3\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0\r\nX-Real-Ip: 192.168.0.201\r\nX-Original-Url: https://davis.domain.example/dav/\r\nX-Original-Method: GET\r\nX-Forwarded-Uri: /dav/\r\nX-Forwarded-Ssl: on\r\nX-Forwarded-Server: davis.domain.example\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Method: GET\r\nX-Forwarded-Host: davis.domain.example\r\nX-Forwarded-For: 192.168.0.201\r\nHost: davis.domain.example\r\nConnection: close\r\nContent-Length: \r\nContent-Type: \r\n\r\n"},{"Sabre\\HTTP\\Response":"HTTP/1.1 500 Internal Server Error\r\n\r\n"}]},{"file":"/var/www/davis/vendor/sabre/dav/lib/DAV/Auth/Plugin.php","line":135,"function":"check","class":"Sabre\\DAV\\Auth\\Plugin","type":"->","args":[{"Sabre\\HTTP\\Request":"GET /dav/ HTTP/1.1\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\nSec-Fetch-Site: cross-site\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Dest: document\r\nUpgrade-Insecure-Requests: 1\r\nAuthorization: Basic REDACTED\r\nSec-Gpc: 1\r\nDnt: 1\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-CA,en-US;q=0.7,en;q=0.3\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0\r\nX-Real-Ip: 192.168.0.201\r\nX-Original-Url: https://davis.domain.example/dav/\r\nX-Original-Method: GET\r\nX-Forwarded-Uri: /dav/\r\nX-Forwarded-Ssl: on\r\nX-Forwarded-Server: davis.domain.example\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Method: GET\r\nX-Forwarded-Host: davis.domain.example\r\nX-Forwarded-For: 192.168.0.201\r\nHost: davis.domain.example\r\nConnection: close\r\nContent-Length: \r\nContent-Type: \r\n\r\n"},{"Sabre\\HTTP\\Response":"HTTP/1.1 500 Internal Server Error\r\n\r\n"}]},{"file":"/var/www/davis/vendor/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMethod","class":"Sabre\\DAV\\Auth\\Plugin","type":"->","args":[{"Sabre\\HTTP\\Request":"GET /dav/ HTTP/1.1\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\nSec-Fetch-Site: cross-site\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Dest: document\r\nUpgrade-Insecure-Requests: 1\r\nAuthorization: Basic REDACTED\r\nSec-Gpc: 1\r\nDnt: 1\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-CA,en-US;q=0.7,en;q=0.3\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0\r\nX-Real-Ip: 192.168.0.201\r\nX-Original-Url: https://davis.domain.example/dav/\r\nX-Original-Method: GET\r\nX-Forwarded-Uri: /dav/\r\nX-Forwarded-Ssl: on\r\nX-Forwarded-Server: davis.domain.example\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Method: GET\r\nX-Forwarded-Host: davis.domain.example\r\nX-Forwarded-For: 192.168.0.201\r\nHost: davis.domain.example\r\nConnection: close\r\nContent-Length: \r\nContent-Type: \r\n\r\n"},{"Sabre\\HTTP\\Response":"HTTP/1.1 500 Internal Server Error\r\n\r\n"}]},{"file":"/var/www/davis/vendor/sabre/dav/lib/DAV/Server.php","line":456,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["beforeMethod:GET",[{"Sabre\\HTTP\\Request":"GET /dav/ HTTP/1.1\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\nSec-Fetch-Site: cross-site\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Dest: document\r\nUpgrade-Insecure-Requests: 1\r\nAuthorization: Basic REDACTED\r\nSec-Gpc: 1\r\nDnt: 1\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-CA,en-US;q=0.7,en;q=0.3\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0\r\nX-Real-Ip: 192.168.0.201\r\nX-Original-Url: https://davis.domain.example/dav/\r\nX-Original-Method: GET\r\nX-Forwarded-Uri: /dav/\r\nX-Forwarded-Ssl: on\r\nX-Forwarded-Server: davis.domain.example\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Method: GET\r\nX-Forwarded-Host: davis.domain.example\r\nX-Forwarded-For: 192.168.0.201\r\nHost: davis.domain.example\r\nConnection: close\r\nContent-Length: \r\nContent-Type: \r\n\r\n"},{"Sabre\\HTTP\\Response":"HTTP/1.1 500 Internal Server Error\r\n\r\n"}]]},{"file":"/var/www/davis/vendor/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[{"Sabre\\HTTP\\Request":"GET /dav/ HTTP/1.1\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\nSec-Fetch-Site: cross-site\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Dest: document\r\nUpgrade-Insecure-Requests: 1\r\nAuthorization: Basic REDACTED\r\nSec-Gpc: 1\r\nDnt: 1\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-CA,en-US;q=0.7,en;q=0.3\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0\r\nX-Real-Ip: 192.168.0.201\r\nX-Original-Url: https://davis.domain.example/dav/\r\nX-Original-Method: GET\r\nX-Forwarded-Uri: /dav/\r\nX-Forwarded-Ssl: on\r\nX-Forwarded-Server: davis.domain.example\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Method: GET\r\nX-Forwarded-Host: davis.domain.example\r\nX-Forwarded-For: 192.168.0.201\r\nHost: davis.domain.example\r\nConnection: close\r\nContent-Length: \r\nContent-Type: \r\n\r\n"},{"Sabre\\HTTP\\Response":"HTTP/1.1 500 Internal Server Error\r\n\r\n"}]},{"file":"/var/www/davis/src/Controller/DAVController.php","line":329,"function":"start","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/davis/vendor/symfony/http-kernel/HttpKernel.php","line":163,"function":"dav","class":"App\\Controller\\DAVController","type":"->","args":"****"},{"file":"/var/www/davis/vendor/symfony/http-kernel/HttpKernel.php","line":75,"function":"handleRaw","class":"Symfony\\Component\\HttpKernel\\HttpKernel","type":"->","args":[{"Symfony\\Component\\HttpFoundation\\Request":"GET /dav/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-CA,en-US;q=0.7,en;q=0.3\r\nAuthorization: Basic ZWxidWxsYXp1bDp5ekRSXkZmMkhYb0hhSnJSUmpZRkdHa2RVZDY2UXQqI0JGV1RiOGNiXjhzZVEkI2M=\r\nConnection: close\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\nDnt: 1\r\nHost: davis.domain.example\r\nPhp-Auth-Pw: ldap__password__value\r\nPhp-Auth-User: username\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nSec-Gpc: 1\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0\r\nX-Forwarded-For: 192.168.0.201\r\nX-Forwarded-Host: davis.domain.example\r\nX-Forwarded-Method: GET\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Server: davis.domain.example\r\nX-Forwarded-Ssl: on\r\nX-Forwarded-Uri: /dav/\r\nX-Original-Method: GET\r\nX-Original-Url: https://davis.domain.example/dav/\r\nX-Php-Ob-Level: 0\r\nX-Real-Ip: 192.168.0.201\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\n\r\n"},1]},{"file":"/var/www/davis/vendor/symfony/http-kernel/Kernel.php","line":202,"function":"handle","class":"Symfony\\Component\\HttpKernel\\HttpKernel","type":"->","args":[{"Symfony\\Component\\HttpFoundation\\Request":"GET /dav/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-CA,en-US;q=0.7,en;q=0.3\r\nAuthorization: Basic ZWxidWxsYXp1bDp5ekRSXkZmMkhYb0hhSnJSUmpZRkdHa2RVZDY2UXQqI0JGV1RiOGNiXjhzZVEkI2M=\r\nConnection: close\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\nDnt: 1\r\nHost: davis.domain.example\r\nPhp-Auth-Pw: ldap__password__value\r\nPhp-Auth-User: username\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nSec-Gpc: 1\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0\r\nX-Forwarded-For: 192.168.0.201\r\nX-Forwarded-Host: davis.domain.example\r\nX-Forwarded-Method: GET\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Server: davis.domain.example\r\nX-Forwarded-Ssl: on\r\nX-Forwarded-Uri: /dav/\r\nX-Original-Method: GET\r\nX-Original-Url: https://davis.domain.example/dav/\r\nX-Php-Ob-Level: 0\r\nX-Real-Ip: 192.168.0.201\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\n\r\n"},1,true]},{"file":"/var/www/davis/public/index.php","line":28,"function":"handle","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->","args":[{"Symfony\\Component\\HttpFoundation\\Request":"GET /dav/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: en-CA,en-US;q=0.7,en;q=0.3\r\nAuthorization: Basic ZWxidWxsYXp1bDp5ekRSXkZmMkhYb0hhSnJSUmpZRkdHa2RVZDY2UXQqI0JGV1RiOGNiXjhzZVEkI2M=\r\nConnection: close\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\nDnt: 1\r\nHost: davis.domain.example\r\nPhp-Auth-Pw: ldap__password__value\r\nPhp-Auth-User: username\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: cross-site\r\nSec-Gpc: 1\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0\r\nX-Forwarded-For: 192.168.0.201\r\nX-Forwarded-Host: davis.domain.example\r\nX-Forwarded-Method: GET\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Server: davis.domain.example\r\nX-Forwarded-Ssl: on\r\nX-Forwarded-Uri: /dav/\r\nX-Original-Method: GET\r\nX-Original-Url: https://davis.domain.example/dav/\r\nX-Php-Ob-Level: 0\r\nX-Real-Ip: 192.168.0.201\r\nCookie: DAVIS_SESSION=183839d59adfb3f466d0c20625c57182\r\n\r\n"}]}] []
Full log here (with sensitive info replaced)
from davis.
Hi
I've added a bit more logs in the LDAP auth mechanism (here). Can you retry either by pulling the latest changes in your debug container, or using the edge image from the packages, to have the logs?
Thanks
from davis.
No more relevant errors in there (and no more 500), and no LDAP specifics. Anything in the container logs by any chance?
from davis.
NOTICE: PHP message: LDAP Error (ldap_connect with "ldap://lldap:3890"): Warning: ldap_connect(): Could not create session handle: Bad parameter to an ldap routine
172.20.255.4 - elbullazul 19/May/2024:20:19:13 +0000 "GET /index.php" 401
NOTICE: PHP message: LDAP Error (ldap_connect with "ldap://lldap:3890"): Warning: ldap_connect(): Could not create session handle: Bad parameter to an ldap routine
172.20.255.4 - elbullazul 19/May/2024:20:19:20 +0000 "GET /index.php" 401
127.0.0.1 - 19/May/2024:20:19:22 +0000 "GET /status" 200
NOTICE: PHP message: LDAP Error (ldap_connect with "ldap://lldap:3890"): Warning: ldap_connect(): Could not create session handle: Bad parameter to an ldap routine
172.20.255.4 - elbullazul 19/May/2024:20:19:24 +0000 "GET /index.php" 401
NOTICE: PHP message: LDAP Error (ldap_connect with "ldap://lldap:3890"): Warning: ldap_connect(): Could not create session handle: Bad parameter to an ldap routine
from davis.
Here we go!
Could not create session handle: Bad parameter to an ldap routine
I'm no expert in LDAP so I'm not sure what it does mean, but my first hunch would be that the uri is actually quoted while it should not. ie: try with - LDAP_AUTH_URL=ldap://lldap:3890
(no quotes)
from davis.
I can remember (some context) that Docker is a pain to work with when quoting stuff, but it's maybe just that your Docker version is a bit old?
from davis.
Oh my goodness, I can't believe it's something so dumb. I had some other issues with quoted strings in environment variables, but I didn't think to check that.
Thanks a lot for your help, it is much appreciated!
from davis.
No pb, glad you got it working :)
from davis.
Related Issues (20)
- Timezone set HOT 6
- WebProfilerBundle not found HOT 2
- I can't share my calendar with the URL HOT 2
- 500 error when creating new user HOT 2
- Cannot upgrade to version v4.4.1, parameter "timezone" must be defined HOT 4
- Can not remove object : Error 500 HOT 10
- IMAP login issue HOT 2
- [question] is there any option to support categories or colors in the calendar objects? HOT 1
- "Mail sent by" hostname HOT 5
- Per-user webdav directories HOT 14
- Docker compose not working (new install) HOT 29
- Mariadb 11.3(.2?) incompatibility HOT 3
- Deprecation error HOT 1
- Questions HOT 2
- Unable to login using a Docker image HOT 10
- Attempted to load class "WebProfilerBundle" from namespace "Symfony\Bundle\WebProfilerBundle". when run in docker HOT 2
- Postgresql fails due to use of `utf8mb4` default encoding HOT 7
- Packaging for NixOS troubles HOT 11
- 500 error upon login with `docker-compose-standalone` HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from davis.