diff --git a/Makefile b/Makefile
index 391311de0226f3a6ee9d9bc433067547e8d25cbe..0c22b256d7836199a9444d1486e843d301213f4d 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@ group=$(shell id -g -n)
 
 export GOBIN=$(PWD)/bin
 
-LD_FLAGS="-w -X $(REPO_PATH)/version.Version=$(VERSION)"
+LD_FLAGS="-w -X main.version=$(VERSION)"
 
 # Dependency versions
 GOLANGCI_VERSION = 1.32.2
diff --git a/cmd/dex/serve.go b/cmd/dex/serve.go
index 3f2df3ed6a8eab16ae96b16fd8cf10f5533b247b..aaf36b323caa98a0c4e1cdb0e95e3a0914f3972a 100644
--- a/cmd/dex/serve.go
+++ b/cmd/dex/serve.go
@@ -449,7 +449,7 @@ func runServe(options serveOptions) error {
 		}
 
 		grpcSrv := grpc.NewServer(grpcOptions...)
-		api.RegisterDexServer(grpcSrv, server.NewAPI(serverConfig.Storage, logger))
+		api.RegisterDexServer(grpcSrv, server.NewAPI(serverConfig.Storage, logger, version))
 
 		grpcMetrics.InitializeMetrics(grpcSrv)
 		if c.GRPC.Reflection {
diff --git a/cmd/dex/version.go b/cmd/dex/version.go
index de206e16d809e717bb4374e65ef6272a5f7482d1..99bd318b821d382e7e0f0c4d8656aac1d5cf6a60 100644
--- a/cmd/dex/version.go
+++ b/cmd/dex/version.go
@@ -5,10 +5,10 @@ import (
 	"runtime"
 
 	"github.com/spf13/cobra"
-
-	"github.com/dexidp/dex/version"
 )
 
+var version = "DEV"
+
 func commandVersion() *cobra.Command {
 	return &cobra.Command{
 		Use:   "version",
@@ -16,7 +16,7 @@ func commandVersion() *cobra.Command {
 		Run: func(_ *cobra.Command, _ []string) {
 			fmt.Printf(
 				"Dex Version: %s\nGo Version: %s\nGo OS/ARCH: %s %s\n",
-				version.Version,
+				version,
 				runtime.Version(),
 				runtime.GOOS,
 				runtime.GOARCH,
diff --git a/server/api.go b/server/api.go
index 5938efa6a6978e03acd0c0e8d5d5eb61c28c1397..a68742b3cc4af010a242e3914ba49e9a32b0963a 100644
--- a/server/api.go
+++ b/server/api.go
@@ -11,7 +11,6 @@ import (
 	"github.com/dexidp/dex/pkg/log"
 	"github.com/dexidp/dex/server/internal"
 	"github.com/dexidp/dex/storage"
-	"github.com/dexidp/dex/version"
 )
 
 // apiVersion increases every time a new call is added to the API. Clients should use this info
@@ -30,18 +29,20 @@ const (
 )
 
 // NewAPI returns a server which implements the gRPC API interface.
-func NewAPI(s storage.Storage, logger log.Logger) api.DexServer {
+func NewAPI(s storage.Storage, logger log.Logger, version string) api.DexServer {
 	return dexAPI{
-		s:      s,
-		logger: logger,
+		s:       s,
+		logger:  logger,
+		version: version,
 	}
 }
 
 type dexAPI struct {
 	api.UnimplementedDexServer
 
-	s      storage.Storage
-	logger log.Logger
+	s       storage.Storage
+	logger  log.Logger
+	version string
 }
 
 func (d dexAPI) CreateClient(ctx context.Context, req *api.CreateClientReq) (*api.CreateClientResp, error) {
@@ -223,7 +224,7 @@ func (d dexAPI) DeletePassword(ctx context.Context, req *api.DeletePasswordReq)
 
 func (d dexAPI) GetVersion(ctx context.Context, req *api.VersionReq) (*api.VersionResp, error) {
 	return &api.VersionResp{
-		Server: version.Version,
+		Server: d.version,
 		Api:    apiVersion,
 	}, nil
 }
diff --git a/server/api_test.go b/server/api_test.go
index e7725063a5291190eee7b8f57cc672a20da9fafb..020613402c38f317026383e91a3b018ed523951b 100644
--- a/server/api_test.go
+++ b/server/api_test.go
@@ -36,7 +36,7 @@ func newAPI(s storage.Storage, logger log.Logger, t *testing.T) *apiClient {
 	}
 
 	serv := grpc.NewServer()
-	api.RegisterDexServer(serv, NewAPI(s, logger))
+	api.RegisterDexServer(serv, NewAPI(s, logger, "test"))
 	go serv.Serve(l)
 
 	// Dial will retry automatically if the serv.Serve() goroutine
diff --git a/version/version.go b/version/version.go
deleted file mode 100644
index 04f684a57400eeec87fa3fac206b868555c156b2..0000000000000000000000000000000000000000
--- a/version/version.go
+++ /dev/null
@@ -1,5 +0,0 @@
-// Package version contains version information for this app.
-package version
-
-// Version is set by the build scripts.
-var Version = "was not built properly"