Merge branch 'main' of gh:greg-hellings/nixos-config

This commit is contained in:
Greg Hellings
2023-12-29 23:37:07 -06:00
13 changed files with 235 additions and 24 deletions
Generated
+17 -17
View File
@@ -274,6 +274,22 @@
"type": "github"
}
},
"nix23_05": {
"locked": {
"lastModified": 1702759837,
"narHash": "sha256-u3XeJVRe/Q975nwFE+6ALEwypMKJEELMJKDAhSKyq3M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b2566f4f897ac6224e094b167d9488d03e157f28",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixneovim": {
"inputs": {
"flake-utils": "flake-utils_2",
@@ -372,22 +388,6 @@
"type": "github"
}
},
"nixpy311": {
"locked": {
"lastModified": 1698696950,
"narHash": "sha256-FHFL58t6lMumvWqwundC8fDDDLOIvc+JJBNIAlPjrDY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "017ef2132a5bda50bd713aeabce8f918502d4ec1",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixstable": {
"locked": {
"lastModified": 1702233072,
@@ -502,8 +502,8 @@
"flake-utils": "flake-utils",
"hm": "hm",
"hmunstable": "hmunstable",
"nix23_05": "nix23_05",
"nixneovim": "nixneovim",
"nixpy311": "nixpy311",
"nixstable": "nixstable",
"nixunstable": "nixunstable",
"nurpkgs": "nurpkgs",
+4 -3
View File
@@ -20,7 +20,7 @@
inputs.nixpkgs.follows = "nixstable";
};
nixneovim.url = "github:NixNeovim/NixNeovim";
nixpy311.url = "github:NixOS/nixpkgs/nixos-23.05";
nix23_05.url = "github:NixOS/nixpkgs/nixos-23.05";
nixstable.url = "github:nixos/nixpkgs/nixos-23.11";
nixunstable.url = "github:nixos/nixpkgs/nixos-unstable";
nurpkgs.url = "github:nix-community/NUR";
@@ -37,7 +37,7 @@
hm,
hmunstable,
nixneovim,
nixpy311,
nix23_05,
nixstable,
nixunstable,
nurpkgs,
@@ -48,7 +48,8 @@
let
pkg-sets = (
final: prev: {
unstable = import inputs.nixunstable { system = final.system; };
unstable = import inputs.nixunstable { system = final.system; inherit overlays; };
nix23_05 = import inputs.nix23_05 { system = final.system; inherit overlays; };
}
);
local_overlay = import ./overlays;
-1
View File
@@ -41,7 +41,6 @@
gh
git
gnupatch
gregpy
hms
htop
inetutils
+14 -3
View File
@@ -1,10 +1,21 @@
{ pkgs, lib, inputs, ...}:
{
let
py = pkgs.nix23_05.python311.withPackages ( p: with p; [
django
djangorestframework
django-rapyd-modernauth
environs
#itg-django-utils
mysqlclient
ruamel-yaml
tox
]);
in {
imports = [
../../vscodium.nix
];
greg.pypackage = py;
home = {
packages = with pkgs; [
aacs
@@ -13,7 +24,7 @@
direnv
home-manager
insomnia
pipenv
pipenv-ivr
];
file.".pip/pip.conf".text = (lib.strings.concatStringsSep "\n" [
"[global]"
+1
View File
@@ -3,6 +3,7 @@
{
imports = [
./gnome.nix
./python.nix
./xonsh.nix
];
}
+10
View File
@@ -0,0 +1,10 @@
{ config, pkgs, lib, ... }:
{
options.greg.pypackage = lib.mkOption {
description = "Enable Gnome support and settings";
type = lib.types.package;
default = pkgs.gregpy;
};
config.home.packages = [ config.greg.pypackage ];
}
+1
View File
@@ -76,6 +76,7 @@ in
greg.proxies = {
"smart.home".target = "http://127.0.0.1:8123/";
"smart.thehellings.lan".target = "http://127.0.0.1:8123/";
"zwave.home".target = "http://127.0.0.1:8091/";
};
+1
View File
@@ -26,6 +26,7 @@ let
"100.88.91.27 genesis.home jellyfin.home smart.home zwave.home"
"100.78.16.88 mm.home"
"100.84.183.79 myself.home myself.shire-zebra.ts.net git.thehellings.lan"
"100.78.226.76 gitlab.home gitlab.shire-zebra.ts.net gitlab.thehellings.lan registry.thehellings.lan"
# Dev hosts
"10.42.101.1 icdm.lan wiki.icdm.lan *.icdm.lan"
+24
View File
@@ -12,6 +12,30 @@ in {
proxy_set_header X-Forwarded-Ssl on;
'';
};
services.haproxy = {
enable = true;
config = builtins.concatStringsSep "\n" [
"global"
" daemon"
" maxconn 20"
"defaults"
" timeout connect 500s"
" timeout client 500s"
" timeout server 1h"
"frontend gitsshd"
" bind *:2222"
" default_backend gitssh"
" timeout client 1h"
"backend gitssh"
" mode tcp"
" server git-thehellings-lan git.thehellings.lan:2222"
];
};
##########################################################################################
###########
# CI SERVICES
+3
View File
@@ -33,6 +33,8 @@ in rec {
pythonPackagesExtensions = (prev.pythonPackagesExtensions or []) ++ [
(python-final: python-prev: let cp = python-final.callPackage; in {
django-rapyd-modernauth = cp ./django-rapyd-modernauth.nix {};
graypy = cp ./graypy.nix {};
itg-django-utils = cp ./itg-django-utils.nix {};
xonsh-apipenv = cp ./xonsh-apipenv.nix {};
xonsh-direnv = cp ./xonsh-direnv.nix {};
xontrib-vox = cp ./xonsh-vox.nix {};
@@ -66,6 +68,7 @@ in rec {
libvirt-greg = prev.libvirt.overrideAttrs {
postInstall = prev.libvirt.postInstall + "rm -r $out/lib/systemd/system/libvirtd.service";
};
pipenv-ivr = prev.callPackage ./pipenv.nix { };
xonsh = prev.xonsh.overridePythonAttrs (old: rec{
python3 = final.gregpy;
+35
View File
@@ -0,0 +1,35 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
amqplib,
mock,
pytestCheckHook,
requests,
}:
buildPythonPackage rec {
pname = "graypy";
version = "2.1.0";
src = fetchFromGitHub {
owner = "severb";
repo = "graypy";
rev = "2.1.0";
hash = "sha256-y1HbJEpqnAgOeB+zXKy3iUT6Lpv0bufjL7+jWUSAjFs=";
};
nativeCheckInputs = [
amqplib
mock
pytestCheckHook
requests
];
meta = with lib; {
description = "Python logging handlers that send messages in the Graylog Extended Log Format (GELF).";
homepage = "https://github.com/severb/graypy";
license = licenses.bsd3;
};
}
+35
View File
@@ -0,0 +1,35 @@
{
lib,
buildPythonPackage,
fetchurl,
django,
djangorestframework,
graypy,
setuptools,
}:
buildPythonPackage rec {
pname = "itg-django-utils";
version = "0.1.11";
src = fetchurl {
url = "https://pypi.ivrtechnology.com/packages/itg-django-utils-0.1.12.tar.gz";
hash = "sha256-LbOl4L4UZbRTlLuBL4L3ser6+WDuP3R5a03EIh1xSK8=";
};
propagatedBuildInputs = [
django
djangorestframework
graypy
setuptools
];
meta = with lib; {
description = "ITG specific stuff";
homepage = "http://www.ivrtechnology.com";
maintainers = [];
};
doCheck = false;
}
+90
View File
@@ -0,0 +1,90 @@
{ lib
, stdenv
, python3
, fetchFromGitHub
, installShellFiles
}:
with python3.pkgs;
let
runtimeDeps = ps: with ps; [
certifi
setuptools
pip
virtualenv
virtualenv-clone
]
++ lib.optionals stdenv.hostPlatform.isAndroid [
pyjnius
];
pythonEnv = python3.withPackages runtimeDeps;
in buildPythonApplication rec {
pname = "pipenv";
version = "2023.11.15";
format = "pyproject";
src = fetchFromGitHub {
owner = "pypa";
repo = "pipenv";
rev = "refs/tags/v${version}";
hash = "sha256-kxwyws22xJkqBy/hXXcAPHZR2NgZHbmwZr9vYqce434=";
};
env.LC_ALL = "en_US.UTF-8";
nativeBuildInputs = [
installShellFiles
setuptools
wheel
];
postPatch = ''
# pipenv invokes python in a subprocess to create a virtualenv
# and to call setup.py.
# It would use sys.executable, which in our case points to a python that
# does not have the required dependencies.
substituteInPlace pipenv/utils/virtualenv.py \
--replace "sys.executable" "'${pythonEnv.interpreter}'"
'';
propagatedBuildInputs = runtimeDeps python3.pkgs;
preCheck = ''
export HOME="$TMPDIR"
'';
nativeCheckInputs = [
mock
pytestCheckHook
pytest-xdist
pytz
requests
];
disabledTests = [
"test_convert_deps_to_pip"
"test_download_file"
];
disabledTestPaths = [
"tests/integration"
];
postInstall = ''
installShellCompletion --cmd pipenv \
--bash <(_PIPENV_COMPLETE=bash_source $out/bin/pipenv) \
--zsh <(_PIPENV_COMPLETE=zsh_source $out/bin/pipenv) \
--fish <(_PIPENV_COMPLETE=fish_source $out/bin/pipenv)
'';
meta = with lib; {
description = "Python Development Workflow for Humans";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ berdario ];
};
}