diff --git a/web/tsconfig.json b/web/tsconfig.json index 59f8ec37e..de70f1b76 100644 --- a/web/tsconfig.json +++ b/web/tsconfig.json @@ -27,5 +27,8 @@ "strict": true } ] - } + }, + "exclude": [ + "api/src/", + ] } diff --git a/website/docs/integrations/services/portainer/index.md b/website/docs/integrations/services/portainer/index.md new file mode 100644 index 000000000..464fde09d --- /dev/null +++ b/website/docs/integrations/services/portainer/index.md @@ -0,0 +1,74 @@ +--- +title: Portainer +--- + +## What is Portainer + +From https://www.portainer.io/ + +:::note +Portainer is a powerful, GUI-based Container-as-a-Service solution that helps organizations manage and deploy cloud-native applications easily and securely. +::: + +:::note +This is based on authentik 2021.7.3 and Portainer 2.6.x-CE. Portainer 2.6 supports OAuth without additional licenses, 1.x Series requires a paid license for OAuth. +::: + +## Preparation + +The following placeholders will be used: + +- `port.company` is the FQDN of Portainer. +- `authentik.company` is the FQDN of authentik. + +### Step 1 - Authentik + +In authentik, under _Providers_, create an _OAuth2/OpenID Provider_ with these settings: + +:::note +Only settings that have been modified from default have been listed. +::: + +**Protocol Settings** +- Name: Portainer +- Client type: Confidential +- Client ID: Copy and Save this for Later +- Client Secret: Copy and Save this for later +- Redirect URIs/Origins: `https://port.company` + + +### Step 2 - Portainer + +In Portainer, under _Settings_, _Authentication_, Select _OAuth_ and _Custom_ + +- Client ID: Client ID from step 1 +- Client Secret: Client Secret from step 1 +- Authorization URL: `https://authentik.company/application/o/authorize/` +- Access Token URL: `https://authentik.company/application/o/token/` +- Redirect URL: `https://port.company` +- Resource URL: `https://authentik.company/application/o/userinfo/` +- Logout URL: `https://authentik.company/o/portainer/end-session/` +- User Identifier: `email` +- Scopes: `email opennid profile` + +:::note +Portainer by default shows commas between each item in the Scopes field. Do **NOT** use commas. Use a _space_ +::: + +![](./vport1.png) + +### Step 3 - Authentik + +In authentik, create an application which uses this provider. Optionally apply access restrictions to the application using policy bindings. + +- Name: Portainer +- Slug: portainer +- Provider: Portainer +- Launch URL: https://port.company + + +## Notes + +:::note +Portainer Reference link: https://documentation.portainer.io/v2.0/auth/oauth/ +::: diff --git a/website/docs/integrations/services/portainer/port1.png b/website/docs/integrations/services/portainer/port1.png new file mode 100644 index 000000000..7fef02ea9 Binary files /dev/null and b/website/docs/integrations/services/portainer/port1.png differ diff --git a/website/sidebars.js b/website/sidebars.js index d39a614c1..efa2c36f7 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -87,6 +87,7 @@ module.exports = { "integrations/services/home-assistant/index", "integrations/services/minio/index", "integrations/services/nextcloud/index", + "integrations/services/portainer/index", "integrations/services/rancher/index", "integrations/services/sentry/index", "integrations/services/sonarr/index",