diff --git a/.drone.yml b/.drone.yml
index a11f152d6..26726873b 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -65,7 +65,7 @@ steps:
 
   - name: checks-backend
     pull: always
-    image: golang:1.16
+    image: golang:1.17
     commands:
       - make checks-backend
     depends_on: [lint-backend]
@@ -93,7 +93,7 @@ steps:
     depends_on: [checks-backend]
 
   - name: build-backend-arm64
-    image: golang:1.16
+    image: golang:1.17
     environment:
       GO111MODULE: on
       GOPROXY: off
@@ -106,7 +106,7 @@ steps:
     depends_on: [checks-backend]
 
   - name: build-backend-windows
-    image: golang:1.16
+    image: golang:1.17
     environment:
       GO111MODULE: on
       GOPROXY: off
@@ -118,7 +118,7 @@ steps:
     depends_on: [checks-backend]
 
   - name: build-backend-386
-    image: golang:1.16
+    image: golang:1.17
     environment:
       GO111MODULE: on
       GOPROXY: off
@@ -193,7 +193,7 @@ steps:
 
   - name: build
     pull: always
-    image: golang:1.16
+    image: golang:1.17
     commands:
       - make backend
     environment:
@@ -208,7 +208,7 @@ steps:
       - git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
 
   - name: unit-test
-    image: golang:1.16
+    image: golang:1.17
     commands:
       - make unit-test-coverage test-check
     environment:
@@ -218,7 +218,7 @@ steps:
         from_secret: github_read_token
 
   - name: unit-test-race
-    image: golang:1.16
+    image: golang:1.17
     commands:
       - make test-backend
     environment:
@@ -230,7 +230,7 @@ steps:
 
   - name: unit-test-gogit
     pull: always
-    image: golang:1.16
+    image: golang:1.17
     commands:
       - make unit-test-coverage test-check
     environment:
@@ -277,7 +277,7 @@ steps:
       - build
 
   - name: generate-coverage
-    image: golang:1.16
+    image: golang:1.17
     commands:
       - make coverage
     environment:
@@ -351,7 +351,7 @@ steps:
 
   - name: build
     pull: always
-    image: golang:1.16
+    image: golang:1.17
     commands:
       - make backend
     environment:
@@ -463,7 +463,7 @@ trigger:
 
 steps:
   - name: download
-    image: golang:1.16
+    image: golang:1.17
     commands:
       - timeout -s ABRT 40m make generate-license generate-gitignore
 
diff --git a/Dockerfile b/Dockerfile
index 3445544a9..382f6f330 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,7 +1,7 @@
 
 ###################################
 #Build stage
-FROM golang:1.16-alpine3.13 AS build-env
+FROM golang:1.17-alpine3.13 AS build-env
 
 ARG GOPROXY
 ENV GOPROXY ${GOPROXY:-direct}
diff --git a/Dockerfile.rootless b/Dockerfile.rootless
index a0cc20095..64dd12bb6 100644
--- a/Dockerfile.rootless
+++ b/Dockerfile.rootless
@@ -1,7 +1,7 @@
 
 ###################################
 #Build stage
-FROM golang:1.16-alpine3.13 AS build-env
+FROM golang:1.17-alpine3.13 AS build-env
 
 ARG GOPROXY
 ENV GOPROXY ${GOPROXY:-direct}
diff --git a/Makefile b/Makefile
index de14ce6be..3cc9ff0cd 100644
--- a/Makefile
+++ b/Makefile
@@ -24,7 +24,7 @@ SHASUM ?= shasum -a 256
 HAS_GO = $(shell hash $(GO) > /dev/null 2>&1 && echo "GO" || echo "NOGO" )
 COMMA := ,
 
-XGO_VERSION := go-1.16.x
+XGO_VERSION := go-1.17.x
 MIN_GO_VERSION := 001016000
 MIN_NODE_VERSION := 012017000
 
diff --git a/docs/config.yaml b/docs/config.yaml
index a0f39987f..c4c507b99 100644
--- a/docs/config.yaml
+++ b/docs/config.yaml
@@ -20,7 +20,7 @@ params:
   website: https://docs.gitea.io
   version: 1.14.6
   minGoVersion: 1.16
-  goVersion: 1.16
+  goVersion: 1.17
   minNodeVersion: 12.17
 
 outputs: