mirror of
https://github.com/oqyude/nixos.git
synced 2026-08-08 23:53:11 +03:00
Compare commits
27
Commits
521d922961
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe391211c4 | ||
|
|
27d81a27e2 | ||
|
|
cedc856a02 | ||
|
|
5f6288bd15 | ||
|
|
682ab4aa01 | ||
|
|
f61d45a279 | ||
|
|
caad27900b | ||
|
|
1841f9394c | ||
|
|
d5d62393e3 | ||
|
|
58c6e5d48e | ||
|
|
566bc12f00 | ||
|
|
bc9b2dc792 | ||
|
|
af90756661 | ||
|
|
1856f9e4fd | ||
|
|
6b426eaa55 | ||
|
|
8434688515 | ||
|
|
2a8b15ce01 | ||
|
|
30bf6f8da6 | ||
|
|
c846fa2321 | ||
|
|
38948e0462 | ||
|
|
c9b15dea59 | ||
|
|
868fa7cdd7 | ||
|
|
cb502e8972 | ||
|
|
5739ccfcaf | ||
|
|
1f1b6efdf0 | ||
|
|
f1ac4662fd | ||
|
|
63c46c80ef |
@@ -1 +1,2 @@
|
||||
.vscode
|
||||
.omo
|
||||
@@ -9,4 +9,10 @@
|
||||
sapphira = import ./server.nix flakeContext; # sapphira
|
||||
wsl = import ./wsl.nix flakeContext; # wsl
|
||||
};
|
||||
nixOnDroidConfigurations = {
|
||||
epral = import ./mobile.nix flakeContext; # epral (Android via nix-on-droid)
|
||||
# Alias so a plain `nix-on-droid switch` from a local clone
|
||||
# (~/.config/nix-on-droid) picks up the device config without `#epral`.
|
||||
default = import ./mobile.nix flakeContext;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
kernel = {
|
||||
sysctl = {
|
||||
"fs.inotify.max_user_watches" = "204800";
|
||||
"net.ipv4.ip_forward" = 1;
|
||||
};
|
||||
};
|
||||
kernelModules = [
|
||||
|
||||
@@ -68,7 +68,6 @@ let
|
||||
|
||||
boot = {
|
||||
kernelPackages = lib.mkDefault pkgs.linuxPackages_xanmod_stable;
|
||||
#kernelParams = [ "usbcore.autosuspend=-1" ];
|
||||
loader = {
|
||||
systemd-boot.enable = lib.mkDefault true;
|
||||
efi.canTouchEfiVariables = lib.mkDefault true;
|
||||
@@ -79,8 +78,6 @@ let
|
||||
bluetooth.enable = true;
|
||||
};
|
||||
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
networking = {
|
||||
hostName = "${xlib.device.hostname}";
|
||||
networkmanager.enable = true;
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}@flakeContext:
|
||||
let
|
||||
# Host: epral (Android device via nix-on-droid, aarch64-linux)
|
||||
# Integrates with the base defaultModule (imports.self.nixosModules.default),
|
||||
# which is trimmed for the "termux" device type: NixOS-only modules
|
||||
# (essentials, users.nix, home-manager, sops-nix, disko, grub2-themes)
|
||||
# and nixpkgs.overlays are skipped so it evaluates under nix-on-droid's
|
||||
# module system (class = "nixOnDroid").
|
||||
nixOnDroidModule =
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.self.nixosModules.strict
|
||||
];
|
||||
|
||||
xlib.device = {
|
||||
type = "termux";
|
||||
hostname = "epral";
|
||||
};
|
||||
|
||||
# Login shell. nix-on-droid writes /etc/passwd from user.shell on every
|
||||
# activation, so `chsh` is useless here — set it in nix instead.
|
||||
# (default is bashInteractive)
|
||||
user.shell = "${pkgs.zsh}/bin/zsh";
|
||||
|
||||
# SSH user (matches `User oqyude` in the client's ~/.ssh/config).
|
||||
# Default is "nix-on-droid"; home stays at the read-only
|
||||
# /data/data/com.termux.nix/files/home either way.
|
||||
user.userName = "oqyude";
|
||||
|
||||
# Minimal termux settings (nix-on-droid options only:
|
||||
# environment.*, nix.*, time.*, user.*, system.*, android-integration.*)
|
||||
|
||||
# user.userName defaults to "nix-on-droid"; set it to override.
|
||||
# user.home is read-only: /data/data/com.termux.nix/files/home
|
||||
|
||||
# Simply install just the packages
|
||||
environment.packages = with pkgs; [
|
||||
# User-facing stuff that you really really want to have
|
||||
vim # or some other editor, e.g. nano or neovim
|
||||
nano
|
||||
|
||||
# Some common stuff that people expect to have
|
||||
bzip2
|
||||
diffutils
|
||||
findutils
|
||||
git
|
||||
gnugrep
|
||||
gnupg
|
||||
gnused
|
||||
gnutar
|
||||
gzip
|
||||
hostname
|
||||
man
|
||||
ncurses
|
||||
openssh
|
||||
procps
|
||||
psmisc # provides killall (attr `killall` was removed from nixpkgs)
|
||||
treefmt
|
||||
tzdata
|
||||
unzip
|
||||
util-linux # renamed from utillinux
|
||||
zip
|
||||
];
|
||||
|
||||
# Backup etc files instead of failing to activate generation if a file already exists in /etc
|
||||
environment.etcBackupExtension = ".bak";
|
||||
|
||||
# Shared userspace home-manager config (same cozy shell as on NixOS hosts).
|
||||
# nix-on-droid forces home.username / home.homeDirectory from user.*,
|
||||
# so the strict module must not set them.
|
||||
# xlib is injected via home-manager.extraSpecialArgs (the HM submodule
|
||||
# does not inherit the nix-on-droid module args).
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
backupFileExtension = "hm-bak";
|
||||
extraSpecialArgs = {
|
||||
inherit xlib;
|
||||
};
|
||||
config = { ... }: {
|
||||
imports = [
|
||||
../home/termux.nix
|
||||
];
|
||||
home.stateVersion = "24.05";
|
||||
};
|
||||
};
|
||||
|
||||
# Read the changelog before changing this value
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
# Set up nix for flakes
|
||||
nix.extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
|
||||
# Set your time zone
|
||||
time.timeZone = "Europe/Moscow";
|
||||
|
||||
android-integration.termux-setup-storage.enable = true;
|
||||
|
||||
# Provides `am` (termux-am) — required by termux-api's broadcast backend.
|
||||
android-integration.am.enable = true;
|
||||
};
|
||||
in
|
||||
inputs.nix-on-droid.lib.nixOnDroidConfiguration {
|
||||
pkgs = import inputs.nixpkgs {
|
||||
system = "aarch64-linux";
|
||||
};
|
||||
modules = [
|
||||
nixOnDroidModule
|
||||
];
|
||||
extraSpecialArgs = {
|
||||
deviceType = "termux";
|
||||
};
|
||||
}
|
||||
@@ -83,10 +83,7 @@ let
|
||||
];
|
||||
|
||||
services = {
|
||||
power-profiles-daemon.enable = lib.mkForce false;
|
||||
earlyoom.enable = true;
|
||||
auto-cpufreq.enable = true;
|
||||
throttled.enable = false;
|
||||
journald = {
|
||||
extraConfig = ''
|
||||
SystemMaxUse=512M
|
||||
@@ -113,10 +110,10 @@ let
|
||||
hostName = "${xlib.device.hostname}";
|
||||
networkmanager.enable = true;
|
||||
firewall.enable = false;
|
||||
nameservers = [
|
||||
"127.0.0.1"
|
||||
"192.168.1.1"
|
||||
];
|
||||
# nameservers = [
|
||||
# "192.168.1.1"
|
||||
# "127.0.0.1"
|
||||
# ];
|
||||
};
|
||||
|
||||
system = {
|
||||
|
||||
Generated
+166
-25
@@ -13,11 +13,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1781627888,
|
||||
"narHash": "sha256-5yHuAh9k7rT7rtf3uRaXkiUyYvQE9oaCgzhprLm2mr8=",
|
||||
"lastModified": 1785892481,
|
||||
"narHash": "sha256-1JTy9/LyITSBP1a4WZ9tmOv2yDh9OTbA3YUJbQHiMYc=",
|
||||
"owner": "serokell",
|
||||
"repo": "deploy-rs",
|
||||
"rev": "6d3087eedff75a715b40c0e124ba15d2dd7bec28",
|
||||
"rev": "f6f2359a6cb7e3c51ea673bcb39933ac2622350d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -88,11 +88,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1784129366,
|
||||
"narHash": "sha256-N5JiyICSeQF14x+OQebNyPpYowOT9Rs1iKyeCylSzOA=",
|
||||
"lastModified": 1786031233,
|
||||
"narHash": "sha256-TIDlLTLI1/pB7IqgjzcKQjpODQsZE2oII4XGG9B6KjI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "165228b0efefc3e635e5174020c40ea64271dc25",
|
||||
"rev": "7834e82588860aaf780cec1366524456a70898d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -101,16 +101,70 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-formatter-pack": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nix-on-droid",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nmd": [
|
||||
"nix-on-droid",
|
||||
"nmd"
|
||||
],
|
||||
"nmt": "nmt"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705252799,
|
||||
"narHash": "sha256-HgSTREh7VoXjGgNDwKQUYcYo13rPkltW7IitHrTPA5c=",
|
||||
"owner": "Gerschtli",
|
||||
"repo": "nix-formatter-pack",
|
||||
"rev": "2de39dedd79aab14c01b9e2934842051a160ffa5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Gerschtli",
|
||||
"repo": "nix-formatter-pack",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-on-droid": {
|
||||
"inputs": {
|
||||
"home-manager": [
|
||||
"home-manager"
|
||||
],
|
||||
"nix-formatter-pack": "nix-formatter-pack",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-docs": "nixpkgs-docs",
|
||||
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap",
|
||||
"nmd": "nmd"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772387862,
|
||||
"narHash": "sha256-o7q9flWMCsFW2mkz8TQhvPUcwFczO7VX9I6U2u2vN4o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-on-droid",
|
||||
"rev": "67b105336cb06b764366bfe241afa2352de6a926",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "testing",
|
||||
"repo": "nix-on-droid",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1784100666,
|
||||
"narHash": "sha256-HF/mrw5NYQfKFZgkfV2h1UL5/E3ccfsE2XJ1AbbLLJ0=",
|
||||
"lastModified": 1785232496,
|
||||
"narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "fccfa9031a85b78a437f2f153c1f6449f3bc3185",
|
||||
"rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -130,11 +184,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1784058842,
|
||||
"narHash": "sha256-3u3tvbCIAid3Mv7RrJx13jusIEQC/HeKYhO/SUSxR3A=",
|
||||
"lastModified": 1784642409,
|
||||
"narHash": "sha256-hcbDqFuySAJawljt5r0sKBCJKYnbtGD0T/ZIozH1Dq0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "24c8dc8e0f2170e1a377be24dfadc7d9d21dc1ad",
|
||||
"rev": "eaeb18da90024448a60eb1ec7132eafa4003404e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -189,13 +243,45 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-master": {
|
||||
"nixpkgs-docs": {
|
||||
"locked": {
|
||||
"lastModified": 1784147573,
|
||||
"narHash": "sha256-HPB/v0N2fCm4zhb5NxTpdd6vB64Bi7yx80cJ3Ah6bK0=",
|
||||
"lastModified": 1705957679,
|
||||
"narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "25d63b75f3246a99b53a02c18e0fa74a57817669",
|
||||
"rev": "9a333eaa80901efe01df07eade2c16d183761fa3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-23.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-for-bootstrap": {
|
||||
"locked": {
|
||||
"lastModified": 1772047000,
|
||||
"narHash": "sha256-7DaQVv4R97cii/Qdfy4tmDZMB2xxtyIvNGSwXBBhSmo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1267bb4920d0fc06ea916734c11b0bf004bbe17e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1267bb4920d0fc06ea916734c11b0bf004bbe17e",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-master": {
|
||||
"locked": {
|
||||
"lastModified": 1786198689,
|
||||
"narHash": "sha256-XkvYmpRd4cmcrzKS8QplEHPZkDDeKwpalJQwosCd3+Q=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "94ec6671dbe7d4879c2c8103e67425e85bf066d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -239,11 +325,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1784115452,
|
||||
"narHash": "sha256-BoYPdqk6jlKXy+DyUzyGV/CtRGfAhk2MmIgBhsemTGI=",
|
||||
"lastModified": 1785975029,
|
||||
"narHash": "sha256-X44cn5rzytELc3NNoQsh0aLkjWA/QzPfc6HPQmsG3sU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "35d3407a3816f3b341d8cf1d60abaf2b7b8166ac",
|
||||
"rev": "70ce234312134a463ba7728e94da2486a1d237ac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -255,11 +341,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1784007870,
|
||||
"narHash": "sha256-djcLt/JJphyNt4eDY9XTly+/WbCK5lqWq9lSgCmJkkQ=",
|
||||
"lastModified": 1785967620,
|
||||
"narHash": "sha256-IItrdb7Puk05RqOBWZYFC5X6Wl1sJmCfh5MWVHw5iMM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18b9261cb3294b6d2a06d03f96872827b8fe2698",
|
||||
"rev": "b7c2ada94fe99c15b0dbcf4d11fd7850b957a436",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -269,6 +355,44 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nmd": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nix-on-droid",
|
||||
"nixpkgs-docs"
|
||||
],
|
||||
"scss-reset": "scss-reset"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705050560,
|
||||
"narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=",
|
||||
"owner": "~rycee",
|
||||
"repo": "nmd",
|
||||
"rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3",
|
||||
"type": "sourcehut"
|
||||
},
|
||||
"original": {
|
||||
"owner": "~rycee",
|
||||
"repo": "nmd",
|
||||
"type": "sourcehut"
|
||||
}
|
||||
},
|
||||
"nmt": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1648075362,
|
||||
"narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=",
|
||||
"owner": "rycee",
|
||||
"repo": "nmt",
|
||||
"rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rycee",
|
||||
"repo": "nmt",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"plasma-manager": {
|
||||
"inputs": {
|
||||
"home-manager": [
|
||||
@@ -279,11 +403,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1783574839,
|
||||
"narHash": "sha256-ICof1tV4/9XheBLBGf7dhMhfMq4dOs1zwTHrr7zGFlA=",
|
||||
"lastModified": 1785762349,
|
||||
"narHash": "sha256-jZhZkzAwc7f3exzcTDJWP2WCAchCv0iNC3UF/QsahdQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "plasma-manager",
|
||||
"rev": "c551f0687658e4bb699cfff6015436ad7ee57a0d",
|
||||
"rev": "a19a2a029fa180911bd89c554dca1616e10f4c1d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -319,6 +443,7 @@
|
||||
"flake-compat": "flake-compat",
|
||||
"grub2-themes": "grub2-themes",
|
||||
"home-manager": "home-manager",
|
||||
"nix-on-droid": "nix-on-droid",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
@@ -336,6 +461,22 @@
|
||||
"zeroq-credentials": "zeroq-credentials"
|
||||
}
|
||||
},
|
||||
"scss-reset": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1631450058,
|
||||
"narHash": "sha256-muDlZJPtXDIGevSEWkicPP0HQ6VtucbkMNygpGlBEUM=",
|
||||
"owner": "andreymatin",
|
||||
"repo": "scss-reset",
|
||||
"rev": "0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "andreymatin",
|
||||
"repo": "scss-reset",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
||||
@@ -24,6 +24,13 @@
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
nix-on-droid = {
|
||||
url = "github:nix-community/nix-on-droid/testing"; # testing branch, used on the device
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
home-manager.follows = "home-manager";
|
||||
};
|
||||
};
|
||||
deploy-rs = {
|
||||
url = "github:serokell/deploy-rs";
|
||||
inputs = {
|
||||
|
||||
@@ -1,21 +1,9 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
streamripPath = "${xlib.dirs.wsl-storage}/streamrip";
|
||||
in
|
||||
{
|
||||
# xdg = {
|
||||
# configFile = {
|
||||
# "streamrip" = {
|
||||
# source = config.lib.file.mkOutOfStoreSymlink streamripPath;
|
||||
# target = "streamrip";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
home.packages = [
|
||||
pkgs.yt-dlp-light
|
||||
];
|
||||
|
||||
@@ -8,25 +8,6 @@
|
||||
programs = {
|
||||
mangohud.enable = true;
|
||||
keepassxc.enable = true;
|
||||
zed-editor = {
|
||||
enable = false;
|
||||
extensions = [
|
||||
"nix"
|
||||
];
|
||||
userSettings = {
|
||||
"telemetry" = {
|
||||
"diagnostics" = false;
|
||||
"metrics" = false;
|
||||
};
|
||||
"ui_font_size" = 20;
|
||||
"buffer_font_size" = 26;
|
||||
"theme" = {
|
||||
"mode" = "system";
|
||||
"light" = "Ayu Light";
|
||||
"dark" = "Ayu Dark";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
services = {
|
||||
kdeconnect.enable = true;
|
||||
@@ -34,12 +15,6 @@
|
||||
};
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
# Surfing
|
||||
# (brave.override {
|
||||
# commandLineArgs = [
|
||||
# "--password-store=basic" # on purpose to make it break "--password-store=gnome-libsecret"
|
||||
# ];
|
||||
# })
|
||||
brave
|
||||
v2rayn
|
||||
|
||||
@@ -48,8 +23,6 @@
|
||||
# amdgpu_top
|
||||
vscodium
|
||||
ayugram-desktop
|
||||
# vesktop
|
||||
# discord
|
||||
gramps
|
||||
kdePackages.filelight
|
||||
localsend
|
||||
|
||||
+283
@@ -0,0 +1,283 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
# Shared "strict" home-manager module.
|
||||
# Works in BOTH contexts:
|
||||
# - NixOS hosts (via home-manager.sharedModules or homeConfigurations)
|
||||
# - nix-on-droid (via home-manager.config in droid/epral.nix)
|
||||
# Only home-manager options are used here — no systemd.*, no services.*,
|
||||
# no users.*, no environment.systemPackages. All paths are parameterized
|
||||
# through config.home.homeDirectory so /home/oqyude (NixOS) and
|
||||
# /data/data/com.termux.nix/files/home (termux) both work.
|
||||
#
|
||||
# NOTE: intentionally duplicates parts of modules/essentials/{shell,packages}.nix
|
||||
# (which stay NixOS-only for now). When this module is wired into NixOS hosts
|
||||
# via sharedModules, deduplicate those files.
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
# Lazy (alias lc)
|
||||
lazycli
|
||||
|
||||
# IDE
|
||||
fresh-editor # EDITOR
|
||||
|
||||
# Base utils
|
||||
curl
|
||||
wget
|
||||
fd
|
||||
tree
|
||||
dust
|
||||
gdu
|
||||
mc
|
||||
rsync
|
||||
jq
|
||||
unzip
|
||||
zip
|
||||
zstd
|
||||
|
||||
# Net diagnostic
|
||||
mtr
|
||||
dnsutils
|
||||
|
||||
# Monitoring
|
||||
htop
|
||||
];
|
||||
sessionVariables = {
|
||||
TUCKR_HOME = "$HOME/Storage/dotfiles";
|
||||
EDITOR = "fresh";
|
||||
};
|
||||
file = {
|
||||
".nanorc".text = ''
|
||||
set nowrap
|
||||
set tabstospaces
|
||||
set tabsize 2
|
||||
'';
|
||||
# Authorized keys for sshd (see modules/termux/default.nix).
|
||||
# Declarative for now — the Store/.ssh symlink scheme is postponed.
|
||||
".ssh/authorized_keys".text = ''
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKduJia+unaQQdN6X5syaHvnpIutO+yZwvfiCP4qKQ/P
|
||||
'';
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
# ---- Shell: zsh ----
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
history.size = 10000;
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "robbyrussell";
|
||||
};
|
||||
loginExtra = "clear && fastfetch && cd ~/.config/nix-on-droid";
|
||||
# .zshenv — sourced by zsh in ALL sessions incl. non-login ssh commands.
|
||||
# runit from nixpkgs defaults to /var/service as SVDIR, but our tree
|
||||
# lives at ~/service (symlinked as /etc/service). Export it so that
|
||||
# `sv status sshd` works without qualifying the path.
|
||||
envExtra = "export SVDIR=/etc/service";
|
||||
initContent = ''
|
||||
beet-p() {
|
||||
local base="${config.home.homeDirectory}/.config/beets/My"
|
||||
local rel
|
||||
rel=$(realpath --relative-to="$base" "$PWD")
|
||||
beet mod "path:$rel" playlist="$*"
|
||||
}
|
||||
beet-ims() {
|
||||
beet im ./ -S $*
|
||||
}
|
||||
beet-path() {
|
||||
realpath --relative-to="${config.home.homeDirectory}/.config/beets/My" "$1"
|
||||
}
|
||||
'';
|
||||
shellAliases = {
|
||||
# shell
|
||||
ff = "clear && fastfetch";
|
||||
l = "ls -l";
|
||||
lg = "lazygit";
|
||||
lc = "lazycli";
|
||||
gp = "git pull";
|
||||
ns = "nix-on-droid switch --flake ~/.config/nix-on-droid#${xlib.device.hostname}";
|
||||
gp-ns = "gp && ns";
|
||||
gc = "git add . && git commit -m 'dev: автокоммит $(date +'%Y-%m-%d %H:%M:%S')'";
|
||||
y = "yazi";
|
||||
nix-shellp = "nix-shell --run $SHELL -p";
|
||||
beet-path-library = "realpath --relative-to='${config.home.homeDirectory}/.config/beets/My' .";
|
||||
z-proxy = "export ALL_PROXY=socks5://localhost:10808";
|
||||
zh-proxy = "export HTTPS_PROXY=http://localhost:10808 && export HTTP_PROXY=http://localhost:10808";
|
||||
nix-dir = "cd ~/.config/nix-on-droid";
|
||||
q-ssh = "sv-start"; # start all supervised services (sshd, ...); manage with `sv status sshd` etc
|
||||
|
||||
# beets
|
||||
beet-ima = "beet im ./ -A";
|
||||
|
||||
# ssh (hosts live in programs.ssh.settings below)
|
||||
# NOTE: lamet / pubray-1 have no Host entry yet — kept as aliases.
|
||||
z-l = "ssh lamet";
|
||||
z-lt = "ssh lamet-tailscale";
|
||||
z-p-1 = "ssh pubray-1";
|
||||
z-map-local-proxy = "ssh -R 10808:localhost:10808";
|
||||
|
||||
# Extras
|
||||
plasma-manager = "nix run github:nix-community/plasma-manager";
|
||||
pip2nix = "nix run github:nix-community/pip2nix --"; # https://github.com/nix-community/pip2nix
|
||||
pip2nix-g = "nix run github:nix-community/pip2nix -- generate -r";
|
||||
json2nix = "nix run github:sempruijs/json2nix";
|
||||
};
|
||||
};
|
||||
|
||||
# ---- Editor ----
|
||||
# NOTE: programs.nano is a NixOS-only module (does not exist in
|
||||
# home-manager); write ~/.nanorc directly instead.
|
||||
# ---- TUI tools ----
|
||||
bat.enable = true;
|
||||
lazygit.enable = true;
|
||||
fzf.enable = true;
|
||||
|
||||
btop.enable = true;
|
||||
broot.enable = true;
|
||||
bottom.enable = true;
|
||||
fastfetch.enable = true;
|
||||
|
||||
yazi = {
|
||||
enable = true;
|
||||
# explicit: shared module must behave identically on NixOS (26.05, "y")
|
||||
# and nix-on-droid (24.05, legacy "yy")
|
||||
shellWrapperName = "y";
|
||||
plugins = {
|
||||
inherit (pkgs.yaziPlugins)
|
||||
gitui
|
||||
git
|
||||
sudo
|
||||
ouch
|
||||
rsync
|
||||
diff
|
||||
mount
|
||||
chmod
|
||||
dupes
|
||||
lazygit
|
||||
toggle-pane
|
||||
rich-preview
|
||||
smart-filter
|
||||
full-border
|
||||
recycle-bin
|
||||
;
|
||||
};
|
||||
flavors = {
|
||||
nord = pkgs.yaziPlugins.nord;
|
||||
};
|
||||
theme = {
|
||||
flavor = {
|
||||
light = "nord";
|
||||
dark = "nord";
|
||||
};
|
||||
};
|
||||
keymap = {
|
||||
mgr.prepend_keymap = [
|
||||
{
|
||||
on = [
|
||||
"M"
|
||||
];
|
||||
run = "plugin mount";
|
||||
desc = "Mount manager";
|
||||
}
|
||||
{
|
||||
on = [
|
||||
"g"
|
||||
"i"
|
||||
];
|
||||
run = "plugin lazygit";
|
||||
desc = "run lazygit";
|
||||
}
|
||||
{
|
||||
run = "plugin ouch --args=zip";
|
||||
on = [
|
||||
"g"
|
||||
"C"
|
||||
];
|
||||
desc = "Compress with ouch";
|
||||
}
|
||||
];
|
||||
};
|
||||
settings = {
|
||||
mgr.ratio = [
|
||||
1
|
||||
1
|
||||
4
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# ---- VCS ----
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "oqyude";
|
||||
email = "oqyude@gmail.com";
|
||||
};
|
||||
pull = {
|
||||
rebase = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# ---- SSH ----
|
||||
# Declarative ~/.ssh/config, same as the one previously copied by hand.
|
||||
# matchBlocks is deprecated in current home-manager; use `settings`
|
||||
# (bare attr names become `Host` headers, keys are upstream directives).
|
||||
ssh = {
|
||||
enable = true;
|
||||
# Reproduce the old enableDefaultConfig values explicitly.
|
||||
enableDefaultConfig = false;
|
||||
settings = {
|
||||
"*" = {
|
||||
ForwardAgent = false;
|
||||
AddKeysToAgent = "no";
|
||||
Compression = false;
|
||||
ServerAliveInterval = 0;
|
||||
ServerAliveCountMax = 3;
|
||||
HashKnownHosts = false;
|
||||
UserKnownHostsFile = "~/.ssh/known_hosts";
|
||||
ControlMaster = "no";
|
||||
ControlPath = "~/.ssh/master-%r@%n:%p";
|
||||
ControlPersist = "no";
|
||||
};
|
||||
sapphira = {
|
||||
HostName = "192.168.1.20";
|
||||
User = "oqyude";
|
||||
};
|
||||
sapphira-tailscale = {
|
||||
HostName = "100.64.0.0";
|
||||
User = "oqyude";
|
||||
};
|
||||
otreca-old = {
|
||||
HostName = "217.60.3.12";
|
||||
User = "oqyude";
|
||||
};
|
||||
otreca = {
|
||||
HostName = "109.248.161.5";
|
||||
User = "oqyude";
|
||||
};
|
||||
otreca-tailscale = {
|
||||
HostName = "100.64.1.0";
|
||||
User = "oqyude";
|
||||
};
|
||||
rydiwo = {
|
||||
HostName = "192.168.1.102";
|
||||
User = "oqyude";
|
||||
};
|
||||
epral = {
|
||||
HostName = "192.168.1.101";
|
||||
User = "oqyude";
|
||||
Port = 8022;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -5,6 +5,9 @@
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
panel = "${xlib.dirs.services-nodes-folder}/${xlib.device.hostname}/3x-ui";
|
||||
in
|
||||
{
|
||||
virtualisation = {
|
||||
podman = {
|
||||
@@ -25,8 +28,8 @@
|
||||
"TZ" = "Europe/Moscow";
|
||||
};
|
||||
volumes = [
|
||||
"${xlib.dirs.services-mnt-folder}/containers/3x-ui/cert/:/root/cert:rw"
|
||||
"${xlib.dirs.services-mnt-folder}/containers/3x-ui/db/:/etc/x-ui:rw"
|
||||
"${panel}/cert/:/root/cert:rw"
|
||||
"${panel}/db/:/etc/x-ui:rw"
|
||||
];
|
||||
log-driver = "journald";
|
||||
extraOptions = [
|
||||
@@ -97,13 +100,13 @@
|
||||
};
|
||||
# Folders
|
||||
tmpfiles.rules = [
|
||||
"d /mnt 0755 root root -"
|
||||
"d /mnt/services 0755 root root -"
|
||||
"d /mnt/services/containers 0755 root root -"
|
||||
"d /mnt/services/containers/3x-ui 0755 root root -"
|
||||
"d /mnt/services/containers/3x-ui/cert 0755 root root -"
|
||||
"d /mnt/services/containers/3x-ui/db 0755 root root -"
|
||||
"Z /mnt/services/containers/3x-ui 0755 root root -"
|
||||
"d ${xlib.dirs.services-mnt-folder} 0755 root root -"
|
||||
"d ${xlib.dirs.services-nodes-folder} 0755 root root -"
|
||||
"d ${xlib.dirs.services-nodes-folder}/${xlib.device.hostname} 0755 root root -"
|
||||
"d ${panel} 0755 root root -"
|
||||
"d ${panel}/db 0755 root root -"
|
||||
"d ${panel}/cert 0755 root root -"
|
||||
"Z ${panel} 0755 root root -"
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
+28
-2
@@ -9,11 +9,14 @@ let
|
||||
...
|
||||
}:
|
||||
{
|
||||
# NixOS-only modules. termux runs nix-on-droid (its own module system,
|
||||
# class = "nixOnDroid"): options like services.*, users.*, sops.*, disko.*
|
||||
# and nixpkgs.overlays (flake assertion) do not exist there.
|
||||
imports = with inputs; [
|
||||
./essentials
|
||||
./users.nix
|
||||
./options.nix
|
||||
(./. + "/${deviceType}") # specific modules
|
||||
./users.nix
|
||||
(./. + "/${deviceType}")
|
||||
|
||||
home-manager.nixosModules.home-manager # home-manager module
|
||||
# nix-index-database.nixosModules.nix-index # nix-index module
|
||||
@@ -47,6 +50,28 @@ let
|
||||
sops-nix.nixosModules.sops # sops module
|
||||
];
|
||||
|
||||
_module.args = {
|
||||
inputs = inputs;
|
||||
xlib = config.xlib;
|
||||
};
|
||||
};
|
||||
strictModule =
|
||||
{
|
||||
config,
|
||||
deviceType,
|
||||
lib,
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = with inputs; [
|
||||
# ./essentials
|
||||
# ./users.nix
|
||||
./options.nix
|
||||
(./. + "/${deviceType}")
|
||||
# sops-nix.nixosModules.sops
|
||||
];
|
||||
|
||||
_module.args = {
|
||||
inputs = inputs;
|
||||
xlib = config.xlib;
|
||||
@@ -57,5 +82,6 @@ in
|
||||
nixosModules = {
|
||||
default = defaultModule;
|
||||
public = publicModule;
|
||||
strict = strictModule;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,11 +4,6 @@
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
master = import inputs.nixpkgs-master {
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
in
|
||||
{
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
settings = {
|
||||
require-sigs = false;
|
||||
substituters = [
|
||||
"http://100.64.0.0:5000"
|
||||
"https://nix-cache.zeroq.su"
|
||||
"https://cache.nixos.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://mirror.yandex.ru/nixos"
|
||||
@@ -27,7 +27,7 @@
|
||||
# "https://nixos.snix.store" # https://nixos.snix.store/
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-cache.home.arpa:be5jFLkiwNyOep/McxSafB3jguBmztxx+oJ46ySyc/s="
|
||||
"nix-cache.zeroq.su:be5jFLkiwNyOep/McxSafB3jguBmztxx+oJ46ySyc/s="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
];
|
||||
stalled-download-timeout = 8;
|
||||
|
||||
@@ -19,15 +19,18 @@
|
||||
theme = "robbyrussell";
|
||||
};
|
||||
shellInit = ''
|
||||
beet-n() {
|
||||
echo "$*" | aichat -cer beets
|
||||
}
|
||||
beet-p() {
|
||||
beet mod path:. playlist="$*"
|
||||
local base="/home/oqyude/.config/beets/My"
|
||||
local rel
|
||||
rel=$(realpath --relative-to="$base" "$PWD")
|
||||
beet mod "path:$rel" playlist="$*"
|
||||
}
|
||||
beet-ims() {
|
||||
beet im ./ -S $*
|
||||
}
|
||||
beet-path() {
|
||||
realpath --relative-to="/home/oqyude/.config/beets/My" "$1"
|
||||
}
|
||||
'';
|
||||
shellAliases = {
|
||||
# shell
|
||||
@@ -42,7 +45,9 @@
|
||||
gc = "git add . && git commit -m 'dev: автокоммит $(date +'%Y-%m-%d %H:%M:%S')'";
|
||||
y = "yazi";
|
||||
nix-shellp = "nix-shell --run $SHELL -p";
|
||||
beet-path-library = "realpath --relative-to='/home/oqyude/.config/beets/My' .";
|
||||
z-proxy = "export ALL_PROXY=socks5://localhost:10808";
|
||||
zh-proxy = "export HTTPS_PROXY=http://localhost:10808 && export HTTP_PROXY=http://localhost:10808";
|
||||
|
||||
# beets
|
||||
beet-ima = "beet im ./ -A";
|
||||
|
||||
@@ -4,6 +4,4 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
# imports = [
|
||||
# ];
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
"vds"
|
||||
"vds-new"
|
||||
"wsl"
|
||||
"termux"
|
||||
];
|
||||
default = "minimal";
|
||||
description = "Type of device for this host.";
|
||||
@@ -117,6 +118,11 @@
|
||||
default = "/mnt/services";
|
||||
description = "All services folder.";
|
||||
};
|
||||
services-nodes-folder = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${config.xlib.dirs.services-mnt-folder}/nodes";
|
||||
description = "All nodes folder.";
|
||||
};
|
||||
postgresql-folder = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "${config.xlib.dirs.services-mnt-folder}/postgresql";
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
config,
|
||||
xlib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
user = "snity";
|
||||
in
|
||||
{
|
||||
users = {
|
||||
users = {
|
||||
"${user}" = {
|
||||
name = "${user}";
|
||||
isNormalUser = true;
|
||||
group = "users";
|
||||
description = "Snity";
|
||||
hashedPassword = "$y$j9T$851xwObfIp7SYzIyFtH.k1$mNofT2sxEAV50Kxgmwvqc6Kj/3B/fJoPP8qgn./siEB";
|
||||
homeMode = "700";
|
||||
home = "/home/${user}";
|
||||
extraGroups = [
|
||||
"audio"
|
||||
"disk"
|
||||
"gamemode"
|
||||
"networkmanager"
|
||||
"pipewire"
|
||||
"wheel"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
+11
-11
@@ -8,20 +8,20 @@
|
||||
acme = {
|
||||
acceptTerms = true;
|
||||
defaults = {
|
||||
email = "oqyude@zeroq.su";
|
||||
server = "https://localhost:9000/acme/acme/directory";
|
||||
dnsProvider = null;
|
||||
email = "oqyude@gmail.com";
|
||||
};
|
||||
# certs = {
|
||||
# # "home.arpa" = {
|
||||
# # domain = "*.home.arpa";
|
||||
# # server = "https://localhost:9000/acme/acme/directory";
|
||||
# # listenHTTP = ":80";
|
||||
# # };
|
||||
# "turn.home.arpa" = {
|
||||
# listenHTTP = "127.0.0.1:80";
|
||||
# group = "turnserver";
|
||||
# "home.arpa" = {
|
||||
# email = "oqyude@zeroq.su";
|
||||
# domain = "*.home.arpa";
|
||||
# server = "https://localhost:9000/acme/acme/directory";
|
||||
# listenHTTP = ":80";
|
||||
# dnsProvider = null;
|
||||
# };
|
||||
# # "turn.home.arpa" = {
|
||||
# # listenHTTP = "127.0.0.1:80";
|
||||
# # group = "turnserver";
|
||||
# # };
|
||||
# };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -13,7 +13,7 @@ in
|
||||
{
|
||||
services = {
|
||||
calibre-web = {
|
||||
package = stable.calibre-web;
|
||||
# package = stable.calibre-web;
|
||||
enable = true;
|
||||
# dataDir = "${xlib.dirs.services-mnt-folder}/calibre-web";
|
||||
options = {
|
||||
|
||||
@@ -15,9 +15,10 @@
|
||||
192.168.1.20 flux.zeroq.su
|
||||
192.168.1.20 git.zeroq.su
|
||||
192.168.1.20 glances.zeroq.su
|
||||
192.168.1.20 homebox.home.arpa
|
||||
192.168.1.20 homebox.zeroq.su
|
||||
192.168.1.20 immich.zeroq.su
|
||||
192.168.1.20 kuma.zeroq.su
|
||||
192.168.1.20 navidrome.zeroq.su
|
||||
192.168.1.20 nextcloud.zeroq.su
|
||||
192.168.1.20 office.zeroq.su
|
||||
192.168.1.20 pdf.zeroq.su
|
||||
@@ -42,6 +43,7 @@
|
||||
192.168.1.20 homebox.home.arpa
|
||||
192.168.1.20 immich.home.arpa
|
||||
192.168.1.20 kuma.home.arpa
|
||||
192.168.1.20 navidrome.home.arpa
|
||||
192.168.1.20 nextcloud.home.arpa
|
||||
192.168.1.20 office.home.arpa
|
||||
192.168.1.20 pdf.home.arpa
|
||||
@@ -53,7 +55,7 @@
|
||||
log
|
||||
}
|
||||
.:53 {
|
||||
forward . 1.1.1.1 9.9.9.9
|
||||
forward . 192.168.1.1 1.1.1.1
|
||||
cache 300
|
||||
}
|
||||
'';
|
||||
|
||||
@@ -15,13 +15,15 @@
|
||||
./homebox.nix
|
||||
./immich.nix
|
||||
./miniflux.nix
|
||||
./navidrome.nix
|
||||
./nextcloud.nix
|
||||
./nginx.nix
|
||||
./nix-serve.nix
|
||||
# ./onlyoffice.nix
|
||||
./onlyoffice.nix
|
||||
./postgresql.nix
|
||||
./power.nix
|
||||
./samba.nix
|
||||
./step-ca.nix
|
||||
# ./step-ca.nix
|
||||
./syncthing.nix
|
||||
./systemd.nix
|
||||
# ../containers/remnawave.nix
|
||||
@@ -29,7 +31,6 @@
|
||||
# ./mealie.nix
|
||||
# ./memos.nix
|
||||
# ./n8n.nix
|
||||
# ./navidrome.nix
|
||||
# ./netdata.nix
|
||||
# ./nfs.nix
|
||||
# ./node-red.nix
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
appName = "ZeroQ Gitea Service";
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = "git.home.arpa";
|
||||
DOMAIN = "git.zeroq.su";
|
||||
HTTP_PORT = 3000;
|
||||
};
|
||||
service.DISABLE_REGISTRATION = true;
|
||||
|
||||
@@ -6,16 +6,10 @@
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
new = import inputs.nixpkgs-unstable {
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
in
|
||||
{
|
||||
services = {
|
||||
immich = {
|
||||
enable = true;
|
||||
# package = new.immich;
|
||||
port = 2283;
|
||||
host = "0.0.0.0";
|
||||
openFirewall = true;
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
{
|
||||
services = {
|
||||
navidrome = {
|
||||
enable = false;
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
# environmentFile = "";
|
||||
settings = {
|
||||
Address = "0.0.0.0";
|
||||
Port = "4533";
|
||||
Port = 4533;
|
||||
MusicFolder = "/mnt/beets/music";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -6,19 +6,12 @@
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
previous = import inputs.nixpkgs-master {
|
||||
system = "x86_64-linux";
|
||||
config.allowUnfree = true;
|
||||
config.allowUnfreePredicate = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
services = {
|
||||
nextcloud-whiteboard-server = {
|
||||
enable = true;
|
||||
settings = {
|
||||
NEXTCLOUD_URL = "https://nextcloud.home.arpa";
|
||||
NEXTCLOUD_URL = "https://nextcloud.zeroq.su";
|
||||
};
|
||||
secrets = [ config.sops.secrets.nextcloud-whiteboard-jwt.path ];
|
||||
};
|
||||
@@ -27,8 +20,8 @@ in
|
||||
hostName = "talk.private";
|
||||
backends.nextcloud = {
|
||||
urls = [
|
||||
"https://nextcloud.home.arpa"
|
||||
"https://nextcloud.zeroq.su"
|
||||
# "https://nextcloud.home.arpa"
|
||||
];
|
||||
secretFile = config.sops.secrets.nextcloud-talk-secret.path;
|
||||
};
|
||||
@@ -47,9 +40,9 @@ in
|
||||
secretFile = config.sops.secrets.turn-secret.path;
|
||||
apikeyFile = config.sops.secrets.turn-api-key.path;
|
||||
servers = [
|
||||
"turn:turn.home.arpa:3478?transport=udp"
|
||||
"turn:turn.home.arpa:3478?transport=tcp"
|
||||
# "turns:turn.home.arpa:5349?transport=tcp"
|
||||
"turn:turn.zeroq.su:3478?transport=udp"
|
||||
"turn:turn.zeroq.su:3478?transport=tcp"
|
||||
# "turns:turn.zeroq.su:5349?transport=tcp"
|
||||
];
|
||||
};
|
||||
};
|
||||
@@ -79,17 +72,19 @@ in
|
||||
trusted_domains = [
|
||||
"100.64.0.0"
|
||||
"192.168.1.20"
|
||||
"37.128.246.126"
|
||||
"localhost"
|
||||
"nextcloud.home.arpa"
|
||||
"nextcloud.private"
|
||||
"nextcloud.zeroq.su"
|
||||
"office.zeroq.su"
|
||||
"office.home.arpa"
|
||||
"nextcloud.home.arpa"
|
||||
"office.zeroq.su"
|
||||
];
|
||||
trusted_proxies = [
|
||||
"100.64.1.0"
|
||||
"192.168.1.20"
|
||||
"109.248.161.5"
|
||||
"192.168.1.20"
|
||||
"37.128.246.126"
|
||||
];
|
||||
overwriteprotocol = "https"; # maybe no
|
||||
};
|
||||
@@ -98,7 +93,7 @@ in
|
||||
notify_push = {
|
||||
enable = true;
|
||||
bendDomainToLocalhost = true;
|
||||
nextcloudUrl = "https://nextcloud.home.arpa";
|
||||
nextcloudUrl = "https://nextcloud.zeroq.su";
|
||||
};
|
||||
# phpPackage = pkgs.php85;
|
||||
extraApps = {
|
||||
|
||||
+293
-105
@@ -35,7 +35,7 @@ in
|
||||
}
|
||||
];
|
||||
};
|
||||
"office.home.arpa" = {
|
||||
"office.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
};
|
||||
@@ -64,46 +64,46 @@ in
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"pdf.home.arpa" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://127.0.0.1:8446";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"homebox.home.arpa" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://127.0.0.1:7745";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
"nextcloud.home.arpa" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://127.0.0.1:10000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
"/whiteboard" = {
|
||||
proxyPass = "http://127.0.0.1:3002";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
# "pdf.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations = {
|
||||
# "/" = {
|
||||
# proxyPass = "http://127.0.0.1:8446";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
# "homebox.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations = {
|
||||
# "/" = {
|
||||
# proxyPass = "http://127.0.0.1:7745";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# "nextcloud.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations = {
|
||||
# "/" = {
|
||||
# proxyPass = "http://127.0.0.1:10000";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# "/whiteboard" = {
|
||||
# proxyPass = "http://127.0.0.1:3002";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
# "talk.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
@@ -130,39 +130,28 @@ in
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
"ca.home.arpa" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:9000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"git.home.arpa" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:3000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"git.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:3000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
# "ca.zeroq.su" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:9000";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
# "git.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:3000";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
# "n8n.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
@@ -174,68 +163,263 @@ in
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
"kuma.home.arpa" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:4001";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"flux.home.arpa" = {
|
||||
# "kuma.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:4001";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# "flux.home.arpa" = {
|
||||
# addSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:6061";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# "navidrome.home.arpa" = {
|
||||
# addSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:4533";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# "immich.home.arpa" = {
|
||||
# addSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:2283";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
"immich.zeroq.su" = {
|
||||
addSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:6061";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"immich.home.arpa" = {
|
||||
addSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:2283";
|
||||
proxyPass = "http://${server}:2283";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"calibre.home.arpa" = {
|
||||
"kuma.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8083";
|
||||
proxyPass = "http://${server}:4001";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"health.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:19999";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"git.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:3000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"homebox.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:7745";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
# "agent.zeroq.su" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://${server}:3000";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# "node-red.zeroq.su" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# kTLS = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://${server}:1880";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
"zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
root = pkgs.writeTextDir "index.html" ''
|
||||
<!doctype html>
|
||||
<html>
|
||||
<body>
|
||||
<pre>What are you doing here?</pre>
|
||||
</body>
|
||||
</html>
|
||||
'';
|
||||
locations = {
|
||||
"/guest/" = {
|
||||
proxyPass = "http://${server}:80";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
# "/.well-known/discord" = {
|
||||
# extraConfig = ''
|
||||
# default_type text/plain;
|
||||
# return 200 "dh=c2d103553a4cfdaa1b7952a87a7d8120a1e167cc";
|
||||
# '';
|
||||
# };
|
||||
};
|
||||
};
|
||||
"flux.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:6061";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"navidrome.zeroq.su" = {
|
||||
addSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:4533";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"vetymae.opencodes.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://100.86.62.4:4096";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"lamet.opencodes.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://100.106.21.39:6061";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"n8n.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:5678";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
# "office.zeroq.su" = {
|
||||
# enableACME = true;
|
||||
# forceSSL = true;
|
||||
# locations = {
|
||||
# "/" = {
|
||||
# proxyPass = "http://${server}:8090";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
"nextcloud.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://${server}:10000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
"/whiteboard" = {
|
||||
proxyPass = "http://${server}:3002";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"calibre.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:8083";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"dns.home.arpa" = {
|
||||
"nix-cache.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:53";
|
||||
proxyPass = "http://${server}:5000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"glances.home.arpa" = {
|
||||
"pdf.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:61208";
|
||||
};
|
||||
};
|
||||
"syncthing.home.arpa" = {
|
||||
addSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8384";
|
||||
proxyPass = "http://${server}:8446";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
# "calibre.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:8083";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
# "dns.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:53";
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
# "glances.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:61208";
|
||||
# };
|
||||
# };
|
||||
# "syncthing.home.arpa" = {
|
||||
# addSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:8384";
|
||||
# };
|
||||
# };
|
||||
# "zeroq.home.arpa" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
@@ -261,4 +445,8 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
80
|
||||
443
|
||||
];
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ in
|
||||
services.onlyoffice = {
|
||||
enable = true;
|
||||
# package = previous.onlyoffice-documentserver;
|
||||
hostname = "office.home.arpa";
|
||||
hostname = "office.zeroq.su";
|
||||
port = 8090;
|
||||
allowLocalConnections = true;
|
||||
wopi = true;
|
||||
|
||||
@@ -6,11 +6,6 @@
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
master = import inputs.nixpkgs-master {
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
in
|
||||
{
|
||||
services = {
|
||||
postgresql = {
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services = {
|
||||
tuned = {
|
||||
enable = true;
|
||||
};
|
||||
auto-cpufreq.enable = false;
|
||||
power-profiles-daemon.enable = lib.mkForce false;
|
||||
throttled.enable = false;
|
||||
};
|
||||
}
|
||||
@@ -5,17 +5,12 @@
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
stable = import inputs.nixpkgs-master {
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
in
|
||||
{
|
||||
services = {
|
||||
samba-wsdd = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
hostname = "sapphira.home.arpa";
|
||||
hostname = "sapphira";
|
||||
discovery = true;
|
||||
};
|
||||
samba = {
|
||||
|
||||
@@ -4,18 +4,13 @@
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
master = import inputs.nixpkgs-master {
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
in
|
||||
{
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
# package = master.syncthing;
|
||||
systemService = true;
|
||||
guiAddress = "0.0.0.0:8384";
|
||||
configDir = "${xlib.dirs.storage}/Syncthing/${xlib.device.hostname}";
|
||||
configDir = "${xlib.dirs.storage}/persist/Syncthing/${xlib.device.hostname}";
|
||||
dataDir = "${xlib.dirs.server-home}";
|
||||
group = "users";
|
||||
user = "${xlib.device.username}";
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.aichat
|
||||
];
|
||||
}
|
||||
@@ -7,31 +7,8 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
stable = import inputs.nixpkgs-beets {
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
in
|
||||
let
|
||||
# depsOverlay = import ./dependencies.nix {
|
||||
# # ./dependencies-full.nix if broken
|
||||
# inherit (pkgs) fetchurl fetchgit fetchhg;
|
||||
# inherit pkgs;
|
||||
# };
|
||||
# python3 = pkgs.python3.override {
|
||||
# packageOverrides = depsOverlay;
|
||||
# };
|
||||
beetsEnv = pkgs.python314.withPackages (
|
||||
ps: with ps; [
|
||||
# et-xmlfile
|
||||
# exceptiongroup
|
||||
# markdown-it-py
|
||||
# mdurl
|
||||
# munkres
|
||||
# musicbrainzngs
|
||||
# openpyxl
|
||||
# pygments
|
||||
# rich
|
||||
# sniffio
|
||||
anyio
|
||||
beautifulsoup4
|
||||
beetcamp
|
||||
@@ -68,7 +45,6 @@ let
|
||||
requests
|
||||
requests-ratelimiter
|
||||
scipy
|
||||
# setuptools
|
||||
six
|
||||
socksio
|
||||
soupsieve
|
||||
|
||||
@@ -1,573 +0,0 @@
|
||||
# Generated by pip2nix 0.8.0.dev1
|
||||
# See https://github.com/nix-community/pip2nix
|
||||
|
||||
{
|
||||
pkgs,
|
||||
fetchurl,
|
||||
fetchgit,
|
||||
fetchhg,
|
||||
}:
|
||||
|
||||
self: super: {
|
||||
"PyYAML" = super.buildPythonPackage rec {
|
||||
pname = "PyYAML";
|
||||
version = "6.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz";
|
||||
sha256 = "0gmwggzm0j0iprx074g5hah91y2f68sfhhldq0f8crddj7ndk16m";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"Unidecode" = super.buildPythonPackage rec {
|
||||
pname = "Unidecode";
|
||||
version = "1.3.8";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/84/b7/6ec57841fb67c98f52fc8e4a2d96df60059637cba077edc569a302a8ffc7/Unidecode-1.3.8-py3-none-any.whl";
|
||||
sha256 = "0fgxj6h9lkjq4saynkjqf2wb9plsr5wyg3xxld482vv9wqfacc6i";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"anyio" = super.buildPythonPackage rec {
|
||||
pname = "anyio";
|
||||
version = "4.7.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/a0/7a/4daaf3b6c08ad7ceffea4634ec206faeff697526421c20f07628c7372156/anyio-4.7.0-py3-none-any.whl";
|
||||
sha256 = "0lp30wfn1hs2wvaz3wadzwwcb3l9ii4b1k78yzzscaxl79rc6q7a";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."exceptiongroup"
|
||||
self."idna"
|
||||
self."sniffio"
|
||||
self."typing-extensions"
|
||||
];
|
||||
};
|
||||
"beautifulsoup4" = super.buildPythonPackage rec {
|
||||
pname = "beautifulsoup4";
|
||||
version = "4.12.3";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl";
|
||||
sha256 = "1vc2w3wvnhbp2q287ilzjsiqyvd0vc5s52ysalz32481yk4ph25q";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."soupsieve"
|
||||
];
|
||||
};
|
||||
"beetcamp" = super.buildPythonPackage rec {
|
||||
pname = "beetcamp";
|
||||
version = "0.21.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/6c/d3/94cad1ba1e65a9445655968a6dcdd528cb1352e2389f0921a9f8c0ccd4a0/beetcamp-0.21.0-py3-none-any.whl";
|
||||
sha256 = "08mxqmckg2fx9rkm5a1n9zs2sjccjj75vgxac22xjyi3fw1k0wz2";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
#self."beets" # its doesnt matter?
|
||||
self."httpx"
|
||||
self."packaging"
|
||||
self."pycountry"
|
||||
];
|
||||
};
|
||||
"beets" = super.buildPythonPackage rec {
|
||||
pname = "beets";
|
||||
version = "2.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/f3/44/1c53c2ac111e5526083e58f50a22504ad7c609be1ce660c0339938a42c33/beets-2.2.0-py3-none-any.whl";
|
||||
sha256 = "076hl1j74cgyh6n1piwprnzb89gihy2vmajm8lzfhy1jjcrfrpbd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."PyYAML"
|
||||
self."Unidecode"
|
||||
self."confuse"
|
||||
self."jellyfish"
|
||||
self."mediafile"
|
||||
self."munkres"
|
||||
self."musicbrainzngs"
|
||||
self."platformdirs"
|
||||
self."typing-extensions"
|
||||
# ext
|
||||
self."requests" # For spotify, deezer, embedart, fetchart, lyrics
|
||||
self."python3-discogs-client" # For discogs
|
||||
self."pylast" # For lastgenre
|
||||
# self."beetcamp" # Another
|
||||
];
|
||||
};
|
||||
"certifi" = super.buildPythonPackage rec {
|
||||
pname = "certifi";
|
||||
version = "2024.12.14";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl";
|
||||
sha256 = "0mpccx4yscnk6rhl12fk8wpgwrpq62m4w23k27y4wip9bfjgfx8j";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"charset-normalizer" = super.buildPythonPackage rec {
|
||||
pname = "charset-normalizer";
|
||||
version = "3.4.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz";
|
||||
sha256 = "18sfsqpdmxbddr3g3yg0sln10ghq4sp0vl2xb1b5p9v8rlc1y9a4";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"colorama" = super.buildPythonPackage rec {
|
||||
pname = "colorama";
|
||||
version = "0.4.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl";
|
||||
sha256 = "1ijz53xpmxds2qf02l9yf0rnp7bznwh3ci4xkw8wmh5cyn8rj7ag";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"confuse" = super.buildPythonPackage rec {
|
||||
pname = "confuse";
|
||||
version = "2.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/32/1f/cf496479814d41fc252004482deeb90b740b4a6a391a3355c0b11d7e0abf/confuse-2.0.1-py3-none-any.whl";
|
||||
sha256 = "0amxm8vnxcayh7inahvj3fzj33n8gs8lvcfaicqrpjz2f2y5p7lv";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."PyYAML"
|
||||
];
|
||||
};
|
||||
"exceptiongroup" = super.buildPythonPackage rec {
|
||||
pname = "exceptiongroup";
|
||||
version = "1.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl";
|
||||
sha256 = "044alxyhkfdlr5z3xlpnf5lv78310bnsgnkdmm669l0k1ip1w4ad";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."typing-extensions"
|
||||
];
|
||||
};
|
||||
"filetype" = super.buildPythonPackage rec {
|
||||
pname = "filetype";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl";
|
||||
sha256 = "099d3igvmfcdgg9dcylz8advva5n3qpplsf8gb7l24hqh1l1prvw";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"h11" = super.buildPythonPackage rec {
|
||||
pname = "h11";
|
||||
version = "0.14.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl";
|
||||
sha256 = "0qd7z9p38dwx215048q708vd1sn2abdh1mb3hg66ii2ip324mzp3";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"httpcore" = super.buildPythonPackage rec {
|
||||
pname = "httpcore";
|
||||
version = "1.0.7";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl";
|
||||
sha256 = "1p8f8bnrir1d50s6z19jndca98qghgqrr7rx6syxaq627psgizx3";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."certifi"
|
||||
self."h11"
|
||||
];
|
||||
};
|
||||
"httpx" = super.buildPythonPackage rec {
|
||||
pname = "httpx";
|
||||
version = "0.28.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl";
|
||||
sha256 = "1barpaw8as8xb7b2bsmzdmdbq5nqljlq5jhlz3xcgy0hq76gq2fr";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."anyio"
|
||||
self."certifi"
|
||||
self."httpcore"
|
||||
self."idna"
|
||||
];
|
||||
};
|
||||
"idna" = super.buildPythonPackage rec {
|
||||
pname = "idna";
|
||||
version = "3.10";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl";
|
||||
sha256 = "1lw72a5swas501zvkpd6dsryj5hzjijqxs3526kbp7151md1jvcl";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
# "jellyfish" = super.buildPythonPackage rec { # That is Rust package
|
||||
# pname = "jellyfish";
|
||||
# version = "1.1.3";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/5b/3a/f607d7d44ee5cbad51ce8e2966bde112789eeb53633558f500bc4e44c053/jellyfish-1.1.3.tar.gz";
|
||||
# sha256 = "17wgy021wsp8jj95v638kfk34r9yzbry3q7shnglj5npmgfs22v5";
|
||||
# };
|
||||
# format = "setuptools";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [ ];
|
||||
# };
|
||||
"langdetect" = super.buildPythonPackage rec {
|
||||
pname = "langdetect";
|
||||
version = "1.0.9";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2569554f7c70f4a3c27712f40e3284d483e88094cc0e/langdetect-1.0.9.tar.gz";
|
||||
sha256 = "1805svvb7xjm4sf1j7b6nc3409x37pd1xmabfwwjf1ldkzwgxhfb";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."six"
|
||||
];
|
||||
};
|
||||
"mediafile" = super.buildPythonPackage rec {
|
||||
pname = "mediafile";
|
||||
version = "0.13.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/9f/b0/363b4d1443a593398f9d3784f406385f075e8fd0991c35356e73fc37638a/mediafile-0.13.0-py3-none-any.whl";
|
||||
sha256 = "1jqlwmwpgn0fxkbxrj8y5a4wr3ikwgs2rsc678hbaw861qyii3fd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."filetype"
|
||||
self."mutagen"
|
||||
];
|
||||
};
|
||||
"munkres" = super.buildPythonPackage rec {
|
||||
pname = "munkres";
|
||||
version = "1.1.4";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/90/ab/0301c945a704218bc9435f0e3c88884f6b19ef234d8899fb47ce1ccfd0c9/munkres-1.1.4-py2.py3-none-any.whl";
|
||||
sha256 = "0apdpkbhg4wq5pis5d2mkqg46ikwix5nwcm2mrjxi04499yqc0bb";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"musicbrainzngs" = super.buildPythonPackage rec {
|
||||
pname = "musicbrainzngs";
|
||||
version = "0.7.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/6d/fd/cef7b2580436910ccd2f8d3deec0f3c81743e15c0eb5b97dde3fbf33c0c8/musicbrainzngs-0.7.1-py2.py3-none-any.whl";
|
||||
sha256 = "040s1q4ia6gl2bjjxrjs384980854s9za28b55r0lk0hfpwshhg8";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"mutagen" = super.buildPythonPackage rec {
|
||||
pname = "mutagen";
|
||||
version = "1.47.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b0/7a/620f945b96be1f6ee357d211d5bf74ab1b7fe72a9f1525aafbfe3aee6875/mutagen-1.47.0-py3-none-any.whl";
|
||||
sha256 = "06d7miq4z6m7j8rx2czkmqhgbjb2bwjagfz5v0wraylhqm86zngd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"oauthlib" = super.buildPythonPackage rec {
|
||||
pname = "oauthlib";
|
||||
version = "3.2.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl";
|
||||
sha256 = "1jpvcxq0xr3z50fdg828in1icgz8cfcy3sc04r85vqhkmjdg4fc1";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"packaging" = super.buildPythonPackage rec {
|
||||
pname = "packaging";
|
||||
version = "24.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl";
|
||||
sha256 = "0nd7a421brjgd4prm8fbs8a6bcv4n1yplgxalgs02p16rnyb3aq9";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"pillow" = super.buildPythonPackage rec {
|
||||
pname = "pillow";
|
||||
version = "11.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/a5/26/0d95c04c868f6bdb0c447e3ee2de5564411845e36a858cfd63766bc7b563/pillow-11.0.0.tar.gz";
|
||||
sha256 = "0fbpcwgiac19ap0h1qa1imsqhq6vxv8kg67zkgm3y05c4jpwpfkj";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"platformdirs" = super.buildPythonPackage rec {
|
||||
pname = "platformdirs";
|
||||
version = "4.3.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl";
|
||||
sha256 = "1yy39iay8fdb3c1r4gm011lla1sk1mc9fsw300wi1f4a83hpbrbk";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"pycountry" = super.buildPythonPackage rec {
|
||||
pname = "pycountry";
|
||||
version = "24.6.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b1/ec/1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492/pycountry-24.6.1-py3-none-any.whl";
|
||||
sha256 = "0vz0dhfkbjld5jagh9wafwy27k5d83bmd5fkxy74y8fp3hwzp97i";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"pylast" = super.buildPythonPackage rec {
|
||||
pname = "pylast";
|
||||
version = "5.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/9b/57/e25206d012afe3fe5e3336a875babb5413b81c00706411a645a38185ad3b/pylast-5.3.0-py3-none-any.whl";
|
||||
sha256 = "023ki92jgc9mk2k9c4li48zf23yz2wn022m1rsjj9bsvn3f7ri2c";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."httpx"
|
||||
];
|
||||
};
|
||||
"python-dateutil" = super.buildPythonPackage rec {
|
||||
pname = "python-dateutil";
|
||||
version = "2.9.0.post0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl";
|
||||
sha256 = "09q48zvsbagfa3w87zkd2c5xl54wmb9rf2hlr20j4a5fzxxvrcm8";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."six"
|
||||
];
|
||||
};
|
||||
"python3-discogs-client" = super.buildPythonPackage rec {
|
||||
pname = "python3-discogs-client";
|
||||
version = "2.7.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/02/eb/b3d321440728addb72296e75ae2bfddd8fd3518b5ce5bd54a1ad821227a2/python3_discogs_client-2.7.1-py3-none-any.whl";
|
||||
sha256 = "0i3lfdn2ncxfvmmldg31gmdv7vdcicjl890mihncxa48yb9g7daz";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."oauthlib"
|
||||
self."python-dateutil"
|
||||
self."requests"
|
||||
];
|
||||
};
|
||||
"requests" = super.buildPythonPackage rec {
|
||||
pname = "requests";
|
||||
version = "2.32.3";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl";
|
||||
sha256 = "1inwsrhx0m16q0wa1z6dfm8i8xkrfns73xm25arcwwy70gz1qxkh";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."certifi"
|
||||
self."charset-normalizer"
|
||||
self."idna"
|
||||
self."urllib3"
|
||||
];
|
||||
};
|
||||
"six" = super.buildPythonPackage rec {
|
||||
pname = "six";
|
||||
version = "1.17.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl";
|
||||
sha256 = "0x1jdic712dylbnyiqdj4xyxrlx0gaacynmbmkfiym4hxn8z68a7";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"sniffio" = super.buildPythonPackage rec {
|
||||
pname = "sniffio";
|
||||
version = "1.3.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl";
|
||||
sha256 = "18i50l85yppn9w1ily8m342yd577h0bg8y24hkfzvq7is4ca8v9g";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"soupsieve" = super.buildPythonPackage rec {
|
||||
pname = "soupsieve";
|
||||
version = "2.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl";
|
||||
sha256 = "1jfc0b39kwnh4n30458mr8gmh50mx3k5zxghm6sy9djgdvq4yb77";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"typing-extensions" = super.buildPythonPackage rec {
|
||||
pname = "typing-extensions";
|
||||
version = "4.12.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl";
|
||||
sha256 = "03bhjivpvdhn4c3x0963z89hv7b5vxr415akd1fgiwz0a41wmr84";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"urllib3" = super.buildPythonPackage rec {
|
||||
pname = "urllib3";
|
||||
version = "2.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl";
|
||||
sha256 = "1pz380a93mhdrzx5003inw5pm5n0fh1xazcbnjxzsyw6d79rmvhw";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
xlib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
depsOverlay = import ./dependencies.nix {
|
||||
# ./dependencies-full.nix if broken
|
||||
inherit (pkgs) fetchurl fetchgit fetchhg;
|
||||
inherit pkgs;
|
||||
};
|
||||
python3 = pkgs.python3.override {
|
||||
packageOverrides = depsOverlay;
|
||||
};
|
||||
beetsEnv = python3.withPackages (
|
||||
ps: with pkgs.python313Packages; [
|
||||
#pkgs.beets # Из nixpkgs (проверь версию!) или оверлея
|
||||
beautifulsoup4 # Из nixpkgs
|
||||
certifi # Из nixpkgs
|
||||
requests # Из nixpkgs
|
||||
pyyaml # Из nixpkgs
|
||||
unidecode # Из nixpkgs
|
||||
pylast # Из nixpkgs
|
||||
jellyfish # Из nixpkgs, если есть, или оверлея
|
||||
confuse
|
||||
#httpcore
|
||||
httpx
|
||||
packaging
|
||||
pycountry
|
||||
typing-extensions
|
||||
anyio
|
||||
ps.python3-discogs-client
|
||||
ps.beetcamp # Из оверлея
|
||||
]
|
||||
);
|
||||
in
|
||||
{
|
||||
systemd.tmpfiles.rules = [
|
||||
"z /mnt/beets 0700 ${xlib.device.username} users -" # beets absolute paths
|
||||
];
|
||||
|
||||
users = {
|
||||
users = {
|
||||
"${xlib.device.username}" = {
|
||||
packages = [
|
||||
beetsEnv
|
||||
pkgs.beets
|
||||
pkgs.mp3gain
|
||||
pkgs.imagemagick
|
||||
#pkgs.ffmpeg
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,573 +0,0 @@
|
||||
# Generated by pip2nix 0.8.0.dev1
|
||||
# See https://github.com/nix-community/pip2nix
|
||||
|
||||
{
|
||||
pkgs,
|
||||
fetchurl,
|
||||
fetchgit,
|
||||
fetchhg,
|
||||
}:
|
||||
|
||||
self: super: {
|
||||
"PyYAML" = super.buildPythonPackage rec {
|
||||
pname = "PyYAML";
|
||||
version = "6.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz";
|
||||
sha256 = "0gmwggzm0j0iprx074g5hah91y2f68sfhhldq0f8crddj7ndk16m";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"Unidecode" = super.buildPythonPackage rec {
|
||||
pname = "Unidecode";
|
||||
version = "1.3.8";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/84/b7/6ec57841fb67c98f52fc8e4a2d96df60059637cba077edc569a302a8ffc7/Unidecode-1.3.8-py3-none-any.whl";
|
||||
sha256 = "0fgxj6h9lkjq4saynkjqf2wb9plsr5wyg3xxld482vv9wqfacc6i";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"anyio" = super.buildPythonPackage rec {
|
||||
pname = "anyio";
|
||||
version = "4.7.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/a0/7a/4daaf3b6c08ad7ceffea4634ec206faeff697526421c20f07628c7372156/anyio-4.7.0-py3-none-any.whl";
|
||||
sha256 = "0lp30wfn1hs2wvaz3wadzwwcb3l9ii4b1k78yzzscaxl79rc6q7a";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."exceptiongroup"
|
||||
self."idna"
|
||||
self."sniffio"
|
||||
self."typing-extensions"
|
||||
];
|
||||
};
|
||||
"beautifulsoup4" = super.buildPythonPackage rec {
|
||||
pname = "beautifulsoup4";
|
||||
version = "4.12.3";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl";
|
||||
sha256 = "1vc2w3wvnhbp2q287ilzjsiqyvd0vc5s52ysalz32481yk4ph25q";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."soupsieve"
|
||||
];
|
||||
};
|
||||
"beetcamp" = super.buildPythonPackage rec {
|
||||
pname = "beetcamp";
|
||||
version = "0.21.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/6c/d3/94cad1ba1e65a9445655968a6dcdd528cb1352e2389f0921a9f8c0ccd4a0/beetcamp-0.21.0-py3-none-any.whl";
|
||||
sha256 = "08mxqmckg2fx9rkm5a1n9zs2sjccjj75vgxac22xjyi3fw1k0wz2";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
#self."beets" # its doesnt matter?
|
||||
self."httpx"
|
||||
self."packaging"
|
||||
self."pycountry"
|
||||
];
|
||||
};
|
||||
"beets" = super.buildPythonPackage rec {
|
||||
pname = "beets";
|
||||
version = "2.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/f3/44/1c53c2ac111e5526083e58f50a22504ad7c609be1ce660c0339938a42c33/beets-2.2.0-py3-none-any.whl";
|
||||
sha256 = "076hl1j74cgyh6n1piwprnzb89gihy2vmajm8lzfhy1jjcrfrpbd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."PyYAML"
|
||||
self."Unidecode"
|
||||
self."confuse"
|
||||
self."jellyfish"
|
||||
self."mediafile"
|
||||
self."munkres"
|
||||
self."musicbrainzngs"
|
||||
self."platformdirs"
|
||||
self."typing-extensions"
|
||||
# ext
|
||||
self."requests" # For spotify, deezer, embedart, fetchart, lyrics
|
||||
self."python3-discogs-client" # For discogs
|
||||
self."pylast" # For lastgenre
|
||||
self."beetcamp" # Another
|
||||
];
|
||||
};
|
||||
"certifi" = super.buildPythonPackage rec {
|
||||
pname = "certifi";
|
||||
version = "2024.12.14";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl";
|
||||
sha256 = "0mpccx4yscnk6rhl12fk8wpgwrpq62m4w23k27y4wip9bfjgfx8j";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"charset-normalizer" = super.buildPythonPackage rec {
|
||||
pname = "charset-normalizer";
|
||||
version = "3.4.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz";
|
||||
sha256 = "18sfsqpdmxbddr3g3yg0sln10ghq4sp0vl2xb1b5p9v8rlc1y9a4";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"colorama" = super.buildPythonPackage rec {
|
||||
pname = "colorama";
|
||||
version = "0.4.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl";
|
||||
sha256 = "1ijz53xpmxds2qf02l9yf0rnp7bznwh3ci4xkw8wmh5cyn8rj7ag";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"confuse" = super.buildPythonPackage rec {
|
||||
pname = "confuse";
|
||||
version = "2.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/32/1f/cf496479814d41fc252004482deeb90b740b4a6a391a3355c0b11d7e0abf/confuse-2.0.1-py3-none-any.whl";
|
||||
sha256 = "0amxm8vnxcayh7inahvj3fzj33n8gs8lvcfaicqrpjz2f2y5p7lv";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."PyYAML"
|
||||
];
|
||||
};
|
||||
"exceptiongroup" = super.buildPythonPackage rec {
|
||||
pname = "exceptiongroup";
|
||||
version = "1.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl";
|
||||
sha256 = "044alxyhkfdlr5z3xlpnf5lv78310bnsgnkdmm669l0k1ip1w4ad";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."typing-extensions"
|
||||
];
|
||||
};
|
||||
"filetype" = super.buildPythonPackage rec {
|
||||
pname = "filetype";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl";
|
||||
sha256 = "099d3igvmfcdgg9dcylz8advva5n3qpplsf8gb7l24hqh1l1prvw";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"h11" = super.buildPythonPackage rec {
|
||||
pname = "h11";
|
||||
version = "0.14.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl";
|
||||
sha256 = "0qd7z9p38dwx215048q708vd1sn2abdh1mb3hg66ii2ip324mzp3";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"httpcore" = super.buildPythonPackage rec {
|
||||
pname = "httpcore";
|
||||
version = "1.0.7";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl";
|
||||
sha256 = "1p8f8bnrir1d50s6z19jndca98qghgqrr7rx6syxaq627psgizx3";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."certifi"
|
||||
self."h11"
|
||||
];
|
||||
};
|
||||
"httpx" = super.buildPythonPackage rec {
|
||||
pname = "httpx";
|
||||
version = "0.28.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl";
|
||||
sha256 = "1barpaw8as8xb7b2bsmzdmdbq5nqljlq5jhlz3xcgy0hq76gq2fr";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."anyio"
|
||||
self."certifi"
|
||||
self."httpcore"
|
||||
self."idna"
|
||||
];
|
||||
};
|
||||
"idna" = super.buildPythonPackage rec {
|
||||
pname = "idna";
|
||||
version = "3.10";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl";
|
||||
sha256 = "1lw72a5swas501zvkpd6dsryj5hzjijqxs3526kbp7151md1jvcl";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
# "jellyfish" = super.buildPythonPackage rec { # That is Rust package
|
||||
# pname = "jellyfish";
|
||||
# version = "1.1.3";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/5b/3a/f607d7d44ee5cbad51ce8e2966bde112789eeb53633558f500bc4e44c053/jellyfish-1.1.3.tar.gz";
|
||||
# sha256 = "17wgy021wsp8jj95v638kfk34r9yzbry3q7shnglj5npmgfs22v5";
|
||||
# };
|
||||
# format = "setuptools";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [ ];
|
||||
# };
|
||||
"langdetect" = super.buildPythonPackage rec {
|
||||
pname = "langdetect";
|
||||
version = "1.0.9";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2569554f7c70f4a3c27712f40e3284d483e88094cc0e/langdetect-1.0.9.tar.gz";
|
||||
sha256 = "1805svvb7xjm4sf1j7b6nc3409x37pd1xmabfwwjf1ldkzwgxhfb";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."six"
|
||||
];
|
||||
};
|
||||
"mediafile" = super.buildPythonPackage rec {
|
||||
pname = "mediafile";
|
||||
version = "0.13.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/9f/b0/363b4d1443a593398f9d3784f406385f075e8fd0991c35356e73fc37638a/mediafile-0.13.0-py3-none-any.whl";
|
||||
sha256 = "1jqlwmwpgn0fxkbxrj8y5a4wr3ikwgs2rsc678hbaw861qyii3fd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."filetype"
|
||||
self."mutagen"
|
||||
];
|
||||
};
|
||||
"munkres" = super.buildPythonPackage rec {
|
||||
pname = "munkres";
|
||||
version = "1.1.4";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/90/ab/0301c945a704218bc9435f0e3c88884f6b19ef234d8899fb47ce1ccfd0c9/munkres-1.1.4-py2.py3-none-any.whl";
|
||||
sha256 = "0apdpkbhg4wq5pis5d2mkqg46ikwix5nwcm2mrjxi04499yqc0bb";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"musicbrainzngs" = super.buildPythonPackage rec {
|
||||
pname = "musicbrainzngs";
|
||||
version = "0.7.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/6d/fd/cef7b2580436910ccd2f8d3deec0f3c81743e15c0eb5b97dde3fbf33c0c8/musicbrainzngs-0.7.1-py2.py3-none-any.whl";
|
||||
sha256 = "040s1q4ia6gl2bjjxrjs384980854s9za28b55r0lk0hfpwshhg8";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"mutagen" = super.buildPythonPackage rec {
|
||||
pname = "mutagen";
|
||||
version = "1.47.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b0/7a/620f945b96be1f6ee357d211d5bf74ab1b7fe72a9f1525aafbfe3aee6875/mutagen-1.47.0-py3-none-any.whl";
|
||||
sha256 = "06d7miq4z6m7j8rx2czkmqhgbjb2bwjagfz5v0wraylhqm86zngd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"oauthlib" = super.buildPythonPackage rec {
|
||||
pname = "oauthlib";
|
||||
version = "3.2.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl";
|
||||
sha256 = "1jpvcxq0xr3z50fdg828in1icgz8cfcy3sc04r85vqhkmjdg4fc1";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"packaging" = super.buildPythonPackage rec {
|
||||
pname = "packaging";
|
||||
version = "24.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl";
|
||||
sha256 = "0nd7a421brjgd4prm8fbs8a6bcv4n1yplgxalgs02p16rnyb3aq9";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"pillow" = super.buildPythonPackage rec {
|
||||
pname = "pillow";
|
||||
version = "11.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/a5/26/0d95c04c868f6bdb0c447e3ee2de5564411845e36a858cfd63766bc7b563/pillow-11.0.0.tar.gz";
|
||||
sha256 = "0fbpcwgiac19ap0h1qa1imsqhq6vxv8kg67zkgm3y05c4jpwpfkj";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"platformdirs" = super.buildPythonPackage rec {
|
||||
pname = "platformdirs";
|
||||
version = "4.3.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl";
|
||||
sha256 = "1yy39iay8fdb3c1r4gm011lla1sk1mc9fsw300wi1f4a83hpbrbk";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"pycountry" = super.buildPythonPackage rec {
|
||||
pname = "pycountry";
|
||||
version = "24.6.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b1/ec/1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492/pycountry-24.6.1-py3-none-any.whl";
|
||||
sha256 = "0vz0dhfkbjld5jagh9wafwy27k5d83bmd5fkxy74y8fp3hwzp97i";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"pylast" = super.buildPythonPackage rec {
|
||||
pname = "pylast";
|
||||
version = "5.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/9b/57/e25206d012afe3fe5e3336a875babb5413b81c00706411a645a38185ad3b/pylast-5.3.0-py3-none-any.whl";
|
||||
sha256 = "023ki92jgc9mk2k9c4li48zf23yz2wn022m1rsjj9bsvn3f7ri2c";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."httpx"
|
||||
];
|
||||
};
|
||||
"python-dateutil" = super.buildPythonPackage rec {
|
||||
pname = "python-dateutil";
|
||||
version = "2.9.0.post0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl";
|
||||
sha256 = "09q48zvsbagfa3w87zkd2c5xl54wmb9rf2hlr20j4a5fzxxvrcm8";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."six"
|
||||
];
|
||||
};
|
||||
"python3-discogs-client" = super.buildPythonPackage rec {
|
||||
pname = "python3-discogs-client";
|
||||
version = "2.7.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/02/eb/b3d321440728addb72296e75ae2bfddd8fd3518b5ce5bd54a1ad821227a2/python3_discogs_client-2.7.1-py3-none-any.whl";
|
||||
sha256 = "0i3lfdn2ncxfvmmldg31gmdv7vdcicjl890mihncxa48yb9g7daz";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."oauthlib"
|
||||
self."python-dateutil"
|
||||
self."requests"
|
||||
];
|
||||
};
|
||||
"requests" = super.buildPythonPackage rec {
|
||||
pname = "requests";
|
||||
version = "2.32.3";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl";
|
||||
sha256 = "1inwsrhx0m16q0wa1z6dfm8i8xkrfns73xm25arcwwy70gz1qxkh";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."certifi"
|
||||
self."charset-normalizer"
|
||||
self."idna"
|
||||
self."urllib3"
|
||||
];
|
||||
};
|
||||
"six" = super.buildPythonPackage rec {
|
||||
pname = "six";
|
||||
version = "1.17.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl";
|
||||
sha256 = "0x1jdic712dylbnyiqdj4xyxrlx0gaacynmbmkfiym4hxn8z68a7";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"sniffio" = super.buildPythonPackage rec {
|
||||
pname = "sniffio";
|
||||
version = "1.3.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl";
|
||||
sha256 = "18i50l85yppn9w1ily8m342yd577h0bg8y24hkfzvq7is4ca8v9g";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"soupsieve" = super.buildPythonPackage rec {
|
||||
pname = "soupsieve";
|
||||
version = "2.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl";
|
||||
sha256 = "1jfc0b39kwnh4n30458mr8gmh50mx3k5zxghm6sy9djgdvq4yb77";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"typing-extensions" = super.buildPythonPackage rec {
|
||||
pname = "typing-extensions";
|
||||
version = "4.12.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl";
|
||||
sha256 = "03bhjivpvdhn4c3x0963z89hv7b5vxr415akd1fgiwz0a41wmr84";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"urllib3" = super.buildPythonPackage rec {
|
||||
pname = "urllib3";
|
||||
version = "2.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl";
|
||||
sha256 = "1pz380a93mhdrzx5003inw5pm5n0fh1xazcbnjxzsyw6d79rmvhw";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,573 +0,0 @@
|
||||
# Generated by pip2nix 0.8.0.dev1
|
||||
# See https://github.com/nix-community/pip2nix
|
||||
|
||||
{
|
||||
pkgs,
|
||||
fetchurl,
|
||||
fetchgit,
|
||||
fetchhg,
|
||||
}:
|
||||
|
||||
self: super: {
|
||||
# "PyYAML" = super.buildPythonPackage rec {
|
||||
# pname = "PyYAML";
|
||||
# version = "6.0.2";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz";
|
||||
# sha256 = "0gmwggzm0j0iprx074g5hah91y2f68sfhhldq0f8crddj7ndk16m";
|
||||
# };
|
||||
# format = "setuptools";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [ ];
|
||||
# };
|
||||
# "Unidecode" = super.buildPythonPackage rec {
|
||||
# pname = "Unidecode";
|
||||
# version = "1.3.8";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/84/b7/6ec57841fb67c98f52fc8e4a2d96df60059637cba077edc569a302a8ffc7/Unidecode-1.3.8-py3-none-any.whl";
|
||||
# sha256 = "0fgxj6h9lkjq4saynkjqf2wb9plsr5wyg3xxld482vv9wqfacc6i";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [ ];
|
||||
# };
|
||||
# "anyio" = super.buildPythonPackage rec {
|
||||
# pname = "anyio";
|
||||
# version = "4.7.0";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/a0/7a/4daaf3b6c08ad7ceffea4634ec206faeff697526421c20f07628c7372156/anyio-4.7.0-py3-none-any.whl";
|
||||
# sha256 = "0lp30wfn1hs2wvaz3wadzwwcb3l9ii4b1k78yzzscaxl79rc6q7a";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [
|
||||
# self."exceptiongroup"
|
||||
# self."idna"
|
||||
# self."sniffio"
|
||||
# self."typing-extensions"
|
||||
# ];
|
||||
# };
|
||||
# "beautifulsoup4" = super.buildPythonPackage rec {
|
||||
# pname = "beautifulsoup4";
|
||||
# version = "4.12.3";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl";
|
||||
# sha256 = "1vc2w3wvnhbp2q287ilzjsiqyvd0vc5s52ysalz32481yk4ph25q";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [
|
||||
# self."soupsieve"
|
||||
# ];
|
||||
# };
|
||||
"beetcamp" = super.buildPythonPackage rec {
|
||||
pname = "beetcamp";
|
||||
version = "0.21.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/6c/d3/94cad1ba1e65a9445655968a6dcdd528cb1352e2389f0921a9f8c0ccd4a0/beetcamp-0.21.0-py3-none-any.whl";
|
||||
sha256 = "08mxqmckg2fx9rkm5a1n9zs2sjccjj75vgxac22xjyi3fw1k0wz2";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."beets" # its doesnt matter?
|
||||
# self."httpx"
|
||||
# self."packaging"
|
||||
# self."pycountry"
|
||||
];
|
||||
};
|
||||
"beets" = super.buildPythonPackage rec {
|
||||
pname = "beets";
|
||||
version = "2.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/f3/44/1c53c2ac111e5526083e58f50a22504ad7c609be1ce660c0339938a42c33/beets-2.2.0-py3-none-any.whl";
|
||||
sha256 = "076hl1j74cgyh6n1piwprnzb89gihy2vmajm8lzfhy1jjcrfrpbd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
#self."PyYAML"
|
||||
#self."Unidecode"
|
||||
#self."confuse"
|
||||
#self."jellyfish"
|
||||
self."mediafile"
|
||||
self."munkres"
|
||||
self."musicbrainzngs"
|
||||
self."platformdirs"
|
||||
#self."typing-extensions"
|
||||
# ext
|
||||
#self."requests" # For spotify, deezer, embedart, fetchart, lyrics
|
||||
self."python3-discogs-client" # For discogs
|
||||
#self."pylast" # For lastgenre
|
||||
#self."beetcamp" # Another
|
||||
];
|
||||
};
|
||||
# "certifi" = super.buildPythonPackage rec {
|
||||
# pname = "certifi";
|
||||
# version = "2024.12.14";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl";
|
||||
# sha256 = "0mpccx4yscnk6rhl12fk8wpgwrpq62m4w23k27y4wip9bfjgfx8j";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [ ];
|
||||
# };
|
||||
"charset-normalizer" = super.buildPythonPackage rec {
|
||||
pname = "charset-normalizer";
|
||||
version = "3.4.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz";
|
||||
sha256 = "18sfsqpdmxbddr3g3yg0sln10ghq4sp0vl2xb1b5p9v8rlc1y9a4";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"colorama" = super.buildPythonPackage rec {
|
||||
pname = "colorama";
|
||||
version = "0.4.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl";
|
||||
sha256 = "1ijz53xpmxds2qf02l9yf0rnp7bznwh3ci4xkw8wmh5cyn8rj7ag";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
# "confuse" = super.buildPythonPackage rec {
|
||||
# pname = "confuse";
|
||||
# version = "2.0.1";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/32/1f/cf496479814d41fc252004482deeb90b740b4a6a391a3355c0b11d7e0abf/confuse-2.0.1-py3-none-any.whl";
|
||||
# sha256 = "0amxm8vnxcayh7inahvj3fzj33n8gs8lvcfaicqrpjz2f2y5p7lv";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [
|
||||
# self."PyYAML"
|
||||
# ];
|
||||
# };
|
||||
"exceptiongroup" = super.buildPythonPackage rec {
|
||||
pname = "exceptiongroup";
|
||||
version = "1.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl";
|
||||
sha256 = "044alxyhkfdlr5z3xlpnf5lv78310bnsgnkdmm669l0k1ip1w4ad";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."typing-extensions"
|
||||
];
|
||||
};
|
||||
"filetype" = super.buildPythonPackage rec {
|
||||
pname = "filetype";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl";
|
||||
sha256 = "099d3igvmfcdgg9dcylz8advva5n3qpplsf8gb7l24hqh1l1prvw";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"h11" = super.buildPythonPackage rec {
|
||||
pname = "h11";
|
||||
version = "0.14.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl";
|
||||
sha256 = "0qd7z9p38dwx215048q708vd1sn2abdh1mb3hg66ii2ip324mzp3";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
# "httpcore" = super.buildPythonPackage rec {
|
||||
# pname = "httpcore";
|
||||
# version = "1.0.7";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl";
|
||||
# sha256 = "1p8f8bnrir1d50s6z19jndca98qghgqrr7rx6syxaq627psgizx3";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [
|
||||
# self."certifi"
|
||||
# self."h11"
|
||||
# ];
|
||||
# };
|
||||
# "httpx" = super.buildPythonPackage rec {
|
||||
# pname = "httpx";
|
||||
# version = "0.28.1";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl";
|
||||
# sha256 = "1barpaw8as8xb7b2bsmzdmdbq5nqljlq5jhlz3xcgy0hq76gq2fr";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [
|
||||
# self."anyio"
|
||||
# self."certifi"
|
||||
# self."httpcore"
|
||||
# self."idna"
|
||||
# ];
|
||||
# };
|
||||
"idna" = super.buildPythonPackage rec {
|
||||
pname = "idna";
|
||||
version = "3.10";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl";
|
||||
sha256 = "1lw72a5swas501zvkpd6dsryj5hzjijqxs3526kbp7151md1jvcl";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
# "jellyfish" = super.buildPythonPackage rec { # That is Rust package
|
||||
# pname = "jellyfish";
|
||||
# version = "1.1.3";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/5b/3a/f607d7d44ee5cbad51ce8e2966bde112789eeb53633558f500bc4e44c053/jellyfish-1.1.3.tar.gz";
|
||||
# sha256 = "17wgy021wsp8jj95v638kfk34r9yzbry3q7shnglj5npmgfs22v5";
|
||||
# };
|
||||
# format = "setuptools";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [ ];
|
||||
# };
|
||||
"langdetect" = super.buildPythonPackage rec {
|
||||
pname = "langdetect";
|
||||
version = "1.0.9";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2569554f7c70f4a3c27712f40e3284d483e88094cc0e/langdetect-1.0.9.tar.gz";
|
||||
sha256 = "1805svvb7xjm4sf1j7b6nc3409x37pd1xmabfwwjf1ldkzwgxhfb";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."six"
|
||||
];
|
||||
};
|
||||
"mediafile" = super.buildPythonPackage rec {
|
||||
pname = "mediafile";
|
||||
version = "0.13.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/9f/b0/363b4d1443a593398f9d3784f406385f075e8fd0991c35356e73fc37638a/mediafile-0.13.0-py3-none-any.whl";
|
||||
sha256 = "1jqlwmwpgn0fxkbxrj8y5a4wr3ikwgs2rsc678hbaw861qyii3fd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."filetype"
|
||||
self."mutagen"
|
||||
];
|
||||
};
|
||||
"munkres" = super.buildPythonPackage rec {
|
||||
pname = "munkres";
|
||||
version = "1.1.4";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/90/ab/0301c945a704218bc9435f0e3c88884f6b19ef234d8899fb47ce1ccfd0c9/munkres-1.1.4-py2.py3-none-any.whl";
|
||||
sha256 = "0apdpkbhg4wq5pis5d2mkqg46ikwix5nwcm2mrjxi04499yqc0bb";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"musicbrainzngs" = super.buildPythonPackage rec {
|
||||
pname = "musicbrainzngs";
|
||||
version = "0.7.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/6d/fd/cef7b2580436910ccd2f8d3deec0f3c81743e15c0eb5b97dde3fbf33c0c8/musicbrainzngs-0.7.1-py2.py3-none-any.whl";
|
||||
sha256 = "040s1q4ia6gl2bjjxrjs384980854s9za28b55r0lk0hfpwshhg8";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"mutagen" = super.buildPythonPackage rec {
|
||||
pname = "mutagen";
|
||||
version = "1.47.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b0/7a/620f945b96be1f6ee357d211d5bf74ab1b7fe72a9f1525aafbfe3aee6875/mutagen-1.47.0-py3-none-any.whl";
|
||||
sha256 = "06d7miq4z6m7j8rx2czkmqhgbjb2bwjagfz5v0wraylhqm86zngd";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"oauthlib" = super.buildPythonPackage rec {
|
||||
pname = "oauthlib";
|
||||
version = "3.2.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl";
|
||||
sha256 = "1jpvcxq0xr3z50fdg828in1icgz8cfcy3sc04r85vqhkmjdg4fc1";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"packaging" = super.buildPythonPackage rec {
|
||||
pname = "packaging";
|
||||
version = "24.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl";
|
||||
sha256 = "0nd7a421brjgd4prm8fbs8a6bcv4n1yplgxalgs02p16rnyb3aq9";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"pillow" = super.buildPythonPackage rec {
|
||||
pname = "pillow";
|
||||
version = "11.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/a5/26/0d95c04c868f6bdb0c447e3ee2de5564411845e36a858cfd63766bc7b563/pillow-11.0.0.tar.gz";
|
||||
sha256 = "0fbpcwgiac19ap0h1qa1imsqhq6vxv8kg67zkgm3y05c4jpwpfkj";
|
||||
};
|
||||
format = "setuptools";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"platformdirs" = super.buildPythonPackage rec {
|
||||
pname = "platformdirs";
|
||||
version = "4.3.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl";
|
||||
sha256 = "1yy39iay8fdb3c1r4gm011lla1sk1mc9fsw300wi1f4a83hpbrbk";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"pycountry" = super.buildPythonPackage rec {
|
||||
pname = "pycountry";
|
||||
version = "24.6.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b1/ec/1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492/pycountry-24.6.1-py3-none-any.whl";
|
||||
sha256 = "0vz0dhfkbjld5jagh9wafwy27k5d83bmd5fkxy74y8fp3hwzp97i";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
# "pylast" = super.buildPythonPackage rec {
|
||||
# pname = "pylast";
|
||||
# version = "5.3.0";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/9b/57/e25206d012afe3fe5e3336a875babb5413b81c00706411a645a38185ad3b/pylast-5.3.0-py3-none-any.whl";
|
||||
# sha256 = "023ki92jgc9mk2k9c4li48zf23yz2wn022m1rsjj9bsvn3f7ri2c";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [
|
||||
# self."httpx"
|
||||
# ];
|
||||
# };
|
||||
"python-dateutil" = super.buildPythonPackage rec {
|
||||
pname = "python-dateutil";
|
||||
version = "2.9.0.post0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl";
|
||||
sha256 = "09q48zvsbagfa3w87zkd2c5xl54wmb9rf2hlr20j4a5fzxxvrcm8";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."six"
|
||||
];
|
||||
};
|
||||
"python3-discogs-client" = super.buildPythonPackage rec {
|
||||
pname = "python3-discogs-client";
|
||||
version = "2.7.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/02/eb/b3d321440728addb72296e75ae2bfddd8fd3518b5ce5bd54a1ad821227a2/python3_discogs_client-2.7.1-py3-none-any.whl";
|
||||
sha256 = "0i3lfdn2ncxfvmmldg31gmdv7vdcicjl890mihncxa48yb9g7daz";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [
|
||||
self."oauthlib"
|
||||
self."python-dateutil"
|
||||
#self."requests"
|
||||
];
|
||||
};
|
||||
# "requests" = super.buildPythonPackage rec {
|
||||
# pname = "requests";
|
||||
# version = "2.32.3";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl";
|
||||
# sha256 = "1inwsrhx0m16q0wa1z6dfm8i8xkrfns73xm25arcwwy70gz1qxkh";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [
|
||||
# self."certifi"
|
||||
# self."charset-normalizer"
|
||||
# self."idna"
|
||||
# self."urllib3"
|
||||
# ];
|
||||
# };
|
||||
"six" = super.buildPythonPackage rec {
|
||||
pname = "six";
|
||||
version = "1.17.0";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl";
|
||||
sha256 = "0x1jdic712dylbnyiqdj4xyxrlx0gaacynmbmkfiym4hxn8z68a7";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"sniffio" = super.buildPythonPackage rec {
|
||||
pname = "sniffio";
|
||||
version = "1.3.1";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl";
|
||||
sha256 = "18i50l85yppn9w1ily8m342yd577h0bg8y24hkfzvq7is4ca8v9g";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"soupsieve" = super.buildPythonPackage rec {
|
||||
pname = "soupsieve";
|
||||
version = "2.6";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl";
|
||||
sha256 = "1jfc0b39kwnh4n30458mr8gmh50mx3k5zxghm6sy9djgdvq4yb77";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
"typing-extensions" = super.buildPythonPackage rec {
|
||||
pname = "typing-extensions";
|
||||
version = "4.12.2";
|
||||
src = fetchurl {
|
||||
url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl";
|
||||
sha256 = "03bhjivpvdhn4c3x0963z89hv7b5vxr415akd1fgiwz0a41wmr84";
|
||||
};
|
||||
format = "wheel";
|
||||
doCheck = false;
|
||||
buildInputs = [ ];
|
||||
checkInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
propagatedBuildInputs = [ ];
|
||||
};
|
||||
# "urllib3" = super.buildPythonPackage rec {
|
||||
# pname = "urllib3";
|
||||
# version = "2.3.0";
|
||||
# src = fetchurl {
|
||||
# url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl";
|
||||
# sha256 = "1pz380a93mhdrzx5003inw5pm5n0fh1xazcbnjxzsyw6d79rmvhw";
|
||||
# };
|
||||
# format = "wheel";
|
||||
# doCheck = false;
|
||||
# buildInputs = [ ];
|
||||
# checkInputs = [ ];
|
||||
# nativeBuildInputs = [ ];
|
||||
# propagatedBuildInputs = [ ];
|
||||
# };
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
xlib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
# let
|
||||
# work = import inputs.nixpkgs-master { system = "x86_64-linux"; };
|
||||
# in
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.openai-whisper
|
||||
|
||||
# (work.openai-whisper.override {
|
||||
# torch = pkgs.python313Packages.torch-bin; # Используй бинарный torch с ROCm, чтобы обойти сборочную хуйню
|
||||
# })
|
||||
];
|
||||
# systemd.tmpfiles.rules = ["L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"];
|
||||
# hardware.graphics.extraPackages = with pkgs.rocmPackages; [ clr clr.icd ];
|
||||
|
||||
#nixpkgs.config.rocmSupport = true;
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
sshdDir = "${config.user.home}/sshd";
|
||||
sshdTmpDir = "${config.user.home}/sshd-tmp";
|
||||
port = 8022;
|
||||
serviceDir = "${config.user.home}/service";
|
||||
|
||||
# runit run-scripts (executable store paths, linked into ~/service).
|
||||
sshdRun = pkgs.writeScriptBin "sshd-run" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
exec ${pkgs.openssh}/bin/sshd -f /etc/ssh/sshd_config -D
|
||||
'';
|
||||
svLogRun = pkgs.writeScriptBin "sv-log-run" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
mkdir -p ./main
|
||||
exec ${pkgs.runit}/bin/svlogd -tt ./main
|
||||
'';
|
||||
svStart = pkgs.writeScriptBin "sv-start" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
exec ${pkgs.runit}/bin/runsvdir ${serviceDir}
|
||||
'';
|
||||
in
|
||||
{
|
||||
# Minimal sshd server for LAN access (e.g. `ssh epral` from other hosts).
|
||||
# nix-on-droid has no systemd: sshd is started manually via `sshd-start`
|
||||
# (or from Termux:Boot / a session). The host key is generated once on the
|
||||
# first activation and kept in ~/sshd (NOT /etc — it is rebuilt on every
|
||||
# activation).
|
||||
environment.etc."ssh/sshd_config".text = ''
|
||||
HostKey ${sshdDir}/ssh_host_ed25519_key
|
||||
Port ${toString port}
|
||||
PasswordAuthentication no
|
||||
AllowUsers ${config.user.userName}
|
||||
'';
|
||||
|
||||
# Generate the host key on first activation (idempotent).
|
||||
build.activation.sshd = ''
|
||||
if [[ ! -d "${sshdDir}" ]]; then
|
||||
$DRY_RUN_CMD rm -rf "${sshdTmpDir}"
|
||||
$DRY_RUN_CMD mkdir -p "${sshdTmpDir}"
|
||||
$VERBOSE_ECHO "Generating sshd host key..."
|
||||
$DRY_RUN_CMD ${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f "${sshdTmpDir}/ssh_host_ed25519_key" -N ""
|
||||
$DRY_RUN_CMD mv "${sshdTmpDir}" "${sshdDir}"
|
||||
fi
|
||||
'';
|
||||
|
||||
# nix-on-droid's session-init adds ~/.nix-defexpr/channels to NIX_PATH
|
||||
# unconditionally; nix warns about the missing dir on every invocation.
|
||||
# Making it exist silences the warning. Must be done in activation (not
|
||||
# home-manager): ~/.nix-defexpr/channels is a symlink into
|
||||
# ~/.local/state/nix/profiles/channels (dangling until it exists), which
|
||||
# home-manager cannot link into. mkdir -p refuses to traverse a dangling
|
||||
# symlink, so create the real target dir instead.
|
||||
build.activation.nixdefexpr = ''
|
||||
$DRY_RUN_CMD mkdir -p "${config.user.home}/.local/state/nix/profiles/channels/nixpkgs"
|
||||
$DRY_RUN_CMD touch "${config.user.home}/.local/state/nix/profiles/channels/nixpkgs/.keep"
|
||||
'';
|
||||
|
||||
# runit service tree: ~/service/<name>/{run,log/run}. run/ and log/run are
|
||||
# symlinks into the nix store (read-only is fine; runsvdir writes only to
|
||||
# the <name>/supervise dirs). /etc/service is symlinked for `sv status`.
|
||||
# NOTE: tailscaled was removed — nixpkgs' linux build cannot run inside
|
||||
# proot (SELinux blocks netlink; needs GOOS=android or root). Re-add only
|
||||
# if that gets solved.
|
||||
build.activation.services = ''
|
||||
$DRY_RUN_CMD rm -rf ${serviceDir}/tailscaled
|
||||
$DRY_RUN_CMD mkdir -p ${serviceDir}/sshd/log
|
||||
$DRY_RUN_CMD ln -sfn ${sshdRun}/bin/sshd-run ${serviceDir}/sshd/run
|
||||
$DRY_RUN_CMD ln -sfn ${svLogRun}/bin/sv-log-run ${serviceDir}/sshd/log/run
|
||||
$DRY_RUN_CMD ln -sfn ${serviceDir} /etc/service
|
||||
'';
|
||||
|
||||
environment.packages = [
|
||||
pkgs.runit
|
||||
|
||||
# one command brings up all supervised services (sshd, ...)
|
||||
svStart
|
||||
|
||||
# manual fallback for sshd only
|
||||
(pkgs.writeScriptBin "sshd-start" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
exec ${pkgs.openssh}/bin/sshd -f /etc/ssh/sshd_config -D "$@"
|
||||
'')
|
||||
|
||||
# termux-battery-status, termux-notification, termux-clipboard-*, ...
|
||||
# Needs the Termux:API Android app (com.termux.api, from F-Droid) as the
|
||||
# actual backend; see termux-api.nix.
|
||||
(pkgs.callPackage ./termux-api.nix { })
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
# termux-api — C binary + scripts that talk to the Termux:API Android app.
|
||||
#
|
||||
# The Android app (com.termux.api, installed separately from F-Droid) is the
|
||||
# actual backend: `termux-api-broadcast` sends an `am broadcast` intent to
|
||||
# com.termux.api/.TermuxApiReceiver and pipes stdout/stdin over abstract unix
|
||||
# sockets. The nix side only provides the CLI entry points:
|
||||
# termux-battery-status, termux-notification, termux-clipboard-*,
|
||||
# termux-toast, termux-share, termux-dialog, ...
|
||||
#
|
||||
# Adaptations for nix-on-droid (upstream assumes termux's /data prefix):
|
||||
# - `am` is resolved from PATH (provided by android-integration.am)
|
||||
# - scripts' shebang rewritten from the substituted `#!$out/bin/sh`
|
||||
# - termux-callback referenced by absolute store path
|
||||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
runtimeShell,
|
||||
lib,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "termux-api";
|
||||
version = "0.59.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "termux";
|
||||
repo = "termux-api-package";
|
||||
rev = "v${version}";
|
||||
sha256 = "1pkdjxll9x9arrifppl7y37dmni5fi4jng2wfx0dgbgriyjrhxl7";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
# CMakeLists.txt declares cmake_minimum_required(VERSION 3.0.0), but modern
|
||||
# CMake refuses to configure with < 3.5. Bump the floor via policy override.
|
||||
cmakeFlags = [ "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" ];
|
||||
|
||||
# termux-api.c hardcodes PREFIX for `am` and `termux-callback`. On
|
||||
# nix-on-droid `am` comes from android-integration.am (termux-am) via PATH;
|
||||
# termux-callback lives in our own libexec dir.
|
||||
patchPhase = ''
|
||||
substituteInPlace termux-api.c \
|
||||
--replace 'execv(PREFIX "/bin/am", child_argv);' 'execvp("am", child_argv);' \
|
||||
--replace 'execl(PREFIX "/libexec/termux-callback", "termux-callback", NULL);' 'execl("${placeholder "out"}/libexec/termux-callback", "termux-callback", NULL);' \
|
||||
--replace 'execl(PREFIX "/libexec/termux-callback", "termux-callback", fds, NULL);' 'execl("${placeholder "out"}/libexec/termux-callback", "termux-callback", fds, NULL);'
|
||||
'';
|
||||
|
||||
# CMake substitutes @TERMUX_PREFIX@ (= CMAKE_INSTALL_PREFIX = $out) into the
|
||||
# scripts' shebang, producing `#!$out/bin/sh` which does not exist. Rewrite
|
||||
# all shebangs to the nix runtime shell.
|
||||
postInstall = ''
|
||||
for f in $out/bin/termux-* $out/libexec/termux-callback; do
|
||||
sed -i "1s|^#!.*|#!${runtimeShell}|" "$f"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Termux API-RPC and companion package to launch API commands";
|
||||
homepage = "https://github.com/termux/termux-api-package";
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -6,10 +6,6 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
#imports = [
|
||||
# ./others
|
||||
#];
|
||||
|
||||
xlib.device.username = "oqyude";
|
||||
|
||||
users = {
|
||||
@@ -40,10 +36,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
#systemd.tmpfiles.rules = [
|
||||
# "z /home/shared 2775 root users -"
|
||||
#];
|
||||
|
||||
sops = {
|
||||
age = {
|
||||
sshKeyPaths = [
|
||||
@@ -106,18 +98,5 @@
|
||||
};
|
||||
};
|
||||
|
||||
# systemd.services.nixos-auto-rebuild-sops = {
|
||||
# description = "Auto rebuild NixOS at boot";
|
||||
# wantedBy = [ "multi-user.target" ];
|
||||
# after = [ "network-online.target" ];
|
||||
# serviceConfig = {
|
||||
# Type = "oneshot";
|
||||
# User = "${xlib.device.username}";
|
||||
# Group = "users";
|
||||
# WorkingDirectory = "/etc/nixos";
|
||||
# ExecStart = [ "/run/wrappers/bin/sudo ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch" ];
|
||||
# };
|
||||
# };
|
||||
|
||||
# fileSystems."/etc/ssh".neededForBoot = true;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ let
|
||||
server = "100.64.0.0";
|
||||
in
|
||||
{
|
||||
# environment.etc."nginx/pubray".text = inputs.zeroq-credentials.services.xray.auth;
|
||||
users.users.nginx.extraGroups = [ "acme" ];
|
||||
services = {
|
||||
nginx = {
|
||||
@@ -17,22 +16,7 @@ in
|
||||
recommendedOptimisation = true;
|
||||
recommendedProxySettings = true;
|
||||
recommendedTlsSettings = true;
|
||||
# appendHttpConfig = inputs.zeroq-credentials.services.xray.maps;
|
||||
virtualHosts = {
|
||||
# "pubray.zeroq.su" = {
|
||||
# enableACME = true;
|
||||
# forceSSL = true;
|
||||
# root = "${inputs.zeroq-credentials.services.xray.subs}";
|
||||
# locations."/" = {
|
||||
# extraConfig = ''
|
||||
# auth_basic "Restricted";
|
||||
# auth_basic_user_file /etc/nginx/pubray;
|
||||
|
||||
# if ($subfile = "") { return 403; }
|
||||
# rewrite ^/$ $subfile break;
|
||||
# '';
|
||||
# };
|
||||
# };
|
||||
"x.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
@@ -55,202 +39,6 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
"kuma.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:4001";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"health.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:19999";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"git.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:3000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"homebox.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:7745";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
# "agent.zeroq.su" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://${server}:3000";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# "node-red.zeroq.su" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# kTLS = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://${server}:1880";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
"zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
root = pkgs.writeTextDir "index.html" ''
|
||||
<!doctype html>
|
||||
<html>
|
||||
<body>
|
||||
<pre>What are you doing here?</pre>
|
||||
</body>
|
||||
</html>
|
||||
'';
|
||||
locations = {
|
||||
"/guest/" = {
|
||||
proxyPass = "http://${server}:80";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
# "/.well-known/discord" = {
|
||||
# extraConfig = ''
|
||||
# default_type text/plain;
|
||||
# return 200 "dh=c2d103553a4cfdaa1b7952a87a7d8120a1e167cc";
|
||||
# '';
|
||||
# };
|
||||
};
|
||||
};
|
||||
"flux.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:6061";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"vetymae.opencodes.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://100.86.62.4:4096";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"lamet.opencodes.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://100.106.21.39:6061";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"n8n.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:5678";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"office.zeroq.su" = {
|
||||
enableACME = true;
|
||||
forceSSL = true;
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://${server}:8090";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
|
||||
# proxy_http_version 1.1;
|
||||
# proxy_buffering off;
|
||||
|
||||
# proxy_set_header Host $host;
|
||||
# proxy_set_header X-Forwarded-Host $host;
|
||||
# proxy_set_header X-Forwarded-Proto $scheme;
|
||||
# proxy_set_header X-Real-IP $remote_addr;
|
||||
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
|
||||
# proxy_set_header Authorization $http_authorization;
|
||||
|
||||
# proxy_set_header Upgrade $http_upgrade;
|
||||
# proxy_set_header Connection "upgrade";
|
||||
# ''; # absolute_redirect off;
|
||||
};
|
||||
"immich.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:2283";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"nextcloud.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = {
|
||||
"/" = {
|
||||
proxyPass = "http://${server}:10000";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
"/whiteboard" = {
|
||||
proxyPass = "http://${server}:3002";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"calibre.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:8083";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
"pdf.zeroq.su" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://${server}:8446";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
client_max_body_size 5G;
|
||||
'';
|
||||
};
|
||||
# "ai.zeroq.su" = {
|
||||
# forceSSL = true;
|
||||
# enableACME = true;
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://${server}:11112";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# extraConfig = ''
|
||||
# client_max_body_size 5G;
|
||||
# '';
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
let
|
||||
serviceName = "rsync-services-sync";
|
||||
serverAddress = "oqyude@100.64.0.0";
|
||||
serverDir = "/mnt/services/nodes/vds";
|
||||
nodeDir = "/mnt/services";
|
||||
serverDir = "${xlib.dirs.services-nodes-folder}/${xlib.device.hostname}";
|
||||
nodeDir = "${xlib.dirs.services-mnt-folder}";
|
||||
in
|
||||
{
|
||||
systemd = {
|
||||
|
||||
@@ -6,12 +6,10 @@
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
../software/aichat.nix
|
||||
../software/beets
|
||||
../software/whisper.nix
|
||||
./containers
|
||||
./nix-serve.nix
|
||||
./tools
|
||||
# ./tools
|
||||
#../server/open-webui.nix
|
||||
#../services/tts.nix
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user