Addon: Planka Kanban Board

Hallo zusammen,

ich möchte euch Heute ein Addon von mir zur Verfügung stellen. Ich habe ein Planka Addon geschrieben. Dieses könnt ihr hier herunterladen. Das Addon habe ich getestet auf zwei Debian Server wo libre-workspace läuft.

Wichtig: Ich gebe keinen Support für dieses Addon! Die Verwendung geschieht auf eigene Gefahr!

planka.zip (32,6 KB)

Nach der Installation ist es unter planka.euredomain.de erreichbar.

Wichtig für Euch: Login Daten

Email: demo@demo.demo
Passwort: demo

Danach bitte oben rechts auf euer Profil klicken und dann auf Verwalten. Dort bitte einen neuen User anlegen und dann bitte nach dem anlegen erneut auf den Stift klicken und ihm die Rolle Administrator zuweisen. Danach bitte ausloggen und mit dem neuen Benutzer einloggen. Danach bitte wieder auf Verwalten und den Demo User bitte deaktivieren.

Wenn jemand von Euch weiß, wie man es hinbekommt, dass man die Login Daten vom Admin ( Libre Workspace ) verwenden kann, dann bitte mir mitteilen. Bis jetzt habe ich es nicht rausgefunden wie man das hinbekommt.

Viel Spaß beim Verwenden!

Gruß

Hoschy

3 „Gefällt mir“

Hallo zusammen,

ich wollte mal nachfragen, ob mir einer beim code ein wenig helfen kann ( bezüglich beim Login ).
Ich hätte gern, dass der Demo User nicht erstellt wird, sondern das mein Login mit dem Administrator Konto funktioniert. Habe eine Dokumentation gefunden bezüglich OIDC ( OpenID Connect ).

Planka OIDC

Was genau müsste ich am Code ändern, das es funktioniert?

# Optionally store the database password in secrets:
      # - DATABASE_URL=postgresql://postgres:$${DATABASE_PASSWORD}@postgres/planka
      # - DATABASE_PASSWORD__FILE=/run/secrets/database_password
      # And add the following to the service:
      # secrets:
      #   - database_password

      - SECRET_KEY=
      # Optionally store in secrets - then SECRET_KEY should not be set
      # - SECRET_KEY__FILE=/run/secrets/secret_key

      # - LOG_LEVEL=warn

      # - TRUST_PROXY=true
      # - TOKEN_EXPIRES_IN=365 # In days

      # related: https://github.com/knex/knex/issues/2354
      # As knex does not pass query parameters from the connection string,
      # we have to use environment variables in order to pass the desired values, e.g.
      # - PGSSLMODE=<value>

      # Configure knex to accept SSL certificates
      # - KNEX_REJECT_UNAUTHORIZED_SSL_CERTIFICATE=false

      # Used for per-board notifications
      # - DEFAULT_LANGUAGE=en-US

      # Do not comment out DEFAULT_ADMIN_EMAIL if you want to prevent this user from being edited/deleted
      - DEFAULT_ADMIN_EMAIL=demo@demo.demo
      - DEFAULT_ADMIN_PASSWORD=demo
      # Optionally store in secrets - then DEFAULT_ADMIN_PASSWORD should not be set
      # - DEFAULT_ADMIN_PASSWORD__FILE=/run/secrets/default_admin_password
      - DEFAULT_ADMIN_NAME=Demo Demo
      - DEFAULT_ADMIN_USERNAME=demo
      # - ACTIVE_USERS_LIMIT=

      # Set to true to show more detailed authentication error messages.
      # It should not be enabled without a rate limiter for security reasons.
      # - SHOW_DETAILED_AUTH_ERRORS=false

      # - S3_ENDPOINT=
      # - S3_REGION=
      # - S3_ACCESS_KEY_ID=
      # - S3_SECRET_ACCESS_KEY=
      # Optionally store in secrets - then S3_SECRET_ACCESS_KEY should not be set
      # - S3_SECRET_ACCESS_KEY__FILE=/run/secrets/s3_secret_access_key
      # - S3_BUCKET=
      # - S3_FORCE_PATH_STYLE=true

      # - OIDC_ISSUER=
      # - OIDC_CLIENT_ID=
      # - OIDC_CLIENT_SECRET=
      # Optionally store in secrets - then OIDC_CLIENT_SECRET should not be set
      # - OIDC_CLIENT_SECRET__FILE=/run/secrets/oidc_client_secret
      # - OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG=
      # - OIDC_USERINFO_SIGNED_RESPONSE_ALG=
      # - OIDC_SCOPES=openid email profile
      # - OIDC_RESPONSE_MODE=fragment
      # - OIDC_USE_DEFAULT_RESPONSE_MODE=true
      # - OIDC_ADMIN_ROLES=admin
      # - OIDC_CLAIMS_SOURCE=userinfo
      # - OIDC_EMAIL_ATTRIBUTE=email
      # - OIDC_NAME_ATTRIBUTE=name
      # - OIDC_USERNAME_ATTRIBUTE=preferred_username
      # - OIDC_ROLES_ATTRIBUTE=groups
      # - OIDC_IGNORE_USERNAME=true
      # - OIDC_IGNORE_ROLES=true
      # - OIDC_ENFORCED=true

      # Email Notifications (https://nodemailer.com/smtp/)
      # - SMTP_HOST=
      # - SMTP_PORT=587
      # - SMTP_NAME=
      # - SMTP_SECURE=true
      # - SMTP_USER=
      # - SMTP_PASSWORD=
      # Optionally store in secrets - then SMTP_PASSWORD should not be set
      # - SMTP_PASSWORD__FILE=/run/secrets/smtp_password
      # - SMTP_FROM="Demo Demo" <demo@demo.demo>
      # - SMTP_TLS_REJECT_UNAUTHORIZED=false

      # Optional fields: accessToken, events, excludedEvents
      # - |
      #   WEBHOOKS=[{
      #     "url": "http://localhost:3001",
      #     "accessToken": "notaccesstoken",
      #     "events": ["cardCreate", "cardUpdate", "cardDelete"],
      #     "excludedEvents": ["notificationCreate", "notificationUpdate"]
      #   }]

