Portal: Serverfehler 500 (Redis: invalidid username - password)

Hallo,

Ich bekomme seit heute Nacht ständig Mails, dass meine Domain cloud.xxx.de nixht erreichbar ist. Im Stundentakt… Wenn ich auf portal.xxx.de gehe, dann öffnet sich die Startseite von LW. Wenn ich dort auf Anmelden klicke, dann kommt aber immer Serverfehler 500. Wenn ich direkt cloud.xxx.de eingebe, dann werde ich auf die portal.xxx.de umgeleitet (vermutlich zum anmelden), aber wieder mit Serverfehler 500. Ein Neustart des Servers hat nichts gebracht. Mein Handy ist aber über die Nextcloudapp weiterhin verbunden mit der Nextcloud. Ich kann dort Daten einsehen und auch runterladen.

Andere Domains, wie paper.xxx.de für Paperless oder auch immich.xxx.de und weitere Domains, welche ich über den Caddy laufen lassen, funktionieren aber…

Hallo,

hat keiner eine Idee? Ich bin echt am verzweifeln. Ich kann mich weiterhin nicht im Portal anmelden. Es kommt sofort der Server Error 500. Und damit ist auch die Nextcloud nicht erreichbar, welche ja die gleiche Anmeldung nutzt. Alles andere scheint zu funktionieren. Ob die Backups jede Nacht laufen, kann ich allerdings nicht erkennen. Ich müsste im übrigen bereits die Version 0.10.10 laufen haben. Das ist mir ein oder zwei Tage vorher noch aufgefallen.

hallo @boernie77
wenn das eine locale instanz ist kannst du ja mal den debugmodus einschalten mit:

sudo nano /etc/libre-workspace/portal/portal.conf

und debug auf true stellen.
anschließend rufst du deine cloud auf und guckst mal was da steht.

1 „Gefällt mir“

Danke schon einmal für die Hilfe.

Den debug hab ich auf true gestellt. Aber wie meinst du genau, dass ich meine Cloud aufrufen soll? Wenn ich portal.xxx.de eingebe, dann kommt die Startseite von Libre Workspace. Und beim Versuch mich anzumelden, wieder der Server Error 500. Ebenso bei cloud.xxx.de.

Vermutlich stehe ich auf dem Schlauch…

1 „Gefällt mir“

hmm, seltsam, da sollte eine ausführliche fehlermeldung sein. hast du das # zeichen am anfang der zeile gelöscht? sonst klappt das nicht.

1 „Gefällt mir“

Ja, hab ich… auch entsprechend gespeichert und auch nochmals mit dem Befehl kontrolliert…

ok, schau mal was sudo systemctl status libre-workspace-portal sagt

1 „Gefällt mir“

Das ist das Ergebnis.

Und jetzt bekomme ich auch einen debug, wenn ich versuche mich anzumelden…

AuthenticationError at /idm/login

invalid username-password pair or user is disabled.

Request Method: GET
Request URL: https://portal.xxx.com/idm/login
Django Version: 5.2.8
Exception Type: AuthenticationError
Exception Value: invalid username-password pair or user is disabled.
Exception Location: /var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/_parsers/hiredis.py, line 172, in read_response
Raised during: idm.views.user_login
Python Executable: /var/lib/libre-workspace/portal/venv/bin/python3
Python Version: 3.13.5
Python Path: ```
[‘/usr/lib/libre-workspace/portal’,
‘/var/lib/libre-workspace/portal/venv/bin’,
‘/usr/lib/python313.zip’,
‘/usr/lib/python3.13’,
‘/usr/lib/python3.13/lib-dynload’,
‘/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages’]
|Server time:|Fri, 12 Dec 2025 06:37:28 +0100|

## Traceback [Switch to copy-and-paste view](https://portal.bernauer24.com/idm/login#)

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/django/core/handlers/exception.py`, line 55, in inner

  55. response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|exc|AuthenticationError('invalid username-password pair or user is disabled.')|
