Compare commits
5 Commits
7805dd7205
...
9cc83031d1
Author | SHA1 | Date |
---|---|---|
teutat3s | 9cc83031d1 | |
teutat3s | fc1813564c | |
teutat3s | eb990d3ec3 | |
teutat3s | 139cc86d20 | |
teutat3s | 508769f12e |
|
@ -40,13 +40,12 @@ nix build '.#nixosConfigurations.test-vm.config.system.build.vm'
|
|||
./result/bin/run-nixos-vm
|
||||
|
||||
# In another terminal, get the ed25519 SSH hostkey, then stop the VM with CTRL-c
|
||||
ssh-keyscan -p 2222 127.0.0.1 | grep ssh-ed25519
|
||||
...
|
||||
[127.0.0.1]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMdCOs16W731ftPDqO+X6RZVSdwVVNw2Xfmcpk5pzbeO
|
||||
|
||||
SSH_HOST_KEY=$(ssh-keyscan -p 2222 127.0.0.1 | grep '\[127.0.0.1\]:2222 ssh-ed25519' | awk '{print $2 " " $3}')
|
||||
|
||||
# Edit secrets.nix and add the SSH hostkey to machine 'test-vm', starting with 'ssh-ed25519 ...'
|
||||
sed --in-place \
|
||||
's|test-vm = .*|test-vm = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMdCOs16W731ftPDqO+X6RZVSdwVVNw2Xfmcpk5pzbeO host@test-vm";|' \
|
||||
"s|test-vm = .*|test-vm = \"$SSH_HOST_KEY host@test-vm\";|" \
|
||||
secrets/secrets.nix
|
||||
|
||||
# Rekey the secrets with agenix
|
||||
|
|
|
@ -114,12 +114,6 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
socketIoPort = mkOption {
|
||||
type = types.port;
|
||||
default = 9000;
|
||||
description = lib.mdDoc "Local socket.io HTTP server port.";
|
||||
};
|
||||
|
||||
webserver = {
|
||||
bindAddress = mkOption {
|
||||
type = types.str;
|
||||
|
@ -199,10 +193,8 @@ in
|
|||
db_port = "${toString cfg.database.port}";
|
||||
db_name = "${cfg.database.name}";
|
||||
db_password = "#NIXOS_ERPNEXT_DB_USER_PASSWORD#";
|
||||
redis_cache = "redis://${cfg.redis.host}:${toString cfg.redis.port}?db=1";
|
||||
redis_queue = "redis://${cfg.redis.host}:${toString cfg.redis.port}?db=2";
|
||||
redis_socketio = "redis://${cfg.redis.host}:${toString cfg.redis.port}?db=0";
|
||||
socketio_port = "${toString cfg.socketIoPort}";
|
||||
redis_cache = "redis://${cfg.redis.host}:${toString cfg.redis.port}?db=0";
|
||||
redis_queue = "redis://${cfg.redis.host}:${toString cfg.redis.port}?db=1";
|
||||
};
|
||||
commonSiteConfigFile = pkgs.writeText "erpnext-common_site_config.json" (builtins.toJSON commonSiteConfig);
|
||||
|
||||
|
@ -286,23 +278,6 @@ in
|
|||
"d '${cfg.benchDir}/sites' 0750 ${cfg.user} ${config.users.users.${cfg.user}.group}"
|
||||
];
|
||||
|
||||
systemd.services.erpnext-nodejs-socketio = {
|
||||
enable = true;
|
||||
after = [ "erpnext-web.service" ];
|
||||
wantedBy = [ "erpnext-web.service" ];
|
||||
partOf = [ "erpnext-web.service" ];
|
||||
description = "ERPNext Node.js HTTP server for socket.io ";
|
||||
confinement = {
|
||||
enable = true;
|
||||
packages = [ pkgs.nodejs ];
|
||||
};
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
ExecStart = ''
|
||||
${pkgs.nodejs}/bin/node ${cfg.benchDir}/apps/frappe/socketio.js
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
services.caddy.enable = mkIf (cfg.caddy != null) true;
|
||||
services.caddy.virtualHosts."${cfg.domain}" = mkIf (cfg.caddy != null) (lib.mkMerge [
|
||||
cfg.caddy
|
||||
|
@ -312,12 +287,6 @@ in
|
|||
root * ${pkgs.frappe-erpnext-assets}/share/sites
|
||||
file_server
|
||||
}
|
||||
handle /socket.io/* {
|
||||
reverse_proxy :${toString cfg.socketIoPort} {
|
||||
header_up X-Frappe-Site-Name "${cfg.domain}"
|
||||
header_up Origin "{scheme}://${cfg.domain}"
|
||||
}
|
||||
}
|
||||
|
||||
reverse_proxy :${toString cfg.webserver.bindPort}
|
||||
'';
|
||||
|
@ -330,7 +299,6 @@ in
|
|||
after = [
|
||||
"mysql.service"
|
||||
"redis.service"
|
||||
"redis-socketio.service"
|
||||
"systemd-tmpfiles-setup.service"
|
||||
];
|
||||
description = "ERPNext web server";
|
||||
|
@ -347,6 +315,9 @@ in
|
|||
pkgs.replace-secret
|
||||
];
|
||||
};
|
||||
path = [
|
||||
pkgs.mariadb-client
|
||||
];
|
||||
environment = {
|
||||
PYTHON_PATH = "${penv}/${pkgs.python3.sitePackages}";
|
||||
};
|
||||
|
@ -387,7 +358,7 @@ in
|
|||
--chdir="${cfg.benchDir}/sites" \
|
||||
--bind=${cfg.webserver.bindAddress}:${toString cfg.webserver.bindPort} \
|
||||
--threads=4 \
|
||||
--workers=3 \
|
||||
--workers=2 \
|
||||
--worker-class=gthread \
|
||||
--worker-tmp-dir=/dev/shm \
|
||||
--timeout=120 \
|
||||
|
@ -412,22 +383,6 @@ in
|
|||
'';
|
||||
};
|
||||
};
|
||||
systemd.services.erpnext-queue-default = {
|
||||
enable = true;
|
||||
after = [ "erpnext-web.service" ];
|
||||
wantedBy = [ "erpnext-web.service" ];
|
||||
partOf = [ "erpnext-web.service" ];
|
||||
description = "ERPNext default queue server";
|
||||
confinement = {
|
||||
enable = true;
|
||||
packages = [ penv ];
|
||||
};
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
ExecStart = ''
|
||||
${penv}/bin/bench worker --queue default
|
||||
'';
|
||||
};
|
||||
};
|
||||
systemd.services.erpnext-queue-long = {
|
||||
enable = true;
|
||||
after = [ "erpnext-web.service" ];
|
||||
|
|
|
@ -12,22 +12,30 @@ final: prev: {
|
|||
honcho = pyFinal.callPackage ./python/honcho.nix {};
|
||||
|
||||
# erpnext dependencies
|
||||
gocardless-pro = pyFinal.callPackage ./python/gocardless-pro.nix {};
|
||||
redisearch = pyFinal.callPackage ./python/redisearch.nix {};
|
||||
taxjar = pyFinal.callPackage ./python/taxjar.nix {};
|
||||
barcodenumber = pyFinal.callPackage ./python/barcodenumber.nix {};
|
||||
|
||||
# frappe dependencies
|
||||
email-reply-parser = pyFinal.callPackage ./python/email-reply-parser.nix {};
|
||||
maxminddb-geolite2 = pyFinal.callPackage ./python/maxminddb-geolite2.nix {};
|
||||
psycopg2-binary = pyFinal.callPackage ./python/psycopg2-binary.nix {};
|
||||
traceback-with-variables = pyFinal.callPackage ./python/traceback-with-variables.nix {};
|
||||
pydantic = pyFinal.callPackage ./python/pydantic.nix {};
|
||||
|
||||
# indirect dependencies
|
||||
# taxjar
|
||||
jsonobject = pyFinal.callPackage ./python/jsonobject.nix {};
|
||||
# redisearch
|
||||
rejson = pyFinal.callPackage ./python/rejson.nix {};
|
||||
versioningit = pyPrev.versioningit.overridePythonAttrs (oldAttrs: (rec {
|
||||
version = "2.2.1";
|
||||
src = pyPrev.fetchPypi {
|
||||
inherit version;
|
||||
inherit (oldAttrs) pname;
|
||||
hash = "sha256-DlgkLXq9phrmNZalSUrp7WMayF2Ls8yOF24yU8pLy7U=";
|
||||
};
|
||||
}));
|
||||
|
||||
fastapi = pyPrev.fastapi.overridePythonAttrs (oldAttrs: (rec {
|
||||
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
|
||||
pyPrev.pydantic-settings
|
||||
pyPrev.pydantic-extra-types
|
||||
];
|
||||
}));
|
||||
|
||||
plaid-python = pyPrev.plaid-python.overridePythonAttrs (oldAttrs: (rec {
|
||||
version = "7.2.1";
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "barcodenumber";
|
||||
version = "0.2.1";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-nW8+m32i42kLR4oC4lrKoBkFYgKHgpZPGAFNJvtLMhc=";
|
||||
};
|
||||
propagatedBuildInputs = [ ];
|
||||
nativeBuildInputs = [ ];
|
||||
doCheck = false;
|
||||
}
|
|
@ -6,18 +6,16 @@
|
|||
|
||||
# Core dependencies
|
||||
, pycountry
|
||||
, python-stdnum
|
||||
, unidecode
|
||||
, redisearch
|
||||
, barcodenumber
|
||||
, rapidfuzz
|
||||
, holidays
|
||||
|
||||
# Integration dependencies
|
||||
, gocardless-pro
|
||||
, googlemaps
|
||||
, plaid-python
|
||||
, python-youtube
|
||||
, taxjar
|
||||
, tweepy
|
||||
, pypng
|
||||
}:
|
||||
let
|
||||
pinData = import ../srcs/pin.nix;
|
||||
|
@ -47,17 +45,16 @@ buildPythonPackage rec {
|
|||
propagatedBuildInputs = [
|
||||
# Core dependencies
|
||||
pycountry
|
||||
python-stdnum
|
||||
unidecode
|
||||
redisearch
|
||||
barcodenumber
|
||||
rapidfuzz
|
||||
holidays
|
||||
|
||||
# Integration dependencies
|
||||
gocardless-pro
|
||||
googlemaps
|
||||
plaid-python
|
||||
python-youtube
|
||||
taxjar
|
||||
tweepy
|
||||
# used for QR code generation
|
||||
pypng
|
||||
];
|
||||
}
|
||||
|
|
|
@ -8,12 +8,13 @@
|
|||
, babel
|
||||
, click
|
||||
, filelock
|
||||
, filetype
|
||||
, gitpython
|
||||
, jinja2
|
||||
, pillow
|
||||
, pyjwt
|
||||
, pymysql
|
||||
, pypdf2
|
||||
, pypdf
|
||||
, pypika
|
||||
, pyqrcode
|
||||
, pyyaml
|
||||
|
@ -30,7 +31,6 @@
|
|||
, cryptography
|
||||
, email-reply-parser
|
||||
, git-url-parse
|
||||
, gitdb
|
||||
, gunicorn
|
||||
, html5lib
|
||||
, ipython
|
||||
|
@ -47,12 +47,9 @@
|
|||
, premailer
|
||||
, psutil
|
||||
, psycopg2-binary
|
||||
, pyasn1
|
||||
, pycountry
|
||||
, pycryptodome
|
||||
, pydantic
|
||||
, pyopenssl
|
||||
, pyotp
|
||||
, pypng
|
||||
, python-dateutil
|
||||
, pytz
|
||||
, rauth
|
||||
|
@ -63,11 +60,11 @@
|
|||
, rq
|
||||
, rsa
|
||||
, semantic-version
|
||||
, sentry-sdk
|
||||
, sqlparse
|
||||
, tenacity
|
||||
, terminaltables
|
||||
, traceback-with-variables
|
||||
, urllib3
|
||||
, xlrd
|
||||
, zxcvbn
|
||||
, markdownify
|
||||
|
@ -76,7 +73,6 @@
|
|||
, boto3
|
||||
, dropbox
|
||||
, google-api-python-client
|
||||
, google-auth-httplib2
|
||||
, google-auth-oauthlib
|
||||
, google-auth
|
||||
, posthog
|
||||
|
@ -100,48 +96,18 @@ buildPythonPackage rec {
|
|||
format = "pyproject";
|
||||
|
||||
nativeBuildInputs = [ pythonRelaxDepsHook flit-core ];
|
||||
pythonRelaxDeps = [
|
||||
"Babel"
|
||||
"beautifulsoup4"
|
||||
"boto3"
|
||||
"cairocffi"
|
||||
"Click"
|
||||
"croniter"
|
||||
"cryptography"
|
||||
"filelock"
|
||||
"google-api-python-client"
|
||||
"google-auth"
|
||||
"hiredis"
|
||||
"ipython"
|
||||
"openpyxl"
|
||||
"phonenumbers"
|
||||
"Pillow"
|
||||
"pyasn1"
|
||||
"pycountry"
|
||||
"pycryptodome"
|
||||
"PyJWT"
|
||||
"PyMySQL"
|
||||
"pyOpenSSL"
|
||||
"pyotp"
|
||||
"pypng"
|
||||
"pytz"
|
||||
"redis"
|
||||
"requests"
|
||||
"rq"
|
||||
"tenacity"
|
||||
"WeasyPrint"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
babel
|
||||
click
|
||||
filelock
|
||||
filetype
|
||||
gitpython
|
||||
jinja2
|
||||
pillow
|
||||
pyjwt
|
||||
pymysql
|
||||
pypdf2
|
||||
pypdf
|
||||
pypika
|
||||
pyqrcode
|
||||
pyyaml
|
||||
|
@ -158,7 +124,6 @@ buildPythonPackage rec {
|
|||
cryptography
|
||||
email-reply-parser
|
||||
git-url-parse
|
||||
gitdb
|
||||
gunicorn
|
||||
html5lib
|
||||
ipython
|
||||
|
@ -175,12 +140,9 @@ buildPythonPackage rec {
|
|||
premailer
|
||||
psutil
|
||||
psycopg2-binary
|
||||
pyasn1
|
||||
pycountry
|
||||
pycryptodome
|
||||
pydantic
|
||||
pyopenssl
|
||||
pyotp
|
||||
pypng
|
||||
python-dateutil
|
||||
pytz
|
||||
rauth
|
||||
|
@ -191,11 +153,11 @@ buildPythonPackage rec {
|
|||
rq
|
||||
rsa
|
||||
semantic-version
|
||||
sentry-sdk
|
||||
sqlparse
|
||||
tenacity
|
||||
terminaltables
|
||||
traceback-with-variables
|
||||
urllib3
|
||||
xlrd
|
||||
zxcvbn
|
||||
markdownify
|
||||
|
@ -204,7 +166,6 @@ buildPythonPackage rec {
|
|||
boto3
|
||||
dropbox
|
||||
google-api-python-client
|
||||
google-auth-httplib2
|
||||
google-auth-oauthlib
|
||||
google-auth
|
||||
posthog
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
requests,
|
||||
six
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "gocardless-pro";
|
||||
version = "1.22.0";
|
||||
src = fetchPypi {
|
||||
pname = "gocardless_pro";
|
||||
inherit version;
|
||||
sha256 = "sha256-i4gBeJvl/aCujeXGvJG+z1Wp2aczKg8clnfMyK8fz/w=";
|
||||
};
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
six
|
||||
];
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
cython,
|
||||
six
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "jsonobject";
|
||||
version = "2.1.0";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-UpijeVA+Q+/Aq0AC10LA/LuhqWKO3azE6lR7cThRRGY=";
|
||||
};
|
||||
propagatedBuildInputs = [ six ];
|
||||
nativeBuildInputs = [ cython ];
|
||||
doCheck = false;
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pythonOlder
|
||||
, hatchling
|
||||
, hatch-fancy-pypi-readme
|
||||
, libxcrypt
|
||||
, annotated-types
|
||||
, pydantic-core
|
||||
, typing-extensions
|
||||
, email-validator
|
||||
, dirty-equals
|
||||
, faker
|
||||
, pytestCheckHook
|
||||
, pytest-mock
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pydantic";
|
||||
version = "2.3.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pydantic";
|
||||
repo = "pydantic";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-toqrWg8bYzc3UmvG/YmXawfmT8nqaA9fxy24k1cdj+M=";
|
||||
};
|
||||
|
||||
buildInputs = lib.optionals (pythonOlder "3.9") [
|
||||
libxcrypt
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
hatch-fancy-pypi-readme
|
||||
hatchling
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
annotated-types
|
||||
pydantic-core
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
passthru.optional-dependencies = {
|
||||
email = [
|
||||
email-validator
|
||||
];
|
||||
};
|
||||
|
||||
nativeCheckInputs = [
|
||||
dirty-equals
|
||||
faker
|
||||
pytest-mock
|
||||
pytestCheckHook
|
||||
] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
|
||||
|
||||
preCheck = ''
|
||||
export HOME=$(mktemp -d)
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace "'--benchmark-columns', 'min,mean,stddev,outliers,rounds,iterations'," "" \
|
||||
--replace "'--benchmark-group-by', 'group'," "" \
|
||||
--replace "'--benchmark-warmup', 'on'," "" \
|
||||
--replace "'--benchmark-disable'," ""
|
||||
'';
|
||||
|
||||
disabledTestPaths = [
|
||||
"tests/benchmarks"
|
||||
|
||||
# avoid cyclic dependency
|
||||
"tests/test_docs.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pydantic" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Data validation and settings management using Python type hinting";
|
||||
homepage = "https://github.com/pydantic/pydantic";
|
||||
changelog = "https://github.com/pydantic/pydantic/blob/v${version}/HISTORY.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ wd15 ];
|
||||
};
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
{ buildPythonPackage
|
||||
, fetchPypi
|
||||
, pythonRelaxDepsHook
|
||||
, unittestCheckHook
|
||||
, redis
|
||||
, rejson
|
||||
, hiredis
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "redisearch";
|
||||
version = "2.1.1";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-V1rNWhOhB/8AXUVyoTa1A7Evpb8mr8N70R9qkj8exzw=";
|
||||
};
|
||||
nativeBuildInputs = [ pythonRelaxDepsHook ];
|
||||
pythonRelaxDeps = [
|
||||
"redis"
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
redis
|
||||
rejson
|
||||
hiredis
|
||||
];
|
||||
nativeCheckInputs = [
|
||||
unittestCheckHook
|
||||
];
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
{ buildPythonPackage
|
||||
, pythonRelaxDepsHook
|
||||
, unittestCheckHook
|
||||
, fetchPypi
|
||||
, redis
|
||||
, six
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "rejson";
|
||||
version = "0.5.6";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-vs3hNSAAUAi3ls5WyxKOsiUC18addIJv81HNQ79zvJc=";
|
||||
};
|
||||
nativeBuildInputs = [ pythonRelaxDepsHook ];
|
||||
pythonRelaxDeps = [
|
||||
"redis"
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
redis
|
||||
six
|
||||
];
|
||||
doCheck = false;
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
jsonobject,
|
||||
requests,
|
||||
mock
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "taxjar";
|
||||
version = "1.9.2";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-c8lkCLzEmNTuBYLyVNRQq4SLSveDpNKKf6NHxHpg7Ec=";
|
||||
};
|
||||
propagatedBuildInputs = [
|
||||
jsonobject
|
||||
requests
|
||||
];
|
||||
checkInputs = [
|
||||
mock
|
||||
];
|
||||
}
|
|
@ -1,16 +1,15 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 Wp/X/Q Y4Lc3UeDr+nNoBq9Wipyv1RohYX2BuXXhb7/BCEW304
|
||||
bi09luX45mj64j4kchsT0uRQXwK3IaM1tfeK+cHPFW4
|
||||
-> ssh-ed25519 8U1+ng Ldl1XJlahkPzLRsB7ETK1iAWr64nAi5Si/vu2ENaiDM
|
||||
Hjrr3aoMXwKag51UERpGJpMLz6ocLbm+hQs/oj6bfNc
|
||||
-> ssh-ed25519 B2/5FA w6pfvStnUtgnap0lqLZ4Sowfa548P/ljBWXAInNumAA
|
||||
rbi9sBQCJ3ojMKz5M9XRbICVGurjzJ/+4fp+OQB9d8w
|
||||
-> ssh-ed25519 BVsyTA TkfJgoXeItRmM/XcbVsjSWKroPRvwV4GOZbsfr+okg4
|
||||
xRjcIAHBDRlse1ObQ01FEFsE82xiOqVxE55D1h9si9c
|
||||
-> ssh-ed25519 BVsyTA HjZJ4FRC5skEXji2Q+gUvK/a8n2Uiwtl23lk00mJs2U
|
||||
N0JDJiQoLxFbduAFzIOB+oHIfTHRZxDNyPgvzgwFK8w
|
||||
-> ssh-ed25519 +3V2lQ XUigj0pn4XshS6cldmb7RvvS05/m1gt4ILCB/gtXjQU
|
||||
p/SJ9reKQntrnBebExW4jZJz1yMvRl6yGj3H8YPddc0
|
||||
--- dnd4fFVyltvaIlpnWY+XCHq7vEyLe1GfP8Uvm+YE31Y
|
||||
「
|
||||
cQキ5オHcF&kLMP>オー峯*L美<4C>Sl<53><6C>ョk<1E>
|
||||
-> ssh-ed25519 Wp/X/Q OKRD6ff60hQkUsFPULeon06oi10Yk3zw/PP5Pcbubn4
|
||||
OcRfSoapbylZww8RSWyxjZYshxvNaYL2HT9NZaCd+rs
|
||||
-> ssh-ed25519 8U1+ng ZqHoM85W0RmEpUMMXqgYpWzoqHT9P3yenu0UIan9cVg
|
||||
XGewg1J5ZguIitS/PRaJ5Pyzn/eIhPVn44rWCXlP4ck
|
||||
-> ssh-ed25519 oOFZcQ 8rmuIPi4RXpysKp/qX0Jz/gz4+8UjQ6/1Zxv+6OP1QQ
|
||||
aBe/QaWAUHYI5emqNcLgAutVyeWNqYF0QgcP7dC5Ejg
|
||||
-> ssh-ed25519 BVsyTA mRMQn2xEn9jdWYLz6hauumTxs+cxRAHyxbRGywLgpEs
|
||||
DRak/gLh93UprDXq4UXloKcx202uktSuTbkybAL3RLE
|
||||
-> ssh-ed25519 BVsyTA RweUFPcMNhZlbBdqX1Lf5PedXm1bks8ABM+qaiJuNx8
|
||||
uN8PCsuTXuYUo29/SXiHD72rHYDlJo+YF8MpE0MKhrQ
|
||||
-> ssh-ed25519 +3V2lQ xpoyHQwU78j8N0/xJTkQYmVw9p78zjBpLzR8IXRwVgA
|
||||
tAddezv7vYPxn0saAtQgYrcCDn/NOKkRfsFNToYn9/8
|
||||
--- feYwI8yg3EoI7n53Z91W8qoS46j0ZdY+rjWvr++pHIU
|
||||
26R?\lM坙ノYN<59><EFBFBD>EYク<59>緋℡idL<64><4C>勠W
|
|
@ -1,15 +1,15 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 Wp/X/Q LvLq1RbFw1UNd5STTODl/hwCr/n2oyAYxsgaGqVXUFU
|
||||
xP6XHSIyN3lRJ7QFwvOOOcss+kczRUFbepHojXbP/ms
|
||||
-> ssh-ed25519 8U1+ng z7Yc4rmEXtpcBBx6hJmtVyiA6oHLVob8O8UhLgvo6mI
|
||||
O1hCobMEM7TnbcozkOO7l0cZ3Ze4NEhb54v2h4/xV8c
|
||||
-> ssh-ed25519 B2/5FA +8Odi4bm7mObdVGM2Pq6dkSSns6Y6QsxkCvgPGsPrC8
|
||||
eBLsH5HiEuRrbXNDMtUPwlPDAhYPmyWVl0AWho/82WI
|
||||
-> ssh-ed25519 BVsyTA UFri/RzE0Fil4X6FFGTtVcVpzhJyQwUFamG+XEae/G0
|
||||
/+/9ocobQS/obt2WFazKSPIbPmhz4DQ3qxdz2Jg9CUw
|
||||
-> ssh-ed25519 BVsyTA K5OTyhlw3+uw0uVXPfj0yy5qd76t2kZOA72AWFrxAls
|
||||
36622K6od+FnkYXPDbBz6sFmhsbMWtvRo0RqY1suXX0
|
||||
-> ssh-ed25519 +3V2lQ I///pKJJdA+MMqk1pIIJXGt+ZrY4ZGr5cpmolRTCyUk
|
||||
+xVxNBOQMHSQ6K0GGZk7WpGLuaIlu/PwmaPq897GKe8
|
||||
--- Vf09EgiFYwwnYRq3kcdJInzd8NCCd2OM6yy+lUxIUeA
|
||||
đe.ö˛@±ľ<C2B1>SŃř™nÝ$GŰ<47>v]ní;ůĺ-wtL!ÔĂóúÚY
|
||||
-> ssh-ed25519 Wp/X/Q JjeEJchHBwo2fIN05JQaDU5kuiCK2P+t/+vKpXpqzTk
|
||||
I2CWfsw1rob5uAn0TMec7UW5YgB6+ZOa8XjhW1zTN6k
|
||||
-> ssh-ed25519 8U1+ng iF25EtydJLTi7ETcI/mnnwGEEgJ2jzB+H1snIlOyIn0
|
||||
EYZMaBys1Ib9+9tyDiitoJZcRiYROKalLSw3+IkTYBE
|
||||
-> ssh-ed25519 oOFZcQ 3rYmvML6iYeP+TryrfY1nuKpMsE3oK3aB2VGLFG+fGM
|
||||
nhGu7dEr41l2Vc4wsoWj3Iv6prFGbd3L9aTtq0OWYJ4
|
||||
-> ssh-ed25519 BVsyTA GuseCoA9Q6j4Rh652hyaHkySE3vuhhmnh00jFrnduy0
|
||||
pt54rMN3hAnrgWgEEqWvdNmmv/jJy95uuZc77QIjBzk
|
||||
-> ssh-ed25519 BVsyTA yKrgTRQhuLevVctFOy8XWtaI6KYwWS70ZzlT97xSAVg
|
||||
wRrgGa4lH+NPkTqnfUtZRQGni4BRumHir70hQZVAPAA
|
||||
-> ssh-ed25519 +3V2lQ RqMzBa5WjiE8JbbjF23b32VZZUgiD7R9mHJLTwTCXAQ
|
||||
dQHjQIIydSjJe6hDJkHTHcM142cJWUHcgqVCfWgbbu8
|
||||
--- BsXgkqdDPJP/w8BrFTMxZSQOmmdydlNig/LubpRp1j8
|
||||
$›ÉÌõÍÉÚKT ëRQÃ?‡â?l¨’ ê r§óÉÄBhò¤;.
|
|
@ -1,15 +1,15 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 Wp/X/Q XQcBb9T8zpib6nebbKw/BxSuiP4Q9zi9yLLODhx7Xwg
|
||||
yOTDI9/ZMZq2vamIE6Q3GB8+lSt1SUfnJFVZ5Bu1rRM
|
||||
-> ssh-ed25519 8U1+ng GlfaGP7lTV5xsh2Zib9wkFEn1CcFa/wdaHxI0RGl6X8
|
||||
E1jMN5PAQjv3hhSx9WU3xzd+kDJbl9cd4lOd++k5Cfc
|
||||
-> ssh-ed25519 B2/5FA mCInZwQrNJNyRAvYjsLMOdNE9sM6iJn/GJlEQ+NJuDk
|
||||
fDmVqofrz6SYaygI8umd6PVnuwik6PsThFV1HCK8Qb0
|
||||
-> ssh-ed25519 BVsyTA /9dbvKxQujZMPxjP1DajHOTSm+cFV8ghzoHuf2zvBDc
|
||||
ZwXAI6SrvXgXzTz3JHjSmuYFQd70H8UxDoEpKZhbSys
|
||||
-> ssh-ed25519 BVsyTA Y8ci67zC+EGxGNc+4LuhRt+3ImxitRHuL6fuaYWWu2g
|
||||
3FkaZRqR3viPvkZDV+2aZUwYlPgtbmwEBIjrFwGBYps
|
||||
-> ssh-ed25519 +3V2lQ P86iVYPu1CVqcNnbMy3DEuSGF3XZeeXHJWiByA5HpxY
|
||||
0aQ/knr/8NYB/xa+YNFS9uHhpB3uG2Jm/jpq2gTeEaA
|
||||
--- /D2NTCvXXfa2aDoaXL9qYSmRVfb2BVbOYx914H75c20
|
||||
/fÔJÁ‡[PaÕÈglòzbÏ—y‰÷€Q ü;Öq& Åfd§‘ó
|
||||
-> ssh-ed25519 Wp/X/Q AYajVfjNpeIzQa6gJS4WQ0FxeiG+E6ubvnMpUuhqRBE
|
||||
iXBt2QFOSb0maN2/S6GpfmXKMFFbL+PqA9uIcB2CheY
|
||||
-> ssh-ed25519 8U1+ng 5zraJOoaFPm11JUBcFlYvE4KwCMECg8SS1RcjRtQ90s
|
||||
wp/PNpwftnpmU8OVHKn7RWlVI2gUJQAWje0L7WF8POY
|
||||
-> ssh-ed25519 oOFZcQ H4DlziBiXcE54Dnuk3MfiNFF6iOE5eQUVL4npUjgfEM
|
||||
BYK5wXV4evqtUanzJtAgTzHjQUkv6BMNDYhqhEN+LAE
|
||||
-> ssh-ed25519 BVsyTA dyZ/zUHpYNxbo3GmtHXR4XXzV2gVdaku1chxE028JTA
|
||||
1VRZgmsRV1CjQCVNJhDnOYOWl1V4OxCd/mNY+QhNbIw
|
||||
-> ssh-ed25519 BVsyTA h3vgd5Gm49NW8kBYZ6cCW8qjSZ8thUpvNzoRGArnK0I
|
||||
fL9vlAYUFW7IRhyerc7VpYfK+4ZQvMAs+rb1KHvi0Nw
|
||||
-> ssh-ed25519 +3V2lQ V3SNRpH/u017gfpyrXRavZvHEeg7UrfmVgtacFNNwxE
|
||||
Hk34+oa4HAWpCyKZzwq1TTkcivfKnoabgoPI0YVujiE
|
||||
--- DYEoKE9rQw/OFgEWQq+DK9seMqLovJ4JCXb8a8pBGWE
|
||||
MBçú鋽:–9ÛÅêþ¸˜ÁÞâÑTåÍ\¢<> 'y"ç•ToÑ
|
|
@ -3,7 +3,7 @@ let
|
|||
machines = {
|
||||
dumpyourvms = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILDATEWAgDZFfYs1ZPh33Kg4sqQ9tWMVKyk8XqFu3Koe host@dumpyourvms";
|
||||
ryzensun = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH/l7MfEmt510BMeNjuXNPmZ0brcQidvrrpcea+qJMjX host@ryzensun";
|
||||
test-vm = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIATdaeRzb/OE1P+lcRS/i9C4yIN11J5zpfVb7+v1D4d7";
|
||||
test-vm = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEM2z37ihd0zy9146EFDsvRhtTgBSPiB9OzhPgjmyuqX host@test-vm";
|
||||
};
|
||||
users = {
|
||||
teutat3s-dumpyourvms = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHcU6KPy4b1MQXd6EJhcYwbJu7E+0IrBZF/IP6T7gbMf teutat3s@dumpyourvms";
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
benchVersion = "5.19.0";
|
||||
erpnextVersion = "14.58.1";
|
||||
erpnextVersion = "15.9.1";
|
||||
frappeVersion = "15.8.1";
|
||||
hashes = {
|
||||
"benchSrcHash" = "sha256-y8nx4vFVQggwGv2MWQ88WczgVbPxPybZV38FF5u5aWI=";
|
||||
"erpnextSrcHash" = "sha256-HeeNd7dAlbppR2gPPmohKqpUUoMx5f0Kgsd7wZtUHp8=";
|
||||
"erpnextYarnHash" = "0rjqlw0lff1wwbzl62g8nnjlhz3km2km3vqj2dccawpi4q2kh6jn";
|
||||
"erpnextSrcHash" = "sha256-nkXN0PTcWt1nSy3eRdBF2h0WMdAC79qWzaj9kXRsG2I=";
|
||||
"erpnextYarnHash" = "1farnqrfnzshpbpx4nyarw13g8m3389ix3hrc4661xxm887lz5fv";
|
||||
"frappeSrcHash" = "sha256-FDUUNbULPmMY6dDgbMHrxXD8pK1AP+T7kG7mY9MmMDg=";
|
||||
"frappeYarnHash" = "0rj2v69siagwjz632hyaii5ni24fp434cznaxpi8978fq07qx6l9";
|
||||
};
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
config = {
|
||||
services.qemuGuest.enable = true;
|
||||
system.stateVersion = "23.05";
|
||||
system.stateVersion = "23.11";
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
|
@ -50,6 +50,7 @@
|
|||
users.extraUsers.root.password = "";
|
||||
users.users.root.openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMNeQYLFauAbzDyIbKC86NUh9yZfiyBm/BtIdkcpZnSU"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAsRdVYK0077cdtavmrRr6akrI68T1EDY4Hfv4+W86J teutat3s@ryzensun"
|
||||
];
|
||||
users.mutableUsers = false;
|
||||
networking.firewall.enable = false;
|
||||
|
|
Loading…
Reference in New Issue