diff --git a/README.md b/README.md index 49d7aaa..d15ac4e 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in Trello-like kanban -**Shipped version:** 5.35~ynh1 +**Shipped version:** 5.93~ynh1 @@ -27,10 +27,9 @@ Trello-like kanban ## Disclaimers / important information -* Any known limitations, constrains or stuff not working, such as (but not limited to): - * There is currently **no SSO integration** though it might be integrated at some point in the app, now that it's supported in Meteor/Wekan. In the meantime, users can create accounts (in fact, they can create infinite number of accounts) manually, and need to login manually specifically in Wekan. - * This app **only works on x86, 64bits architecture**! In particular, it won't work on 32 bit machines or ARM. See the discussion [here](https://github.com/YunoHost-Apps/wekan_ynh/issues/1#issuecomment-401612500). - * YunoHost users with more than one email address can't login to wekan using ldap. For example first YunoHost user has severals email addresses: root@domain; admin@domain; webmaster@domain; postmaster@domain, etc... Workaround: remove all mail aliases of the user you want to connect, connect one time on wekan, recreate the aliases of the YunoHost user. +* There is currently **no SSO integration** though it might be integrated at some point in the app, now that it's supported in Meteor/Wekan. In the meantime, users can create accounts (in fact, they can create infinite number of accounts) manually, and need to login manually specifically in Wekan. +* This app **only works on x86, 64bits architecture**! In particular, it won't work on 32 bit machines or ARM. See the discussion [here](https://github.com/YunoHost-Apps/wekan_ynh/issues/1#issuecomment-401612500). +* YunoHost users with more than one email address can't login to wekan using ldap. For example first YunoHost user has severals email addresses: root@domain; admin@domain; webmaster@domain; postmaster@domain, etc... Workaround: remove all mail aliases of the user you want to connect, connect one time on wekan, recreate the aliases of the YunoHost user. ## Configuration: As LDAP authentification is enabled by default, Wekan admins correspond to the permission `Wekan Admin`. The user you choose during installation is member of this group. @@ -48,7 +47,6 @@ If you have disable ldap authentication, first registered user will be admin, an ## Documentation and resources * Official app website: https://wekan.github.io -* Official user documentation: https://yunohost.org/#/app_wekan * Upstream app code repository: https://github.com/wekan/wekan * YunoHost documentation for this app: https://yunohost.org/app_wekan * Report a bug: https://github.com/YunoHost-Apps/wekan_ynh/issues diff --git a/README_fr.md b/README_fr.md index cc0808b..f50c42d 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour Un kanban similaire à Trello -**Version incluse :** 5.35~ynh1 +**Version incluse :** 5.93~ynh1 @@ -23,10 +23,9 @@ Un kanban similaire à Trello ## Avertissements / informations importantes -* Any known limitations, constrains or stuff not working, such as (but not limited to): - * There is currently **no SSO integration** though it might be integrated at some point in the app, now that it's supported in Meteor/Wekan. In the meantime, users can create accounts (in fact, they can create infinite number of accounts) manually, and need to login manually specifically in Wekan. - * This app **only works on x86, 64bits architecture**! In particular, it won't work on 32 bit machines or ARM. See the discussion [here](https://github.com/YunoHost-Apps/wekan_ynh/issues/1#issuecomment-401612500). - * YunoHost users with more than one email address can't login to wekan using ldap. For example first YunoHost user has severals email addresses: root@domain; admin@domain; webmaster@domain; postmaster@domain, etc... Workaround: remove all mail aliases of the user you want to connect, connect one time on wekan, recreate the aliases of the YunoHost user. +* There is currently **no SSO integration** though it might be integrated at some point in the app, now that it's supported in Meteor/Wekan. In the meantime, users can create accounts (in fact, they can create infinite number of accounts) manually, and need to login manually specifically in Wekan. +* This app **only works on x86, 64bits architecture**! In particular, it won't work on 32 bit machines or ARM. See the discussion [here](https://github.com/YunoHost-Apps/wekan_ynh/issues/1#issuecomment-401612500). +* YunoHost users with more than one email address can't login to wekan using ldap. For example first YunoHost user has severals email addresses: root@domain; admin@domain; webmaster@domain; postmaster@domain, etc... Workaround: remove all mail aliases of the user you want to connect, connect one time on wekan, recreate the aliases of the YunoHost user. ## Configuration: As LDAP authentification is enabled by default, Wekan admins correspond to the permission `Wekan Admin`. The user you choose during installation is member of this group. @@ -44,7 +43,6 @@ If you have disable ldap authentication, first registered user will be admin, an ## Documentations et ressources * Site officiel de l'app : https://wekan.github.io -* Documentation officielle utilisateur : https://yunohost.org/#/app_wekan * Dépôt de code officiel de l'app : https://github.com/wekan/wekan * Documentation YunoHost pour cette app : https://yunohost.org/app_wekan * Signaler un bug : https://github.com/YunoHost-Apps/wekan_ynh/issues diff --git a/check_process b/check_process index dc2249e..3115e02 100644 --- a/check_process +++ b/check_process @@ -1,9 +1,9 @@ ;; Test complet ; Manifest - domain="domain.tld" (DOMAIN) - path="/path" (PATH) - admin="john" (USER) - is_public=1 (PUBLIC|public=1|private=0) + domain="domain.tld" + path="/path" + admin="john" + is_public=1 ; Checks pkg_linter=1 setup_sub_dir=1 @@ -29,7 +29,9 @@ # 5.00~ynh1 #upgrade=1 from_commit=8655e8062d1bc6e90b01b98ca9a0dea15d60119e # 5.17~ynh1 - #upgrade=1 from_commit=8cdb28eff25b8b431635b87f92f96f8e216ad71f + upgrade=1 from_commit=8cdb28eff25b8b431635b87f92f96f8e216ad71f + # 5.35~ynh1 + upgrade=1 from_commit=2e9c8be6b87d5c4cd6693e7b3c0c05cfc7d1ac51 backup_restore=1 multi_instance=1 port_already_use=0 @@ -56,3 +58,5 @@ Notification=down name=5.00~ynh1 ; commit=8cdb28eff25b8b431635b87f92f96f8e216ad71f name=5.17~ynh1 + ; commit=2e9c8be6b87d5c4cd6693e7b3c0c05cfc7d1ac51 + name=5.35~ynh1 diff --git a/conf/.env b/conf/.env index d376d19..72eb5bb 100644 --- a/conf/.env +++ b/conf/.env @@ -22,16 +22,23 @@ ROOT_URL='https://__DOMAIN____PATH__' # https://github.com/wekan/wekan/wiki/Adding-users # https://github.com/wekan/wekan/wiki/Troubleshooting-Mail # https://github.com/wekan/wekan-mongodb/blob/master/docker-compose.yml -MAIL_URL='smtp://localhost:25/' +MAIL_URL='smtp://__MAIN_DOMAIN__:25/' MAIL_FROM='Wekan Support ' +# Currently MAIL_SERVICE is not in use. +#MAIL_SERVICE=Outlook365 +#MAIL_SERVICE_USER=firstname.lastname@hotmail.com +#MAIL_SERVICE_PASSWORD=SecretPassword #--------------------------------------------- #KADIRA_OPTIONS_ENDPOINT=http://127.0.0.1:11011 #--------------------------------------------- # This is local port where Wekan Node.js runs, same as below on Caddyfile settings. PORT=__PORT__ #--------------------------------------------- -# Wekan Export Board works when WITH_API=true. -# If you disable Wekan API with false, Export Board does not work. +# ==== NUMBER OF SEARCH RESULTS PER PAGE BY DEFAULT ==== +#RESULTS_PER_PAGE=20 +#--------------------------------------------- +# Wekan Board works when WITH_API=true. +# If you disable Wekan API with false, Board does not work. WITH_API='true' #--------------------------------------------------------------- # ==== PASSWORD BRUTE FORCE PROTECTION ==== @@ -44,6 +51,11 @@ WITH_API='true' #ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 #ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 #--------------------------------------------------------------- +# ==== ACCOUNT OPTIONS ==== +# https://docs.meteor.com/api/accounts-multi.html#AccountsCommon-config +# Defaults below. Uncomment to change. wekan/server/accounts-common.js +# - ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS=90 +#--------------------------------------------------------------- # ==== RICH TEXT EDITOR IN CARD COMMENTS ==== # https://github.com/wekan/wekan/pull/2560 RICHER_CARD_COMMENT_EDITOR=true @@ -70,26 +82,26 @@ CARD_OPENED_WEBHOOK_ENABLED=false # disable the feature by setting this variable to "NONE" or # change the pattern to any valid regex. i.e. '|' delimited # activityType names. -# a) Example +# a) Example #BIGEVENTS_PATTERN=due # b) All #BIGEVENTS_PATTERN=received|start|due|end # c) Disabled BIGEVENTS_PATTERN=NONE #--------------------------------------------------------------- -# ==== EMAIL DUE DATE NOTIFICATION ===== +# ==== EMAIL DUE DATE NOTIFICATION ===== # https://github.com/wekan/wekan/pull/2536 # System timelines will be showing any user modification for # dueat startat endat receivedat, also notification to # the watchers and if any card is due, about due or past due. -# -# Notify due days, default is None. +# +# Notify due days, default is None. #NOTIFY_DUE_DAYS_BEFORE_AND_AFTER=2,0 # it will notify user 2 days before due day and on the due day -# +# # Notify due at hour of day. Default every morning at 8am. Can be 0-23. # If env variable has parsing error, use default. Notification sent to watchers. -# NOTIFY_DUE_AT_HOUR_OF_DAY=8 +#NOTIFY_DUE_AT_HOUR_OF_DAY=8 #----------------------------------------------------------------- # ==== EMAIL NOTIFICATION TIMEOUT, ms ===== # Defaut: 30000 ms = 30s @@ -115,6 +127,7 @@ BIGEVENTS_PATTERN=NONE # The option that allows matomo to retrieve the username: # Example: MATOMO_WITH_USERNAME=true #MATOMO_WITH_USERNAME='false' +#--------------------------------------------- # Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside. # Setting this to false is not recommended, it also disables all other browser policy protections # and allows all iframing etc. See wekan/server/policy.js @@ -137,27 +150,36 @@ WEBHOOKS_ATTRIBUTES='' # 2) Configure the environment variables. This differs slightly # by installation type, but make sure you have the following: #OAUTH2_ENABLED=true +# # Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299 #OAUTH2_CA_CERT=ABCD1234 +# # Use OAuth2 ADFS additional changes. Also needs OAUTH2_ENABLED=true setting. #OAUTH2_ADFS_ENABLED=false +# # OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2 # OAuth2 login style: popup or redirect. #OAUTH2_LOGIN_STYLE=redirect +# # Application GUID captured during app registration: #OAUTH2_CLIENT_ID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx +# # Secret key generated during app registration: #OAUTH2_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx #OAUTH2_SERVER_URL=https://login.microsoftonline.com/ #OAUTH2_AUTH_ENDPOINT=/oauth2/v2.0/authorize #OAUTH2_USERINFO_ENDPOINT=https://graph.microsoft.com/oidc/userinfo #OAUTH2_TOKEN_ENDPOINT=/oauth2/v2.0/token +# # The claim name you want to map to the unique ID field: #OAUTH2_ID_MAP=email +# # The claim name you want to map to the username field: #OAUTH2_USERNAME_MAP=email +# # The claim name you want to map to the full name field: #OAUTH2_FULLNAME_MAP=name +# # The claim name you want to map to the email field: #OAUTH2_EMAIL_MAP=email #----------------------------------------------------------------- @@ -179,30 +201,43 @@ WEBHOOKS_ATTRIBUTES='' # https://github.com/wekan/wekan/wiki/OAuth2 # Enable the OAuth2 connection #OAUTH2_ENABLED=true +# # OAuth2 login style: popup or redirect. #OAUTH2_LOGIN_STYLE=redirect +# # OAuth2 Client ID. #OAUTH2_CLIENT_ID=abcde12345 +# # OAuth2 Secret. #OAUTH2_SECRET=54321abcde +# # OAuth2 Server URL. #OAUTH2_SERVER_URL=https://chat.example.com +# # OAuth2 Authorization Endpoint. #OAUTH2_AUTH_ENDPOINT=/oauth/authorize +# # OAuth2 Userinfo Endpoint. #OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo +# # OAuth2 Token Endpoint. #OAUTH2_TOKEN_ENDPOINT=/oauth/token +# # OAUTH2 ID Token Whitelist Fields. #OAUTH2_ID_TOKEN_WHITELIST_FIELDS=[] +# # OAUTH2 Request Permissions. #OAUTH2_REQUEST_PERMISSIONS='openid profile email' +# # OAuth2 ID Mapping #OAUTH2_ID_MAP= +# # OAuth2 Username Mapping #OAUTH2_USERNAME_MAP= +# # OAuth2 Fullname Mapping #OAUTH2_FULLNAME_MAP= +# # OAuth2 Email Mapping #OAUTH2_EMAIL_MAP= #--------------------------------------------- @@ -218,10 +253,49 @@ LDAP_PORT=389 # example : LDAP_HOST=localhost #LDAP_HOST= LDAP_HOST=localhost +# +#----------------------------------------------------------------- +# ==== LDAP AD Simple Auth ==== +# +# Set to true, if you want to connect with Active Directory by Simple Authentication. +# When using AD Simple Auth, LDAP_BASEDN is not needed. +# +# Example: +#LDAP_AD_SIMPLE_AUTH=true +# +# === LDAP User Authentication === +# +# a) Option to login to the LDAP server with the user's own username and password, instead of +# an administrator key. Default: false (use administrator key). +# +# b) When using AD Simple Auth, set to true, when login user is used for binding, +# and LDAP_BASEDN is not needed. +# +# Example: +#LDAP_USER_AUTHENTICATION=true +# +# Which field is used to find the user for the user authentication. Default: uid. +#LDAP_USER_AUTHENTICATION_FIELD=uid +# +# === LDAP Default Domain === +# +# a) In case AD SimpleAuth is configured, the default domain is appended to the given +# loginname for creating the correct username for the bind request to AD. +# +# b) The default domain of the ldap it is used to create email if the field is not map +# correctly with the LDAP_SYNC_USER_DATA_FIELDMAP +# +# Example : +#LDAP_DEFAULT_DOMAIN=mydomain.com +# +#----------------------------------------------------------------- +# ==== LDAP BASEDN Auth ==== +# # LDAP_BASEDN : The base DN for the LDAP Tree # example : LDAP_BASEDN=ou=user,dc=example,dc=org #LDAP_BASEDN= LDAP_BASEDN=dc=yunohost,dc=org +#--------------------------------------------- # LDAP_LOGIN_FALLBACK : Fallback on the default authentication method # example : LDAP_LOGIN_FALLBACK=true #LDAP_LOGIN_FALLBACK=false @@ -257,6 +331,7 @@ LDAP_AUTHENTIFICATION=false # LDAP_AUTHENTIFICATION_PASSWORD : The password for the search user # example : AUTHENTIFICATION_PASSWORD=admin #LDAP_AUTHENTIFICATION_PASSWORD= +# # LDAP_LOG_ENABLED : Enable logs for the module # example : LDAP_LOG_ENABLED=true #LDAP_LOG_ENABLED=false @@ -270,6 +345,7 @@ LDAP_BACKGROUND_SYNC=true # Leave this unset, so it uses default, and does not crash. # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722 LDAP_BACKGROUND_SYNC_INTERVAL='' +# # LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED : # example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true #LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false @@ -281,16 +357,15 @@ LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true # LDAP_ENCRYPTION : If using LDAPS # example : LDAP_ENCRYPTION=ssl #LDAP_ENCRYPTION=false +# # LDAP_CA_CERT : The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file. # example : LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE----- #LDAP_CA_CERT= +# # LDAP_REJECT_UNAUTHORIZED : Reject Unauthorized Certificate # example : LDAP_REJECT_UNAUTHORIZED=true #LDAP_REJECT_UNAUTHORIZED=false -# Option to login to the LDAP server with the user's own username and password, instead of an administrator key. Default: false (use administrator key). -#LDAP_USER_AUTHENTICATION=true -# Which field is used to find the user for the user authentication. Default: uid. -#LDAP_USER_AUTHENTICATION_FIELD=uid +# # LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed # example : LDAP_USER_SEARCH_FILTER= #LDAP_USER_SEARCH_FILTER= @@ -302,7 +377,7 @@ LDAP_USER_SEARCH_SCOPE=sub # LDAP_USER_SEARCH_FIELD : Which field is used to find the user # example : LDAP_USER_SEARCH_FIELD=uid #LDAP_USER_SEARCH_FIELD= -LDAP_USER_SEARCH_FIELD=uid +LDAP_USER_SEARCH_FIELD=uid,mail # LDAP_SEARCH_PAGE_SIZE : Used for pagination (0=unlimited) # example : LDAP_SEARCH_PAGE_SIZE=12345 #LDAP_SEARCH_PAGE_SIZE=0 @@ -383,9 +458,6 @@ LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name"} # example : #LDAP_SYNC_GROUP_ROLES= LDAP_SYNC_GROUP_ROLES=__APP__.admin -# LDAP_DEFAULT_DOMAIN : The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP -# example : -#LDAP_DEFAULT_DOMAIN= # Enable/Disable syncing of admin status based on ldap groups: #LDAP_SYNC_ADMIN_STATUS=true LDAP_SYNC_ADMIN_STATUS=true @@ -411,7 +483,7 @@ LDAP_SYNC_ADMIN_GROUPS=__APP__.admin # example : LOGOUT_ON_MINUTES=55 #LOGOUT_ON_MINUTES= #--------------------------------------------------------------------- -# PASSWORD_LOGIN_ENABLED : Enable or not the password login form. +# PASSWORD_LOGIN_ENABLED : Enable or not the password login form. #PASSWORD_LOGIN_ENABLED=true #--------------------------------------------------------------------- #CAS_ENABLED=true @@ -431,3 +503,6 @@ LDAP_SYNC_ADMIN_GROUPS=__APP__.admin #SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE= #SAML_ATTRIBUTES= #--------------------------------------------------------------------- +# Wait spinner to use +#WAIT_SPINNER=Bounce +#--------------------------------------------------------------------- diff --git a/conf/amd64.src b/conf/amd64.src new file mode 100644 index 0000000..e6377b4 --- /dev/null +++ b/conf/amd64.src @@ -0,0 +1,9 @@ +# This is on YunoHost server just to avoid the file from disappearing +# Original source is https://releases.wekan.team/wekan-5.93.zip +# YunoHost source is https://build.yunohost.org/apps/wekan-5.93.zip +SOURCE_URL=https://build.yunohost.org/apps/wekan-5.93.zip +SOURCE_SUM=de973b8be8e7dd938bccf6670455fac3260ce4aa59bd4ee890d6a3ce073c5275 +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=zip +SOURCE_IN_SUBDIR=true +SOURCE_FILENAME=wekan-5.93.zip diff --git a/conf/arm64.src b/conf/arm64.src index 2696218..dd5fb91 100644 --- a/conf/arm64.src +++ b/conf/arm64.src @@ -1,9 +1,9 @@ # This is on YunoHost server just to avoid the file from disappearing -# Original source is https://releases.wekan.team/raspi3/wekan-5.35-arm64.zip -# YunoHost source is https://build.yunohost.org/apps/wekan-5.35-arm64.zip -SOURCE_URL=https://build.yunohost.org/apps/wekan-5.35-arm64.zip -SOURCE_SUM=afd00947c25965ec5c8dbacaf97d666ef03a5350802587951c0a866e77c4ebae +# Original source is https://releases.wekan.team/raspi3/wekan-5.93-arm64.zip +# YunoHost source is https://build.yunohost.org/apps/wekan-5.93-arm64.zip +SOURCE_URL=https://build.yunohost.org/apps/wekan-5.93-arm64.zip +SOURCE_SUM=d015d2d128d1c9d1f71ba773f9e3914c97fb82e9b2c5d2a5bd5fdf23377a9980 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=zip SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=wekan-5.35-arm64.zip +SOURCE_FILENAME=wekan-5.93-arm64.zip diff --git a/conf/nginx.conf b/conf/nginx.conf index e35471d..26774a9 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,10 +1,5 @@ #sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; location __PATH__/ { - # Force usage of https - if ($scheme = http) { - rewrite ^ https://$server_name$request_uri? permanent; - } - client_max_body_size 100M; proxy_pass http://127.0.0.1:__PORT__; diff --git a/conf/x86-64.src b/conf/x86-64.src deleted file mode 100644 index 1f58780..0000000 --- a/conf/x86-64.src +++ /dev/null @@ -1,9 +0,0 @@ -# This is on YunoHost server just to avoid the file from disappearing -# Original source is https://releases.wekan.team/wekan-5.35.zip -# YunoHost source is https://build.yunohost.org/apps/wekan-5.35.zip -SOURCE_URL=https://build.yunohost.org/apps/wekan-5.35.zip -SOURCE_SUM=77746ab4788ee43f1187d8f6603d1a8cf229250831b85971a335b32db1499d8f -SOURCE_SUM_PRG=sha256sum -SOURCE_FORMAT=zip -SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=wekan-5.35.zip diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md new file mode 100644 index 0000000..a1421e8 --- /dev/null +++ b/doc/DESCRIPTION.md @@ -0,0 +1 @@ +WeKan ® is an completely Open Source and Free software collaborative kanban board application with MIT license. diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md index 75d55ed..3d56c28 100644 --- a/doc/DISCLAIMER.md +++ b/doc/DISCLAIMER.md @@ -1,7 +1,6 @@ -* Any known limitations, constrains or stuff not working, such as (but not limited to): - * There is currently **no SSO integration** though it might be integrated at some point in the app, now that it's supported in Meteor/Wekan. In the meantime, users can create accounts (in fact, they can create infinite number of accounts) manually, and need to login manually specifically in Wekan. - * This app **only works on x86, 64bits architecture**! In particular, it won't work on 32 bit machines or ARM. See the discussion [here](https://github.com/YunoHost-Apps/wekan_ynh/issues/1#issuecomment-401612500). - * YunoHost users with more than one email address can't login to wekan using ldap. For example first YunoHost user has severals email addresses: root@domain; admin@domain; webmaster@domain; postmaster@domain, etc... Workaround: remove all mail aliases of the user you want to connect, connect one time on wekan, recreate the aliases of the YunoHost user. +* There is currently **no SSO integration** though it might be integrated at some point in the app, now that it's supported in Meteor/Wekan. In the meantime, users can create accounts (in fact, they can create infinite number of accounts) manually, and need to login manually specifically in Wekan. +* This app **only works on x86, 64bits architecture**! In particular, it won't work on 32 bit machines or ARM. See the discussion [here](https://github.com/YunoHost-Apps/wekan_ynh/issues/1#issuecomment-401612500). +* YunoHost users with more than one email address can't login to wekan using ldap. For example first YunoHost user has severals email addresses: root@domain; admin@domain; webmaster@domain; postmaster@domain, etc... Workaround: remove all mail aliases of the user you want to connect, connect one time on wekan, recreate the aliases of the YunoHost user. ## Configuration: As LDAP authentification is enabled by default, Wekan admins correspond to the permission `Wekan Admin`. The user you choose during installation is member of this group. diff --git a/manifest.json b/manifest.json index 6a4936e..83f0c08 100644 --- a/manifest.json +++ b/manifest.json @@ -6,12 +6,11 @@ "en": "Trello-like kanban", "fr": "Un kanban similaire à Trello" }, - "version": "5.35~ynh1", + "version": "5.93~ynh1", "url": "https://wekan.github.io", "upstream": { "license": "MIT", "website": "https://wekan.github.io", - "userdoc": "https://yunohost.org/#/app_wekan", "code": "https://github.com/wekan/wekan" }, "license": "MIT", @@ -29,18 +28,17 @@ } ], "requirements": { - "yunohost": ">= 4.2.0" + "yunohost": ">= 4.3.0" }, "multi_instance": true, "services": [ "nginx" ], "arguments": { - "install" : [ + "install": [ { "name": "domain", - "type": "domain", - "example": "example.com" + "type": "domain" }, { "name": "path", @@ -50,8 +48,7 @@ }, { "name": "admin", - "type": "user", - "example": "johndoe" + "type": "user" }, { "name": "is_public", diff --git a/scripts/_common.sh b/scripts/_common.sh index d51b74e..55aa9a5 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -7,7 +7,7 @@ # dependencies used by the app pkg_dependencies="" -NODEJS_VERSION=12.22.1 +NODEJS_VERSION=12.22.9 #================================================= # PERSONAL HELPERS diff --git a/scripts/install b/scripts/install index b775cf5..a54cd2e 100644 --- a/scripts/install +++ b/scripts/install @@ -7,7 +7,6 @@ #================================================= source _common.sh -source ynh_detect_arch__2 source ynh_mongo_db source /usr/share/yunohost/helpers @@ -37,9 +36,8 @@ app=$YNH_APP_INSTANCE_NAME #================================================= ynh_script_progression --message="Validating installation parameters..." -architecture=$(ynh_detect_arch) # Check machine architecture (in particular, we don't support ARM and 32bit machines) -if [ $architecture == "i386" ] || [ $architecture == "arm" ] +if [ $YNH_ARCH == "i386" ] || [ $YNH_ARCH == "armel" ] then ynh_die --message="Sorry, but this app can only be installed on a x86, 64 bits machine :(" fi @@ -85,7 +83,7 @@ ynh_install_mongo ynh_script_progression --message="Configuring system user..." # Create a system user -ynh_system_user_create --username=$app --home_dir="$final_path" +ynh_system_user_create --username=$app --home_dir=$final_path #================================================= # CREATE A MONGODB DATABASE @@ -104,7 +102,7 @@ ynh_script_progression --message="Setting up source files..." ynh_app_setting_set --app=$app --key=final_path --value=$final_path # Download, check integrity, uncompress and patch the source from app.src -ynh_setup_source --dest_dir="$final_path" --source_id="$architecture" +ynh_setup_source --dest_dir="$final_path" --source_id="$YNH_ARCH" chmod 750 "$final_path" chmod -R o-rwx "$final_path" @@ -125,6 +123,8 @@ ynh_add_nginx_config #================================================= ynh_script_progression --message="Adding a config file..." +main_domain=$(cat /etc/yunohost/current_host) + ynh_add_config --template=".env" --destination="$final_path/.env" chmod 400 "$final_path/.env" diff --git a/scripts/remove b/scripts/remove index ec3ccf0..172a150 100755 --- a/scripts/remove +++ b/scripts/remove @@ -52,16 +52,6 @@ ynh_script_progression --message="Removing the MongoDB database..." # Remove a database if it exists, along with the associated user ynh_mongo_remove_db --db_user=$db_user --db_name=$db_name -#================================================= -# REMOVE DEPENDENCIES -#================================================= -ynh_script_progression --message="Removing dependencies..." - -# Remove metapackage and its dependencies -ynh_remove_app_dependencies -ynh_remove_nodejs -ynh_remove_mongo - #================================================= # REMOVE APP MAIN DIR #================================================= @@ -78,6 +68,16 @@ ynh_script_progression --message="Removing NGINX web server configuration..." # Remove the dedicated NGINX config ynh_remove_nginx_config +#================================================= +# REMOVE DEPENDENCIES +#================================================= +ynh_script_progression --message="Removing dependencies..." + +# Remove metapackage and its dependencies +ynh_remove_app_dependencies +ynh_remove_nodejs +ynh_remove_mongo + #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/restore b/scripts/restore index 739b02e..fb660a9 100644 --- a/scripts/restore +++ b/scripts/restore @@ -39,8 +39,6 @@ db_user=$db_name #================================================= ynh_script_progression --message="Validating restoration parameters..." -ynh_webpath_available --domain=$domain --path_url=$path_url \ - || ynh_die --message="Path not available: ${domain}${path_url}" test ! -d $final_path \ || ynh_die --message="There is already a directory: $final_path " diff --git a/scripts/upgrade b/scripts/upgrade index efe8f7a..7fe6617 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -8,7 +8,6 @@ source _common.sh source ynh_package_version -source ynh_detect_arch__2 source ynh_mongo_db source /usr/share/yunohost/helpers @@ -120,7 +119,7 @@ fi ynh_script_progression --message="Making sure dedicated system user exists..." # Create a dedicated user (if not existing) -ynh_system_user_create --username=$app --home_dir="$final_path" +ynh_system_user_create --username=$app --home_dir=$final_path #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE @@ -139,9 +138,8 @@ then # Remove the app directory securely ynh_secure_remove --file="$final_path" - architecture=$(ynh_detect_arch) # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir="$final_path" --source_id="$architecture" + ynh_setup_source --dest_dir="$final_path" --source_id="$YNH_ARCH" #Copy the admin saved settings from tmp directory to final path cp -af "$tmpdir/.env" "$final_path/.env" @@ -178,7 +176,9 @@ ynh_install_mongo #================================================= # UPDATE A CONFIG FILE #================================================= -ynh_script_progression --message="Updating a config file..." +ynh_script_progression --message="Updating a configuration file..." + +main_domain=$(cat /etc/yunohost/current_host) ynh_add_config --template=".env" --destination="$final_path/.env" diff --git a/scripts/ynh_detect_arch__2 b/scripts/ynh_detect_arch__2 deleted file mode 100644 index b1c7375..0000000 --- a/scripts/ynh_detect_arch__2 +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Check the architecture -# -# example: architecture=$(ynh_detect_arch) -# -# usage: ynh_detect_arch -# -# Requires YunoHost version 2.2.4 or higher. - -ynh_detect_arch(){ - local architecture - if [ -n "$(uname -m | grep arm64)" ] || [ -n "$(uname -m | grep aarch64)" ]; then - architecture="arm64" - elif [ -n "$(uname -m | grep 64)" ]; then - architecture="x86-64" - elif [ -n "$(uname -m | grep 86)" ]; then - architecture="i386" - elif [ -n "$(uname -m | grep arm)" ]; then - architecture="arm" - else - architecture="unknown" - fi - echo $architecture -}