|get_response|<bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f58d2519550>>|
|request|<WSGIRequest: GET '/idm/login'>|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/django/core/handlers/base.py`, line 197, in _get_response

  197. response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|callback|<function user_login at 0x7f58d0d74400>|
|callback_args|()|
|callback_kwargs|{}|
|middleware_method|<bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>>|
|request|<WSGIRequest: GET '/idm/login'>|
|response|None|
|self|<django.core.handlers.wsgi.WSGIHandler object at 0x7f58d2519550>|
|wrapped_callback|<function user_login at 0x7f58d0d74400>|

* `/usr/lib/libre-workspace/portal/idm/views.py`, line 97, in user_login

  97. _manage_failed_logins_and_bans() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|request|<WSGIRequest: GET '/idm/login'>|

* `/usr/lib/libre-workspace/portal/idm/views.py`, line 69, in _manage_failed_logins_and_bans

  69. banned_ips = get_list_from_cache("banned_ips") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

* `/usr/lib/libre-workspace/portal/lac/utils/cache.py`, line 42, in get_list_from_cache

  42. values = redis_client.lrange(key, 0, -1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|key|'banned_ips'|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/commands/core.py`, line 2931, in lrange

  2931. return self.execute_command("LRANGE", name, start, end, keys=[name]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|end|-1|
|name|'banned_ips'|
|self|<redis.client.Redis(<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>)>|
|start|0|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/client.py`, line 657, in execute_command

  657. return self._execute_command(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|args|('LRANGE', 'banned_ips', 0, -1)|
|options|{'keys': ['banned_ips']}|
|self|<redis.client.Redis(<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>)>|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/client.py`, line 663, in _execute_command

  663. conn = self.connection or pool.get_connection() ^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|args|('LRANGE', 'banned_ips', 0, -1)|
|command_name|'LRANGE'|
|options|{'keys': ['banned_ips']}|
|pool|<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>|
|self|<redis.client.Redis(<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>)>|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/utils.py`, line 196, in wrapper

  196. return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|allowed_args|[]|
|arg|'*'|
|arg_names|('self', 'command_name')|
|args|(<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>,)|
|args_to_warn|['*']|
|func|<function ConnectionPool.get_connection at 0x7f58d100b6a0>|
|kwargs|{}|
|provided_args|{}|
|reason|'Use get_connection() without args instead'|
|version|'5.3.0'|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 2603, in get_connection

  2603. connection.connect() ^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|command_name|None|
|connection|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|
|keys|()|
|options|{}|
|self|<redis.connection.ConnectionPool(<redis.connection.Connection(password=eef6ahviKieceiGeiyoh,host=127.0.0.1,port=6379,db=1)>)>|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 846, in connect

  846. self.connect_check_health(check_health=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|self|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 869, in connect_check_health

  869. self.on_connect_check_health(check_health=check_health) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|check_health|True|
|retry_socket_connect|True|
|self|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|
|sock|<socket.socket [closed] fd=-1, family=2, type=1, proto=6>|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 941, in on_connect_check_health

  941. auth_response = self.read_response() ^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|auth_args|('eef6ahviKieceiGeiyoh',)|
|check_health|True|
|cred_provider|<redis.credentials.UsernamePasswordCredentialProvider object at 0x7f58d0069150>|
|parser|<redis._parsers.hiredis._HiredisParser object at 0x7f58d251bb60>|
|self|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/connection.py`, line 1133, in read_response

  1133. response = self._parser.read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|disable_decoding|False|
|disconnect_on_error|True|
|host_error|'127.0.0.1:6379'|
|push_request|False|
|self|<redis.connection.Connection(host=127.0.0.1,port=6379,db=1)>|

* `/var/lib/libre-workspace/portal/venv/lib/python3.13/site-packages/redis/_parsers/hiredis.py`, line 172, in read_response

  172. raise response ^^^^^^^^^^^^^^

…

Local vars

|Variable|Value|
| --- | --- |
|disable_decoding|False|
|push_request|False|
|response|AuthenticationError('invalid username-password pair or user is disabled.')|
|self|<redis._parsers.hiredis._HiredisParser object at 0x7f58d251bb60>|

## Request information

### USER

AnonymousUser

### GET

No GET data

### POST

No POST data

### FILES

No FILES data

### COOKIES

|Variable|Value|
| --- | --- |
|csrftoken|'********************'|

### META

|Variable|Value|
| --- | --- |
|CSRF_COOKIE|'SuAjrcxm515M4lhVxqW7Vb0ADHL5gRwu'|
|HTTP_ACCEPT|'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'|
|HTTP_ACCEPT_ENCODING|'gzip, deflate, br, zstd'|
|HTTP_ACCEPT_LANGUAGE|'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7'|
|HTTP_COOKIE|'********************'|
|HTTP_HOST|'portal.bernauer24.com'|
|HTTP_PRIORITY|'u=0, i'|
|HTTP_REFERER|'https://portal.bernauer24.com/'|
|HTTP_SEC_CH_UA|'"Chromium";v="143", "Not A(Brand";v="24"'|
|HTTP_SEC_CH_UA_MOBILE|'?0'|
|HTTP_SEC_CH_UA_PLATFORM|'"Linux"'|
|HTTP_SEC_FETCH_DEST|'document'|
|HTTP_SEC_FETCH_MODE|'navigate'|
|HTTP_SEC_FETCH_SITE|'same-origin'|
|HTTP_SEC_FETCH_USER|'?1'|
|HTTP_UPGRADE_INSECURE_REQUESTS|'1'|
|HTTP_USER_AGENT|('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/143.0.0.0 Safari/537.36')|
|HTTP_X_FORWARDED_FOR|'217.82.70.26'|
|HTTP_X_FORWARDED_HOST|'portal.bernauer24.com'|
|HTTP_X_FORWARDED_PROTO|'https'|
|PATH_INFO|'/idm/login'|
|QUERY_STRING|''|
|RAW_URI|'/idm/login'|
|REMOTE_ADDR|'127.0.0.1'|
|REMOTE_PORT|'40822'|
|REQUEST_METHOD|'GET'|
|SCRIPT_NAME|''|
|SERVER_NAME|'127.0.0.1'|
|SERVER_PORT|'11123'|
|SERVER_PROTOCOL|'HTTP/1.1'|
|SERVER_SOFTWARE|'gunicorn/23.0.0'|
|gunicorn.socket|<socket.socket fd=9, family=2, type=1, proto=0, laddr=('127.0.0.1', 11123), raddr=('127.0.0.1', 40822)>|
|wsgi.errors|<gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f58cfe2cdc0>|
|wsgi.file_wrapper|<class 'gunicorn.http.wsgi.FileWrapper'>|
|wsgi.input|<gunicorn.http.body.Body object at 0x7f58cfe767b0>|
|wsgi.input_terminated|True|
|wsgi.multiprocess|True|
|wsgi.multithread|False|
|wsgi.run_once|False|
|wsgi.url_scheme|'https'|
|wsgi.version|(1, 0)|

### Settings

#### Using settings module `lac.settings`

|Setting|Value|
| --- | --- |
|ABSOLUTE_URL_OVERRIDES|{}|
|ADMINS|[]|
|ADMIN_ENABLED|False|
|ALLOWED_HOSTS|['localhost', '127.0.0.1', '192.168.2.204', '172.18.0.1', '172.17.0.1', '172.19.0.1', '[2003:ed:ef1c:6626:5054:ff:fe1e:d162]', '[2003:ed:ef1c:6626:50c7:4f65:9636:8153]', '\n', 'portal.bernauer24.com', 'https://portal.bernauer24.com/idm/user_overview']|
|APPEND_SLASH|True|
|AUTHENTICATION_BACKENDS|'********************'|
|AUTH_LDAP_BIND_DN|'********************'|
|AUTH_LDAP_BIND_PASSWORD|'********************'|
|AUTH_LDAP_DC|'********************'|
|AUTH_LDAP_ENABLED|'********************'|
|AUTH_LDAP_GROUP_ADMIN_DN|'********************'|
|AUTH_LDAP_GROUP_SEARCH|'********************'|
|AUTH_LDAP_GROUP_TYPE|'********************'|
|AUTH_LDAP_SERVER_URI|'********************'|
|AUTH_LDAP_USER_DN_TEMPLATE|'********************'|
|AUTH_LDAP_USER_FLAGS_BY_GROUP|'********************'|
|AUTH_PASSWORD_VALIDATORS|'********************'|
|AUTH_USER_MODEL|'********************'|
|BASE_DIR|PosixPath('/usr/lib/libre-workspace/portal')|
|CACHES|{'default': {'BACKEND': 'django.core.cache.backends.redis.RedisCache', 'KEY_PREFIX': '********************', 'LOCATION': 'redis://:eef6ahviKieceiGeiyoh@127.0.0.1:6379/1'}}|
|CACHE_MIDDLEWARE_ALIAS|'default'|
|CACHE_MIDDLEWARE_KEY_PREFIX|'********************'|
|CACHE_MIDDLEWARE_SECONDS|600|
|CSRF_COOKIE_AGE|31449600|
|CSRF_COOKIE_DOMAIN|None|
|CSRF_COOKIE_HTTPONLY|False|
|CSRF_COOKIE_NAME|'csrftoken'|
|CSRF_COOKIE_PATH|'/'|
|CSRF_COOKIE_SAMESITE|'Lax'|
|CSRF_COOKIE_SECURE|False|
|CSRF_FAILURE_VIEW|'django.views.csrf.csrf_failure'|
|CSRF_HEADER_NAME|'HTTP_X_CSRFTOKEN'|
|CSRF_TRUSTED_ORIGINS|['http://localhost', 'http://127.0.0.1', 'https://192.168.2.204', 'https://172.18.0.1', 'https://172.17.0.1', 'https://172.19.0.1', 'https://[2003:ed:ef1c:6626:5054:ff:fe1e:d162]', 'https://[2003:ed:ef1c:6626:50c7:4f65:9636:8153]', 'https://\n', 'https://portal.bernauer24.com', 'https://https://portal.bernauer24.com/idm/user_overview']|
|CSRF_USE_SESSIONS|False|
|DATABASES|{'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/var/lib/libre-workspace/portal/db.sqlite3', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}}|
|DATABASE_ROUTERS|[]|
|DATA_UPLOAD_MAX_MEMORY_SIZE|2621440|
|DATA_UPLOAD_MAX_NUMBER_FIELDS|1000|
|DATA_UPLOAD_MAX_NUMBER_FILES|100|
|DATETIME_FORMAT|'N j, Y, P'|
|DATETIME_INPUT_FORMATS|['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']|
|DATE_FORMAT|'N j, Y'|
|DATE_INPUT_FORMATS|['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']|
|DEBUG|True|
|DEBUG_PROPAGATE_EXCEPTIONS|False|
|DECIMAL_SEPARATOR|'.'|
|DEFAULT_AUTO_FIELD|'django.db.models.BigAutoField'|
|DEFAULT_CHARSET|'utf-8'|
|DEFAULT_EXCEPTION_REPORTER|'django.views.debug.ExceptionReporter'|
|DEFAULT_EXCEPTION_REPORTER_FILTER|'django.views.debug.SafeExceptionReporterFilter'|
|DEFAULT_FROM_EMAIL|'webmaster@localhost'|
|DEFAULT_INDEX_TABLESPACE|''|
|DEFAULT_TABLESPACE|''|
|DISALLOWED_USER_AGENTS|[]|
|EMAIL_BACKEND|'django.core.mail.backends.smtp.EmailBackend'|
|EMAIL_HOST|'mail.gmx.net'|
|EMAIL_HOST_EMAIL|'christian.bernauer@imail.de'|
|EMAIL_HOST_PASSWORD|'********************'|
|EMAIL_HOST_USER|'christian.bernauer@imail.de'|
|EMAIL_PORT|587|
|EMAIL_SSL_CERTFILE|None|
|EMAIL_SSL_KEYFILE|'********************'|
|EMAIL_SUBJECT_PREFIX|'[Django] '|
|EMAIL_TIMEOUT|None|
|EMAIL_USE_LOCALTIME|False|
|EMAIL_USE_SSL|False|
|EMAIL_USE_TLS|True|
|FILE_UPLOAD_DIRECTORY_PERMISSIONS|None|
|FILE_UPLOAD_HANDLERS|['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']|
|FILE_UPLOAD_MAX_MEMORY_SIZE|2621440|
|FILE_UPLOAD_PERMISSIONS|420|
|FILE_UPLOAD_TEMP_DIR|None|
|FIRST_DAY_OF_WEEK|0|
|FIXTURE_DIRS|[]|
|FORCE_SCRIPT_NAME|None|
|FORMAT_MODULE_PATH|None|
|FORMS_URLFIELD_ASSUME_HTTPS|False|
|FORM_RENDERER|'django.forms.renderers.DjangoTemplates'|
|HIDDEN_LDAP_USERS|'dns-hostname'|
|IGNORABLE_404_URLS|[]|
|INITIAL_ADMIN_PASSWORD_WITHOUT_LDAP|'********************'|
|INSTALLED_APPS|['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'oidc_provider', 'rest_framework', 'drf_spectacular', 'django_otp', 'django_otp.plugins.otp_totp', 'django_otp.plugins.otp_hotp', 'django_otp.plugins.otp_static', 'idm', 'app_dashboard']|
|INTERNAL_IPS|[]|
|LANGUAGES|(('en', 'Englisch'), ('de', 'Deutsch'))|
|LANGUAGES_BIDI|['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']|
|LANGUAGE_CODE|'de'|
|LANGUAGE_COOKIE_AGE|None|
|LANGUAGE_COOKIE_DOMAIN|None|
|LANGUAGE_COOKIE_HTTPONLY|False|
|LANGUAGE_COOKIE_NAME|'django_language'|
|LANGUAGE_COOKIE_PATH|'/'|
|LANGUAGE_COOKIE_SAMESITE|None|
|LANGUAGE_COOKIE_SECURE|False|
|LINUX_ARBEITSPLATZ_CONFIGURED|True|
|LOCALE_PATHS|[PosixPath('/usr/lib/libre-workspace/portal/locale')]|
|LOGGING|{'disable_existing_loggers': False, 'handlers': {'console': {'class': 'logging.StreamHandler'}}, 'loggers': {'django_auth_ldap': '********************'}, 'version': 1}|
|LOGGING_CONFIG|'logging.config.dictConfig'|
|LOGIN_REDIRECT_URL|'/accounts/profile/'|
|LOGIN_URL|'/idm/login'|
|LOGOUT_REDIRECT_URL|None|
|MANAGERS|[]|
|MEDIA_ROOT|'/var/lib/libre-workspace/portal/media/'|
|MEDIA_URL|'/media/'|
|MESSAGE_STORAGE|'django.contrib.messages.storage.fallback.FallbackStorage'|
|MIDDLEWARE|['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django_otp.middleware.OTPMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']|
|MIGRATION_MODULES|{}|
|MONTH_DAY_FORMAT|'F j'|
|NEXTCLOUD_INSTALLATION_DIRECTORY|'/var/www/nextcloud/'|
|NUMBER_GROUPING|0|
|OIDC_EXTRA_SCOPE_CLAIMS|'idm.oidc_provider_settings.CustomScopeClaims'|
|OIDC_IDTOKEN_INCLUDE_CLAIMS|'********************'|
|OIDC_USERINFO|'idm.oidc_provider_settings.userinfo'|
|PASSWORD_HASHERS|'********************'|
|PASSWORD_RESET_TIMEOUT|'********************'|
|PREPEND_WWW|False|
|REST_FRAMEWORK|{'DEFAULT_AUTHENTICATION_CLASSES': '********************', 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_PARSER_CLASSES': ['rest_framework.parsers.JSONParser'], 'DEFAULT_RENDERER_CLASSES': ['rest_framework.renderers.JSONRenderer'], 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', 'PAGE_SIZE': 10}|
|ROOT_URLCONF|'lac.urls'|
|SECRET_KEY|'********************'|
|SECRET_KEY_FALLBACKS|'********************'|
|SECURE_CONTENT_TYPE_NOSNIFF|True|
|SECURE_CROSS_ORIGIN_OPENER_POLICY|'same-origin'|
|SECURE_HSTS_INCLUDE_SUBDOMAINS|False|
|SECURE_HSTS_PRELOAD|False|
|SECURE_HSTS_SECONDS|0|
|SECURE_PROXY_SSL_HEADER|None|
|SECURE_REDIRECT_EXEMPT|[]|
|SECURE_REFERRER_POLICY|'same-origin'|
|SECURE_SSL_HOST|None|
|SECURE_SSL_REDIRECT|False|
|SERVER_EMAIL|'root@localhost'|
|SESSION_CACHE_ALIAS|'default'|
|SESSION_COOKIE_AGE|1209600|
|SESSION_COOKIE_DOMAIN|None|
|SESSION_COOKIE_HTTPONLY|True|
|SESSION_COOKIE_NAME|'sessionid'|
|SESSION_COOKIE_PATH|'/'|
|SESSION_COOKIE_SAMESITE|'Lax'|
|SESSION_COOKIE_SECURE|False|
|SESSION_ENGINE|'django.contrib.sessions.backends.cache'|
|SESSION_EXPIRE_AT_BROWSER_CLOSE|False|
|SESSION_FILE_PATH|None|
|SESSION_SAVE_EVERY_REQUEST|False|
|SESSION_SERIALIZER|'django.contrib.sessions.serializers.JSONSerializer'|
|SETTINGS_MODULE|'lac.settings'|
|SHORT_DATETIME_FORMAT|'m/d/Y P'|
|SHORT_DATE_FORMAT|'m/d/Y'|
|SIGNING_BACKEND|'django.core.signing.TimestampSigner'|
|SILENCED_SYSTEM_CHECKS|[]|
|SPECTACULAR_SETTINGS|{'DESCRIPTION': 'Ignore the Authorize button and curl code ' 'snippets.<br>Documentation available at <a ' 'href="https://docs.libre-workspace.org/modules/libre-workspace-portal.html#api" ' 'target="_blank">Libre Workspace Portal API Documentation</a>.', 'SERVE_INCLUDE_SCHEMA': False, 'SWAGGER_UI_SETTINGS': {'deepLinking': True}, 'TITLE': 'Libre Workspace API', 'VERSION': '1.0.0'}|
|STATICFILES_DIRS|[PosixPath('/usr/lib/libre-workspace/portal/lac/static')]|
|STATICFILES_FINDERS|['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']|
|STATIC_ROOT|'/var/www/libre-workspace-static/'|
|STATIC_URL|'/static/'|
|STORAGES|{'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}|
|TEMPLATES|[{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/usr/lib/libre-workspace/portal/idm/templates'), PosixPath('/usr/lib/libre-workspace/portal/unix/templates'), PosixPath('/usr/lib/libre-workspace/portal/lac/templates'), PosixPath('/usr/lib/libre-workspace/portal/welcome/templates'), PosixPath('/usr/lib/libre-workspace/portal/app_dashboard/templates'), PosixPath('/usr/lib/libre-workspace/portal/addon_center/templates')], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'lac.context_processors.global_settings']}}]|
|TEST_NON_SERIALIZED_APPS|[]|
|TEST_RUNNER|'django.test.runner.DiscoverRunner'|
|THOUSAND_SEPARATOR|','|
|TIME_FORMAT|'P'|
|TIME_INPUT_FORMATS|['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']|
|TIME_ZONE|'Europe/Berlin'|
|USE_I18N|True|
|USE_L10N|True|
|USE_THOUSAND_SEPARATOR|False|
|USE_TZ|True|
|USE_X_FORWARDED_HOST|False|
|USE_X_FORWARDED_PORT|False|
|WSGI_APPLICATION|'lac.wsgi.application'|
|X_FRAME_OPTIONS|'DENY'|
|YEAR_MONTH_FORMAT|'F Y'|

You’re seeing this error because you have `DEBUG = True` in your Django settings file. Change that to `False`, and Django will display a standard page generated by the handler for this status code.

ok, auf jeans troubleshooting seite steht was zu dem thema :Libre Workspace Portal — Libre Workspace documentation

sudo systemctl restart libre-workspace-portal
systemctl stop redis
rm /var/lib/redis/dump.rdb
systemctl start redis

damit könnte das problem schon gelöst sein, ich vermute aber mal, dass oidc dahinter steckt.
dafür steht auch bei jean:

sudo -i
systemctl stop libre-workspace-portal
. /etc/libre-workspace/portal/portal.conf
. /var/lib/libre-workspace/portal/venv/bin/activate
cd /usr/lib/libre-workspace/portal
python3 manage.py shell
from oidc_provider.models import RSAKey
RSAKey.objects.all().delete()
exit()
python manage.py creatersakey
systemctl restart libre-workspace-portal

viel glück

Danke für deine Mühe. Aber es hat leider nicht geholfen… Beides nicht. Anbei ein Screenshot von meinem Terminal. Vielleicht hab ich ja was falsch gemacht…

ja da hast du dich beim passwort vertippt.
mach beides noch mal und fange mit
sudo -i
an
wenn das funktioniert kannst du die anderen commands ohne sudo machen.

1 „Gefällt mir“

Ich habe es nun 2x gemacht. Beim 2. Mal hab ich wieder eine rote Fehlermeldung bekommen. Ich hatte zwischen beiden Versuchen aber mehrere Minuten gewartet. Aber ich verstehe das so, als ob ich die vorhergende Operation beendet habe, bevor sie fertig war. Nun warte ich bereits wieder seit etlichen Minuten. Mein Terminal schaut nun so aus. Funktionieren tut es aber immer noch nicht…

ok, du bist an der stelle wo jetzt

from oidc_provider.models import RSAKey
RSAKey.objects.all().delete()
exit()
python manage.py creatersakey
systemctl restart libre-workspace-portal

kommt. das musst du zeile für zeile copy pasten und return.

Danke für den Hinweis. Das wusste ich nicht. Hab es nun so gemacht. Leider immer noch kein Erfolg. Anbei mein Terminal…

zur sicherheit mach mal einen restart

Hatte ich schon gemacht… Leider ohne Erfolg.

probier das mal in einem frischen browser oder falls du firefox benutzt ein privates fenster um den browser cache zu umgehen.
mehr fällt mir nicht ein, sicher kann jean dir helfen, da musst du wohl warten bis er zeit findet.

Hat leider auch nichts gebracht. Aber Danke für den Tipp und insgesamt ein großes DANKE!! für deine Mühe!!

Die Lösung befindet sich im Beitrag von @Jean gegen Ende von diesem Beitrag!