Our Personal Data Server from scratch!
tranquil.farm
pds
rust
database
fun
oauth
atproto
1{
2 lib,
3 rustPlatform,
4 pkg-config,
5 openssl,
6 protobuf,
7}: let
8 toml = (lib.importTOML ./Cargo.toml).workspace.package;
9in rustPlatform.buildRustPackage {
10 pname = "tranquil-pds";
11 inherit (toml) version;
12
13 src = lib.fileset.toSource {
14 root = ./.;
15 fileset = lib.fileset.intersection (lib.fileset.fromSource (lib.sources.cleanSource ./.)) (
16 lib.fileset.unions [
17 ./Cargo.toml
18 ./Cargo.lock
19 ./crates
20 ./.sqlx
21 ./migrations
22 ]
23 );
24 };
25
26 nativeBuildInputs = [
27 pkg-config
28 protobuf
29 ];
30
31 buildInputs = [
32 openssl
33 ];
34
35 cargoLock = {
36 lockFile = ./Cargo.lock;
37 allowBuiltinFetchGit = true;
38 };
39
40 doCheck = false;
41
42 meta = {
43 license = lib.licenses.agpl3Plus;
44 mainProgram = "tranquil-server";
45 };
46}