forked from axeman/erpnext-nix
wip: backend works. frontend still has some issues
This commit is contained in:
parent
f8346df08f
commit
aacdc913a2
20
flake.nix
20
flake.nix
|
@ -31,6 +31,8 @@
|
||||||
penv = py.buildEnv.override {
|
penv = py.buildEnv.override {
|
||||||
extraLibs = [ py.pkgs.frappe py.pkgs.erpnext ];
|
extraLibs = [ py.pkgs.frappe py.pkgs.erpnext ];
|
||||||
};
|
};
|
||||||
|
erpnextSrc = pkgs.callPackage ./srcs/erpnext.nix {};
|
||||||
|
frappeModules = pkgs.callPackage ./node/frappe-modules.nix {};
|
||||||
runErpNext = pkgs.writeShellScriptBin "runErpNext" ''
|
runErpNext = pkgs.writeShellScriptBin "runErpNext" ''
|
||||||
export PYTHON_PATH=${penv}/${py.sitePackages}
|
export PYTHON_PATH=${penv}/${py.sitePackages}
|
||||||
# The upstream installer bench CLI wants mysql in its PATH
|
# The upstream installer bench CLI wants mysql in its PATH
|
||||||
|
@ -39,7 +41,7 @@
|
||||||
hostname=localhost
|
hostname=localhost
|
||||||
tmp=/tmp/erpnext
|
tmp=/tmp/erpnext
|
||||||
|
|
||||||
mkdir -p $tmp/apps $tmp/sites $tmp/config/pids $tmp/logs $tmp/env/bin
|
mkdir -p $tmp/apps $tmp/sites $tmp/config/pids $tmp/logs/nginx $tmp/env/bin
|
||||||
|
|
||||||
for f in ${assets}/share/sites/*; do
|
for f in ${assets}/share/sites/*; do
|
||||||
ln -s "$f" "$tmp/sites/$(basename $f)"
|
ln -s "$f" "$tmp/sites/$(basename $f)"
|
||||||
|
@ -51,26 +53,28 @@
|
||||||
"db_port": 3306,
|
"db_port": 3306,
|
||||||
"db_name": "erpnext" ,
|
"db_name": "erpnext" ,
|
||||||
"db_password": "erpnext" ,
|
"db_password": "erpnext" ,
|
||||||
"redis_cache": "redis://localhost",
|
"redis_cache": "redis://localhost:6379?db=0",
|
||||||
"redis_queue": "redis://localhost",
|
"redis_queue": "redis://localhost:6379?db=1",
|
||||||
"redis_socketio": "redis://localhost",
|
"redis_socketio": "redis://localhost:6379?db=2",
|
||||||
"socketio_port": 6379
|
"socketio_port": 3000
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# The upstream bench CLI installer expects this file
|
# The upstream bench CLI installer expects this file
|
||||||
echo -e "erpnext\nfrappe\n" > $tmp/sites/apps.txt
|
echo -e "erpnext\nfrappe\n" > $tmp/sites/apps.txt
|
||||||
|
|
||||||
cd $tmp
|
ln -s ${erpnextSrc} $tmp/apps/erpnext
|
||||||
ln -s ${py.pkgs.erpnext}/lib/python3.10/site-packages apps/erpnext
|
ln -s ${frappeModules}/libexec/frappe-framework/deps/frappe-framework $tmp/apps/frappe
|
||||||
ln -s ${py.pkgs.frappe}/lib/python3.10/site-packages apps/frappe
|
|
||||||
ln -s ${penv} $tmp/env
|
ln -s ${penv} $tmp/env
|
||||||
ln -sf ${nginx-conf} $tmp/nginx-erpnext.conf
|
ln -sf ${nginx-conf} $tmp/nginx-erpnext.conf
|
||||||
|
|
||||||
|
cd $tmp
|
||||||
# Upstream initializes the DB with this command
|
# Upstream initializes the DB with this command
|
||||||
${py.pkgs.bench}/bin/bench new-site localhost --mariadb-root-password password --admin-password admin
|
${py.pkgs.bench}/bin/bench new-site localhost --mariadb-root-password password --admin-password admin
|
||||||
|
|
||||||
echo "Workdir: $tmp"
|
echo "Workdir: $tmp"
|
||||||
|
${pkgs.nodejs}/bin/node $tmp/apps/frappe/socketio.js &
|
||||||
${penv}/bin/gunicorn --chdir="$tmp/sites" --bind=0.0.0.0:9090 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application
|
${penv}/bin/gunicorn --chdir="$tmp/sites" --bind=0.0.0.0:9090 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application
|
||||||
'';
|
'';
|
||||||
in rec {
|
in rec {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ pkgs }:
|
{ pkgs }:
|
||||||
let
|
let
|
||||||
backend = "localhost:9090";
|
backend = "127.0.0.1:9090";
|
||||||
socketio = "0.0.0.0:9000";
|
socketio = "127.0.0.1:3000";
|
||||||
frappe_site_name_header = "localhost";
|
frappe_site_name_header = "localhost";
|
||||||
upstream_real_ip_address = "127.0.0.1";
|
upstream_real_ip_address = "127.0.0.1";
|
||||||
upstream_real_ip_header = "X-Forwarded-For";
|
upstream_real_ip_header = "X-Forwarded-For";
|
||||||
|
|
21
node/frappe-modules.nix
Normal file
21
node/frappe-modules.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ mkYarnPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, fetchYarnDeps
|
||||||
|
}:
|
||||||
|
mkYarnPackage {
|
||||||
|
pname = "frappe-modules";
|
||||||
|
version = "14.36.1";
|
||||||
|
|
||||||
|
src = import ../srcs/frappe.nix {inherit fetchFromGitHub; };
|
||||||
|
|
||||||
|
packageJSON = ../frappe-package.json;
|
||||||
|
yarnFlags = [ "--production" ];
|
||||||
|
|
||||||
|
offlineCache = fetchYarnDeps {
|
||||||
|
yarnLock = "$src/yarn.lock";
|
||||||
|
hash = "sha256-PBdMUz9gJIoQaqQYbdk+xnd8CyZPmdeyz/9WznCb4Ss=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Do not attempt generating a tarball
|
||||||
|
doDist = false;
|
||||||
|
}
|
Loading…
Reference in a new issue