diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9da446bf6770fedcfd16d91b4e0573419146522e..d72274a23a84649e474d634dcda6e86a0146cec4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,7 +17,7 @@ build_test:
     - cd ${APP_PATH}
     - go get .
     - go test ./...
-    - go build
+    - make build
   tags:
     - linux
   artifacts:
diff --git a/Makefile b/Makefile
index f4783000cec41750f879f1a8fe3069e766aca206..a93bf5ea4309e084275efc43116056d77243b3af 100644
--- a/Makefile
+++ b/Makefile
@@ -2,8 +2,8 @@
 
 all: icon locales build
 
-build: icon catalog.go
-	go build
+build:
+	go build -ldflags "-X main.version=`git describe --tags`"
 
 clean:
 	make -C icon clean
diff --git a/main.go b/main.go
index 146a8147b7fe291a3726f3d9aba079900831b88b..503d4ffb08301a1f2ddbec38a68ea6b4ff34a8d5 100644
--- a/main.go
+++ b/main.go
@@ -16,6 +16,8 @@
 package main
 
 import (
+	"flag"
+	"fmt"
 	"log"
 	"os"
 
@@ -29,9 +31,17 @@ const (
 	applicationName = "RiseupVPN"
 )
 
+var version string
 var printer *message.Printer
 
 func main() {
+	versionFlag := flag.Bool("version", false, "Version of the bitmask-systray")
+	flag.Parse()
+	if *versionFlag {
+		fmt.Println(version)
+		os.Exit(0)
+	}
+
 	if _, err := os.Stat(bitmask.ConfigPath); os.IsNotExist(err) {
 		os.MkdirAll(bitmask.ConfigPath, os.ModePerm)
 	}