Ich habe jetzt nicht die komplette docker-compose.yml eingefügt.
So sieht es im moment aus mit dem default User, wo ich den Nachteil habe, dass ich ihn unter Verwaltung nicht ändern kann. Deswegen wäre es besser, wenn man automatisch schon den Administrator User drin hätte mit Admin Rechten.

Würde mich freuen, wenn es einer erklären könnte, was ich abändern muss, damit es funktioniert.

Danke

Gruß

Hoschy

du kannst dich an dieser compose orientieren:

und auf jeans site findest du die oidc daten die du brauchst:
https://docs.libre-workspace.org/modules/libre-workspace-portal.html
hier im forum gibts auch downloadable addons als zip dateien da kannst du auch sehen wie das funktioniert
viel erfolg

Wäre das so richtig?

      - OIDC_ISSUER=https://portal.int.de/openid/.well-known/openid-configuration
      - OIDC_CLIENT_ID=https://portal.int.de/openid
      - OIDC_CLIENT_SECRET=https://portal.int.de/openid/authorize
      # Optionally store in secrets - then OIDC_CLIENT_SECRET should not be set
      # - OIDC_CLIENT_SECRET__FILE=/run/secrets/oidc_client_secret
      - OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG=https://portal.int.de/openid/token
      # - OIDC_USERINFO_SIGNED_RESPONSE_ALG=
      # - OIDC_SCOPES=openid email profile
      # - OIDC_RESPONSE_MODE=fragment
      # - OIDC_USE_DEFAULT_RESPONSE_MODE=true
      # - OIDC_ADMIN_ROLES=admin
      # - OIDC_CLAIMS_SOURCE=userinfo
      # - OIDC_EMAIL_ATTRIBUTE=email
      # - OIDC_NAME_ATTRIBUTE=name
      # - OIDC_USERNAME_ATTRIBUTE=preferred_username
      # - OIDC_ROLES_ATTRIBUTE=groups
      # - OIDC_IGNORE_USERNAME=true
      # - OIDC_IGNORE_ROLES=true
      # - OIDC_ENFORCED=true

Und den DEFAULT Admin auskommentieren?

Gruß

Hoschy

ich plapper hier ja auch nur nach was ich irgendwo beim @jean gelesen habe. für mich sieht das gut aus, ich hätte noch oidc_admin_roles=admin auskommentiert.
probier es aus, du kannst das ja auch wieder deinstallieren.

@Jean könntest du bitte kurz hier posten wie es in der docker-compose.yml von Planka aussehen muss?

Danke

Gruß

Hoschy

