diff --git a/manifest.dhall b/manifest.dhall
index 2429c29e4dd8476fb59bbac3cd0955b702a374f6..9c3c25977666d7a7d356cd46d8c332caab5ae2d9 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -761,6 +761,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "time-manager" "0.0.0"
     , callHackage "tls-session-manager" "0.0.4"
     , callHackage "tls" "1.6.0"
+    , callHackage "tmp-postgres" "1.34.1.0"
     , callHackage "transformers-base" "0.4.6"
     , callHackage "transformers-compat" "0.7.2"
     , callHackage "tree-diff" "0.2.2"
diff --git a/overlay.nix b/overlay.nix
index e7fe88938606dae1a2111bfe3cc69ce8c7525e0b..fc677b86a7afb3aa42f674fa5b2e9b3b0fd14f36 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -1165,6 +1165,8 @@ self: with pkgs.haskell.lib; {
 
   tls-session-manager = self.callPackage (./pkgs/tls-session-manager.nix) { };
 
+  tmp-postgres = self.callPackage (./pkgs/tmp-postgres.nix) { };
+
   transformers-base = self.callPackage (./pkgs/transformers-base.nix) { };
 
   transformers-compat = self.callPackage (./pkgs/transformers-compat.nix) { };
diff --git a/pkgs/tmp-postgres.nix b/pkgs/tmp-postgres.nix
new file mode 100644
index 0000000000000000000000000000000000000000..57a71b227d99822b669e32b628460e41d1d3970b
--- /dev/null
+++ b/pkgs/tmp-postgres.nix
@@ -0,0 +1,97 @@
+{ mkDerivation
+, ansi-wl-pprint
+, async
+, base
+, base64-bytestring
+, bytestring
+, containers
+, criterion
+, cryptohash-sha1
+, deepseq
+, directory
+, generic-monoid
+, hspec
+, lib
+, mtl
+, network
+, port-utils
+, postgres-options
+, postgresql-simple
+, process
+, stm
+, temporary
+, transformers
+, unix
+}:
+mkDerivation {
+  pname = "tmp-postgres";
+  version = "1.34.1.0";
+  sha256 = "98514428edaf527cc464cb9a30df89c6168c858e039ab1baf8293471196c3ba2";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    ansi-wl-pprint
+    async
+    base
+    base64-bytestring
+    bytestring
+    containers
+    cryptohash-sha1
+    deepseq
+    directory
+    generic-monoid
+    port-utils
+    postgres-options
+    postgresql-simple
+    process
+    stm
+    temporary
+    transformers
+    unix
+  ];
+  executableHaskellDepends = [
+    async
+    base
+    directory
+    postgres-options
+    postgresql-simple
+    process
+    temporary
+  ];
+  testHaskellDepends = [
+    async
+    base
+    containers
+    directory
+    generic-monoid
+    hspec
+    mtl
+    network
+    port-utils
+    postgres-options
+    postgresql-simple
+    process
+    temporary
+    unix
+  ];
+  benchmarkHaskellDepends = [
+    base
+    criterion
+    deepseq
+    postgres-options
+    postgresql-simple
+    temporary
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jfischoff/tmp-postgres#readme";
+  description = "Start and stop a temporary postgres";
+  license = lib.licenses.bsd3;
+  broken = false;
+}