diff --git a/paymentserver.nix b/paymentserver.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f5f8f53b04610bf52e8c245b880192568cb31c30
--- /dev/null
+++ b/paymentserver.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, aeson, base, containers, cryptonite, data-default
+, optparse-applicative, ristretto, servant, servant-server, stdenv
+, stripe-core, text, wai, wai-extra, warp
+}:
+mkDerivation {
+  pname = "PaymentServer";
+  version = "0.1.0.0";
+  src = ./.;
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson base containers cryptonite data-default optparse-applicative
+    servant servant-server stripe-core text wai wai-extra warp
+  ];
+  libraryPkgconfigDepends = [ ristretto ];
+  executableHaskellDepends = [ base text ];
+  homepage = "https://github.com/privatestorageio/PaymentServer#readme";
+  description = "Coordinate entities for the purchase of PrivateStorage.io vouchers.";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/shell.nix b/shell.nix
index b474e0029a87c9da6fcdec474f80089c1aa05a2c..6c160c4f7fc8720c54d8afe943bb24d28210535b 100644
--- a/shell.nix
+++ b/shell.nix
@@ -2,5 +2,6 @@
 pkgs.mkShell {
   buildInputs = [
     pkgs.stack
+    pkgs.cabal2nix
   ];
 }