Skip to content

website/integrations: add opencloud integration#22497

Open
PeshekDotDev wants to merge 12 commits into
mainfrom
add-opencloud-integration
Open

website/integrations: add opencloud integration#22497
PeshekDotDev wants to merge 12 commits into
mainfrom
add-opencloud-integration

Conversation

@PeshekDotDev
Copy link
Copy Markdown
Contributor

@PeshekDotDev PeshekDotDev commented May 20, 2026

Details

An integration guide for opencloud

Closes #18839


Checklist

  • Local tests pass (ak test authentik/)
  • The code has been formatted (make lint-fix)

If an API change has been made

  • The API schema and clients have been updated (make gen)

If changes to the frontend have been made

  • The code has been formatted (make web)

If applicable

  • The documentation has been updated
  • The documentation has been formatted (make docs)

@PeshekDotDev PeshekDotDev self-assigned this May 20, 2026
@PeshekDotDev PeshekDotDev requested a review from a team as a code owner May 20, 2026 09:08
@netlify
Copy link
Copy Markdown

netlify Bot commented May 20, 2026

Deploy Preview for authentik-integrations ready!

Name Link
🔨 Latest commit 77895a3
🔍 Latest deploy log https://app.netlify.com/projects/authentik-integrations/deploys/6a0e1056d9bc4d00083387b6
😎 Deploy Preview https://deploy-preview-22497--authentik-integrations.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link
Copy Markdown

netlify Bot commented May 20, 2026

Deploy Preview for authentik-docs ready!

Name Link
🔨 Latest commit 94a049d
🔍 Latest deploy log https://app.netlify.com/projects/authentik-docs/deploys/6a0d7a1209723200095fb897
😎 Deploy Preview https://deploy-preview-22497--authentik-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link
Copy Markdown

netlify Bot commented May 20, 2026

Deploy Preview for authentik-docs ready!

Name Link
🔨 Latest commit 77895a3
🔍 Latest deploy log https://app.netlify.com/projects/authentik-docs/deploys/6a0e1056bb35840007e1f611
😎 Deploy Preview https://deploy-preview-22497--authentik-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.29%. Comparing base (f992754) to head (77895a3).
⚠️ Report is 18 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #22497   +/-   ##
=======================================
  Coverage   93.28%   93.29%           
=======================================
  Files        1032     1032           
  Lines       60059    60062    +3     
  Branches      400      400           
=======================================
+ Hits        56029    56034    +5     
+ Misses       4030     4028    -2     
Flag Coverage Δ
conformance 36.61% <ø> (+<0.01%) ⬆️
e2e 41.85% <ø> (-0.02%) ⬇️
integration 33.05% <ø> (+<0.01%) ⬆️
rust 0.00% <ø> (ø)
unit 92.20% <ø> (+<0.01%) ⬆️
unit-migrate 92.25% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@PeshekDotDev PeshekDotDev force-pushed the add-opencloud-integration branch from d1acf2d to 691ecbd Compare May 20, 2026 09:24
Comment thread website/integrations/chat-communication-collaboration/opencloud/index.md Outdated
Comment thread website/integrations/chat-communication-collaboration/opencloud/index.md Outdated
Comment thread website/integrations/chat-communication-collaboration/opencloud/index.md Outdated
Comment thread website/integrations/chat-communication-collaboration/opencloud/index.md Outdated
@github-project-automation github-project-automation Bot moved this from Todo to In Progress in authentik Core May 20, 2026
@PeshekDotDev
Copy link
Copy Markdown
Contributor Author

So @dewi-tik I ended up reworking this guide a bit. Some people in the ticket clearly wanted the ability to use all of the different clients (desktop. mobile, web) at the same time, which requires setting up a small proxy for a single endpoint in front of authentik. I'm not sure if you'd consider that extending past the point of what we should do for an integration guide. If it is, I wouldn't mind posting a summary of the steps directly on the ticket and leaving this guide to only cover the standard "web" steps, which don't require a reverse proxy. Let me know what you think

@dewi-tik
Copy link
Copy Markdown
Contributor

