diff --git a/website/integrations/services/frappe/frappe1.png b/website/integrations/services/frappe/frappe1.png new file mode 100644 index 000000000000..499e9e9495ec Binary files /dev/null and b/website/integrations/services/frappe/frappe1.png differ diff --git a/website/integrations/services/frappe/frappe2.png b/website/integrations/services/frappe/frappe2.png new file mode 100644 index 000000000000..9e4b86fa1ef2 Binary files /dev/null and b/website/integrations/services/frappe/frappe2.png differ diff --git a/website/integrations/services/frappe/frappe3.png b/website/integrations/services/frappe/frappe3.png new file mode 100644 index 000000000000..f77d4c39a9ab Binary files /dev/null and b/website/integrations/services/frappe/frappe3.png differ diff --git a/website/integrations/services/frappe/frappe4.png b/website/integrations/services/frappe/frappe4.png new file mode 100644 index 000000000000..5da4141c4d8d Binary files /dev/null and b/website/integrations/services/frappe/frappe4.png differ diff --git a/website/integrations/services/frappe/index.md b/website/integrations/services/frappe/index.md new file mode 100644 index 000000000000..1752cd62d508 --- /dev/null +++ b/website/integrations/services/frappe/index.md @@ -0,0 +1,86 @@ +--- +title: Frappe Helpdesk +--- + +Support level: Community + +:::note +These instructions apply to all projects in the Frappe Family. +::: + +## What is Frappe Helpdesk + +> Frappe Helpdesk is an open source ticketing tool based on Frappe Framework. +> +> -- https://frappe.io/helpdesk + +## Preparation + +The following placeholders will be used: + +- `frappe.company` is the FQDN of the Frappe install. +- `authentik.company` is the FQDN of the authentik install. +- `provider` is the name for the social login provider in Frappe. + +## authentik configuration + +1. Log in to authentik as an admin, and go to the Admin interface. +2. Create a new OAuth2/OpenID Provider under **Applications** -> **Providers** using the following settings: + + - **Name**: Frappe + - **Client type**: Confidential + - **Client ID**: Use the auto-populated ID + - **Client Secret**: Use the auto-populated secret + - **Redirect URIs/Origins (RegEx)**: + - `https://frappe.company/api/method/frappe.integrations.oauth2_logins.custom/provider` + - **Scopes**: `email`, `openid`, `profile` + - **Subject mode**: `Based on the Users's username` + - **Include claims in id_token**: `True` + - Leave everything else as default + + Take note of **Client ID** and **Client Secret** as you will need them later. + +3. Create a new application under **Applications** -> **Applications**, pick a name and a slug, and assign the provider that you have just created. + +## Frappe configuration + +1. From the Frappe main menu, navigate to **Integrations**, then to **Social Login Key**. + +Add a new Social login Key using the black button on top right. +![](./frappe1.png) + +2. Enter the following settings: + + - In the **Client Credentials** section: + - Enable Social Login: Turn the checkmark to the _on_ position. + - Client ID: _client-id-from-authentik_ + - Client Secret: _client-secret-from-authentik_ + + - In the **Configuration** section: + - Sign ups: Allow + + ![](./frappe2.png) + + - In the **Identity Details** section: + - Base URL: `https://authentik.company/` + - In Client URLs section: + - Authorize URL: `/application/o/authorize/` + - Access Token URL: `/application/o/token/` + - Redirect URL: `/api/method/frappe.integrations.oauth2_logins.custom/provider/` + - API Endpoint: `/application/o/userinfo/` + + ![](./frappe3.png) + + - In the **Client Information** section: + - Auth URL Data: `{"response_type": "code", "scope": "email profile openid"}` + + ![](./frappe4.png) + +3. Press the black **Save** button on the top right. + +## Verification + +1. Go to `https://frappe.company` from Incognito mode. +2. Click **Login with provider** on the login screen. +3. Authorize with authentik. +4. You will be redirected to home screen of Frappe application. diff --git a/website/sidebarsIntegrations.js b/website/sidebarsIntegrations.js index 10a87eb77000..87a0075cad07 100644 --- a/website/sidebarsIntegrations.js +++ b/website/sidebarsIntegrations.js @@ -123,6 +123,7 @@ module.exports = { label: "Miscellaneous", items: [ "services/engomo/index", + "services/frappe/index", "services/freshrss/index", "services/gravitee/index", "services/home-assistant/index",