|
1 |
| -# Metarhia Starter Kit for Node.js Server |
| 1 | +# Metarhia application example |
2 | 2 |
|
3 |
| -## Concept |
| 3 | +Please see this: https://github.com/metarhia/Example |
| 4 | +or use Node.js Starter Kit for pure Node.js application with compatible |
| 5 | +structure: https://github.com/HowProgrammingWorks/NodejsStarterKit |
4 | 6 |
|
5 |
| -This is a logical continuation of |
6 |
| -[Node.js Starter Kit](https://github.com/HowProgrammingWorks/NodejsStarterKit) |
7 |
| -from [How Programming Works](https://github.com/HowProgrammingWorks) software |
8 |
| -development course moving all system code to dependencies, namely using |
9 |
| -[Metarhia technology stack](https://github.com/metarhia). |
10 |
| - |
11 |
| -You can begin development from this starter kit but having in mind future |
12 |
| -production deployment and further moving application to |
13 |
| -[Metaserverless cloud](https://github.com/Metaserverless) based on Metarhia |
14 |
| -technology stack and Node.js. |
15 |
| - |
16 |
| -The purpose of this starter kit is to show best practices for Metarhia and |
17 |
| -Metaserverless, to give structure and architecture example, to illustrate |
18 |
| -simplicity and efficiency of mentioned technologies. |
19 |
| - |
20 |
| -All parts of this implementation are optimized for reliability, scalability, |
21 |
| -performance and security. So if you need readability and want to study code, |
22 |
| -let's start with |
23 |
| -[Node.js Starter Kit](https://github.com/HowProgrammingWorks/NodejsStarterKit). |
24 |
| - |
25 |
| -## Feature list |
26 |
| - |
27 |
| -- Serve API with routing, HTTP(S), WS(S) |
28 |
| -- Server code live reload with file system watch |
29 |
| -- Graceful shutdown and application reload |
30 |
| -- Minimum code size and dependencies |
31 |
| -- Code sandboxing for security and context isolation |
32 |
| -- Multi-threading for CPU utilization and isolation |
33 |
| -- Serve multiple ports in threads |
34 |
| -- Serve static files with memory cache |
35 |
| -- Application configuration |
36 |
| -- Simple logger and redirection from console |
37 |
| -- Database access layer (Postgresql) |
38 |
| -- Client persistent sessions |
39 |
| -- Unit-tests and API tests example |
40 |
| -- Request queue timeout and size |
41 |
| -- API parallel execution concurrency |
42 |
| -- API method execution timeout |
43 |
| -- Load balancing for scaling |
44 |
| -- Prototype polution prevention |
45 |
| -- Better code isolation |
46 |
| - |
47 |
| -## Usage |
48 |
| - |
49 |
| -- You need node.js v12.5.0 or later (v14 prefered) |
50 |
| -- Fork and clone this repository (optionally subscribe to repo changes) |
51 |
| -- Run `npm i` to install dependencies and generate RSA certificate |
52 |
| -- Remove unneeded dependencies if your project doesn't require them |
53 |
| -- Add your license to `LICENSE` file but don't remove starter kit license |
54 |
| -- Start your project modifying this starter kit |
55 |
| -- Ask questions in https://t.me/nodeua and post issues on |
56 |
| -[github](https://github.com/HowProgrammingWorks/NodejsStarterKit/issues) |
57 |
| -- Run project: `node server.js` and stop with Ctrl+C |
58 |
| - |
59 |
| -## License |
60 |
| - |
61 |
| -Copyright (c) 2020 Metarhia contributors. |
62 |
| -This starter kit is [MIT licensed](./LICENSE). |
0 commit comments