package nerd
This commit is contained in:
parent
33e9ba8725
commit
517ac86a3c
@ -4,6 +4,7 @@
|
|||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
./nerd.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
@ -18,13 +19,11 @@
|
|||||||
matchConfig = {
|
matchConfig = {
|
||||||
Name = "ens18";
|
Name = "ens18";
|
||||||
};
|
};
|
||||||
address = [ "10.42.10.24/24" "fd00:10:42:10::240/64" "2a01:4f8:1c0c:8221::240/64" ];
|
address = [ "10.42.10.24/24" "fd00:10:42:10::24/64" "2a01:4f8:1c0c:8221::24/64" ];
|
||||||
gateway = [ "10.42.10.1" "2a01:4f8:1c0c:8221::1" ];
|
gateway = [ "10.42.10.1" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ colmena ];
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
86
hosts/nerd/nerd.nix
Normal file
86
hosts/nerd/nerd.nix
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systemd.services.nerd = {
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
NERD_CONFIG_FILE = pkgs.writeText "nerd.cfg" ''
|
||||||
|
[django]
|
||||||
|
secret = TODO
|
||||||
|
allowed_hosts = nerd.bula22.de
|
||||||
|
debug = False
|
||||||
|
language_code = de-de
|
||||||
|
time_zone = Europe/Berlin
|
||||||
|
csrf_trusted_origins = https://nerd.bula22.de
|
||||||
|
|
||||||
|
[database]
|
||||||
|
engine = postgresql_psycopg2
|
||||||
|
name = nerd
|
||||||
|
user =
|
||||||
|
password =
|
||||||
|
host = /run/postgresql
|
||||||
|
port =
|
||||||
|
|
||||||
|
[email]
|
||||||
|
backend = smtp.EmailBackend
|
||||||
|
host = mail.n0emis.eu
|
||||||
|
port = 465
|
||||||
|
user = no-reply@n0emis.eu
|
||||||
|
password = TODO
|
||||||
|
ssl = True
|
||||||
|
tls = False
|
||||||
|
from = noreply@n0emis.eu
|
||||||
|
'';
|
||||||
|
PYTHONPATH = "${pkgs.python3.pkgs.nerd.pythonPath}:${pkgs.python3.pkgs.nerd}/${pkgs.python3.sitePackages}:${pkgs.python3Packages.psycopg2}/${pkgs.python3.sitePackages}";
|
||||||
|
};
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
User = "nerd";
|
||||||
|
Group = "nerd";
|
||||||
|
ExecStartPre = "${pkgs.python3.pkgs.nerd}/bin/nerd migrate";
|
||||||
|
ExecStart = ''
|
||||||
|
${pkgs.python3Packages.gunicorn}/bin/gunicorn \
|
||||||
|
--bind 0.0.0.0:10510 \
|
||||||
|
--access-logfile - \
|
||||||
|
nerd.wsgi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
ensureDatabases = [ "nerd" ];
|
||||||
|
ensureUsers = [
|
||||||
|
{
|
||||||
|
name = "nerd";
|
||||||
|
ensurePermissions = {
|
||||||
|
"DATABASE nerd" = "ALL PRIVILEGES";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.nerd = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "nerd";
|
||||||
|
};
|
||||||
|
users.groups.nerd = {};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 443 ];
|
||||||
|
|
||||||
|
services.caddy = {
|
||||||
|
enable = true;
|
||||||
|
virtualHosts."nerd.bula22.de" = {
|
||||||
|
extraConfig = ''
|
||||||
|
route {
|
||||||
|
file_server /static/*
|
||||||
|
reverse_proxy * http://127.0.0.1:10510
|
||||||
|
}
|
||||||
|
|
||||||
|
root * ${pkgs.python3.pkgs.nerd}/var/lib/nerd/
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -4,4 +4,8 @@ self: super: {
|
|||||||
ywsd = self.callPackage ./ywsd { };
|
ywsd = self.callPackage ./ywsd { };
|
||||||
mitel-ommclient2 = self.callPackage ./mitel-ommclient2 { };
|
mitel-ommclient2 = self.callPackage ./mitel-ommclient2 { };
|
||||||
fieldpoc = self.callPackage ./fieldpoc { };
|
fieldpoc = self.callPackage ./fieldpoc { };
|
||||||
|
django-admin-autocomplete-filter = self.callPackage ./django-admin-autocomplete-filter { };
|
||||||
|
django-bootstrap5 = self.callPackage ./django-bootstrap5 { };
|
||||||
|
django-verify-email = self.callPackage ./django-verify-email { };
|
||||||
|
nerd = self.callPackage ./nerd { };
|
||||||
}
|
}
|
||||||
|
23
packages/python/django-admin-autocomplete-filter/default.nix
Normal file
23
packages/python/django-admin-autocomplete-filter/default.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchPypi
|
||||||
|
, django
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "django-admin-autocomplete-filter";
|
||||||
|
version = "0.7.1";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "5a8c9a7016e03104627b80b40811dcc567f26759971e4407f933951546367ba0";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
django
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "admin_auto_filters" ];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
}
|
28
packages/python/django-bootstrap5/default.nix
Normal file
28
packages/python/django-bootstrap5/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchPypi
|
||||||
|
, django
|
||||||
|
, beautifulsoup4
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "django-bootstrap5";
|
||||||
|
version = "21.3";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "35086341881780a44b2e27255894f6029fc5ef75e5a0ec8ebd82f47a5184fa73";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
django
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
beautifulsoup4
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "django_bootstrap5" ];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
}
|
21
packages/python/django-verify-email/default.nix
Normal file
21
packages/python/django-verify-email/default.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchPypi
|
||||||
|
, django
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "Django-Verify-Email";
|
||||||
|
version = "1.0.9";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "05d296a6a7ef03db07327b076093373e086d9e76e7fa9970a033e4e01168197f";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
django
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
}
|
50
packages/python/nerd/default.nix
Normal file
50
packages/python/nerd/default.nix
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonApplication
|
||||||
|
, makePythonPath
|
||||||
|
, fetchFromGitHub
|
||||||
|
, python3
|
||||||
|
, hatchling
|
||||||
|
, django_4
|
||||||
|
, django-bootstrap5
|
||||||
|
, django-admin-autocomplete-filter
|
||||||
|
, django-verify-email
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonApplication rec {
|
||||||
|
pname = "nerd";
|
||||||
|
version = "0.0.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "dect-e";
|
||||||
|
repo = pname;
|
||||||
|
#rev = "v${version}";
|
||||||
|
rev = "8b8becaeb9d77c3ff2c5dadb1d5be6d66b6ed5f2";
|
||||||
|
sha256 = "sha256-R2kOECPtfTTnbqjujGR1AeNGyXNswqC7UJtQu+W4pXo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
sourceRoot = "source/src";
|
||||||
|
|
||||||
|
format = "pyproject";
|
||||||
|
|
||||||
|
buildInputs = [ python3 hatchling ];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
django_4
|
||||||
|
django-bootstrap5
|
||||||
|
django-admin-autocomplete-filter
|
||||||
|
django-verify-email
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
python ./manage.py collectstatic
|
||||||
|
|
||||||
|
mkdir -p $out/var/lib/nerd
|
||||||
|
cp -r static $out/var/lib/nerd/
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
# PYTHONPATH of all dependencies used by the package
|
||||||
|
pythonPath = python3.pkgs.makePythonPath propagatedBuildInputs;
|
||||||
|
};
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user