main
1{
2 inputs,
3 den,
4 lib,
5 ...
6}: {
7 flake-file.inputs.ncro = {
8 url = "github:manic-systems/ncro";
9 inputs.nixpkgs.follows = "nixpkgs";
10 };
11
12 den.aspects.core.nix.includes = [den.aspects.core.nix.substituters];
13 den.aspects.core.nix.substituters = {
14 cache = {
15 directories = [
16 {
17 directory = "/var/lib/private/ncro";
18 user = "nobody";
19 group = "nogroup";
20 mode = "0700";
21 }
22 ];
23 };
24
25 nixos = {config, ...}: {
26 imports = [inputs.ncro.nixosModules.ncro];
27
28 nix.settings = {
29 substituters = lib.mkForce ["http://${config.services.ncro.settings.server.listen}"];
30 trusted-public-keys = [
31 ];
32 };
33
34 services.ncro = {
35 enable = true;
36 settings = {
37 server = {
38 listen = "localhost:9000";
39 read_timeout = "30s";
40 write_timeout = "30s";
41 };
42 cache = {
43 db_path = "/var/lib/ncro/routes.db";
44 };
45 upstreams = [
46 {
47 url = "https://cache.nixos.org";
48 priority = 10;
49 public_key = "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=";
50 }
51 {
52 url = "https://nix-community.cachix.org";
53 priority = 10;
54 public_key = "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=";
55 }
56 {
57 url = "https://mirrors.ustc.edu.cn/nix-channels/store";
58 priority = 9;
59 }
60 {
61 url = "https://mirrors.tuna.tsinghua.edu.cn/nix-channels/store";
62 priority = 9;
63 }
64 {
65 url = "https://cache.flox.dev";
66 priority = 30;
67 public_key = "flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs=";
68 }
69 {
70 url = "https://cache.nixos-cuda.org";
71 priority = 31;
72 public_key = "cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M=";
73 }
74 {
75 url = "https://hpcesia-nur.cachix.org";
76 priority = 50;
77 public_key = "hpcesia-nur.cachix.org-1:/Fz990j/JffxBxEQ3QopyGGhH9uO8goHdSKZnzaQSWg=";
78 }
79 ];
80 };
81 };
82 };
83 };
84}