about summary refs log tree commit diff
path: root/users/Profpatsch/cas-serve/default.nix
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2022-07-17T16·22+0200
committerProfpatsch <mail@profpatsch.de>2022-07-17T17·00+0000
commitc04c66c637fbad1aa083595e7949bdfbba40780d (patch)
treec05426eebaf6eb6df01b9d86d235c9fb1e99f523 /users/Profpatsch/cas-serve/default.nix
parent2763a4ce0130b375ed65d90f38964cc59ccb3bc0 (diff)
feat(users/Profpatsch/cas-serve): init r/4304
A dumb little daemon that stores arbitrary files by content-hash, and
exposes a randomly generated URL by which the file can be fetched
again.

If the same file is uploaded twice, it will only be stored once.
CAS hashes are not exposed to the user, so they can’t figure out
whether a file they know is in the database.

Change-Id: Ie57bc09d429a9f31c8f0fc5f63f78d6a84d650f7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5952
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Diffstat (limited to 'users/Profpatsch/cas-serve/default.nix')
-rw-r--r--users/Profpatsch/cas-serve/default.nix27
1 files changed, 27 insertions, 0 deletions
diff --git a/users/Profpatsch/cas-serve/default.nix b/users/Profpatsch/cas-serve/default.nix
new file mode 100644
index 000000000000..2236e92c8e13
--- /dev/null
+++ b/users/Profpatsch/cas-serve/default.nix
@@ -0,0 +1,27 @@
+{ depot, pkgs, lib, ... }:
+
+let
+  cas-serve = pkgs.writers.writeHaskell "cas-serve"
+    {
+      libraries = [
+        pkgs.haskellPackages.wai
+        pkgs.haskellPackages.warp
+        pkgs.haskellPackages.sqlite-simple
+        depot.users.Profpatsch.my-prelude
+        (pkgs.haskell.lib.dontCheck
+          (pkgs.haskell.lib.overrideSrc pkgs.haskellPackages.superrecord {
+            src = pkgs.fetchFromGitHub {
+              owner = "Profpatsch";
+              repo = "superrecord";
+              rev = "c00e933f582e3fb8d209f6cece91d464faf09082";
+              sha256 = "sha256-UQ2wCoBpUEPcRsI7wNOFGH+vceKF4dcbbGHFVVTkOWw=";
+            };
+          }))
+
+      ];
+      ghcArgs = [ "-threaded" ];
+
+    } ./CasServe.hs;
+
+in
+cas-serve