Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

website/integrations: Pocketbase #12906

Open
wants to merge 20 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions website/integrations/services/pocketbase/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
title: Integrate with PocketBase
sidebar_label: PocketBase
---

# Integrate With PocketBase

<span class="badge badge--secondary">Support level: Community</span>

## What is PocketBase

> PocketBase is a lightweight backend solution that provides a built-in database, authentication, and file storage.
> It allows developers to quickly set up and manage backend services without complex configurations.
> With its simple API and easy-to-use dashboard, it's perfect for small projects, prototypes, or even full-scale applications.
>
> -- https://pocketbase.io/
>
> This guide explains how to configure PocketBase to use authentik as the OAuth provider for logging in to the Web GUI.
nicedevil007 marked this conversation as resolved.
Show resolved Hide resolved

:::note
If you are using an application that relies on PocketBase as its backend, you can replace the placeholders used here with the application's name.
:::

## Preparation

The following placeholders are used in this guide:

- `pocketbase.company` is the FQDN of the PocketBase installation.
- `authentik.company` is the FQDN of the authentik installation.

:::note
This documentation lists only the settings that you need to change from their default values. Be aware that any changes other than those explicitly mentioned in this guide could cause issues accessing your application.
:::

## authentik configuration
Copy link
Contributor

Choose a reason for hiding this comment

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

Note to tana: This should be left as-is for now and I'll update format /button names later on.


Start the wizard for adding a new application.

**1. Application:**

- Name: `PocketBase`
- Slug: `pocketbase`

**2. Choose a Provider**

Select `OAuth2/OpenID Provider`

**3. Configure Provider**

Select implicit or explicit authorization flow as desired.

Take note of the Client ID and Client Secret, you'll need to give them to PocketBase later.

- Redirect URIs/Origins (RegEx): `https://_pocketbase.company_/api/oauth2-redirect`
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see anything in this redirect URI that would warrant it to be set to "regex" instead of "strict". It's best to set it to "strict" unless absolutely needed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi and thank you for your Review. Maybe it my wrong understanding of the Wiki about contribution but I used all "placeholder variables" in italic Font. I switched between different Write options now through my last PRs and Never know what is wanted and what Not.

Can someone clear this up?

  • bold stuff for things on the SP side that can be found on the gui f.e.
  • itatlic for placeholders

That is what I understood so far. Now it seems to be yet another new formatation here. I get more and more confused.

Copy link
Contributor

Choose a reason for hiding this comment

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

The Fonts & Fonts styling section of our style guide gives an overview of what's expected. What do you mean by "new formatation here"?

Italic is to be used for variables, yes. Bold for stuff found in the GUI, yes. URLs should be in a codeblock and variables in them should be italicized and the easiest way to do that is the suggestion I gave.

Copy link
Contributor Author

@nicedevil007 nicedevil007 Feb 1, 2025

Choose a reason for hiding this comment

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

I mean this Part of the Guide

Use italic font for variables or placeholders to make it clear they need to be replaced. Choose placeholder names that highlight their purpose, ensuring users understand what to update.


Thank you for making this clear now :) So I can Go oder my last PRs to Match this Styling :) Will take a Bit of time, but I Like have it "the same" on everything

Copy link
Contributor

@dominic-r dominic-r Feb 1, 2025

Choose a reason for hiding this comment

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

Could you also address the original review comment? Thanks

I don't see anything in this redirect URI that would warrant it to be set to "regex" instead of "strict". It's best to set it to "strict" unless absolutely needed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe I copy Pasted wrong line and it was Late at Night. Will get to it tomorrow. But I guess you are right :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So I always wrote it like the menu entry is in authentik:
image

"Redirect URIs/Origins (RegEx)" is the setting we have to set. But it doesn't mean that we should choose RegEx on the dropdown, so how should I do it now?

- Signing Key: Select any available signing keys.

Leave the rest as default values.

## PocketBase configuration

1. Sign in to PocketBase and access the superusers dashboard by navigating to <kbd>https://<em>pocketbase.company<em>/_/#/settings</kbd>.
nicedevil007 marked this conversation as resolved.
Show resolved Hide resolved

2. Toggle off **Hide collection create and edit controls**," then click the **Save changes** button.

3. Open the **users** collection by clicking the **Collections** icon on the sidebar or head to <kbd>https://<em>pocketbase.company</em>/_/#/collections?collection=pb_users_auth</kbd>.

4. Click the gear icon next to the collection's name, then select the **Options** tab in the popup on the right.

5. Enable the **OAuth2** authentication method by clicking the **OAuth2** tab and toggling **Enable**.

6. Click **+ Add provider**, then select **OpenID Connect**.

7. Enter the following details from the authentik provider:
- Set **Client ID** to the Client ID copied from authentik.
- Set **Client secret** to the Client Secret copied from authentik.
- Set **Display name** to **authentik**
nicedevil007 marked this conversation as resolved.
Show resolved Hide resolved
- Set **Auth URL** to <kbd>https://<em>authentik.company</em>/application/o/authorize/</kbd>.
- Set **Token URL** to <kbd>https://<em>authentik.company</em>/application/o/token/</kbd>.
- Make sure **Fetch user info from** is set to `User info URL`, then set **User info URL** to <kbd>https://<em>authentik.company</em>/application/o/userinfo/</kbd>

## Test the login
nicedevil007 marked this conversation as resolved.
Show resolved Hide resolved

- Open your web browser and go to: https://_pocketbase.company_/#/login.
- Click **authentik** to log in.
- You should be redirected to authentik (following the login flow you configured). After logging in, authentik will redirect you back to https://_pocketbase.company_.
- If you successfully return to the PocketBase WebGUI, the login is working correctly.
1 change: 1 addition & 0 deletions website/sidebarsIntegrations.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ module.exports = {
label: "Platforms",
items: [
"services/budibase/index",
"services/pocketbase/index",
"services/wordpress/index",
],
},
Expand Down
Loading