|
@@ -1,18 +1,22 @@
|
|
|
# Contributing to Puter's Backend
|
|
|
|
|
|
+## File Structure
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
## Architecture
|
|
|
|
|
|
-- [boot sequence](./boot-sequence.md)
|
|
|
-- [modules and services](./modules.md)
|
|
|
+- [boot sequence](./doc/contributors/boot-sequence.md)
|
|
|
+- [modules and services](./doc/contributors/modules.md)
|
|
|
|
|
|
## Features
|
|
|
|
|
|
-- [protected apps](../features/protected-apps.md)
|
|
|
-- [service scripts](../features/service-scripts.md)
|
|
|
+- [protected apps](./doc/features/protected-apps.md)
|
|
|
+- [service scripts](./doc/features/service-scripts.md)
|
|
|
|
|
|
## Lists of Things
|
|
|
|
|
|
-- [list of permissions](../lists-of-things/list-of-permissions.md)
|
|
|
+- [list of permissions](./doc/lists-of-things/list-of-permissions.md)
|
|
|
|
|
|
## Code-First Approach
|
|
|
|
|
@@ -20,21 +24,21 @@ If you prefer to understand a system by looking at the
|
|
|
first files which are invoked and starting from there,
|
|
|
here's a handy list!
|
|
|
|
|
|
-- [Kernel](../../src/Kernel.js), despite its intimidating name, is a
|
|
|
+- [Kernel](./src/Kernel.js), despite its intimidating name, is a
|
|
|
relatively simple (< 200 LOC) class which loads the modules
|
|
|
(modules register services), and then starts all the services.
|
|
|
-- [RuntimeEnvironment](../../src/boot/RuntimeEnvironment.js)
|
|
|
+- [RuntimeEnvironment](./src/boot/RuntimeEnvironment.js)
|
|
|
sets the configuration and runtime directories. It's invoked by Kernel.
|
|
|
- The default setup for running a self-hosted Puter loads these modules:
|
|
|
- - [CoreModule](../../src/CoreModule.js)
|
|
|
- - [DatabaseModule](../../src/DatabaseModule.js)
|
|
|
- - [LocalDiskStorageModule](../../src/LocalDiskStorageModule.js)
|
|
|
+ - [CoreModule](./src/CoreModule.js)
|
|
|
+ - [DatabaseModule](./src/DatabaseModule.js)
|
|
|
+ - [LocalDiskStorageModule](./src/LocalDiskStorageModule.js)
|
|
|
- HTTP endpoints are registered with
|
|
|
- [WebServerService](../../src/services/WebServerService.js)
|
|
|
+ [WebServerService](./src/services/WebServerService.js)
|
|
|
by these services:
|
|
|
- - [ServeGUIService](../../src/services/ServeGUIService.js)
|
|
|
- - [PuterAPIService](../../src/services/PuterAPIService.js)
|
|
|
- - [FilesystemAPIService](../../src/services/FilesystemAPIService.js)
|
|
|
+ - [ServeGUIService](./src/services/ServeGUIService.js)
|
|
|
+ - [PuterAPIService](./src/services/PuterAPIService.js)
|
|
|
+ - [FilesystemAPIService](./src/services/FilesystemAPIService.js)
|
|
|
|
|
|
## Development Philosophies
|
|
|
|
|
@@ -71,7 +75,7 @@ doing the useless work that reveals what the useful work is.
|
|
|
|
|
|
## Underlying Constructs
|
|
|
|
|
|
-- [putility's README.md](../../packages/putility/README.md)
|
|
|
+- [putility's README.md](../putility/README.md)
|
|
|
- Whenever you see `AdvancedBase`, that's from here
|
|
|
- Many things in backend extend this. Anything that doesn't only doesn't
|
|
|
because it was written before `AdvancedBase` existed.
|