nixos 25.11 #10
13 changed files with 465 additions and 84 deletions
|
|
@ -5,7 +5,7 @@ eventually as a tool for the decentralized management of the public mesh
|
|||
network in LA county by local volunteers. *minibase is not a linux
|
||||
distribution*, just a package set.
|
||||
|
||||
[no-se-vende]: https://github.com/curufuin/No-Se-Vende-Mesh?tab=readme-ov-file#no-se-vende-mesh
|
||||
[no-se-vende]: https://null.media/no-se-vende/
|
||||
|
||||
contact a volunteer for more information. make sure you are not sitting or
|
||||
standing on your informational flyer.
|
||||
|
|
|
|||
243
flake.lock
generated
243
flake.lock
generated
|
|
@ -1,12 +1,45 @@
|
|||
{
|
||||
"nodes": {
|
||||
"attic": {
|
||||
"inputs": {
|
||||
"crane": [
|
||||
"lanzaboote",
|
||||
"crane"
|
||||
],
|
||||
"flake-compat": [
|
||||
"lanzaboote",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-parts": [
|
||||
"flake-parts"
|
||||
],
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758711588,
|
||||
"narHash": "sha256-0nZlCCDC5PfndsQJXXtcyrtrfW49I3KadGMDlutzaGU=",
|
||||
"owner": "zhaofengli",
|
||||
"repo": "attic",
|
||||
"rev": "12cbeca141f46e1ade76728bce8adc447f2166c6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zhaofengli",
|
||||
"repo": "attic",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1731098351,
|
||||
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
|
||||
"lastModified": 1754269165,
|
||||
"narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
|
||||
"rev": "444e81206df3f7d92780680e45858e31d2f07a08",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -15,6 +48,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dream2nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"purescript-overlay": "purescript-overlay",
|
||||
"pyproject-nix": "pyproject-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764021028,
|
||||
"narHash": "sha256-4OlkDA0yJyqt5iTX9NqtHNghvkWNzYqmtX7FxDmEXt4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "dream2nix",
|
||||
"rev": "ee20942e4524d3458a91108716c847a2d4299d2e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "dream2nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -31,6 +86,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
|
|
@ -78,20 +149,35 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763992789,
|
||||
"narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=",
|
||||
"lastModified": 1764776959,
|
||||
"narHash": "sha256-d+5CGloq7Lo1u2SkzhF8oiOdUc6Z5emh22nTXUB9CFA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3",
|
||||
"rev": "e1680d594a9281651cbf7d126941a8c8e2396183",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"ref": "release-25.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"impermanence": {
|
||||
"locked": {
|
||||
"lastModified": 1737831083,
|
||||
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "impermanence",
|
||||
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "impermanence",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"import-tree": {
|
||||
"locked": {
|
||||
"lastModified": 1752730890,
|
||||
|
|
@ -108,7 +194,7 @@
|
|||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": [
|
||||
"flake-parts"
|
||||
],
|
||||
|
|
@ -119,20 +205,41 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737639419,
|
||||
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
|
||||
"lastModified": 1762205063,
|
||||
"narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
|
||||
"rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "v0.4.2",
|
||||
"ref": "v0.4.3",
|
||||
"repo": "lanzaboote",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"attic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737420293,
|
||||
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixlib": {
|
||||
"locked": {
|
||||
"lastModified": 1736643958,
|
||||
|
|
@ -156,11 +263,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751903740,
|
||||
"narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=",
|
||||
"lastModified": 1764234087,
|
||||
"narHash": "sha256-NHF7QWa0ZPT8hsJrvijREW3+nifmF2rTXgS2v0tpcEA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-generators",
|
||||
"rev": "032decf9db65efed428afd2fa39d80f7089085eb",
|
||||
"rev": "032a1878682fafe829edfcf5fdfad635a2efe748",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -171,16 +278,16 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1763948260,
|
||||
"narHash": "sha256-dY9qLD0H0zOUgU3vWacPY6Qc421BeQAfm8kBuBtPVE0=",
|
||||
"lastModified": 1764522689,
|
||||
"narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1c8ba8d3f7634acac4a2094eef7c32ad9106532c",
|
||||
"rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -202,16 +309,16 @@
|
|||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1730741070,
|
||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||
"lastModified": 1751741127,
|
||||
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
||||
"rev": "29e290002bfff26af1db6f64d070698019460302",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -226,15 +333,14 @@
|
|||
"nixpkgs": [
|
||||
"lanzaboote",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731363552,
|
||||
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -243,10 +349,57 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"purescript-overlay": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": [
|
||||
"dream2nix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"slimlock": "slimlock"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728546539,
|
||||
"narHash": "sha256-Sws7w0tlnjD+Bjck1nv29NjC5DbL6nH5auL9Ex9Iz2A=",
|
||||
"owner": "thomashoneyman",
|
||||
"repo": "purescript-overlay",
|
||||
"rev": "4ad4c15d07bd899d7346b331f377606631eb0ee4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "thomashoneyman",
|
||||
"repo": "purescript-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pyproject-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"dream2nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752481895,
|
||||
"narHash": "sha256-luVj97hIMpCbwhx3hWiRwjP2YvljWy8FM+4W9njDhLA=",
|
||||
"owner": "pyproject-nix",
|
||||
"repo": "pyproject.nix",
|
||||
"rev": "16ee295c25107a94e59a7fc7f2e5322851781162",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "pyproject-nix",
|
||||
"repo": "pyproject.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"attic": "attic",
|
||||
"dream2nix": "dream2nix",
|
||||
"flake-parts": "flake-parts",
|
||||
"home-manager": "home-manager",
|
||||
"impermanence": "impermanence",
|
||||
"import-tree": "import-tree",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nixos-generators": "nixos-generators",
|
||||
|
|
@ -263,11 +416,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731897198,
|
||||
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
|
||||
"lastModified": 1761791894,
|
||||
"narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
|
||||
"rev": "59c45eb69d9222a4362673141e00ff77842cd219",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -276,6 +429,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"slimlock": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"dream2nix",
|
||||
"purescript-overlay",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1688756706,
|
||||
"narHash": "sha256-xzkkMv3neJJJ89zo3o2ojp7nFeaZc2G0fYwNXNJRFlo=",
|
||||
"owner": "thomashoneyman",
|
||||
"repo": "slimlock",
|
||||
"rev": "cf72723f59e2340d24881fd7bf61cb113b4c407c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "thomashoneyman",
|
||||
"repo": "slimlock",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -283,11 +458,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764021963,
|
||||
"narHash": "sha256-1m84V2ROwNEbqeS9t37/mkry23GBhfMt8qb6aHHmjuc=",
|
||||
"lastModified": 1764483358,
|
||||
"narHash": "sha256-EyyvCzXoHrbL467YSsQBTWWg4sR96MH1sPpKoSOelB4=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "c482a1c1bbe030be6688ed7dc84f7213f304f1ec",
|
||||
"rev": "5aca6ff67264321d47856a2ed183729271107c9c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
22
flake.nix
22
flake.nix
|
|
@ -2,11 +2,12 @@
|
|||
description = "minibase(8) -- the nix/lix base for you";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
import-tree.url = "https://codeberg.org/xjix/import-tree/archive/main.tar.gz";
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote/v0.4.2";
|
||||
url = "github:nix-community/lanzaboote/v0.4.3";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-parts.follows = "flake-parts";
|
||||
};
|
||||
|
|
@ -19,7 +20,7 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager?ref=release-25.05";
|
||||
url = "github:nix-community/home-manager?ref=release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
terranix = {
|
||||
|
|
@ -27,6 +28,21 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-parts.follows = "flake-parts";
|
||||
};
|
||||
dream2nix = {
|
||||
url = "github:nix-community/dream2nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# microvm = {
|
||||
# url = "github:microvm-nix/microvm.nix";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
attic = {
|
||||
url = "github:zhaofengli/attic";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-parts.follows = "flake-parts";
|
||||
inputs.crane.follows = "lanzaboote/crane";
|
||||
inputs.flake-compat.follows = "lanzaboote/flake-compat";
|
||||
};
|
||||
};
|
||||
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,13 +3,6 @@ intro(8) -- welcome to minibase
|
|||
|
||||
minibase is a framework for building dependable static infrastructure.
|
||||
|
||||
a new approach to the minibase using [flakes] and [lix] for production uses,
|
||||
aiming to cooperate with [aux.computer] as they get off the ground.
|
||||
|
||||
[flakes]: https://nixos.wiki/wiki/flakes
|
||||
[lix]: https://lix.systems/add-to-config/#flake-based-configurations
|
||||
[aux.computer]: https://aux.computer/
|
||||
|
||||
minibase is NOT a linux distribution, we provide an opinionated set of modules
|
||||
that you can plug into your existing and future nixos installations. these are
|
||||
patterns for building secure local network services that you can easily setup
|
||||
|
|
@ -22,19 +15,11 @@ way to gain the needed experience! just don't expect to get everything right on
|
|||
the first try and only take on responsibilities that you can prove you can
|
||||
handle.
|
||||
|
||||
## organization
|
||||
|
||||
we categorize our operations by order of responsibility and aim to promote
|
||||
self-determination. `stations` are permanent public installations that provide
|
||||
services to their local area, these are managed by volunteers or a community
|
||||
interest group. `ships` are independent systems designed to pursue some specific
|
||||
interest. `entities` are fully mobile devices or systems operable by some `being`.
|
||||
|
||||
`entitites` may be registered with either a `station` or a `ship`. a `ship` may
|
||||
form certain types of peer relationships with a `station` or any other `ship`.
|
||||
|
||||
## getting started
|
||||
|
||||
a new approach to the minibase using [flakes] and [lix] for production uses,
|
||||
aiming to cooperate with [aux.computer] as they get off the ground.
|
||||
|
||||
before you start deploying, get your local environment running! the best
|
||||
reference is [installing lix], but linux and macos users can also just use the
|
||||
following snippet:
|
||||
|
|
@ -43,6 +28,32 @@ following snippet:
|
|||
curl -sSf -L https://install.lix.systems/lix | sh -s -- install
|
||||
```
|
||||
|
||||
next up, you can create or update a flake with our modules. our docs and modules
|
||||
are early and incomplete. please check back later.
|
||||
|
||||
```
|
||||
inputs = {
|
||||
minibase.url = "git+https://git.gay/tomo/minibase";
|
||||
nixpkgs.follows = "minibase/nixpkgs";
|
||||
};
|
||||
|
||||
outputs = inputs: {
|
||||
nixosConfigurations.my-machine = inputs.nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
inputs.minibase.nixosModules.lix
|
||||
inputs.minibase.nixosModules.minibase
|
||||
];
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
[flakes]: https://nixos.wiki/wiki/flakes
|
||||
[lix]: https://lix.systems/add-to-config/#flake-based-configurations
|
||||
[aux.computer]: https://aux.computer/
|
||||
[installing lix]: https://lix.systems/install/
|
||||
|
||||
## device support
|
||||
|
||||
We don't currently provide any install media, follow the upstream documentation
|
||||
for instructions. come back when you have a [working nixos system][install nix].
|
||||
|
||||
|
|
@ -52,13 +63,10 @@ for instructions. come back when you have a [working nixos system][install nix].
|
|||
> so we are also interested in efforts like [nixbsd], but we'll wait to see how
|
||||
> things play out for now.
|
||||
|
||||
[installing lix]: https://lix.systems/install/
|
||||
[install nix]: https://nixos.org/manual/nixos/stable/#ch-installation
|
||||
[switch to lix]: https://lix.systems/add-to-config/
|
||||
[nixbsd]: https://git.ix.cyb.red/ar/nixbsd
|
||||
|
||||
## device support
|
||||
|
||||
> [current works in progress](https://git.ix.cyb.red/pkgs/minibase/issues?q=&type=all&state=open&labels=91)
|
||||
> access to the development board is restricted. contact a volunteer for access.
|
||||
|
||||
|
|
@ -72,28 +80,7 @@ the guides are used as a starting point for minibase docs.
|
|||
all of the devices that we document here are actively used in production using
|
||||
this repo and the methods outlined in the wiki.
|
||||
|
||||
## what the tech?
|
||||
|
||||
not to go into too much detail, but these are some of the components that
|
||||
we're using.
|
||||
|
||||
* batman / babeld
|
||||
* briar
|
||||
* dark crystal
|
||||
* deploy-rs
|
||||
* i2p
|
||||
* nixos + lix
|
||||
* openwrt
|
||||
* secure scuttlebutt
|
||||
* sops-nix
|
||||
* yggdrasil
|
||||
|
||||
|
||||
## similar projects
|
||||
|
||||
- [freedombone](https://web.archive.org/web/20160714220051/http://freedombone.uk.to/)
|
||||
|
||||
## see also
|
||||
|
||||
booting(8) containers(8) nextcloud(8) ejabberd(8) hypergate(8) security(8)
|
||||
security(8) backups(8)
|
||||
|
||||
|
|
|
|||
36
man/backups.8.ronn
Normal file
36
man/backups.8.ronn
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
backups(8) -- keep it tight
|
||||
===========================
|
||||
|
||||
on a server,
|
||||
|
||||
```nix
|
||||
services.borgbackup.repos = {
|
||||
# setup *prefixes* for *devices*
|
||||
jenny = {
|
||||
allowSubRepos = true;
|
||||
authorizedKeys = [ config.minibase.keys."root@jenny.home" ];
|
||||
path = "/var/lib/backup/jenny";
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
on a client,
|
||||
|
||||
```nix
|
||||
services.borgbackup.jobs = {
|
||||
home-xj9 = {
|
||||
doInit = true;
|
||||
repo = "borg@backuphost:home-xj9";
|
||||
environment.BORG_RSH = "ssh -i /root/.ssh/id_ed25519";
|
||||
encryption.mode = "repokey-blake2";
|
||||
# make two copies of this secret, one here and one in your keepass
|
||||
encryption.passCommand = "cat ${config.sops.secrets."backup/jenny-home-xj9".path}";
|
||||
compression = "auto,lzma,6";
|
||||
startAt = "daily";
|
||||
persistentTimer = true;
|
||||
paths = [ "/home/xj9" ];
|
||||
exclude = [ ];
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
|
|
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
|||
export RONN_ORGANIZATION="Merveilles"
|
||||
export RONN_DATE=`date -I`
|
||||
|
||||
WEB_STYLE="man,80c,toc,print"
|
||||
WEB_STYLE="man,toc,print"
|
||||
OPTS="--style $WEB_STYLE"
|
||||
|
||||
mkdir -p dist/out dist/web
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ eventually as a tool for the decentralized management of the public mesh
|
|||
network in LA county by local volunteers. read intro(8) for a quick
|
||||
overview.
|
||||
|
||||
[no-se-vende]: https://github.com/curufuin/No-Se-Vende-Mesh?tab=readme-ov-file#no-se-vende-mesh
|
||||
[no-se-vende]: https://null.media/no-se-vende/
|
||||
|
||||
## SECTIONS
|
||||
|
||||
|
|
|
|||
24
man/public-mesh.8.ronn
Normal file
24
man/public-mesh.8.ronn
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
public-mesh(8) -- free internet for everyone!
|
||||
=============================================
|
||||
|
||||
developed to facilitate [no se vende mesh][no-se-vende] development and
|
||||
eventually as a tool for the decentralized management of the public mesh
|
||||
network in LA county by local volunteers. *minibase is not a linux
|
||||
distribution*, just a package set.
|
||||
|
||||
[no-se-vende]: https://null.media/no-se-vende/
|
||||
|
||||
contact a volunteer for more information. make sure you are not sitting or
|
||||
standing on your informational flyer.
|
||||
|
||||
## organization
|
||||
|
||||
we categorize our operations by order of responsibility and aim to promote
|
||||
self-determination. `stations` are permanent public installations that provide
|
||||
services to their local area, these are managed by volunteers or a community
|
||||
interest group. `ships` are independent systems designed to pursue some specific
|
||||
interest. `entities` are fully mobile devices or systems operable by some `being`.
|
||||
|
||||
`entitites` may be registered with either a `station` or a `ship`. a `ship` may
|
||||
form certain types of peer relationships with a `station` or any other `ship`.
|
||||
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
security(8)
|
||||
===========
|
||||
|
||||
`*.home`
|
||||
`*.sys`
|
||||
`*.sat`
|
||||
|
||||
## Data Classes
|
||||
|
||||
Data is categorized into 5 broad storage classes, ordered from most to least
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
minibase = config.packages;
|
||||
};
|
||||
packages = import ../packages {
|
||||
inherit (inputs) nixos-generators;
|
||||
inherit (inputs) nixos-generators dream2nix;
|
||||
inherit pkgs system;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,9 +1,30 @@
|
|||
{
|
||||
pkgs,
|
||||
nixos-generators,
|
||||
dream2nix,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
callDreamPackage =
|
||||
p: opts:
|
||||
dream2nix.lib.evalModules {
|
||||
packageSets.nixpkgs = pkgs;
|
||||
modules = [
|
||||
# Import our actual package definiton as a dream2nix module from ./default.nix
|
||||
(p + "/default.nix")
|
||||
{
|
||||
paths.package = p;
|
||||
# Aid dream2nix to find the project root. This setup should also works for mono
|
||||
# repos. If you only have a single project, the defaults should be good enough.
|
||||
paths.projectRoot = ./../.;
|
||||
# can be changed to ".git" or "flake.nix" to get rid of .project-root
|
||||
paths.projectRootFile = "flake.nix";
|
||||
}
|
||||
opts
|
||||
];
|
||||
};
|
||||
in
|
||||
with pkgs;
|
||||
rec {
|
||||
# meta
|
||||
|
|
@ -37,4 +58,7 @@ rec {
|
|||
|
||||
# net
|
||||
ether-wake = pkgs.callPackage ./net/ether-wake { };
|
||||
|
||||
# iot
|
||||
msmart = callDreamPackage ./iot/msmart { };
|
||||
}
|
||||
|
|
|
|||
27
packages/iot/msmart/default.nix
Normal file
27
packages/iot/msmart/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
dream2nix,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ dream2nix.modules.dream2nix.pip ];
|
||||
|
||||
deps =
|
||||
{ nixpkgs, ... }:
|
||||
{
|
||||
python = nixpkgs.python3;
|
||||
};
|
||||
|
||||
name = "msmart-ng";
|
||||
version = "2025.9.0";
|
||||
|
||||
buildPythonPackage = {
|
||||
format = "wheel";
|
||||
};
|
||||
|
||||
paths.lockFile = "lock.${config.deps.stdenv.system}.json";
|
||||
pip = {
|
||||
requirementsList = [ "${config.name}==${config.version}" ];
|
||||
};
|
||||
}
|
||||
88
packages/iot/msmart/lock.x86_64-linux.json
Normal file
88
packages/iot/msmart/lock.x86_64-linux.json
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{
|
||||
"fetchPipMetadata": {
|
||||
"sources": {
|
||||
"anyio": {
|
||||
"is_direct": false,
|
||||
"sha256": "dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl",
|
||||
"version": "4.12.0"
|
||||
},
|
||||
"certifi": {
|
||||
"is_direct": false,
|
||||
"sha256": "97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl",
|
||||
"version": "2025.11.12"
|
||||
},
|
||||
"h11": {
|
||||
"is_direct": false,
|
||||
"sha256": "63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl",
|
||||
"version": "0.16.0"
|
||||
},
|
||||
"httpcore": {
|
||||
"is_direct": false,
|
||||
"sha256": "2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl",
|
||||
"version": "1.0.9"
|
||||
},
|
||||
"httpx": {
|
||||
"is_direct": false,
|
||||
"sha256": "d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl",
|
||||
"version": "0.28.1"
|
||||
},
|
||||
"idna": {
|
||||
"is_direct": false,
|
||||
"sha256": "771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl",
|
||||
"version": "3.11"
|
||||
},
|
||||
"msmart-ng": {
|
||||
"is_direct": false,
|
||||
"sha256": "2a495a73fe2fd70fb0871275c6faad60231dd732ff72002b5a55fc92e28cb29d",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/b1/c2/eba87976e5b5dbe8d7bcdb5f32bbc604c1e20e30044b5c61998268aa39c9/msmart_ng-2025.9.0-py3-none-any.whl",
|
||||
"version": "2025.9.0"
|
||||
},
|
||||
"pycryptodome": {
|
||||
"is_direct": false,
|
||||
"sha256": "c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575",
|
||||
"type": "url",
|
||||
"url": "https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
|
||||
"version": "3.23.0"
|
||||
}
|
||||
},
|
||||
"targets": {
|
||||
"default": {
|
||||
"anyio": [
|
||||
"idna"
|
||||
],
|
||||
"certifi": [],
|
||||
"h11": [],
|
||||
"httpcore": [
|
||||
"certifi",
|
||||
"h11"
|
||||
],
|
||||
"httpx": [
|
||||
"anyio",
|
||||
"certifi",
|
||||
"httpcore",
|
||||
"idna"
|
||||
],
|
||||
"idna": [],
|
||||
"msmart-ng": [
|
||||
"httpx",
|
||||
"pycryptodome"
|
||||
],
|
||||
"pycryptodome": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"invalidationHash": "d5dbacbc11ed0b69b65ce30d25faa61f75de8457848b2f3c0b66f8b02c334b14"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue