13 pname = "wireguard-ui";
16 src = fetchFromGitHub {
17 owner = "ngoduykhanh";
18 repo = "wireguard-ui";
19 rev = "refs/tags/v${version}";
20 hash = "sha256-fK7l9I2s0zSxG1g1oQ1KjJZUcypwS9DxnNN7lhVI+1s=";
25 url = "https://github.com/ngoduykhanh/wireguard-ui/commit/2fdafd34ca6c8f7f1415a3a1d89498bb575a7171.patch?full_index=1";
26 hash = "sha256-nq/TX+TKDB29NcPQ3pLWD0jcXubULuwqisn9IcEW8B8=";
30 offlineCache = fetchYarnDeps {
31 yarnLock = "${src}/yarn.lock";
32 hash = "sha256-ps/GtdtDKA3y5o1GZpRG+z08lSzk8d9zgxb95kjr/gc=";
35 vendorHash = "sha256-FTjZ6wf0ym6kFJ58Z3E3shmbq9SaMwlXWeueHQXwkX4=";
44 "-X main.appVersion=v${version}"
48 # This is what prepare_assets.sh do.
49 export HOME=$(mktemp -d)
50 yarn config --offline set yarn-offline-mirror "$offlineCache"
51 fixup-yarn-lock yarn.lock
52 yarn --offline install
54 mkdir -p "./assets/dist/js" "./assets/dist/css" && \
55 cp -r "./node_modules/admin-lte/dist/js/adminlte.min.js" "./assets/dist/js/adminlte.min.js" && \
56 cp -r "./node_modules/admin-lte/dist/css/adminlte.min.css" "./assets/dist/css/adminlte.min.css"
58 cp -r "./custom" "./assets"
60 mkdir -p "./assets/plugins" && \
61 cp -r "./node_modules/admin-lte/plugins/jquery" \
62 "./node_modules/admin-lte/plugins/fontawesome-free" \
63 "./node_modules/admin-lte/plugins/bootstrap" \
64 "./node_modules/admin-lte/plugins/icheck-bootstrap" \
65 "./node_modules/admin-lte/plugins/toastr" \
66 "./node_modules/admin-lte/plugins/jquery-validation" \
67 "./node_modules/admin-lte/plugins/select2" \
68 "./node_modules/jquery-tags-input" \
73 description = "Web user interface to manage your WireGuard setup";
74 changelog = "https://github.com/ngoduykhanh/wireguard-ui/releases/tag/v${version}";
75 homepage = "https://github.com/ngoduykhanh/wireguard-ui";
76 license = lib.licenses.mit;
77 platforms = lib.platforms.unix;
78 maintainers = with lib.maintainers; [ bot-wxt1221 ];
79 mainProgram = "wireguard-ui";