nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ fetchFromGitHub, buildGoModule, jq, buildNpmPackage, lib, makeWrapper }:
2
3let
4 version = "0.13.1";
5 src = fetchFromGitHub {
6 owner = "usememos";
7 repo = "memos";
8 rev = "v${version}";
9 sha256 = "VUY81ir7cPtuHodJhkSz3bmnoIeQH20kbg+duDcjfwM=";
10 };
11
12 frontend = buildNpmPackage {
13 pname = "memos-web";
14 inherit version;
15
16 src = "${src}/web";
17
18 npmDepsHash = "sha256-36UcHE98dsGvYQWLIc/xgP8Q0IyJ7la0Qoo3lZqUcmw=";
19
20 postPatch = ''
21 cp ${./package-lock.json} package-lock.json
22 '';
23
24 installPhase = ''
25 cp -r dist $out
26 '';
27 };
28in
29buildGoModule rec {
30 pname = "memos";
31 inherit version src;
32
33 # check will unable to access network in sandbox
34 doCheck = false;
35 vendorSha256 = "sha256-OztHMpOj7Ewmxu+pzPmzmtHBDe1sbzj805In37mFjzU=";
36
37 # Inject frontend assets into go embed
38 prePatch = ''
39 rm -rf server/dist
40 cp -r ${frontend} server/dist
41 '';
42
43 passthru = {
44 updateScript = ./update.sh;
45 };
46
47 meta = with lib; {
48 homepage = "https://usememos.com";
49 description = "A lightweight, self-hosted memo hub";
50 maintainers = with maintainers; [ indexyz ];
51 license = licenses.mit;
52 };
53}