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: Beszel #12905

Merged
merged 12 commits into from
Mar 18, 2025
86 changes: 86 additions & 0 deletions website/integrations/services/beszel/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
title: Integrate with Beszel
sidebar_label: Beszel
---

# Integrate With Beszel

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

## What is Beszel

> Beszel is a lightweight server monitoring platform that provides Docker statistics, historical data, and configurable alerts.
> It features a user-friendly web interface, supports multi-user management, OAuth authentication, and offers a REST API for integration with other applications.
> Designed for simplicity, Beszel is easy to set up and operates efficiently without requiring public internet exposure.
>
> -- https://beszel.dev/
>
> This guide explains how to configure Beszel to use authentik as the OAuth provider for logging in to the Web GUI.

## Preparation

- `beszel.company` is the FQDN of the Beszel 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

The steps to configure authentik include creating an application and provider pair in authentik, obtaining the Client ID, Client Secret, and slug values, setting the redirect URI, and selecting a signing key.

1. Log in to authentik as an admin, and open the authentik Admin interface.
2. Navigate to **Applications** > **Applications** and click **Create with Provider** to create an application and provider pair.

- **Application**: provide a descriptive name ()`Beszel`), a slug (`beszel`), an optional group for the type of application, the policy engine mode, and optional UI settings.
- **Choose a Provider type**: OAuth2/OpenID
- **Configure the Provider**: provide a name (or accept the auto-provided name), the authorization flow to use for this provider, and any required configurations.
- Note the **Client ID**, **Client Secret**, and **slug** values because they will be required later.
- Set a `Strict` redirect URI to `https://pgadmin.company/oauth2/authorize`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- Set a `Strict` redirect URI to `https://pgadmin.company/oauth2/authorize`.
- Set a `Strict` redirect URI to `https://beszel.company/oauth2/authorize`.

Copy link
Contributor

Choose a reason for hiding this comment

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

make sure you got the right redir url too and kbd/em please. see slack for corrected ver

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- Set a `Strict` redirect URI to `https://pgadmin.company/oauth2/authorize`.
- Set a `Strict` redirect URI to <kbd>https://<em>beszel.company</em>/oauth2/authorize</kbd>.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

correct one would be this https://beszel.company/api/oauth2-redirect
I hope my edit on the file was done correctly, never done a suggestion for edit of a file on github

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks!

- Select any available signing key.
- **Configure Bindings** _(optional):_ you can create a [binding](https://docs.goauthentik.io/docs/add-secure-apps/flows-stages/bindings/) (policy, group, or user) to manage the listing and access to applications on a user’s \***\*My applications** \*_page_.\*

3. Click **Submit** to save the new application and provider.

:::note
Beszel uses PocketBase as its server backend, and when you install Beszel you automatically get Pocketbase as part of Beszel, so you do not need to separately integrate Pocketbase. You can find the PocketBase integration guide here: https://docs.goauthentik.io/integrations/services/pocketbase/.
:::

## Beszel configuration

1. Sign in to Beszel and access the superusers dashboard by navigating to <kbd>https://<em>beszel.company</em>/\_/#/settings</kbd>.
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>beszel.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`.
- 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

- Open your web browser and go to: <kbd>https://<em>beszel.company</em></kbd>.
- 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 <kbd>https://<em>beszel.company</em></kbd>.
- If you successfully return to the Beszel WebGUI, the login is working correctly.

## User Creation

1. Manually Creating Users:

- Users are not created automatically when logging in with authentik. The owner must manually create each user in Beszel.
- To create users, go to the System Settings where you configured OpenID Connect.
- The URL for user creation is: <kbd>https://<em>beszel.company</em>>/\_/#/collections?collection=pb_users_auth</kbd>.
- Click **+ New record** and enter the user's **email** (must match the authentik email address).

2. Automatically Creating Users:
- Set the following environment variable: **USER_CREATION=true**
- Depending on your deployment method, you can set this as a Docker environment variable or in the systemd service file.
1 change: 1 addition & 0 deletions website/sidebarsIntegrations.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ module.exports = {
type: "category",
label: "Monitoring",
items: [
"services/beszel/index",
"services/chronograf/index",
"services/gatus/index",
"services/glitchtip/index",
Expand Down
Loading