diff --git a/.buildkite/tunnelbroker_build.yml b/.buildkite/tunnelbroker_build.yml
new file mode 100644
index 000000000..5b356e8f3
--- /dev/null
+++ b/.buildkite/tunnelbroker_build.yml
@@ -0,0 +1,4 @@
+steps:
+  - command: 'cd services && docker-compose build --no-cache tunnelbroker-server'
+    agents:
+      - 'autoscaling=true'
diff --git a/.github/workflows/tunnelbroker_build.yaml b/.github/workflows/tunnelbroker_build.yaml
new file mode 100644
index 000000000..ce0d6b3ba
--- /dev/null
+++ b/.github/workflows/tunnelbroker_build.yaml
@@ -0,0 +1,21 @@
+name: Tunnelbroker Build (Docker)
+
+on:
+  push:
+    branches: [master]
+    paths-ignore:
+      - 'landing/**'
+      - 'web/**'
+      - 'docs/**'
+      - 'keyserver/**'
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: docker-compose build --no-cache tunnelbroker-server
+        working-directory: ./services
+        run: docker-compose build --no-cache tunnelbroker-server