mirror of
https://github.com/oqyude/nixos.git
synced 2026-08-09 08:03:16 +03:00
Compare commits
33
Commits
9a2372caf8
...
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 | ||
|
|
521d922961 | ||
|
|
e5e9dfd1de | ||
|
|
867a3227b8 | ||
|
|
7e8cc45a85 | ||
|
|
69c53ccd65 | ||
|
|
536bdf801e |
@@ -1 +1,2 @@
|
|||||||
.vscode
|
.vscode
|
||||||
|
.omo
|
||||||
@@ -9,4 +9,10 @@
|
|||||||
sapphira = import ./server.nix flakeContext; # sapphira
|
sapphira = import ./server.nix flakeContext; # sapphira
|
||||||
wsl = import ./wsl.nix flakeContext; # wsl
|
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 = {
|
kernel = {
|
||||||
sysctl = {
|
sysctl = {
|
||||||
"fs.inotify.max_user_watches" = "204800";
|
"fs.inotify.max_user_watches" = "204800";
|
||||||
|
"net.ipv4.ip_forward" = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
kernelModules = [
|
kernelModules = [
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ let
|
|||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = lib.mkDefault pkgs.linuxPackages_xanmod_stable;
|
kernelPackages = lib.mkDefault pkgs.linuxPackages_xanmod_stable;
|
||||||
#kernelParams = [ "usbcore.autosuspend=-1" ];
|
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot.enable = lib.mkDefault true;
|
systemd-boot.enable = lib.mkDefault true;
|
||||||
efi.canTouchEfiVariables = lib.mkDefault true;
|
efi.canTouchEfiVariables = lib.mkDefault true;
|
||||||
@@ -79,8 +78,6 @@ let
|
|||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "${xlib.device.hostname}";
|
hostName = "${xlib.device.hostname}";
|
||||||
networkmanager.enable = true;
|
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 = {
|
services = {
|
||||||
power-profiles-daemon.enable = lib.mkForce false;
|
|
||||||
earlyoom.enable = true;
|
earlyoom.enable = true;
|
||||||
auto-cpufreq.enable = true;
|
|
||||||
throttled.enable = false;
|
|
||||||
journald = {
|
journald = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
SystemMaxUse=512M
|
SystemMaxUse=512M
|
||||||
@@ -113,10 +110,10 @@ let
|
|||||||
hostName = "${xlib.device.hostname}";
|
hostName = "${xlib.device.hostname}";
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
nameservers = [
|
# nameservers = [
|
||||||
"127.0.0.1"
|
# "192.168.1.1"
|
||||||
"192.168.1.1"
|
# "127.0.0.1"
|
||||||
];
|
# ];
|
||||||
};
|
};
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
|
|||||||
Generated
+166
-25
@@ -13,11 +13,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781627888,
|
"lastModified": 1785892481,
|
||||||
"narHash": "sha256-5yHuAh9k7rT7rtf3uRaXkiUyYvQE9oaCgzhprLm2mr8=",
|
"narHash": "sha256-1JTy9/LyITSBP1a4WZ9tmOv2yDh9OTbA3YUJbQHiMYc=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "6d3087eedff75a715b40c0e124ba15d2dd7bec28",
|
"rev": "f6f2359a6cb7e3c51ea673bcb39933ac2622350d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -88,11 +88,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783823409,
|
"lastModified": 1786031233,
|
||||||
"narHash": "sha256-OI4IkRjRXa1e7hYmCGJDPDq5H/kPwhsyoS80cNUF9fI=",
|
"narHash": "sha256-TIDlLTLI1/pB7IqgjzcKQjpODQsZE2oII4XGG9B6KjI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7566825d4652a1b885bd4ce65bd9e8def432fec9",
|
"rev": "7834e82588860aaf780cec1366524456a70898d7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -101,16 +101,70 @@
|
|||||||
"type": "github"
|
"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": {
|
"nixos-hardware": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783792734,
|
"lastModified": 1785232496,
|
||||||
"narHash": "sha256-50rvY9GdFvpYDcMLcD/4cWSi0hVxArT5wsGlVsHy8eY=",
|
"narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "8efb4337e857949f4cfac86d12ef1066f417f31f",
|
"rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -130,11 +184,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783336371,
|
"lastModified": 1784642409,
|
||||||
"narHash": "sha256-ZisTtweyb7JUwPP54HAXE9TypT8m89dIxDI36Ak0hAs=",
|
"narHash": "sha256-hcbDqFuySAJawljt5r0sKBCJKYnbtGD0T/ZIozH1Dq0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "NixOS-WSL",
|
||||||
"rev": "a9620cfa43f0c1c30a46c31ae3c6e58cdb124a14",
|
"rev": "eaeb18da90024448a60eb1ec7132eafa4003404e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -189,13 +243,45 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-master": {
|
"nixpkgs-docs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783868082,
|
"lastModified": 1705957679,
|
||||||
"narHash": "sha256-Y3chcYsoUJp8VqLl2x1JoZZ1OktO4oYAT1F74hwvLH8=",
|
"narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2b169ebe89d6fad56a1c84298d15f2c9ee5d8c60",
|
"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"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -239,11 +325,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783816212,
|
"lastModified": 1785975029,
|
||||||
"narHash": "sha256-2aZisVTVGSFEk3MYcOiWQp3zvwyzbqpktB69Rcfp150=",
|
"narHash": "sha256-X44cn5rzytELc3NNoQsh0aLkjWA/QzPfc6HPQmsG3sU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3b32825de172d0bc85664f495edb096b10862524",
|
"rev": "70ce234312134a463ba7728e94da2486a1d237ac",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -255,11 +341,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783776592,
|
"lastModified": 1785967620,
|
||||||
"narHash": "sha256-UgCQzxeWI75XM8G+hPrPh+MKzEPjG3SpAj7dtqSbksA=",
|
"narHash": "sha256-IItrdb7Puk05RqOBWZYFC5X6Wl1sJmCfh5MWVHw5iMM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3",
|
"rev": "b7c2ada94fe99c15b0dbcf4d11fd7850b957a436",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -269,6 +355,44 @@
|
|||||||
"type": "github"
|
"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": {
|
"plasma-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": [
|
"home-manager": [
|
||||||
@@ -279,11 +403,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783574839,
|
"lastModified": 1785762349,
|
||||||
"narHash": "sha256-ICof1tV4/9XheBLBGf7dhMhfMq4dOs1zwTHrr7zGFlA=",
|
"narHash": "sha256-jZhZkzAwc7f3exzcTDJWP2WCAchCv0iNC3UF/QsahdQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "plasma-manager",
|
"repo": "plasma-manager",
|
||||||
"rev": "c551f0687658e4bb699cfff6015436ad7ee57a0d",
|
"rev": "a19a2a029fa180911bd89c554dca1616e10f4c1d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -319,6 +443,7 @@
|
|||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"grub2-themes": "grub2-themes",
|
"grub2-themes": "grub2-themes",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"nix-on-droid": "nix-on-droid",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixos-wsl": "nixos-wsl",
|
"nixos-wsl": "nixos-wsl",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
@@ -336,6 +461,22 @@
|
|||||||
"zeroq-credentials": "zeroq-credentials"
|
"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": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|||||||
@@ -24,6 +24,13 @@
|
|||||||
nixpkgs.follows = "nixpkgs";
|
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 = {
|
deploy-rs = {
|
||||||
url = "github:serokell/deploy-rs";
|
url = "github:serokell/deploy-rs";
|
||||||
inputs = {
|
inputs = {
|
||||||
|
|||||||
@@ -1,21 +1,9 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
xlib,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
streamripPath = "${xlib.dirs.wsl-storage}/streamrip";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
# xdg = {
|
|
||||||
# configFile = {
|
|
||||||
# "streamrip" = {
|
|
||||||
# source = config.lib.file.mkOutOfStoreSymlink streamripPath;
|
|
||||||
# target = "streamrip";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.yt-dlp-light
|
pkgs.yt-dlp-light
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -8,25 +8,6 @@
|
|||||||
programs = {
|
programs = {
|
||||||
mangohud.enable = true;
|
mangohud.enable = true;
|
||||||
keepassxc.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 = {
|
services = {
|
||||||
kdeconnect.enable = true;
|
kdeconnect.enable = true;
|
||||||
@@ -34,12 +15,6 @@
|
|||||||
};
|
};
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# Surfing
|
|
||||||
# (brave.override {
|
|
||||||
# commandLineArgs = [
|
|
||||||
# "--password-store=basic" # on purpose to make it break "--password-store=gnome-libsecret"
|
|
||||||
# ];
|
|
||||||
# })
|
|
||||||
brave
|
brave
|
||||||
v2rayn
|
v2rayn
|
||||||
|
|
||||||
@@ -48,8 +23,6 @@
|
|||||||
# amdgpu_top
|
# amdgpu_top
|
||||||
vscodium
|
vscodium
|
||||||
ayugram-desktop
|
ayugram-desktop
|
||||||
# vesktop
|
|
||||||
# discord
|
|
||||||
gramps
|
gramps
|
||||||
kdePackages.filelight
|
kdePackages.filelight
|
||||||
localsend
|
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,
|
xlib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
panel = "${xlib.dirs.services-nodes-folder}/${xlib.device.hostname}/3x-ui";
|
||||||
|
in
|
||||||
{
|
{
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
podman = {
|
podman = {
|
||||||
@@ -25,8 +28,8 @@
|
|||||||
"TZ" = "Europe/Moscow";
|
"TZ" = "Europe/Moscow";
|
||||||
};
|
};
|
||||||
volumes = [
|
volumes = [
|
||||||
"${xlib.dirs.services-mnt-folder}/containers/3x-ui/cert/:/root/cert:rw"
|
"${panel}/cert/:/root/cert:rw"
|
||||||
"${xlib.dirs.services-mnt-folder}/containers/3x-ui/db/:/etc/x-ui:rw"
|
"${panel}/db/:/etc/x-ui:rw"
|
||||||
];
|
];
|
||||||
log-driver = "journald";
|
log-driver = "journald";
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
@@ -97,13 +100,13 @@
|
|||||||
};
|
};
|
||||||
# Folders
|
# Folders
|
||||||
tmpfiles.rules = [
|
tmpfiles.rules = [
|
||||||
"d /mnt 0755 root root -"
|
"d ${xlib.dirs.services-mnt-folder} 0755 root root -"
|
||||||
"d /mnt/services 0755 root root -"
|
"d ${xlib.dirs.services-nodes-folder} 0755 root root -"
|
||||||
"d /mnt/services/containers 0755 root root -"
|
"d ${xlib.dirs.services-nodes-folder}/${xlib.device.hostname} 0755 root root -"
|
||||||
"d /mnt/services/containers/3x-ui 0755 root root -"
|
"d ${panel} 0755 root root -"
|
||||||
"d /mnt/services/containers/3x-ui/cert 0755 root root -"
|
"d ${panel}/db 0755 root root -"
|
||||||
"d /mnt/services/containers/3x-ui/db 0755 root root -"
|
"d ${panel}/cert 0755 root root -"
|
||||||
"Z /mnt/services/containers/3x-ui 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; [
|
imports = with inputs; [
|
||||||
./essentials
|
./essentials
|
||||||
./users.nix
|
|
||||||
./options.nix
|
./options.nix
|
||||||
(./. + "/${deviceType}") # specific modules
|
./users.nix
|
||||||
|
(./. + "/${deviceType}")
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager # home-manager module
|
home-manager.nixosModules.home-manager # home-manager module
|
||||||
# nix-index-database.nixosModules.nix-index # nix-index module
|
# nix-index-database.nixosModules.nix-index # nix-index module
|
||||||
@@ -47,6 +50,28 @@ let
|
|||||||
sops-nix.nixosModules.sops # sops module
|
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 = {
|
_module.args = {
|
||||||
inputs = inputs;
|
inputs = inputs;
|
||||||
xlib = config.xlib;
|
xlib = config.xlib;
|
||||||
@@ -57,5 +82,6 @@ in
|
|||||||
nixosModules = {
|
nixosModules = {
|
||||||
default = defaultModule;
|
default = defaultModule;
|
||||||
public = publicModule;
|
public = publicModule;
|
||||||
|
strict = strictModule;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,6 @@
|
|||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
master = import inputs.nixpkgs-master {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
settings = {
|
settings = {
|
||||||
require-sigs = false;
|
require-sigs = false;
|
||||||
substituters = [
|
substituters = [
|
||||||
"http://100.64.0.0:5000"
|
"https://nix-cache.zeroq.su"
|
||||||
"https://cache.nixos.org"
|
"https://cache.nixos.org"
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://mirror.yandex.ru/nixos"
|
"https://mirror.yandex.ru/nixos"
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
# "https://nixos.snix.store" # https://nixos.snix.store/
|
# "https://nixos.snix.store" # https://nixos.snix.store/
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
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="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
];
|
];
|
||||||
stalled-download-timeout = 8;
|
stalled-download-timeout = 8;
|
||||||
|
|||||||
@@ -19,15 +19,18 @@
|
|||||||
theme = "robbyrussell";
|
theme = "robbyrussell";
|
||||||
};
|
};
|
||||||
shellInit = ''
|
shellInit = ''
|
||||||
beet-n() {
|
|
||||||
echo "$*" | aichat -cer beets
|
|
||||||
}
|
|
||||||
beet-p() {
|
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-ims() {
|
||||||
beet im ./ -S $*
|
beet im ./ -S $*
|
||||||
}
|
}
|
||||||
|
beet-path() {
|
||||||
|
realpath --relative-to="/home/oqyude/.config/beets/My" "$1"
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
# shell
|
# shell
|
||||||
@@ -42,7 +45,9 @@
|
|||||||
gc = "git add . && git commit -m 'dev: автокоммит $(date +'%Y-%m-%d %H:%M:%S')'";
|
gc = "git add . && git commit -m 'dev: автокоммит $(date +'%Y-%m-%d %H:%M:%S')'";
|
||||||
y = "yazi";
|
y = "yazi";
|
||||||
nix-shellp = "nix-shell --run $SHELL -p";
|
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";
|
z-proxy = "export ALL_PROXY=socks5://localhost:10808";
|
||||||
|
zh-proxy = "export HTTPS_PROXY=http://localhost:10808 && export HTTP_PROXY=http://localhost:10808";
|
||||||
|
|
||||||
# beets
|
# beets
|
||||||
beet-ima = "beet im ./ -A";
|
beet-ima = "beet im ./ -A";
|
||||||
|
|||||||
@@ -4,6 +4,4 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
# imports = [
|
|
||||||
# ];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
"vds"
|
"vds"
|
||||||
"vds-new"
|
"vds-new"
|
||||||
"wsl"
|
"wsl"
|
||||||
|
"termux"
|
||||||
];
|
];
|
||||||
default = "minimal";
|
default = "minimal";
|
||||||
description = "Type of device for this host.";
|
description = "Type of device for this host.";
|
||||||
@@ -117,6 +118,11 @@
|
|||||||
default = "/mnt/services";
|
default = "/mnt/services";
|
||||||
description = "All services folder.";
|
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 {
|
postgresql-folder = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
default = "${config.xlib.dirs.services-mnt-folder}/postgresql";
|
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 = {
|
acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
defaults = {
|
defaults = {
|
||||||
email = "oqyude@zeroq.su";
|
email = "oqyude@gmail.com";
|
||||||
server = "https://localhost:9000/acme/acme/directory";
|
|
||||||
dnsProvider = null;
|
|
||||||
};
|
};
|
||||||
# certs = {
|
# certs = {
|
||||||
# # "home.arpa" = {
|
# "home.arpa" = {
|
||||||
# # domain = "*.home.arpa";
|
# email = "oqyude@zeroq.su";
|
||||||
# # server = "https://localhost:9000/acme/acme/directory";
|
# domain = "*.home.arpa";
|
||||||
# # listenHTTP = ":80";
|
# server = "https://localhost:9000/acme/acme/directory";
|
||||||
# # };
|
# listenHTTP = ":80";
|
||||||
# "turn.home.arpa" = {
|
# dnsProvider = null;
|
||||||
# listenHTTP = "127.0.0.1:80";
|
|
||||||
# group = "turnserver";
|
|
||||||
# };
|
# };
|
||||||
|
# # "turn.home.arpa" = {
|
||||||
|
# # listenHTTP = "127.0.0.1:80";
|
||||||
|
# # group = "turnserver";
|
||||||
|
# # };
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
stable = import inputs.nixpkgs-calibre {
|
stable = import inputs.nixpkgs-previous {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|||||||
@@ -15,8 +15,10 @@
|
|||||||
192.168.1.20 flux.zeroq.su
|
192.168.1.20 flux.zeroq.su
|
||||||
192.168.1.20 git.zeroq.su
|
192.168.1.20 git.zeroq.su
|
||||||
192.168.1.20 glances.zeroq.su
|
192.168.1.20 glances.zeroq.su
|
||||||
|
192.168.1.20 homebox.zeroq.su
|
||||||
192.168.1.20 immich.zeroq.su
|
192.168.1.20 immich.zeroq.su
|
||||||
192.168.1.20 kuma.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 nextcloud.zeroq.su
|
||||||
192.168.1.20 office.zeroq.su
|
192.168.1.20 office.zeroq.su
|
||||||
192.168.1.20 pdf.zeroq.su
|
192.168.1.20 pdf.zeroq.su
|
||||||
@@ -38,8 +40,10 @@
|
|||||||
192.168.1.20 git.home.arpa
|
192.168.1.20 git.home.arpa
|
||||||
192.168.1.20 glances.home.arpa
|
192.168.1.20 glances.home.arpa
|
||||||
192.168.1.20 home.arpa
|
192.168.1.20 home.arpa
|
||||||
|
192.168.1.20 homebox.home.arpa
|
||||||
192.168.1.20 immich.home.arpa
|
192.168.1.20 immich.home.arpa
|
||||||
192.168.1.20 kuma.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 nextcloud.home.arpa
|
||||||
192.168.1.20 office.home.arpa
|
192.168.1.20 office.home.arpa
|
||||||
192.168.1.20 pdf.home.arpa
|
192.168.1.20 pdf.home.arpa
|
||||||
@@ -51,7 +55,7 @@
|
|||||||
log
|
log
|
||||||
}
|
}
|
||||||
.:53 {
|
.:53 {
|
||||||
forward . 1.1.1.1 9.9.9.9
|
forward . 192.168.1.1 1.1.1.1
|
||||||
cache 300
|
cache 300
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -12,14 +12,18 @@
|
|||||||
./coredns.nix
|
./coredns.nix
|
||||||
./gitea.nix
|
./gitea.nix
|
||||||
./glances.nix
|
./glances.nix
|
||||||
|
./homebox.nix
|
||||||
./immich.nix
|
./immich.nix
|
||||||
./miniflux.nix
|
./miniflux.nix
|
||||||
|
./navidrome.nix
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./nix-serve.nix
|
./nix-serve.nix
|
||||||
|
./onlyoffice.nix
|
||||||
./postgresql.nix
|
./postgresql.nix
|
||||||
|
./power.nix
|
||||||
./samba.nix
|
./samba.nix
|
||||||
./step-ca.nix
|
# ./step-ca.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
./systemd.nix
|
./systemd.nix
|
||||||
# ../containers/remnawave.nix
|
# ../containers/remnawave.nix
|
||||||
@@ -27,7 +31,6 @@
|
|||||||
# ./mealie.nix
|
# ./mealie.nix
|
||||||
# ./memos.nix
|
# ./memos.nix
|
||||||
# ./n8n.nix
|
# ./n8n.nix
|
||||||
# ./navidrome.nix
|
|
||||||
# ./netdata.nix
|
# ./netdata.nix
|
||||||
# ./nfs.nix
|
# ./nfs.nix
|
||||||
# ./node-red.nix
|
# ./node-red.nix
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
appName = "ZeroQ Gitea Service";
|
appName = "ZeroQ Gitea Service";
|
||||||
settings = {
|
settings = {
|
||||||
server = {
|
server = {
|
||||||
DOMAIN = "git.home.arpa";
|
DOMAIN = "git.zeroq.su";
|
||||||
HTTP_PORT = 3000;
|
HTTP_PORT = 3000;
|
||||||
};
|
};
|
||||||
service.DISABLE_REGISTRATION = true;
|
service.DISABLE_REGISTRATION = true;
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
|
"d ${config.services.gitea.stateDir} 0755 gitea gitea -"
|
||||||
"z ${config.services.gitea.stateDir} 0755 gitea gitea -"
|
"z ${config.services.gitea.stateDir} 0755 gitea gitea -"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
xlib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
configDir = "${xlib.dirs.services-mnt-folder}/homebox";
|
||||||
|
varDir = "/var/lib/homebox";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.homebox = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
HBOX_WEB_HOST = "0.0.0.0";
|
||||||
|
HBOX_WEB_PORT = "7745";
|
||||||
|
HBOX_STORAGE_CONN_STRING = "file://${varDir}";
|
||||||
|
HBOX_STORAGE_PREFIX_PATH = "data";
|
||||||
|
HBOX_DATABASE_DRIVER = "sqlite3";
|
||||||
|
HBOX_DATABASE_SQLITE_PATH = "${varDir}/data/homebox.db?_pragma=busy_timeout=999&_pragma=journal_mode=WAL&_fk=1";
|
||||||
|
HBOX_OPTIONS_ALLOW_REGISTRATION = "true";
|
||||||
|
HBOX_OPTIONS_GITHUB_RELEASE_CHECK = "false";
|
||||||
|
HBOX_MODE = "production";
|
||||||
|
HOME = "${varDir}";
|
||||||
|
TMPDIR = "${varDir}/tmp";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d ${configDir} 0755 homebox homebox -"
|
||||||
|
"z ${configDir} 0755 homebox homebox -"
|
||||||
|
];
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"${varDir}" = {
|
||||||
|
device = "${configDir}";
|
||||||
|
fsType = "none";
|
||||||
|
options = [
|
||||||
|
"bind"
|
||||||
|
"nofail"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -6,16 +6,10 @@
|
|||||||
xlib,
|
xlib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
new = import inputs.nixpkgs-unstable {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
immich = {
|
immich = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = new.immich;
|
|
||||||
port = 2283;
|
port = 2283;
|
||||||
host = "0.0.0.0";
|
host = "0.0.0.0";
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
|||||||
@@ -9,12 +9,12 @@
|
|||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
navidrome = {
|
navidrome = {
|
||||||
enable = false;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
# environmentFile = "";
|
# environmentFile = "";
|
||||||
settings = {
|
settings = {
|
||||||
Address = "0.0.0.0";
|
Address = "0.0.0.0";
|
||||||
Port = "4533";
|
Port = 4533;
|
||||||
MusicFolder = "/mnt/beets/music";
|
MusicFolder = "/mnt/beets/music";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,24 +1,17 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
|
||||||
xlib,
|
xlib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
previous = import inputs.nixpkgs-master {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
config.allowUnfree = true;
|
|
||||||
config.allowUnfreePredicate = true;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
nextcloud-whiteboard-server = {
|
nextcloud-whiteboard-server = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
NEXTCLOUD_URL = "https://nextcloud.home.arpa";
|
NEXTCLOUD_URL = "https://nextcloud.zeroq.su";
|
||||||
};
|
};
|
||||||
secrets = [ config.sops.secrets.nextcloud-whiteboard-jwt.path ];
|
secrets = [ config.sops.secrets.nextcloud-whiteboard-jwt.path ];
|
||||||
};
|
};
|
||||||
@@ -27,8 +20,8 @@ in
|
|||||||
hostName = "talk.private";
|
hostName = "talk.private";
|
||||||
backends.nextcloud = {
|
backends.nextcloud = {
|
||||||
urls = [
|
urls = [
|
||||||
"https://nextcloud.home.arpa"
|
|
||||||
"https://nextcloud.zeroq.su"
|
"https://nextcloud.zeroq.su"
|
||||||
|
# "https://nextcloud.home.arpa"
|
||||||
];
|
];
|
||||||
secretFile = config.sops.secrets.nextcloud-talk-secret.path;
|
secretFile = config.sops.secrets.nextcloud-talk-secret.path;
|
||||||
};
|
};
|
||||||
@@ -47,16 +40,16 @@ in
|
|||||||
secretFile = config.sops.secrets.turn-secret.path;
|
secretFile = config.sops.secrets.turn-secret.path;
|
||||||
apikeyFile = config.sops.secrets.turn-api-key.path;
|
apikeyFile = config.sops.secrets.turn-api-key.path;
|
||||||
servers = [
|
servers = [
|
||||||
"turn:turn.home.arpa:3478?transport=udp"
|
"turn:turn.zeroq.su:3478?transport=udp"
|
||||||
"turn:turn.home.arpa:3478?transport=tcp"
|
"turn:turn.zeroq.su:3478?transport=tcp"
|
||||||
# "turns:turn.home.arpa:5349?transport=tcp"
|
# "turns:turn.zeroq.su:5349?transport=tcp"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
nextcloud = {
|
nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud33;
|
package = pkgs.nextcloud34;
|
||||||
hostName = "nextcloud.private";
|
hostName = "nextcloud.private";
|
||||||
database.createLocally = true;
|
database.createLocally = true;
|
||||||
home = "${xlib.dirs.services-mnt-folder}/nextcloud";
|
home = "${xlib.dirs.services-mnt-folder}/nextcloud";
|
||||||
@@ -79,17 +72,19 @@ in
|
|||||||
trusted_domains = [
|
trusted_domains = [
|
||||||
"100.64.0.0"
|
"100.64.0.0"
|
||||||
"192.168.1.20"
|
"192.168.1.20"
|
||||||
|
"37.128.246.126"
|
||||||
"localhost"
|
"localhost"
|
||||||
|
"nextcloud.home.arpa"
|
||||||
"nextcloud.private"
|
"nextcloud.private"
|
||||||
"nextcloud.zeroq.su"
|
"nextcloud.zeroq.su"
|
||||||
"office.zeroq.su"
|
|
||||||
"office.home.arpa"
|
"office.home.arpa"
|
||||||
"nextcloud.home.arpa"
|
"office.zeroq.su"
|
||||||
];
|
];
|
||||||
trusted_proxies = [
|
trusted_proxies = [
|
||||||
"100.64.1.0"
|
"100.64.1.0"
|
||||||
"192.168.1.20"
|
|
||||||
"109.248.161.5"
|
"109.248.161.5"
|
||||||
|
"192.168.1.20"
|
||||||
|
"37.128.246.126"
|
||||||
];
|
];
|
||||||
overwriteprotocol = "https"; # maybe no
|
overwriteprotocol = "https"; # maybe no
|
||||||
};
|
};
|
||||||
@@ -98,7 +93,7 @@ in
|
|||||||
notify_push = {
|
notify_push = {
|
||||||
enable = true;
|
enable = true;
|
||||||
bendDomainToLocalhost = true;
|
bendDomainToLocalhost = true;
|
||||||
nextcloudUrl = "https://nextcloud.home.arpa";
|
nextcloudUrl = "https://nextcloud.zeroq.su";
|
||||||
};
|
};
|
||||||
# phpPackage = pkgs.php85;
|
# phpPackage = pkgs.php85;
|
||||||
extraApps = {
|
extraApps = {
|
||||||
@@ -170,16 +165,6 @@ in
|
|||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
onlyoffice = {
|
|
||||||
enable = true;
|
|
||||||
package = previous.onlyoffice-documentserver;
|
|
||||||
hostname = "office.home.arpa";
|
|
||||||
port = 8090;
|
|
||||||
allowLocalConnections = true;
|
|
||||||
wopi = true;
|
|
||||||
jwtSecretFile = config.sops.secrets.onlyoffice-jwt.path;
|
|
||||||
securityNonceFile = config.sops.secrets.onlyoffice-nonce.path;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# fonts.packages = [ work.corefonts ];
|
# fonts.packages = [ work.corefonts ];
|
||||||
@@ -240,22 +225,6 @@ in
|
|||||||
group = "nextcloud";
|
group = "nextcloud";
|
||||||
mode = "0650";
|
mode = "0650";
|
||||||
};
|
};
|
||||||
onlyoffice-nonce = {
|
|
||||||
format = "yaml";
|
|
||||||
key = "nonce";
|
|
||||||
sopsFile = ./secrets/onlyoffice.yaml;
|
|
||||||
owner = "onlyoffice";
|
|
||||||
group = "onlyoffice";
|
|
||||||
mode = "0650";
|
|
||||||
};
|
|
||||||
onlyoffice-jwt = {
|
|
||||||
format = "yaml";
|
|
||||||
key = "jwt";
|
|
||||||
sopsFile = ./secrets/onlyoffice.yaml;
|
|
||||||
owner = "onlyoffice";
|
|
||||||
group = "onlyoffice";
|
|
||||||
mode = "0650";
|
|
||||||
};
|
|
||||||
nextcloud-talk-secret = {
|
nextcloud-talk-secret = {
|
||||||
format = "yaml";
|
format = "yaml";
|
||||||
key = "nextcloud-talk-secret";
|
key = "nextcloud-talk-secret";
|
||||||
|
|||||||
+293
-95
@@ -35,7 +35,7 @@ in
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"office.home.arpa" = {
|
"office.zeroq.su" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
};
|
};
|
||||||
@@ -64,36 +64,46 @@ in
|
|||||||
client_max_body_size 5G;
|
client_max_body_size 5G;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
"pdf.home.arpa" = {
|
# "pdf.home.arpa" = {
|
||||||
forceSSL = true;
|
# forceSSL = true;
|
||||||
enableACME = true;
|
# enableACME = true;
|
||||||
locations = {
|
# locations = {
|
||||||
"/" = {
|
# "/" = {
|
||||||
proxyPass = "http://127.0.0.1:8446";
|
# proxyPass = "http://127.0.0.1:8446";
|
||||||
proxyWebsockets = true;
|
# proxyWebsockets = true;
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
extraConfig = ''
|
# extraConfig = ''
|
||||||
client_max_body_size 5G;
|
# client_max_body_size 5G;
|
||||||
'';
|
# '';
|
||||||
};
|
# };
|
||||||
"nextcloud.home.arpa" = {
|
# "homebox.home.arpa" = {
|
||||||
forceSSL = true;
|
# forceSSL = true;
|
||||||
enableACME = true;
|
# enableACME = true;
|
||||||
locations = {
|
# locations = {
|
||||||
"/" = {
|
# "/" = {
|
||||||
proxyPass = "http://127.0.0.1:10000";
|
# proxyPass = "http://127.0.0.1:7745";
|
||||||
proxyWebsockets = true;
|
# proxyWebsockets = true;
|
||||||
};
|
# };
|
||||||
"/whiteboard" = {
|
# };
|
||||||
proxyPass = "http://127.0.0.1:3002";
|
# };
|
||||||
proxyWebsockets = true;
|
# "nextcloud.home.arpa" = {
|
||||||
};
|
# forceSSL = true;
|
||||||
};
|
# enableACME = true;
|
||||||
extraConfig = ''
|
# locations = {
|
||||||
client_max_body_size 5G;
|
# "/" = {
|
||||||
'';
|
# 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" = {
|
# "talk.home.arpa" = {
|
||||||
# forceSSL = true;
|
# forceSSL = true;
|
||||||
# enableACME = true;
|
# enableACME = true;
|
||||||
@@ -120,39 +130,28 @@ in
|
|||||||
# client_max_body_size 5G;
|
# client_max_body_size 5G;
|
||||||
# '';
|
# '';
|
||||||
# };
|
# };
|
||||||
"ca.home.arpa" = {
|
# "ca.zeroq.su" = {
|
||||||
forceSSL = true;
|
# forceSSL = true;
|
||||||
enableACME = true;
|
# enableACME = true;
|
||||||
locations."/" = {
|
# locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:9000";
|
# proxyPass = "http://127.0.0.1:9000";
|
||||||
proxyWebsockets = true;
|
# proxyWebsockets = true;
|
||||||
};
|
# };
|
||||||
extraConfig = ''
|
# extraConfig = ''
|
||||||
client_max_body_size 5G;
|
# client_max_body_size 5G;
|
||||||
'';
|
# '';
|
||||||
};
|
# };
|
||||||
"git.home.arpa" = {
|
# "git.home.arpa" = {
|
||||||
forceSSL = true;
|
# forceSSL = true;
|
||||||
enableACME = true;
|
# enableACME = true;
|
||||||
locations."/" = {
|
# locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:3000";
|
# proxyPass = "http://127.0.0.1:3000";
|
||||||
proxyWebsockets = true;
|
# proxyWebsockets = true;
|
||||||
};
|
# };
|
||||||
extraConfig = ''
|
# extraConfig = ''
|
||||||
client_max_body_size 5G;
|
# 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;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
# "n8n.home.arpa" = {
|
# "n8n.home.arpa" = {
|
||||||
# forceSSL = true;
|
# forceSSL = true;
|
||||||
# enableACME = true;
|
# enableACME = true;
|
||||||
@@ -164,68 +163,263 @@ in
|
|||||||
# client_max_body_size 5G;
|
# client_max_body_size 5G;
|
||||||
# '';
|
# '';
|
||||||
# };
|
# };
|
||||||
"kuma.home.arpa" = {
|
# "kuma.home.arpa" = {
|
||||||
forceSSL = true;
|
# forceSSL = true;
|
||||||
enableACME = true;
|
# enableACME = true;
|
||||||
locations."/" = {
|
# locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:4001";
|
# proxyPass = "http://127.0.0.1:4001";
|
||||||
proxyWebsockets = true;
|
# proxyWebsockets = true;
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
"flux.home.arpa" = {
|
# "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;
|
addSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:6061";
|
proxyPass = "http://${server}:2283";
|
||||||
proxyWebsockets = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"immich.home.arpa" = {
|
|
||||||
addSSL = true;
|
|
||||||
enableACME = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:2283";
|
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
client_max_body_size 5G;
|
client_max_body_size 5G;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
"calibre.home.arpa" = {
|
"kuma.zeroq.su" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
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;
|
proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
client_max_body_size 5G;
|
client_max_body_size 5G;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
"dns.home.arpa" = {
|
"nix-cache.zeroq.su" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:53";
|
proxyPass = "http://${server}:5000";
|
||||||
|
proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
client_max_body_size 5G;
|
client_max_body_size 5G;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
"glances.home.arpa" = {
|
"pdf.zeroq.su" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:61208";
|
proxyPass = "http://${server}:8446";
|
||||||
};
|
proxyWebsockets = true;
|
||||||
};
|
|
||||||
"syncthing.home.arpa" = {
|
|
||||||
addSSL = true;
|
|
||||||
enableACME = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:8384";
|
|
||||||
};
|
};
|
||||||
|
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" = {
|
# "zeroq.home.arpa" = {
|
||||||
# forceSSL = true;
|
# forceSSL = true;
|
||||||
# enableACME = true;
|
# enableACME = true;
|
||||||
@@ -251,4 +445,8 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
80
|
||||||
|
443
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
xlib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
previous = import inputs.nixpkgs-master {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
config.allowUnfree = true;
|
||||||
|
config.allowUnfreePredicate = true;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.onlyoffice = {
|
||||||
|
enable = true;
|
||||||
|
# package = previous.onlyoffice-documentserver;
|
||||||
|
hostname = "office.zeroq.su";
|
||||||
|
port = 8090;
|
||||||
|
allowLocalConnections = true;
|
||||||
|
wopi = true;
|
||||||
|
jwtSecretFile = config.sops.secrets.onlyoffice-jwt.path;
|
||||||
|
securityNonceFile = config.sops.secrets.onlyoffice-nonce.path;
|
||||||
|
};
|
||||||
|
sops.secrets = {
|
||||||
|
onlyoffice-nonce = {
|
||||||
|
format = "yaml";
|
||||||
|
key = "nonce";
|
||||||
|
sopsFile = ./secrets/onlyoffice.yaml;
|
||||||
|
owner = "onlyoffice";
|
||||||
|
group = "onlyoffice";
|
||||||
|
mode = "0650";
|
||||||
|
};
|
||||||
|
onlyoffice-jwt = {
|
||||||
|
format = "yaml";
|
||||||
|
key = "jwt";
|
||||||
|
sopsFile = ./secrets/onlyoffice.yaml;
|
||||||
|
owner = "onlyoffice";
|
||||||
|
group = "onlyoffice";
|
||||||
|
mode = "0650";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -6,11 +6,6 @@
|
|||||||
xlib,
|
xlib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
master = import inputs.nixpkgs-master {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
postgresql = {
|
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;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
xlib,
|
xlib,
|
||||||
...
|
...
|
||||||
@@ -9,12 +10,12 @@
|
|||||||
samba-wsdd = {
|
samba-wsdd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
hostname = "sapphira.home.arpa";
|
hostname = "sapphira";
|
||||||
discovery = true;
|
discovery = true;
|
||||||
};
|
};
|
||||||
samba = {
|
samba = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.samba4Full;
|
# package = pkgs.samba4Full;
|
||||||
nmbd = {
|
nmbd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,18 +4,13 @@
|
|||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
master = import inputs.nixpkgs-master {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = master.syncthing;
|
# package = master.syncthing;
|
||||||
systemService = true;
|
systemService = true;
|
||||||
guiAddress = "0.0.0.0:8384";
|
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}";
|
dataDir = "${xlib.dirs.server-home}";
|
||||||
group = "users";
|
group = "users";
|
||||||
user = "${xlib.device.username}";
|
user = "${xlib.device.username}";
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
xlib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.aichat
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -7,31 +7,8 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
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 (
|
beetsEnv = pkgs.python314.withPackages (
|
||||||
ps: with ps; [
|
ps: with ps; [
|
||||||
# et-xmlfile
|
|
||||||
# exceptiongroup
|
|
||||||
# markdown-it-py
|
|
||||||
# mdurl
|
|
||||||
# munkres
|
|
||||||
# musicbrainzngs
|
|
||||||
# openpyxl
|
|
||||||
# pygments
|
|
||||||
# rich
|
|
||||||
# sniffio
|
|
||||||
anyio
|
anyio
|
||||||
beautifulsoup4
|
beautifulsoup4
|
||||||
beetcamp
|
beetcamp
|
||||||
@@ -68,7 +45,6 @@ let
|
|||||||
requests
|
requests
|
||||||
requests-ratelimiter
|
requests-ratelimiter
|
||||||
scipy
|
scipy
|
||||||
# setuptools
|
|
||||||
six
|
six
|
||||||
socksio
|
socksio
|
||||||
soupsieve
|
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";
|
xlib.device.username = "oqyude";
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
@@ -40,10 +36,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#systemd.tmpfiles.rules = [
|
|
||||||
# "z /home/shared 2775 root users -"
|
|
||||||
#];
|
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
age = {
|
age = {
|
||||||
sshKeyPaths = [
|
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;
|
# fileSystems."/etc/ssh".neededForBoot = true;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-202
@@ -8,7 +8,6 @@ let
|
|||||||
server = "100.64.0.0";
|
server = "100.64.0.0";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# environment.etc."nginx/pubray".text = inputs.zeroq-credentials.services.xray.auth;
|
|
||||||
users.users.nginx.extraGroups = [ "acme" ];
|
users.users.nginx.extraGroups = [ "acme" ];
|
||||||
services = {
|
services = {
|
||||||
nginx = {
|
nginx = {
|
||||||
@@ -17,22 +16,7 @@ in
|
|||||||
recommendedOptimisation = true;
|
recommendedOptimisation = true;
|
||||||
recommendedProxySettings = true;
|
recommendedProxySettings = true;
|
||||||
recommendedTlsSettings = true;
|
recommendedTlsSettings = true;
|
||||||
# appendHttpConfig = inputs.zeroq-credentials.services.xray.maps;
|
|
||||||
virtualHosts = {
|
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" = {
|
"x.zeroq.su" = {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
@@ -49,196 +33,12 @@ in
|
|||||||
proxyPass = "http://localhost:2096";
|
proxyPass = "http://localhost:2096";
|
||||||
proxyWebsockets = true;
|
proxyWebsockets = true;
|
||||||
};
|
};
|
||||||
};
|
"/clash/" = {
|
||||||
};
|
proxyPass = "http://localhost:2096";
|
||||||
"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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# "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}:4096";
|
|
||||||
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;
|
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
|
let
|
||||||
serviceName = "rsync-services-sync";
|
serviceName = "rsync-services-sync";
|
||||||
serverAddress = "oqyude@100.64.0.0";
|
serverAddress = "oqyude@100.64.0.0";
|
||||||
serverDir = "/mnt/services/nodes/vds";
|
serverDir = "${xlib.dirs.services-nodes-folder}/${xlib.device.hostname}";
|
||||||
nodeDir = "/mnt/services";
|
nodeDir = "${xlib.dirs.services-mnt-folder}";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
systemd = {
|
systemd = {
|
||||||
|
|||||||
@@ -6,12 +6,10 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../software/aichat.nix
|
|
||||||
../software/beets
|
../software/beets
|
||||||
../software/whisper.nix
|
|
||||||
./containers
|
./containers
|
||||||
./nix-serve.nix
|
./nix-serve.nix
|
||||||
./tools
|
# ./tools
|
||||||
#../server/open-webui.nix
|
#../server/open-webui.nix
|
||||||
#../services/tts.nix
|
#../services/tts.nix
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user