diff --git a/.github/actions/comment-pr-instructions/action.yml b/.github/actions/comment-pr-instructions/action.yml
new file mode 100644
index 000000000..63c2c4066
--- /dev/null
+++ b/.github/actions/comment-pr-instructions/action.yml
@@ -0,0 +1,92 @@
+name: 'Comment usage instructions on PRs'
+description: 'Comment usage instructions on PRs'
+
+inputs:
+ tag:
+ description: "Image tag to pull"
+ required: true
+
+runs:
+ using: "composite"
+ steps:
+ - name: Generate config
+ id: ev
+ shell: python
+ run: |
+ """Helper script to get the actual branch name, docker safe"""
+ import os
+ from time import time
+
+ env_pr_branch = "GITHUB_HEAD_REF"
+ default_branch = "GITHUB_REF"
+ sha = "GITHUB_SHA"
+
+ branch_name = os.environ[default_branch]
+ if os.environ.get(env_pr_branch, "") != "":
+ branch_name = os.environ[env_pr_branch]
+
+ should_build = str(os.environ.get("DOCKER_USERNAME", "") != "").lower()
+
+ print("##[set-output name=branchName]%s" % branch_name)
+ print(
+ "##[set-output name=branchNameContainer]%s"
+ % branch_name.replace("refs/heads/", "").replace("/", "-")
+ )
+ print("##[set-output name=timestamp]%s" % int(time()))
+ print("##[set-output name=sha]%s" % os.environ[sha])
+ print("##[set-output name=shouldBuild]%s" % should_build)
+
+ import configparser
+ parser = configparser.ConfigParser()
+ parser.read(".bumpversion.cfg")
+ version = parser.get("bumpversion", "current_version")
+ version_family = ".".join(version.split(".")[:-1])
+ print("##[set-output name=version]%s" % version)
+ print("##[set-output name=versionFamily]%s" % version_family)
+ - name: Find Comment
+ uses: peter-evans/find-comment@v2
+ id: fc
+ with:
+ issue-number: ${{ github.event.pull_request.number }}
+ comment-author: 'github-actions[bot]'
+ body-includes: authentik PR Installation instructions
+ - name: Create or update comment
+ uses: peter-evans/create-or-update-comment@v2
+ with:
+ comment-id: ${{ steps.fc.outputs.comment-id }}
+ issue-number: ${{ github.event.pull_request.number }}
+ body: |
+ authentik PR Installation instructions
+
+
+ Instructions for docker-compose
+
+ Add the following block to your `.env` file:
+
+ ```shell
+ AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
+ AUTHENTIK_TAG=${{ inputs.tag }}
+ 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:
+
+ ```yaml
+ authentik:
+ outposts:
+ container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
+ image:
+ repository: ghcr.io/goauthentik/dev-server
+ tag: ${{ inputs.tag }}
+ # pullPolicy: Always to ensure you always get the latest version
+ pullPolicy: Always
+ ```
+
+ Afterwards, run the upgrade commands from the latest release notes.
+
+ edit-mode: replace
diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml
index b78ca402c..4700dcef7 100644
--- a/.github/workflows/ci-main.yml
+++ b/.github/workflows/ci-main.yml
@@ -235,3 +235,8 @@ jobs:
GIT_BUILD_HASH=${{ steps.ev.outputs.sha }}
VERSION_FAMILY=${{ steps.ev.outputs.versionFamily }}
platforms: ${{ matrix.arch }}
+ - name: Comment on PR
+ if: github.event_name == 'pull_request'
+ uses: ./.github/actions/comment-pr-instructions
+ with:
+ tag: gh-${{ steps.ev.outputs.branchNameContainer }}
diff --git a/website/docs/installation/beta.mdx b/website/docs/installation/beta.mdx
index 4b6554b61..5d2e4dc82 100644
--- a/website/docs/installation/beta.mdx
+++ b/website/docs/installation/beta.mdx
@@ -19,7 +19,7 @@ Add the following block to your `.env` file:
```shell
AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-next
-AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-next
+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.