diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000..9613d26c
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,54 @@
+name: Build and Release Debian Package
+
+on:
+  push:
+    tags:
+      - "v*"
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout source code
+        uses: actions/checkout@v4
+
+      - name: Build Debian Package
+        uses: jtdor/build-deb-action@v1
+        env:
+          DEB_BUILD_OPTIONS: noautodbgsym
+        with:
+          docker-image: ubuntu:24.04          
+          buildpackage-opts: --build=binary --no-sign
+          # When change deb package name as git rev id
+          # before-build-hook: debchange --controlmaint --local="+ci${{ github.run_id }}~git$(git rev-parse --short HEAD)" "CI build"
+          extra-build-deps: devscripts git equivs debhelper build-essential libcurl4-openssl-dev libavahi-compat-libdnssd-dev libssl-dev gcc-12 g++-12 clang-14 libc++-dev libc++abi-dev libstdc++-12-dev cmake
+          host-arch: amd64
+          artifacts-dir: debian/artifacts
+
+      - name: Upload Debian Package
+        uses: actions/upload-artifact@v2
+        with:
+          name: debian-package
+          path: debian/artifacts/*.deb
+
+  release:
+    needs: build
+    runs-on: ubuntu-latest
+
+    steps:
+
+      - name: Download build artifacts
+        uses: actions/download-artifact@v2
+        with:
+          name: debian-package
+          path: .
+
+      - run: ls -R .
+
+      - name: Create GitHub Release
+        uses: softprops/action-gh-release@v1
+        with:
+          files: ./*.deb
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/debian/changelog b/debian/changelog
index 3349be55..62a68478 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-barrier (2.3.3+hamonikr2) stable; urgency=medium
+barrier (2.4.0+hamonikr1) stable; urgency=medium
 
   [Kevin Kim]
-  * Release for Ubuntu 22.04
+  * Release for Ubuntu 24.04
 
- -- HamoniKR <pkg@hamonikr.org>  Wed, 20 Sep 2023 16:29:06 +0900
+ -- HamoniKR <pkg@hamonikr.org>  Sat, 22 Jun 2024 09:42:05 +0900
 
 barrier (2.3.3+hamonikr1) kumkang; urgency=medium
 
diff --git a/debian/control b/debian/control
index b077617a..09ddbc59 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,18 @@ Priority: optional
 Standards-Version: 3.9.7
 Homepage: https://github.com/debauchee/barrier/
 Maintainer: Debauchee Open Source Group <todo@mail.com>
-Build-Depends: debhelper (>= 9), libcurl4-openssl-dev, libavahi-compat-libdnssd-dev
+Build-Depends: debhelper (>= 9), 
+               libcurl4-openssl-dev, 
+               libavahi-compat-libdnssd-dev,
+               libssl-dev,
+               gcc-12,
+               g++-12,
+               clang-14,
+               libc++-dev,
+               libc++abi-dev,
+               libstdc++-12-dev,
+               build-essential,
+               cmake
 
 Package: barrier
 Architecture: amd64
diff --git a/src/lib/base/String.h b/src/lib/base/String.h
index 9c5a53ba..faf35969 100644
--- a/src/lib/base/String.h
+++ b/src/lib/base/String.h
@@ -23,6 +23,7 @@
 
 #include <stdarg.h>
 #include <vector>
+#include <cstdint>
 
 // use standard C++ string class for our string class
 typedef std::string String;
diff --git a/src/lib/net/FingerprintData.h b/src/lib/net/FingerprintData.h
index 938a6953..8ab16314 100644
--- a/src/lib/net/FingerprintData.h
+++ b/src/lib/net/FingerprintData.h
@@ -20,6 +20,7 @@
 
 #include <string>
 #include <vector>
+#include <cstdint>
 
 namespace barrier {