#!/bin/bash # first read settings source $SNAP/bin/wekan-read-settings &>/dev/null if [ "$CADDY_ENABLED" = "true" ]; then # tweak port nunmber as it has been remapped export PORT=${CADDY_PORT} &>/dev/null fi echo -e "Wekan: The open-source kanban.\n" echo -e "Make sure you have connected all interfaces, check more by calling $ snap interfaces ${SNAP_NAME}" echo -e "\n" echo -e "${SNAP_NAME} has multiple services, to check status use systemctl" echo -e "\t$ systemctl status snap.$SNAP_NAME.*" echo -e "\n" echo -e "To make backup of wekan's database use: $ ${SNAP_NAME}.database-backup [backup file]" echo -e "\t backup file is optional parameter, if not passed backup is created in directory:" echo -e "\t\t${SNAP_COMMON}/db-backups" echo -e "To list existing backups in default directory: $ ${SNAP_NAME}.database-list-backups" echo -e "To restore wekan's database use: ${SNAP_NAME}.database-restore " echo -e "\n" echo -e "wekan can be configured to share mongodb with other services using content interface" echo -e "\t-sharing mongodb from $SNAP_NAME to other snap(s):" echo -e "\t\t-connect mongodb-slot with plug from corresponding snap(s)" echo -e "\t\t-configure corresponding service to use mongodb unix socket in shared directory, socket file name is: mongodb-$MONGODB_PORT.sock" echo -e "\t-sharing mongodb from other snap to $SNAP_NAME:" echo -e "\t\t-connect mongodb-plug with slot from snap providing mongodb" echo -e "\t\t-disable mongodb in $SNAP_NAME by calling: $ snap set $SNAP_NAME set disable-mongodb='true'" echo -e "\t\t-set mongodb-bind-unix-socket to point to serving mongodb. Use relative path inside shared directory, e.g run/mongodb-27017.sock" echo -e "\n" echo -e "To enable the API of wekan:" echo -e "\t$ snap set $SNAP_NAME WITH_API='true'" echo -e "\t-Disable the API:" echo -e "\t$ snap set $SNAP_NAME WITH_API='false'" echo -e "\n" echo -e "Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside." echo -e "\t\t Setting this to false is not recommended, it also disables all other browser policy protections" echo -e "\t\t and allows all iframing etc. See wekan/server/policy.js" echo -e "To enable the Content Policy of Wekan:" echo -e "\t$ snap set $SNAP_NAME CONTENT_POLICY_ENABLED='true'" echo -e "\t-Disable the Content Policy of Wekan:" echo -e "\t$ snap set $SNAP_NAME CONTENT_POLICY_ENABLED='false'" echo -e "\n" echo -e "When browser policy is enabled, HTML code at this URL can have iframe that embeds Wekan inside." echo -e "To enable the Trusted URL of Wekan:" echo -e "\t$ snap set $SNAP_NAME TRUSTED_URL='https://example.com'" echo -e "\t-Disable the Trusted URL of Wekan:" echo -e "\t$ snap set $SNAP_NAME TRUSTED_URL=''" echo -e "\n" echo -e "What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId ." echo -e "To enable the Webhooks Attributes of Wekan:" echo -e "\t$ snap set $SNAP_NAME WEBHOOKS_ATTRIBUTES='cardId,listId,oldListId,boardId,comment,user,card,commentId'" echo -e "\t-Disable the Webhooks Attributes of Wekan to send all default ones:" echo -e "\t$ snap set $SNAP_NAME WEBHOOKS_ATTRIBUTES=''" echo -e "\n" echo -e "OAuth2 Client ID, for example from Rocket.Chat. Example: abcde12345" echo -e "To enable the OAuth2 Client ID of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_CLIENT_ID='54321abcde'" echo -e "\t-Disable the OAuth2 Client ID of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_CLIENT_ID=''" echo -e "\n" echo -e "OAuth2 Secret, for example from Rocket.Chat. Example: 54321abcde" echo -e "To enable the OAuth2 Secret of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_SECRET='54321abcde'" echo -e "\t-Disable the OAuth2 Secret of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_SECRET=''" echo -e "\n" echo -e "OAuth2 Server URL, for example Rocket.Chat. Example: https://chat.example.com" echo -e "To enable the OAuth2 Server URL of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_SERVER_URL='https://chat.example.com'" echo -e "\t-Disable the OAuth2 Server URL of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_SERVER_URL=''" echo -e "\n" echo -e "OAuth2 Server URL, for example Rocket.Chat. Example: https://chat.example.com" echo -e "To enable the OAuth2 Server URL of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_SERVER_URL='https://chat.example.com'" echo -e "\t-Disable the OAuth2 Server URL of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_SERVER_URL=''" echo -e "\n" echo -e "OAuth2 Authorization Endpoint. Example: /oauth/authorize" echo -e "To enable the OAuth2 Authorization Endpoint of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_AUTH_ENDPOINT='/oauth/authorize'" echo -e "\t-Disable the OAuth2 Authorization Endpoint of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_AUTH_ENDPOINT=''" echo -e "\n" echo -e "OAuth2 Userinfo Endpoint. Example: /oauth/userinfo" echo -e "To enable the OAuth2 Userinfo Endpoint of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_USERINFO_ENDPOINT='/oauth/authorize'" echo -e "\t-Disable the OAuth2 Userinfo Endpoint of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_USERINFO_ENDPOINT=''" echo -e "\n" echo -e "OAuth2 Token Endpoint. Example: /oauth/token" echo -e "To enable the OAuth2 Token Endpoint of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_TOKEN_ENDPOINT='/oauth/token'" echo -e "\t-Disable the OAuth2 Token Endpoint of Wekan:" echo -e "\t$ snap set $SNAP_NAME OAUTH2_TOKEN_ENDPOINT=''" echo -e "\n" echo -e "Ldap Enable." echo -e "To enable the ldap of Wekan:" echo -e "\t$ snap set $SNAP_NAME LDAP_ENABLE='true'" echo -e "\t-Disable the ldap of Wekan:" echo -e "\t$ snap set $SNAP_NAME LDAP_ENABLE='false'" echo -e "\n" echo -e "Ldap Port." echo -e "The port of the ldap server:" echo -e "\t$ snap set $SNAP_NAME LDAP_PORT='12345'" echo -e "\n" echo -e "Ldap Host." echo -e "The host server for the LDAP server:" echo -e "\t$ snap set $SNAP_NAME LDAP_HOST='localhost'" echo -e "\n" echo -e "Ldap Base Dn." echo -e "The base DN for the LDAP Tree:" echo -e "\t$ snap set $SNAP_NAME LDAP_BASEDN='ou=user,dc=example,dc=org'" echo -e "\n" echo -e "Ldap Login Fallback." echo -e "Fallback on the default authentication method:" echo -e "\t$ snap set $SNAP_NAME LDAP_LOGIN_FALLBACK='true'" echo -e "\n" echo -e "Ldap Reconnect." echo -e "Reconnect to the server if the connection is lost:" echo -e "\t$ snap set $SNAP_NAME LDAP_RECONNECT='false'" echo -e "\n" echo -e "Ldap Timeout." echo -e "Overall timeout, in milliseconds:" echo -e "\t$ snap set $SNAP_NAME LDAP_TIMEOUT='12345'" echo -e "\n" echo -e "Ldap Idle Timeout." echo -e "Specifies the timeout for idle LDAP connections in milliseconds:" echo -e "\t$ snap set $SNAP_NAME LDAP_IDLE_TIMEOUT='12345'" echo -e "\n" echo -e "Ldap Connect Timeout." echo -e "Connection timeout, in milliseconds:" echo -e "\t$ snap set $SNAP_NAME LDAP_CONNECT_TIMEOUT='12345'" echo -e "\n" echo -e "Ldap Authentication." echo -e "If the LDAP needs a user account to search:" echo -e "\t$ snap set $SNAP_NAME LDAP_AUTHENTIFICATION='true'" echo -e "\n" echo -e "Ldap Authentication User Dn." echo -e "The search user Dn:" echo -e "\t$ snap set $SNAP_NAME LDAP_AUTHENTIFICATION_USERDN='cn=admin,dc=example,dc=org'" echo -e "\n" echo -e "Ldap Authentication Password." echo -e "The password for the search user:" echo -e "\t$ snap set $SNAP_NAME AUTHENTIFICATION_PASSWORD='admin'" echo -e "\n" echo -e "Ldap Log Enabled." echo -e "Enable logs for the module:" echo -e "\t$ snap set $SNAP_NAME LDAP_LOG_ENABLED='true'" echo -e "\n" echo -e "Ldap Background Sync." echo -e "If the sync of the users should be done in the background:" echo -e "\t$ snap set $SNAP_NAME LDAP_BACKGROUND_SYNC='true'" echo -e "\n" echo -e "Ldap Background Sync Interval." echo -e "At which interval does the background task sync in milliseconds:" echo -e "\t$ snap set $SNAP_NAME LDAP_BACKGROUND_SYNC_INTERVAL='12345'" echo -e "\n" echo -e "Ldap Background Sync Keep Existant Users Updated." echo -e "\t$ snap set $SNAP_NAME LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED='true'" echo -e "\n" echo -e "Ldap Background Sync Import New Users." echo -e "\t$ snap set $SNAP_NAME LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS='true'" echo -e "\n" echo -e "Ldap Encryption." echo -e "Allow LDAPS:" echo -e "\t$ snap set $SNAP_NAME LDAP_ENCRYPTION='ssl'" echo -e "\n" echo -e "Ldap Ca Cert." echo -e "The certification for the LDAPS server:" echo -e "\t$ snap set $SNAP_NAME LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----" echo -e "\n" echo -e "Ldap Reject Unauthorized." echo -e "Reject Unauthorized Certificate:" echo -e "\t$ snap set $SNAP_NAME LDAP_REJECT_UNAUTHORIZED='true'" echo -e "\n" echo -e "Ldap User Search Filter." echo -e "Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed:" echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_FILTER=''" echo -e "\n" echo -e "Ldap User Search Scope." echo -e "base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree). Example: one" echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_SCOPE=one" echo -e "\n" echo -e "Ldap User Search Field." echo -e "Which field is used to find the user:" echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_FIELD='uid'" echo -e "\n" echo -e "Ldap Search Page Size." echo -e "Used for pagination (0=unlimited):" echo -e "\t$ snap set $SNAP_NAME LDAP_SEARCH_PAGE_SIZE='12345'" echo -e "\n" echo -e "Ldap Search Size Limit." echo -e "The limit number of entries (0=unlimited):" echo -e "\t$ snap set $SNAP_NAME LDAP_SEARCH_SIZE_LIMIT='12345'" echo -e "\n" echo -e "Ldap Group Filter Enable." echo -e "Enable group filtering:" echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_ENABLE='true'" echo -e "\n" echo -e "Ldap Group Filter ObjectClass." echo -e "The object class for filtering:" echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_OBJECTCLASS='group'" echo -e "\n" echo -e "Ldap Group Filter Id Attribute." echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=''" echo -e "\n" echo -e "Ldap Group Filter Member Attribute." echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=''" echo -e "\n" echo -e "Ldap Group Filter Member Format." echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=''" echo -e "\n" echo -e "Ldap Group Filter Group Name." echo -e "\t$ snap set $SNAP_NAME LDAP_GROUP_FILTER_GROUP_NAME=''" echo -e "\n" echo -e "Ldap Unique Identifier Field." echo -e "This field is sometimes class GUID (Globally Unique Identifier):" echo -e "\t$ snap set $SNAP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD=guid" echo -e "\n" echo -e "Ldap Utf8 Names Slugify." echo -e "Convert the username to utf8:" echo -e "\t$ snap set $SNAP_NAME LDAP_UTF8_NAMES_SLUGIFY='false'" echo -e "\n" echo -e "Ldap Username Field." echo -e "Which field contains the ldap username:" echo -e "\t$ snap set $SNAP_NAME LDAP_USERNAME_FIELD='username'" echo -e "\n" echo -e "Ldap Merge Existing Users." echo -e "\t$ snap set $SNAP_NAME LDAP_MERGE_EXISTING_USERS='true'" echo -e "\n" echo -e "Ldap Sync User Data." echo -e "Enable synchronization of user data:" echo -e "\t$ snap set $SNAP_NAME LDAP_SYNC_USER_DATA='true'" echo -e "\n" echo -e "Ldap Sync User Data Fieldmap." echo -e "A field map for the matching:" echo -e "\t$ snap set $SNAP_NAME LDAP_SYNC_USER_DATA_FIELDMAP={\"cn\":\"name\", \"mail\":\"email\"}" echo -e "\n" echo -e "Ldap Sync Group Roles." echo -e "\t$ snap set $SNAP_NAME LDAP_SYNC_GROUP_ROLES=''" echo -e "\n" echo -e "Ldap Default Domain." echo -e "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:" echo -e "\t$ snap set $SNAP_NAME LDAP_DEFAULT_DOMAIN=''" echo -e "\n" # parse config file for supported settings keys echo -e "wekan supports settings keys" echo -e "values can be changed by calling\n$ snap set $SNAP_NAME =''" echo -e "list of supported keys:" for key in ${keys[@]} do default_value="DEFAULT_$key" description="DESCRIPTION_$key" snappy_key="KEY_$key" echo -e "\t${!snappy_key}: ${!description}" if [ "x" == "x${!key}" ]; then echo -e "\t\tNo value set, using default value: '${!default_value}'" else echo -e "\t\tCurrent value set to: '${!key}', (default value: '${!default_value}')" fi done echo -e "\n!!!! Some changes result in restart of some or all services, use with caution !!!!!"