diff --git a/build/bazel/go.MODULE.bazel b/build/bazel/go.MODULE.bazel
index 1a9285f..9d8c2b6 100644
--- a/build/bazel/go.MODULE.bazel
+++ b/build/bazel/go.MODULE.bazel
@@ -38,7 +38,6 @@
     "com_github_insomniacslk_dhcp",
     "com_github_joho_godotenv",
     "com_github_kballard_go_shellquote",
-    "com_github_kevinburke_go_bindata",
     "com_github_klauspost_compress",
     "com_github_lib_pq",
     "com_github_mattn_go_shellwords",
diff --git a/build/bindata/BUILD.bazel b/build/bindata/BUILD.bazel
deleted file mode 100644
index e69de29..0000000
--- a/build/bindata/BUILD.bazel
+++ /dev/null
diff --git a/build/bindata/README.md b/build/bindata/README.md
deleted file mode 100644
index e7cd8f1..0000000
--- a/build/bindata/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-##Bindata
-
-This rule uses [go-bindata](https://github.com/kevinburke/go-bindata) to package arbitrary go files.
-Please refer to the documentation there on how to use the packaged data.
-
-Generally this rule is very similar to the `bindata` rule in the default go bazel package.
-However this rule also creates an embeddable go library right away.
-
-###How to use
-
-Add the files you want to package to the `srcs` attribute, set the `package` attribute to the 
-go package you want the result to be in and embed the rule into a `go_library`.
-
-####Example: Packaging sql migrations
-
-These rules package all `.sql` files into the target and make it accessible at `importpath` in the package `models`. 
-```
-
-go_library(
-    name = "go_default_library",
-    embed = [
-        ":migrations_pack",
-    ],
-    importpath = "source.monogon.dev/golibs/minijob/generated/sql",
-    visibility = ["//visibility:public"],
-)
-
-bindata(
-    name = "migrations_pack",
-    package = "models",
-    srcs = glob(["*.sql"]),
-)
-
-```
diff --git a/build/bindata/bindata.bzl b/build/bindata/bindata.bzl
deleted file mode 100644
index a10b543..0000000
--- a/build/bindata/bindata.bzl
+++ /dev/null
@@ -1,78 +0,0 @@
-#  Copyright 2020 The Monogon Project Authors.
-#
-#  SPDX-License-Identifier: Apache-2.0
-#
-#  Licensed under the Apache License, Version 2.0 (the "License");
-#  you may not use this file except in compliance with the License.
-#  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-
-load(
-    "@io_bazel_rules_go//go:def.bzl",
-    "go_context",
-)
-
-def _bindata_impl(ctx):
-    out = ctx.actions.declare_file("bindata.go")
-
-    arguments = ctx.actions.args()
-    arguments.add_all([
-        "-pkg",
-        ctx.attr.package,
-        "-prefix",
-        ctx.label.workspace_root,
-        "-o",
-        out,
-    ])
-    arguments.add_all(ctx.files.srcs)
-
-    ctx.actions.run(
-        inputs = ctx.files.srcs,
-        outputs = [out],
-        executable = ctx.file.bindata,
-        arguments = [arguments],
-    )
-
-    go = go_context(ctx)
-
-    source_files = [out]
-
-    library = go.new_library(
-        go,
-        srcs = source_files,
-    )
-    source = go.library_to_source(go, None, library, False)
-    providers = [library, source]
-    output_groups = {
-        "go_generated_srcs": source_files,
-    }
-
-    return providers + [OutputGroupInfo(**output_groups)]
-
-bindata = rule(
-    implementation = _bindata_impl,
-    attrs = {
-        "srcs": attr.label_list(
-            mandatory = True,
-            allow_files = True,
-        ),
-        "package": attr.string(
-            mandatory = True,
-        ),
-        "bindata": attr.label(
-            allow_single_file = True,
-            default = Label("@com_github_kevinburke_go_bindata//go-bindata"),
-        ),
-        "_go_context_data": attr.label(
-            default = "@io_bazel_rules_go//:go_context_data",
-        ),
-    },
-    toolchains = ["@io_bazel_rules_go//go:toolchain"],
-)
diff --git a/build/sqlc/sqlc.bzl b/build/sqlc/sqlc.bzl
index cfaa3b1..985a301 100644
--- a/build/sqlc/sqlc.bzl
+++ b/build/sqlc/sqlc.bzl
@@ -55,8 +55,7 @@
     importpath_parts = ctx.attr.importpath.split("/")
     package_name = importpath_parts[-1]
 
-    # Split migrations into 'up' and 'down'. Only pass 'up' to sqlc. Use both
-    # to generate golang-migrate compatible bindata.
+    # Split migrations into 'up' and 'down'. Only pass 'up' to sqlc.
     uppers, _ = _parse_migrations(ctx.files.migrations)
 
     # Make sure given queries have no repeating basenames. This ensures clean
@@ -158,12 +157,6 @@
             executable = True,
             cfg = "exec",
         ),
-        "_bindata": attr.label(
-            default = Label("@com_github_kevinburke_go_bindata//go-bindata"),
-            allow_single_file = True,
-            executable = True,
-            cfg = "exec",
-        ),
     },
     toolchains = ["@io_bazel_rules_go//go:toolchain"],
 )
diff --git a/build/sqlc/tool-dep/gomod-generated-placeholder.go b/build/sqlc/tool-dep/gomod-generated-placeholder.go
index 5f3b39c..1f6e0f9 100644
--- a/build/sqlc/tool-dep/gomod-generated-placeholder.go
+++ b/build/sqlc/tool-dep/gomod-generated-placeholder.go
@@ -6,7 +6,6 @@
 package main
 
 import (
-	_ "github.com/kevinburke/go-bindata"
 	_ "github.com/sqlc-dev/sqlc/pkg/cli"
 )
 
diff --git a/go.mod b/go.mod
index bfa5c0e..495a3ba 100644
--- a/go.mod
+++ b/go.mod
@@ -86,7 +86,6 @@
 	github.com/insomniacslk/dhcp v0.0.0-20231016090811-6a2c8fbdcc1c
 	github.com/joho/godotenv v1.4.0
 	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
-	github.com/kevinburke/go-bindata v3.23.0+incompatible
 	github.com/lib/pq v1.10.9
 	github.com/mattn/go-shellwords v1.0.12
 	github.com/mdlayher/arp v0.0.0-20220512170110-6706a2966875
diff --git a/go.sum b/go.sum
index 3b5885c..4abc738 100644
--- a/go.sum
+++ b/go.sum
@@ -2688,8 +2688,6 @@
 github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
-github.com/kevinburke/go-bindata v3.23.0+incompatible h1:rqNOXZlqrYhMVVAsQx8wuc+LaA73YcfbQ407wAykyS8=
-github.com/kevinburke/go-bindata v3.23.0+incompatible/go.mod h1:/pEEZ72flUW2p0yi30bslSp9YqD9pysLxunQDdb2CPM=
 github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
 github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
