diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index 8ac66f132..6a792e182 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 2021.3.1-rc2
+current_version = 2021.3.1
 tag = True
 commit = True
 parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)\-?(?P<release>.*)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f0f5584c4..56b9790f2 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -18,11 +18,11 @@ jobs:
       - name: Building Docker Image
         run: docker build
           --no-cache
-          -t beryju/authentik:2021.3.1-rc2
+          -t beryju/authentik:2021.3.1
           -t beryju/authentik:latest
           -f Dockerfile .
       - name: Push Docker Container to Registry (versioned)
-        run: docker push beryju/authentik:2021.3.1-rc2
+        run: docker push beryju/authentik:2021.3.1
       - name: Push Docker Container to Registry (latest)
         run: docker push beryju/authentik:latest
   build-proxy:
@@ -48,11 +48,11 @@ jobs:
           cd outpost/
           docker build \
           --no-cache \
-          -t beryju/authentik-proxy:2021.3.1-rc2 \
+          -t beryju/authentik-proxy:2021.3.1 \
           -t beryju/authentik-proxy:latest \
           -f proxy.Dockerfile .
       - name: Push Docker Container to Registry (versioned)
-        run: docker push beryju/authentik-proxy:2021.3.1-rc2
+        run: docker push beryju/authentik-proxy:2021.3.1
       - name: Push Docker Container to Registry (latest)
         run: docker push beryju/authentik-proxy:latest
   build-static:
@@ -69,11 +69,11 @@ jobs:
           cd web/
           docker build \
           --no-cache \
-          -t beryju/authentik-static:2021.3.1-rc2 \
+          -t beryju/authentik-static:2021.3.1 \
           -t beryju/authentik-static:latest \
           -f Dockerfile .
       - name: Push Docker Container to Registry (versioned)
-        run: docker push beryju/authentik-static:2021.3.1-rc2
+        run: docker push beryju/authentik-static:2021.3.1
       - name: Push Docker Container to Registry (latest)
         run: docker push beryju/authentik-static:latest
   test-release:
@@ -107,5 +107,5 @@ jobs:
           SENTRY_PROJECT: authentik
           SENTRY_URL: https://sentry.beryju.org
         with:
-          tagName: 2021.3.1-rc2
+          tagName: 2021.3.1
           environment: beryjuorg-prod
diff --git a/authentik/__init__.py b/authentik/__init__.py
index 65c2b0b33..efa3bbbea 100644
--- a/authentik/__init__.py
+++ b/authentik/__init__.py
@@ -1,2 +1,2 @@
 """authentik"""
-__version__ = "2021.3.1-rc2"
+__version__ = "2021.3.1"
diff --git a/docker-compose.yml b/docker-compose.yml
index 63cf9d9ba..f48024949 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -19,7 +19,7 @@ services:
     networks:
       - internal
   server:
-    image: beryju/authentik:${AUTHENTIK_TAG:-2021.3.1-rc2}
+    image: beryju/authentik:${AUTHENTIK_TAG:-2021.3.1}
     command: server
     environment:
       AUTHENTIK_REDIS__HOST: redis
@@ -45,7 +45,7 @@ services:
     env_file:
       - .env
   worker:
-    image: beryju/authentik:${AUTHENTIK_TAG:-2021.3.1-rc2}
+    image: beryju/authentik:${AUTHENTIK_TAG:-2021.3.1}
     command: worker
     networks:
       - internal
@@ -62,7 +62,7 @@ services:
     env_file:
       - .env
   static:
-    image: beryju/authentik-static:${AUTHENTIK_TAG:-2021.3.1-rc2}
+    image: beryju/authentik-static:${AUTHENTIK_TAG:-2021.3.1}
     networks:
       - internal
     labels:
diff --git a/helm/Chart.yaml b/helm/Chart.yaml
index 031b8e7ba..eba815824 100644
--- a/helm/Chart.yaml
+++ b/helm/Chart.yaml
@@ -4,7 +4,7 @@ name: authentik
 home: https://goauthentik.io
 sources:
   - https://github.com/BeryJu/authentik