So @dewi-tik I ended up reworking this guide a bit. Some people in the ticket clearly wanted the ability to use all of the different clients (desktop. mobile, web) at the same time, which requires setting up a small proxy for a single endpoint in front of authentik. I'm not sure if you'd consider that extending past the point of what we should do for an integration guide. If it is, I wouldn't mind posting a summary of the steps directly on the ticket and leaving this guide to only cover the standard "web" steps, which don't require a reverse proxy. Let me know what you think

I like it. Ultimately the point is to help users. So I don't think that we should limit sharing information just because it's maybe imperfect or doesn't cover every use case. Plus I like caddy.

Will give this a more thorough review and get it approved ASAP

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 2026

authentik PR Installation instructions

Instructions for docker-compose

Add the following block to your .env file:

AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-2aef0569fe53d4a34fff51bd8f90a872823e12ee
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s

Afterwards, run the upgrade commands from the latest release notes.

Instructions for Kubernetes

Add the following block to your values.yml file:

authentik:
    outposts:
        container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
global:
    image:
        repository: ghcr.io/goauthentik/dev-server
        tag: gh-2aef0569fe53d4a34fff51bd8f90a872823e12ee

Afterwards, run the upgrade commands from the latest release notes.

Comment thread website/integrations/chat-communication-collaboration/opencloud/index.mdx Outdated
Comment thread website/integrations/chat-communication-collaboration/opencloud/index.mdx Outdated
Comment thread website/integrations/chat-communication-collaboration/opencloud/index.mdx Outdated

## Configuration verification

Open `https://opencloud.company` in a browser, and add the account in the Desktop, iOS, and Android apps using the same server URL. Each client is redirected to authentik to log in and returned to the client afterwards.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "add the account" instruction should be in the "OpenCloud configuration" section.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not possible to add the account until you've configured the above options for logging in with authentik, so this step has to be at the end


## Configuration verification

Open `https://opencloud.company` in a new browser window. You are redirected to authentik to log in, and after authenticating you are returned to OpenCloud.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do they need to click anything to start the login process?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah, it's an automatic redirect once it's configured. No option to log in with regular credentials setting this up

Comment thread website/integrations/chat-communication-collaboration/opencloud/index.mdx Outdated
@dewi-tik dewi-tik requested a review from dominic-r May 20, 2026 18:18
@dewi-tik dewi-tik added the area:docs Features or issues related to Docusaurus label May 20, 2026
@dewi-tik dewi-tik moved this from In Progress to Needs review in authentik Core May 20, 2026
```

:::info
`WEBFINGER_WEB_OIDC_CLIENT_ID` is required — the Web UI reads its client ID from WebFinger, and login will not start if it is empty.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`WEBFINGER_WEB_OIDC_CLIENT_ID` is required the Web UI reads its client ID from WebFinger, and login will not start if it is empty.
`WEBFINGER_WEB_OIDC_CLIENT_ID` is required as the Web UI reads its client ID from the WebFinger, and login will not start if it is empty.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"the Webfinger" is not proper english, that's like telling someone "read the client id from the authentik."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I replaced the emdash with as


## OpenCloud configuration

In the `opencloud-compose` project, enable the external IdP overlay in `COMPOSE_FILE`. This replaces OpenCloud's built-in IdP, so login goes through authentik only.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and that's by doing what's in L58. seems unclear

`WEBFINGER_WEB_OIDC_CLIENT_ID` is required — the Web UI reads its client ID from WebFinger, and login will not start if it is empty.
:::

Create `custom/authentik-roles.yml` to assign every user the default role:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if ur just adding env vars why not just add them to the env file instead

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is how they specify doing it in their docs so this is what I did

GRAPH_ASSIGN_DEFAULT_USER_ROLE: "true"
```

Recreate the stack:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

usually we don't include these commands

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed them and said to just reboot your docker containers


## Configuration verification

Open `https://opencloud.company` in a new browser window. You are redirected to authentik to log in, and after authenticating you are returned to OpenCloud.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just say open opencloud no need to add domain, especially if it's a placeholder

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer to leave it I think it's fine either direction but this is a bit more direct

