Compare commits

..

No commits in common. "3d2f4172a51ed920cb783a350f35058c19915465" and "2aac5b7731cf4f7ce8702c5655a0ba88956f641f" have entirely different histories.

6 changed files with 3 additions and 144 deletions

View file

@ -79,27 +79,6 @@
"type": "github"
}
},
"lem": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1784157266,
"narHash": "sha256-wRs7/KNxLTZpW/tYJg62dk8IvkT6BM4cmMUl4m8jWrc=",
"ref": "master",
"rev": "691458497c8e965be38ac06084b72d7a0167e541",
"revCount": 5,
"type": "git",
"url": "ssh://git@git.iscg.dev:2222/mikl/lem.git"
},
"original": {
"ref": "master",
"type": "git",
"url": "ssh://git@git.iscg.dev:2222/mikl/lem.git"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
@ -140,7 +119,6 @@
"inputs": {
"arion": "arion",
"home-manager": "home-manager",
"lem": "lem",
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs",
"sops-nix": "sops-nix"

View file

@ -23,17 +23,10 @@
url = "github:hercules-ci/arion";
inputs.nixpkgs.follows = "nixpkgs";
};
# Personal CLIs built from own repos
lem = {
# ssh fetch via flake; ssh key available to nix-daemon. Private repo.
url = "git+ssh://git@git.iscg.dev:2222/mikl/lem.git?ref=master";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ self, nixpkgs, nix-darwin, home-manager, sops-nix, arion, lem, ... }:
{ self, nixpkgs, nix-darwin, home-manager, sops-nix, arion, ... }:
let
mkNixos = hostname:
nixpkgs.lib.nixosSystem {
@ -52,7 +45,6 @@
# Серверные хосты используют минимульный home (headless).
# Десктоп-хосты (если появятся) могут переопределить users.mikl.
users.mikl = import ./home/server.nix;
extraSpecialArgs = { inputs = self.inputs; };
};
}
];
@ -70,7 +62,6 @@
useUserPackages = true;
backupFileExtension = "backup";
users.mikl = import ./home;
extraSpecialArgs = { inputs = self.inputs; };
};
}
];

View file

@ -1,4 +1,4 @@
{ pkgs, inputs, ... }:
{ pkgs, ... }:
{
# Universal CLI tools for all hosts
home.packages = with pkgs; [
@ -40,17 +40,9 @@
yt-dlp # скачивание с YouTube и 1000+ сайтов (эталонный CLI)
transmission_4 # BitTorrent: transmission-daemon + -remote + -create/show/edit CLI tools
himalaya # IMAP/SMTP/JMAP почтовый CLI (JSON-вывод для агента)
matrix-commander-rs # Matrix CLI клиент (E2E, JSON-вывод, для агента)
# x402 / MPP agentic payments CLI (Solana Foundation)
(pkgs.callPackage ./pay.nix {})
# Python (системный 3.9 macOS — слишком старый; ставим 3.13 через nix)
python313
uv
# Personal CLIs (from own flake inputs)
inputs.lem.packages.${pkgs.system}.default
];
# TODO: global npm/pnpm packages not managed by nix for now

View file

@ -1,76 +0,0 @@
# pay — official Solana Foundation CLI for x402 / MPP payments.
# Source: https://github.com/solana-foundation/pay (Rust, but we use upstream prebuilt binaries)
#
# Not in nixpkgs yet (fresh project). This derivation fetches the upstream
# prebuilt binary tarball per platform. Update `version` + hashes on bump.
{
stdenv,
fetchurl,
lib,
system ? builtins.currentSystem,
}:
let
version = "0.21.0";
tag = "pay-v${version}";
# platform -> (tarball name, sha256 of the tarball)
# Only fill hashes for platforms you actually target; others fall through to meta.broken.
srcInfo =
{
"aarch64-darwin" = {
name = "pay-aarch64-apple-darwin.tar.gz";
hash = "11c96191145381fea9c938969c14bbd6424bcdf51ef119374c4905fb51d0e265";
};
"x86_64-darwin" = {
name = "pay-x86_64-apple-darwin.tar.gz";
hash = lib.fakeSha256; # fill if needed
};
"aarch64-linux" = {
name = "pay-aarch64-unknown-linux-gnu.tar.gz";
hash = lib.fakeSha256; # fill if needed
};
"x86_64-linux" = {
name = "pay-x86_64-unknown-linux-gnu.tar.gz";
hash = lib.fakeSha256; # fill if needed
};
}
.${system} or (throw "pay: no prebuilt binary for system ${system}");
in
stdenv.mkDerivation {
pname = "pay";
inherit version;
src = fetchurl {
url = "https://github.com/solana-foundation/pay/releases/download/${tag}/${srcInfo.name}";
# hex sha256 (verified locally for aarch64-darwin tarball)
sha256 = srcInfo.hash;
};
sourceRoot = ".";
# tarball contains a single prebuilt `pay` binary at its root.
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
install -Dm555 pay $out/bin/pay
runHook postInstall
'';
# Upstream prebuilt; we trust the platform toolchain, no further stripping/patching needed.
dontStrip = true;
dontPatchELF = true;
meta = {
description = "Solana Foundation CLI for x402 / MPP agentic API payments";
homepage = "https://pay.sh/";
license = lib.licenses.mit;
mainProgram = "pay";
# Known-good prebuilts; add hashes above to enable more platforms.
platforms = lib.platforms.darwin ++ lib.platforms.linux;
badPlatforms = [
# explicit hashes still fakeHash -> nix will fail to build on these, which is fine
];
};
}

View file

@ -61,13 +61,6 @@ in {
# Matrix tuwunel (homeserver)
"iscg.dev".extraConfig = ''
# Static file sharing (https://iscg.dev/files/<name>).
# handle_path stripает /files/ prefix → file_server ищет в root.
# Не конфликтует с matrix (использует /_matrix/*, /.well-known/matrix).
handle_path /files/* {
root * /var/www/files
file_server
}
reverse_proxy 127.0.0.1:8008
encode zstd gzip
'';

View file

@ -20,31 +20,12 @@
nixpkgs.config.allowUnfree = true;
nix.enable = false;
# Автоматический сбор мусора: удалять пути старше 14 дней, по ночам в 3:00.
# nix.gc не работает с nix.enable=false, поэтому launchd-агент напрямую.
launchd.user.agents.nix-gc = {
serviceConfig = {
Label = "local.nix.gc";
ProgramArguments = [
"/nix/var/nix/profiles/default/bin/nix-collect-garbage"
"--delete-older-than"
"14d"
];
StartCalendarInterval = {
Weekday = 0;
Hour = 3;
};
StandardOutPath = "/tmp/nix-gc.log";
StandardErrorPath = "/tmp/nix-gc.log";
};
};
users.users.mikl = {
home = "/Users/mikl";
shell = pkgs.zsh;
};
environment.systemPackages = [ pkgs.vim pkgs.android-tools ];
environment.systemPackages = [ pkgs.vim ];
# Apply default apps via duti on activation
system.activationScripts.defaultApps.text = ''