-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathERPNext_arch_summary.txt
106 lines (91 loc) · 3.23 KB
/
ERPNext_arch_summary.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
ERPNext is an Opensource,
It's architecture is designed to use most of open-sources available out there.
ERPNext is developed by Frappe Framework:
So Arch of Frappe Framework:
Frappe framework is a full-stack web based framework and it includes all the tools needed to deploy a site into production.
Database, caching, backgroubd jobs, realtime notifications, etc are all configured when you set up a Frappe Site.
Frappe framework is based on python, so it uses Python Virtualenv, to setup isolated environments for multiple Python versions.
you can also use it to deploy sites with different Frappe versions.
The Arch diagram closely remembles the "frappe-bench" directory structure and its interface with different parts of the stack.
Bottom level of appraoch contains:
1. Python Virtual Environment
2. Node, Werkzeug, redis, Background Jobs.
3. APPS - frappe, erpnext, custom_app
4. SITES - site1.local, erp.bpm.com
5. MariaDB/ Postgres.
Directory Structure of "frappe-bench":
++++++++++++++++++++++++++++++++++++++
.
├── apps
├── frappe
├── config
├── redis_cache.conf
├── redis_queue.conf
└── redis_socketio.conf
├── env
├── logs
├── Procfile
└── sites
├── apps.txt
├── assets
├── common_site_config.json
└── site1.local
├── private
├── public
└── site_config.json
SITES Directory Structure:
++++++++++++++++++++++++++
sites/mysite.local
├── locks
├── private
│ ├── backups
│ └── files
├── public
│ └── files
├── site_config.json
└── task-logs
APPS Directory Structure:
+++++++++++++++++++++++++
apps/custom_app
├── MANIFEST.in
├── README.md
├── custom_app
│ ├── __init__.py
│ ├── config
│ │ ├── __init__.py
│ │ ├── desktop.py
│ │ └── docs.py
│ ├── custom_app
│ │ └── __init__.py
│ ├── hooks.py
│ ├── modules.txt
│ ├── patches.txt
│ ├── public
│ │ ├── css
│ │ └── js
│ ├── templates
│ │ ├── __init__.py
│ │ └── includes
│ └── www
├── custom_app.egg-info
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ ├── dependency_links.txt
│ ├── not-zip-safe
│ ├── requires.txt
│ └── top_level.txt
├── license.txt
├── requirements.txt
├── dev-requirements.txt
├── package.json
└── setup.py
Installing an app into a site:
-----------------------------
To use an app, it must be installed on a site. Installing an app on a site means creating the models that are bundled with the app into the site, which means creating database tables in the site database.
To install an app onto a site, run the following command:
$ bench --site site_name install-app custom_app
Installing custom_app...
To check whether the app was installed correctly, run the following command:
$ bench --site site_name list-apps
frappe
custom_app