- **Client ID**: the client's value from the table below.
- **Redirect URIs**: the client's value from the table below.
- **Signing Key**: select the **same** key for all four providers (the shared issuer exposes a single `jwks_uri`, so all clients' tokens must be signed by one key).
- **Scopes**: `openid`, `profile`, `email`, and `offline_access` (required for the desktop and mobile sync clients to receive a refresh token).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need
to justify scopes

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, why would there not be, I don't understand. I could not get this integration to work without offline_access and I don't understand how you would be able to skip this step

- **Client type**: `Public`
- **Client ID**: the client's value from the table below.
- **Redirect URIs**: the client's value from the table below.
- **Signing Key**: select the **same** key for all four providers (the shared issuer exposes a single `jwks_uri`, so all clients' tokens must be signed by one key).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need to justify and mabye just say Select the same available signing key for all platforms

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I don't understand why we wouldn't, we are setting up a proxy to share one provider's well-known in a location to represent all 4 of these providers, it's important to note. It's the whole reason I had to make this guide in the first place

- **Redirect URIs**: the client's value from the table below.
- **Signing Key**: select the **same** key for all four providers (the shared issuer exposes a single `jwks_uri`, so all clients' tokens must be signed by one key).
- **Scopes**: `openid`, `profile`, `email`, and `offline_access` (required for the desktop and mobile sync clients to receive a refresh token).
- **Issuer mode** (under **Advanced protocol settings**): `Same identifier is used for all providers`.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add section in previous line

  • Under Advanced proto settings:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved that up


## 3. OpenCloud configuration

In the `opencloud-compose` project, enable the external IdP overlay in `COMPOSE_FILE`. This replaces OpenCloud's built-in IdP, so login goes through authentik only.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ehhhh we repeat word for work what's in the web only section. we should restructure this doc as to not repeat ourselves

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There isn't really a good way to organize this to make that happen. The .env file for the web setup requires an application slug, the other .env file doesn't and has different urls.

The only thing that would kind of work is telling people to universally start with the authentik yml, then telling people to do some of opencloud, then go back to authentik, then go back to the .env for the web version, and I hate it when we do that in guides


## Resources

- [OpenCloud documentation](https://docs.opencloud.eu/)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we get the specific doc urls

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah good call, added

@github-project-automation github-project-automation Bot moved this from Needs review to In Progress in authentik Core May 20, 2026
PeshekDotDev and others added 4 commits May 20, 2026 13:41
…d/index.mdx

Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>
…d/index.mdx

Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>
…d/index.mdx

Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>
…d/index.mdx

Co-authored-by: Dewi Roberts <dewi@goauthentik.io>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>
@netlify
Copy link
Copy Markdown

netlify Bot commented May 20, 2026

Deploy Preview for authentik-storybook ready!

Name Link
🔨 Latest commit 65f6c55
🔍 Latest deploy log https://app.netlify.com/projects/authentik-storybook/deploys/6a0e007cdf28e000085faae3
😎 Deploy Preview https://deploy-preview-22497--authentik-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

PeshekDotDev and others added 2 commits May 20, 2026 14:17
…d/index.mdx

Co-authored-by: Dominic R <dominic@goauthentik.io>
Signed-off-by: Connor Peshek <connor@connorpeshek.me>
@PeshekDotDev
Copy link
Copy Markdown
Contributor Author

PeshekDotDev commented May 20, 2026

To @dominic-r 's point, the callout of Global issuer throughout feels a little weird, but we have zero documentation on the global and per-application issuer options for oauth providers. So there is no existing documentation to refer to or link to in order to better explain it, and this integration guide gets stuck doing a little bit of the heavy lifting of explaining what the global issuer option is. We should update the documentation to highlight this feature, but let me know what we want to do about this @dewi-tik and what you think

However, I think the document is ready for next rounds of review. All other feedback is handled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs Features or issues related to Docusaurus

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

Make OpenCloud integration guide

3 participants