Compare commits
9 commits
e2f3859b57
...
6feb1c4a3d
Author | SHA1 | Date | |
---|---|---|---|
6feb1c4a3d | |||
e68bea6809 | |||
ff0c4fa578 | |||
e3a6fa9808 | |||
21a1682af6 | |||
92736d64d6 | |||
49ac0ea8d2 | |||
3573b6c912 | |||
86902f30bd |
14 changed files with 6693 additions and 264 deletions
2
.envrc
Normal file
2
.envrc
Normal file
|
@ -0,0 +1,2 @@
|
|||
use flake
|
||||
watch_file flake.nix
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,6 +1,5 @@
|
|||
*.swp
|
||||
.direnv
|
||||
.envrc
|
||||
Deployments/syncserver.nix
|
||||
examples
|
||||
result
|
||||
|
|
6622
flake.lock
generated
Normal file
6622
flake.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
15
flake.nix
Normal file
15
flake.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
description = "mio-ops deployment";
|
||||
|
||||
inputs = {
|
||||
cardano-node.url = "github:input-output-hk/cardano-node/?ref=1.35.7";
|
||||
daedalus.url = "github:input-output-hk/daedalus/?ref=5.2.0";
|
||||
iohkNix.url = "github:input-output-hk/iohk-nix/?ref=df1da282f996ec46b33379407df99613a1fbafdd";
|
||||
nix.url = "github:NixOS/nix/?ref=2.13.3";
|
||||
nixpkgs.url = github:NixOS/nixpkgs/?ref=nixos-23.05;
|
||||
nixpkgsUnstable.url = github:NixOS/nixpkgs/?ref=nixos-unstable;
|
||||
utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = {...} @ args: import ./outputs.nix args;
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
{
|
||||
"cardano-node": {
|
||||
"branch": "refs/tags/1.35.7",
|
||||
"description": "The core component that is used to participate in a Cardano decentralised blockchain.",
|
||||
"homepage": "https://cardano.org",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "cardano-node",
|
||||
"rev": "f0b4ac897dcbefba9fa0d247b204a24543cf55f6",
|
||||
"sha256": "0s2jkj4mwl03hxg4ff9kyw41s32xbf31rnhag2m1qrglgsh8wzw9",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/input-output-hk/cardano-node/archive/f0b4ac897dcbefba9fa0d247b204a24543cf55f6.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"daedalus": {
|
||||
"branch": "release/5.2.0",
|
||||
"description": "The open source cryptocurrency wallet for ada, built to grow with the community",
|
||||
"homepage": "https://daedaluswallet.io/",
|
||||
"owner": "input-output-hk",
|
||||
"repo": "daedalus",
|
||||
"rev": "2990f5a44189097b3de2e7e7a19caa8062a8ae7b",
|
||||
"sha256": "1w2w7qfashbqimcywzvhh0z5jrlfaja04sgi6p5hp08adwad6r92",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/input-output-hk/daedalus/archive/2990f5a44189097b3de2e7e7a19caa8062a8ae7b.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"iohk-nix": {
|
||||
"branch": "master",
|
||||
"description": "nix scripts shared across projects",
|
||||
"homepage": null,
|
||||
"owner": "input-output-hk",
|
||||
"repo": "iohk-nix",
|
||||
"rev": "df1da282f996ec46b33379407df99613a1fbafdd",
|
||||
"sha256": "0vpcyrswxkynn2q37qsrhvf62whk2ijpcwqnamxcchcq6lwfpn0l",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/input-output-hk/iohk-nix/archive/df1da282f996ec46b33379407df99613a1fbafdd.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"mcwhirter-io": {
|
||||
"branch": "consensus",
|
||||
"rev": "a53a2f8a8a23eb0579ba6d0ec1c6e749bfcf8467",
|
||||
"sha256": "1b72841hbj6wqsb37ma4y148lx287qjmcbr9p1dbzras6k4xvdlz",
|
||||
"type": "tarball",
|
||||
"url": "https://source.mcwhirter.io/craige/mcwhirter.io/archive/a53a2f8a8a23eb0579ba6d0ec1c6e749bfcf8467.tar.gz",
|
||||
"url_template": "https://source.mcwhirter.io/craige/mcwhirter.io/archive/<rev>.tar.gz"
|
||||
},
|
||||
"niv": {
|
||||
"branch": "master",
|
||||
"description": "Easy dependency management for Nix projects",
|
||||
"homepage": "https://github.com/nmattia/niv",
|
||||
"owner": "nmattia",
|
||||
"repo": "niv",
|
||||
"rev": "82e5cd1ad3c387863f0545d7591512e76ab0fc41",
|
||||
"sha256": "090l219mzc0gi33i3psgph6s2pwsc8qy4lyrqjdj4qzkvmaj65a7",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nmattia/niv/archive/82e5cd1ad3c387863f0545d7591512e76ab0fc41.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nixos2111": {
|
||||
"branch": "nixos-21.11",
|
||||
"description": "Nix Packages collection",
|
||||
"homepage": "",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "63198c9ccefdbd337cef0d85db0ea2689f4ce418",
|
||||
"sha256": "05gc6xyv8a2dppngm1q44j85j769lr90lg20s6jv62gfg344i50r",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nixos/nixpkgs/archive/63198c9ccefdbd337cef0d85db0ea2689f4ce418.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nixpkgs": {
|
||||
"branch": "nixos-23.05",
|
||||
"builtin": false,
|
||||
"description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to",
|
||||
"homepage": "https://github.com/NixOS/nixpkgs",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6da4bc6cb07cba1b8e53d139cbf1d2fb8061d967",
|
||||
"sha256": "0jgcqcbj41g04w4b48c6z4x2mrjx41i36lp6rzh9h4r1cdm74prm",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/6da4bc6cb07cba1b8e53d139cbf1d2fb8061d967.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nixpkgsUnstable": {
|
||||
"branch": "nixos-unstable",
|
||||
"description": "Nix Packages collection",
|
||||
"homepage": "",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0",
|
||||
"sha256": "0f4f9xh4rkgk9in2hzwm371vahppdixbdb73ki1v5dq1r2iv015h",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nixos/nixpkgs/archive/da45bf6ec7bbcc5d1e14d3795c025199f28e0de0.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
}
|
||||
}
|
141
nix/sources.nix
141
nix/sources.nix
|
@ -1,141 +0,0 @@
|
|||
# This file has been generated by Niv.
|
||||
let
|
||||
#
|
||||
# The fetchers. fetch_<type> fetches specs of type <type>.
|
||||
#
|
||||
fetch_file = pkgs: spec:
|
||||
if spec.builtin or true
|
||||
then builtins_fetchurl {inherit (spec) url sha256;}
|
||||
else pkgs.fetchurl {inherit (spec) url sha256;};
|
||||
|
||||
fetch_tarball = pkgs: spec:
|
||||
if spec.builtin or true
|
||||
then builtins_fetchTarball {inherit (spec) url sha256;}
|
||||
else pkgs.fetchzip {inherit (spec) url sha256;};
|
||||
|
||||
fetch_git = spec:
|
||||
builtins.fetchGit {
|
||||
url = spec.repo;
|
||||
inherit (spec) rev ref;
|
||||
};
|
||||
|
||||
fetch_builtin-tarball = spec:
|
||||
builtins.trace ''
|
||||
WARNING:
|
||||
The niv type "builtin-tarball" will soon be deprecated. You should
|
||||
instead use `builtin = true`.
|
||||
|
||||
$ niv modify <package> -a type=tarball -a builtin=true
|
||||
''
|
||||
builtins_fetchTarball {inherit (spec) url sha256;};
|
||||
|
||||
fetch_builtin-url = spec:
|
||||
builtins.trace ''
|
||||
WARNING:
|
||||
The niv type "builtin-url" will soon be deprecated. You should
|
||||
instead use `builtin = true`.
|
||||
|
||||
$ niv modify <package> -a type=file -a builtin=true
|
||||
'' (builtins_fetchurl {inherit (spec) url sha256;});
|
||||
|
||||
#
|
||||
# Various helpers
|
||||
#
|
||||
|
||||
# The set of packages used when specs are fetched using non-builtins.
|
||||
mkPkgs = sources: let
|
||||
sourcesNixpkgs =
|
||||
import (builtins_fetchTarball {inherit (sources.nixpkgs) url sha256;})
|
||||
{};
|
||||
hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
|
||||
hasThisAsNixpkgsPath = <nixpkgs> == ./.;
|
||||
in
|
||||
if builtins.hasAttr "nixpkgs" sources
|
||||
then sourcesNixpkgs
|
||||
else if hasNixpkgsPath && !hasThisAsNixpkgsPath
|
||||
then import <nixpkgs> {}
|
||||
else
|
||||
abort ''
|
||||
Please specify either <nixpkgs> (through -I or NIX_PATH=nixpkgs=...) or
|
||||
add a package called "nixpkgs" to your sources.json.
|
||||
'';
|
||||
|
||||
# The actual fetching function.
|
||||
fetch = pkgs: name: spec:
|
||||
if !builtins.hasAttr "type" spec
|
||||
then abort "ERROR: niv spec ${name} does not have a 'type' attribute"
|
||||
else if spec.type == "file"
|
||||
then fetch_file pkgs spec
|
||||
else if spec.type == "tarball"
|
||||
then fetch_tarball pkgs spec
|
||||
else if spec.type == "git"
|
||||
then fetch_git spec
|
||||
else if spec.type == "builtin-tarball"
|
||||
then fetch_builtin-tarball spec
|
||||
else if spec.type == "builtin-url"
|
||||
then fetch_builtin-url spec
|
||||
else
|
||||
abort
|
||||
"ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}";
|
||||
|
||||
# Ports of functions for older nix versions
|
||||
|
||||
# a Nix version of mapAttrs if the built-in doesn't exist
|
||||
mapAttrs =
|
||||
builtins.mapAttrs
|
||||
or (f: set:
|
||||
with builtins;
|
||||
listToAttrs (map (attr: {
|
||||
name = attr;
|
||||
value = f attr set.${attr};
|
||||
}) (attrNames set)));
|
||||
|
||||
# fetchTarball version that is compatible between all the versions of Nix
|
||||
builtins_fetchTarball = {
|
||||
url,
|
||||
sha256,
|
||||
} @ attrs: let
|
||||
inherit (builtins) lessThan nixVersion fetchTarball;
|
||||
in
|
||||
if lessThan nixVersion "1.12"
|
||||
then fetchTarball {inherit url;}
|
||||
else fetchTarball attrs;
|
||||
|
||||
# fetchurl version that is compatible between all the versions of Nix
|
||||
builtins_fetchurl = {
|
||||
url,
|
||||
sha256,
|
||||
} @ attrs: let
|
||||
inherit (builtins) lessThan nixVersion fetchurl;
|
||||
in
|
||||
if lessThan nixVersion "1.12"
|
||||
then fetchurl {inherit url;}
|
||||
else fetchurl attrs;
|
||||
|
||||
# Create the final "sources" from the config
|
||||
mkSources = config:
|
||||
mapAttrs (name: spec:
|
||||
if builtins.hasAttr "outPath" spec
|
||||
then
|
||||
abort
|
||||
"The values in sources.json should not have an 'outPath' attribute"
|
||||
else spec // {outPath = fetch config.pkgs name spec;})
|
||||
config.sources;
|
||||
|
||||
# The "config" used by the fetchers
|
||||
mkConfig = {
|
||||
sourcesFile ? ./sources.json,
|
||||
sources ? builtins.fromJSON (builtins.readFile sourcesFile),
|
||||
pkgs ? mkPkgs sources,
|
||||
}: rec {
|
||||
# The sources, i.e. the attribute set of spec name to spec
|
||||
inherit sources;
|
||||
|
||||
# The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
|
||||
inherit pkgs;
|
||||
};
|
||||
in
|
||||
mkSources (mkConfig {})
|
||||
// {
|
||||
__functor = _: settings: mkSources (mkConfig settings);
|
||||
}
|
21
outputs.nix
Normal file
21
outputs.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
self,
|
||||
daedalus,
|
||||
nix,
|
||||
nixpkgs,
|
||||
nixpkgsUnstable,
|
||||
utils,
|
||||
...
|
||||
} @ inputs:
|
||||
(utils.lib.eachDefaultSystem (system: let
|
||||
pkgs = nixpkgs.legacyPackages."${system}";
|
||||
in {
|
||||
devShell =
|
||||
pkgs.callPackage
|
||||
./shell.nix {
|
||||
inherit (nix.packages."${pkgs.system}") nix;
|
||||
inherit (nixpkgsUnstable.legacyPackages."${pkgs.system}") alejandra;
|
||||
};
|
||||
}))
|
||||
// {
|
||||
}
|
|
@ -3,15 +3,15 @@
|
|||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
cardano-node,
|
||||
iohkNix,
|
||||
...
|
||||
}: let
|
||||
sources = import ../nix/sources.nix;
|
||||
cardanoNodeProject = import (sources.cardano-node + "/nix") {
|
||||
gitrev = sources.cardano-node.rev;
|
||||
cardanoNodeProject = import (cardano-node + "/nix") {
|
||||
gitrev = cardano-node.rev;
|
||||
};
|
||||
iohkNix = import (sources.iohk-nix) {};
|
||||
in {
|
||||
imports = [../secrets/cardano/producers.nix "${sources.cardano-node}/nix/nixos"];
|
||||
imports = [../secrets/cardano/producers.nix "${cardano-node.cardano-node}/nix/nixos"];
|
||||
|
||||
environment.systemPackages = [cardanoNodeProject.cardano-cli];
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
daedalus,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
sources = import ../nix/sources.nix;
|
||||
daedalusProject = import sources.daedalus {};
|
||||
daedalusProject = import daedalus.daedalus {};
|
||||
daedalusMainnet = daedalusProject.daedalus;
|
||||
#daedalusFlight = daedalusProject.daedalus {--argstr cluster mainnet_flight -o daedalusFlight};
|
||||
in {
|
||||
|
|
|
@ -3,12 +3,10 @@
|
|||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
sources,
|
||||
nixpkgsUnstable,
|
||||
...
|
||||
}: let
|
||||
sources = import ../nix/sources.nix;
|
||||
unstable = import sources.nixpkgsUnstable {};
|
||||
in {
|
||||
}:
|
||||
{
|
||||
services.gitea = {
|
||||
enable = true; # Enable Forgejo
|
||||
appName = "mcwhirter.io: Forgejo Service"; # Give the site a name
|
||||
|
@ -20,7 +18,7 @@ in {
|
|||
domain = "source.mcwhirter.io"; # Domain name
|
||||
rootUrl = "https://source.mcwhirter.io/"; # Root web URL
|
||||
httpPort = 3002; # Provided unique port
|
||||
package = unstable.forgejo; # a soft fork of gitea
|
||||
package = nixpkgsUnstable.forgejo; # a soft fork of gitea
|
||||
settings = let
|
||||
docutils = pkgs.python39.withPackages (ps:
|
||||
with ps; [
|
||||
|
|
|
@ -2,11 +2,9 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
nixpkgsUnstable,
|
||||
...
|
||||
}: let
|
||||
sources = import ../nix/sources.nix;
|
||||
unstable = import sources.nixpkgsUnstable {};
|
||||
in {
|
||||
}: {
|
||||
imports = [
|
||||
../profiles/minecraftClient.nix # Play Minecraft :-)
|
||||
];
|
||||
|
@ -20,7 +18,7 @@ in {
|
|||
freeciv # Multiplayer (or single player), turn-based strategy game
|
||||
freedroidrpg # Isometric 3D RPG similar to game Diablo
|
||||
gcompris # Educational software suite, kids aged 2 to 10
|
||||
unstable.grapejuice # Simple Wine+Roblox management tool
|
||||
nixpkgsUnstable.grapejuice # Simple Wine+Roblox management tool
|
||||
#lincity_ng # City building game
|
||||
meritous # Action-adventure dungeon crawl game
|
||||
minetest # Infinite-world block sandbox game
|
||||
|
|
|
@ -3,15 +3,13 @@
|
|||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
nix,
|
||||
...
|
||||
}: let
|
||||
sources = import ../nix/sources.nix;
|
||||
nixVersion = (import sources.nixpkgs {}).nixVersions.nix_2_13;
|
||||
in {
|
||||
}: {
|
||||
imports = [../profiles/terminal-recording.nix ../profiles/nix-direnv.nix];
|
||||
|
||||
nix = {
|
||||
package = nixVersion;
|
||||
package = nix;
|
||||
settings = {
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
|
|
|
@ -4,10 +4,7 @@
|
|||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
sources = import ../nix/sources.nix;
|
||||
nixpkgs2111 = (import sources.nixos2111 {}).pkgs;
|
||||
in {
|
||||
}: {
|
||||
imports = [
|
||||
../profiles/openssh.nix
|
||||
../secrets/user-craige.nix
|
||||
|
|
15
shell.nix
Normal file
15
shell.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
pkgs ? import <nixpkgs> {},
|
||||
mkShell,
|
||||
alejandra,
|
||||
nix,
|
||||
}:
|
||||
with pkgs;
|
||||
mkShell {
|
||||
buildInputs = [
|
||||
alejandra # The Uncompromising Nix Code Formatter
|
||||
nix # Powerful package manager, makes packaging reliable & reproducible
|
||||
tea # Gitea official CLI client
|
||||
treefmt # one CLI to format the code tree
|
||||
];
|
||||
}
|
Loading…
Add table
Reference in a new issue