Das müsste ich mir genauer ansehen, aktuell leider dafür relativ wenig Zeit.
Evtl. gibt es eine Anleitung für keycloak oder authentik, da kann man sich meist sehr gut inspirieren lassen.

Moin Zusammen,

also habe nochmal danach geschaut und bei Planka das gefunden:

Authentik

OIDC_ISSUER=https://auth.local/application/o/planka/
OIDC_CLIENT_ID=sxxaAIAxVXlCxTmc1YLHBbQr8NL8MqLI2DUbt42d
OIDC_CLIENT_SECRET=om4RTMRVHRszU7bqxB7RZNkHIzA8e4sGYWxeCwIMYQXPwEBWe4SY5a0wwCe9ltB3zrq5f0dnFnp34cEHD7QSMHsKvV9AiV5Z7eqDraMnv0I8IFivmuV5wovAECAYreSI
OIDC_SCOPES=openid profile email
OIDC_ADMIN_ROLES=planka-admin
# OIDC_PROJECT_OWNER_ROLES=project_owner
# OIDC_BOARD_USER_ROLES=board_user
# OIDC_EMAIL_ATTRIBUTE=email
# OIDC_NAME_ATTRIBUTE=name
# OIDC_USERNAME_ATTRIBUTE=preferred_username
# OIDC_ROLES_ATTRIBUTE=groups
# OIDC_IGNORE_USERNAME=true
# OIDC_IGNORE_ROLES=true
# OIDC_ENFORCED=true

Jetzt ist die Frage für mich: Was muss bei ID rein und Secret?

      - OIDC_ISSUER=https://portal.int.de/openid
      - OIDC_CLIENT_ID=https://portal.int.de/openid/authorize
      - OIDC_CLIENT_SECRET=https://portal.int.de/openid/token
      # Optionally store in secrets - then OIDC_CLIENT_SECRET should not be set
      # - OIDC_CLIENT_SECRET__FILE=/run/secrets/oidc_client_secret
      - OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG=https://portal.int.de/openid/.well-known/openid-configuration
      # - OIDC_USERINFO_SIGNED_RESPONSE_ALG=
      - OIDC_SCOPES=openid email profile
      # - OIDC_RESPONSE_MODE=fragment
      # - OIDC_USE_DEFAULT_RESPONSE_MODE=true
      - OIDC_ADMIN_ROLES=admin
      # - OIDC_CLAIMS_SOURCE=userinfo
      # - OIDC_EMAIL_ATTRIBUTE=email
      # - OIDC_NAME_ATTRIBUTE=name
      # - OIDC_USERNAME_ATTRIBUTE=preferred_username
      # - OIDC_ROLES_ATTRIBUTE=groups
      # - OIDC_IGNORE_USERNAME=true
      # - OIDC_IGNORE_ROLES=true
      # - OIDC_ENFORCED=true

Könnte das so passen oder bin ich auf dem Holzweg?

Gruß

Hoschy

tach @Hoschy

funktionieren würde alles was du da einträgst, allerdings hätten dann alle die dein addon installieren die gleiche id und das gleiche passwort. nicht gut. dafür musst du das setup script schreiben. guck dir dafür mal andere addons an die du hier downloaden kannst. der oidc teil sieht dann so aus:

#zufällige id erzeugen mit der funktion urandom
CLIENT_ID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
#zufälliges passwort erzeugen mit urandom
CLIENT_SECRET=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
# oidc client zum oidc provider hinzufügen
cd /usr/share/linux-arbeitsplatz/
bash django_add_oidc_provider_client.sh "planka" "$CLIENT_ID" "$CLIENT_SECRET" "https://planka.$DOMAIN/accounts/oidc/libreworkspace/login/callback/"
cd -

# ersetzen / einfügen der  CLIENT_ID_SED und des CLIENT_SECRET_SED in docker-compose.yml
sed -i "s/CLIENT_ID_SED/$CLIENT_ID/g" /root/planka/docker-compose.yml
sed -i "s/CLIENT_SECRET_SED/$CLIENT_SECRET/g" /root/pplanka/docker-compose.yml
# einsetzen der PORTAL_DOMAIN_SED in docker-compose.yml
sed -i "s/PORTAL_DOMAIN_SED/portal.$DOMAIN/g" /root/planka/docker-compose.yml

die .env datei musst du auch mittels der setup datei erzeugen.

viel erfolg

1 „Gefällt mir“