-version: "2021.3.1-rc2"
+version: "2021.3.1"
 icon: https://raw.githubusercontent.com/BeryJu/authentik/master/web/icons/icon.svg
 dependencies:
   - name: postgresql
diff --git a/helm/README.md b/helm/README.md
index 40f3c25f9..10b339331 100644
--- a/helm/README.md
+++ b/helm/README.md
@@ -4,7 +4,7 @@
 |-----------------------------------|-------------------------|-------------|
 | image.name                        | beryju/authentik        | Image used to run the authentik server and worker |
 | image.name_static                 | beryju/authentik-static | Image used to run the authentik static server (CSS and JS Files) |
-| image.tag                         | 2021.3.1-rc2           | Image tag |
+| image.tag                         | 2021.3.1           | Image tag |
 | image.pullPolicy                  | IfNotPresent            | Image Pull Policy used for all deployments |
 | serverReplicas                    | 1                       | Replicas for the Server deployment |
 | workerReplicas                    | 1                       | Replicas for the Worker deployment |
diff --git a/helm/values.yaml b/helm/values.yaml
index 760ae726d..9e09752dc 100644
--- a/helm/values.yaml
+++ b/helm/values.yaml
@@ -5,7 +5,7 @@ image:
   name: beryju/authentik
   name_static: beryju/authentik-static
   name_outposts: beryju/authentik # Prefix used for Outpost deployments, Outpost type and version is appended
-  tag: 2021.3.1-rc2
+  tag: 2021.3.1
   pullPolicy: IfNotPresent
 
 serverReplicas: 1
diff --git a/outpost/pkg/version.go b/outpost/pkg/version.go
index 23318aed4..d82624061 100644
--- a/outpost/pkg/version.go
+++ b/outpost/pkg/version.go
@@ -1,3 +1,3 @@
 package pkg
 
-const VERSION = "2021.3.1-rc2"
+const VERSION = "2021.3.1"
diff --git a/web/src/constants.ts b/web/src/constants.ts
index 9aab14e6b..b69f33106 100644
--- a/web/src/constants.ts
+++ b/web/src/constants.ts
@@ -3,5 +3,5 @@ export const SUCCESS_CLASS = "pf-m-success";
 export const ERROR_CLASS = "pf-m-danger";
 export const PROGRESS_CLASS = "pf-m-in-progress";
 export const CURRENT_CLASS = "pf-m-current";
-export const VERSION = "2021.3.1-rc2";
+export const VERSION = "2021.3.1";
 export const PAGE_SIZE = 20;
diff --git a/website/docs/installation/docker-compose.md b/website/docs/installation/docker-compose.md
index 640861c9c..f0170d274 100644
--- a/website/docs/installation/docker-compose.md
+++ b/website/docs/installation/docker-compose.md
@@ -16,7 +16,7 @@ Download the latest `docker-compose.yml` from [here](https://raw.githubuserconte
 
 To optionally enable error-reporting, run `echo AUTHENTIK_ERROR_REPORTING__ENABLED=true >> .env`
 
-To optionally deploy a different version run `echo AUTHENTIK_TAG=2021.3.1-rc2 >> .env`
+To optionally deploy a different version run `echo AUTHENTIK_TAG=2021.3.1 >> .env`
 
 If this is a fresh authentik install run the following commands to generate a password:
 
diff --git a/website/docs/installation/kubernetes.md b/website/docs/installation/kubernetes.md
index ec017389e..56e7ce62e 100644
--- a/website/docs/installation/kubernetes.md
+++ b/website/docs/installation/kubernetes.md
@@ -24,7 +24,7 @@ image:
     name: beryju/authentik
     name_static: beryju/authentik-static
     name_outposts: beryju/authentik # Prefix used for Outpost deployments, Outpost type and version is appended
-    tag: 2021.3.1-rc2
+    tag: 2021.3.1
 
 serverReplicas: 1
 workerReplicas: 1