@powerhousedao/academy 2.5.0-dev.14 → 2.5.0-dev.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/docs/academy/01-GetStarted/home.mdx +15 -15
- package/docs/academy/02-MasteryTrack/05-Launch/{03-RunOnACloudServer.md → 03-RunOnACloudServer} +8 -5
- package/docs/academy/02-MasteryTrack/05-Launch/03-SetupEnvironment.md +152 -75
- package/docs/academy/08-Glossary.md +1 -1
- package/package.json +1 -1
- /package/docs/academy/02-MasteryTrack/05-Launch/{05-LaunchYourBackend.md → 05-LaunchYourBackend} +0 -0
- /package/docs/academy/02-MasteryTrack/05-Launch/{06-LaunchYourFrontend.md → 06-LaunchYourFrontend} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -55,7 +55,7 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
55
55
|
<h3 className="card-title">Get Started</h3>
|
|
56
56
|
</div>
|
|
57
57
|
<div className={styles.cardContent}>
|
|
58
|
-
<a href="/
|
|
58
|
+
<a href="/academy/GetStarted/CreateNewPowerhouseProject" className="path-button">Build a Todo-list Document Model</a>
|
|
59
59
|
</div>
|
|
60
60
|
</div>
|
|
61
61
|
|
|
@@ -70,10 +70,10 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
70
70
|
<h3 className="card-title">Build User Experiences</h3>
|
|
71
71
|
</div>
|
|
72
72
|
<div className={styles.cardContent}>
|
|
73
|
-
<a href="/
|
|
74
|
-
<a href="/
|
|
75
|
-
<a href="/
|
|
76
|
-
<a href="/
|
|
73
|
+
<a href="/academy/GetStarted/BuildToDoListEditor" className="path-button">Building a Todo-list Editor</a>
|
|
74
|
+
<a href="/academy/MasteryTrack/BuildingUserExperiences/BuildingDocumentEditors" className="path-button">Building Document Editors</a>
|
|
75
|
+
<a href="/academy/MasteryTrack/BuildingUserExperiences/BuildingADriveExplorer" className="path-button">Building Custom Drive Explorers</a>
|
|
76
|
+
<a href="/academy/ComponentLibrary/DocumentEngineering" className="path-button">Component Library</a>
|
|
77
77
|
</div>
|
|
78
78
|
</div>
|
|
79
79
|
|
|
@@ -106,10 +106,10 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
106
106
|
<h3 className="card-title">Work with Data</h3>
|
|
107
107
|
</div>
|
|
108
108
|
<div className={styles.cardContent}>
|
|
109
|
-
<a href="
|
|
110
|
-
<a href="/
|
|
111
|
-
<a href="/
|
|
112
|
-
<a href="/
|
|
109
|
+
<a href="/academy/MasteryTrack/WorkWithData/ReadingAndWritingThroughTheAPI" className="path-button">Reading & Writing through the API</a>
|
|
110
|
+
<a href="/academy/MasteryTrack/WorkWithData/WorkingWithSubgraphs" className="path-button">Create your own Subgraph</a>
|
|
111
|
+
<a href="/academy/MasteryTrack/WorkWithData/Analytics-Engine/intro" className="path-button">Using the Analytics Engine</a>
|
|
112
|
+
<a href="/academy/MasteryTrack/WorkWithData/Analytics-Engine/intro" className="path-button">Using the Analytics Engine</a>
|
|
113
113
|
</div>
|
|
114
114
|
</div>
|
|
115
115
|
|
|
@@ -123,9 +123,9 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
123
123
|
</div>
|
|
124
124
|
<div className={styles.cardContent}>
|
|
125
125
|
<div className={styles.buttonContainer}>
|
|
126
|
-
<a href="/
|
|
127
|
-
<a href="/
|
|
128
|
-
<a href="/
|
|
126
|
+
<a href="/academy/MasteryTrack/Launch/IntroductionToPackages" className="path-button">Intro To Packages</a>
|
|
127
|
+
<a href="/academy/MasteryTrack/Launch/PublishYourProject" className="path-button">Publish Your Project</a>
|
|
128
|
+
<a href="/academy/MasteryTrack/Launch/SetupEnvironment" className="path-button">Setup a Cloud Environment</a>
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
131
131
|
</div>
|
|
@@ -139,7 +139,7 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
139
139
|
<h3 className="card-title">Cookbook</h3>
|
|
140
140
|
</div>
|
|
141
141
|
<div className={styles.cardContent}>
|
|
142
|
-
<a href="/
|
|
142
|
+
<a href="/academy/Cookbook" className="path-button">Powerhouse Recipes</a>
|
|
143
143
|
</div>
|
|
144
144
|
</div>
|
|
145
145
|
|
|
@@ -152,7 +152,7 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
152
152
|
<h3 className="card-title">Use-cases</h3>
|
|
153
153
|
</div>
|
|
154
154
|
<div className={styles.cardContent}>
|
|
155
|
-
<a href="/
|
|
155
|
+
<a href="/academy/ExampleUsecases/Chatroom/SetupBuilderEnvironment" className="path-button">Explore Use-cases</a>
|
|
156
156
|
</div>
|
|
157
157
|
</div>
|
|
158
158
|
|
|
@@ -164,7 +164,7 @@ import BrowserOnly from '@docusaurus/BrowserOnly';
|
|
|
164
164
|
<h3 className="card-title">Architecture</h3>
|
|
165
165
|
</div>
|
|
166
166
|
<div className={styles.cardContent}>
|
|
167
|
-
<a href="/academy/
|
|
167
|
+
<a href="/academy/Architecture/PowerhouseArchitecture" className="path-button">Learn More</a>
|
|
168
168
|
</div>
|
|
169
169
|
</div>
|
|
170
170
|
</div>
|
package/docs/academy/02-MasteryTrack/05-Launch/{03-RunOnACloudServer.md → 03-RunOnACloudServer}
RENAMED
|
@@ -17,7 +17,8 @@ Let's have a look at how to set up Connect & Switchboard apps on a cloud server.
|
|
|
17
17
|
Ask your IT provider to get access to the AWS environment to set up a server.
|
|
18
18
|
Launch a new server instance for Connect and Switchboard with the specific specs that fit your project.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
<details>
|
|
21
|
+
<summary> **The steps to create an EC2 instance** </summary>
|
|
21
22
|
- Make sure your region is set to eu-west-1 (Ireland)
|
|
22
23
|
- Name your instance something like `cloud-server` or your project's name
|
|
23
24
|
- Select Ubuntu 24.04 LTS
|
|
@@ -34,13 +35,15 @@ The steps to create an EC2 instance:
|
|
|
34
35
|
- Custom TCP (Port 8441) for Switchboard
|
|
35
36
|
- **Launch the instance**
|
|
36
37
|
|
|
38
|
+
:::warning
|
|
39
|
+
Make sure to keep your key pair file (.pem) secure and never share it. Without it, you won't be able to access your instance. Also, consider setting up AWS IAM roles and policies for better security management.
|
|
40
|
+
:::
|
|
41
|
+
|
|
42
|
+
</details>
|
|
43
|
+
|
|
37
44
|
Now click on your instance ID, which will open a new window with the instance details. Hit the 'Connect' button to get the connection details.
|
|
38
45
|
Within the instance details, you'll find the public IP address of your server instance. We'll use this to connect to our server instance later.
|
|
39
46
|
|
|
40
|
-
:::warning
|
|
41
|
-
Make sure to keep your key pair file (.pem) secure and never share it. Without it, you won't be able to access your instance. Also, consider setting up AWS IAM roles and policies for better security management.
|
|
42
|
-
:::
|
|
43
|
-
|
|
44
47
|
### 1.2. Setting up your SSH connection
|
|
45
48
|
|
|
46
49
|
Once you've generated your key pairs and added them to the designated folder, you can set up the SSH connections to start the process.
|
|
@@ -5,64 +5,19 @@ Powerhouse is a powerful platform that helps you manage and deploy your applicat
|
|
|
5
5
|
This guide will walk you through the process of setting up both the Powerhouse CLI and configuring your server machine to run Powerhouse services. Whether you're setting up a development environment or preparing for production deployment, this guide provides all the necessary steps and considerations.
|
|
6
6
|
|
|
7
7
|
## Prerequisites
|
|
8
|
-
Before you begin, ensure you have a Linux-based system (Ubuntu or Debian recommended), sudo privileges, and a stable internet connection.
|
|
8
|
+
Before you begin, ensure you have a Linux-based system (Ubuntu or Debian recommended), sudo privileges, and a stable internet connection.
|
|
9
|
+
These are essential for the installation and configuration process.
|
|
10
|
+
The system should have at least 1GB of RAM and 10GB of free disk space for optimal performance.
|
|
11
|
+
While these are minimum requirements, more resources will provide better performance, especially when running multiple services.
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
The `install` script provides a streamlined way to install the Powerhouse CLI tool and all its necessary dependencies. This script handles the installation of node.js 22, pnpm, Powerhouse CLI itself and the services. It's designed to work across different Linux distributions, though it's optimized for Ubuntu and Debian-based systems. It also prepares your machine for running Powerhouse services. It handles everything from package installation to service configuration, making the setup process straightforward and automated. This script is particularly useful for setting up new servers or reconfiguring existing ones.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
### Installation Steps:
|
|
16
|
-
|
|
17
|
-
1. Run the setup script:
|
|
18
|
-
```bash
|
|
19
|
-
curl -fsSL https://apps.powerhouse.io/install | bash # for macOS, Linux, and WSL
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
2. After installation, source your shell configuration:
|
|
23
|
-
```bash
|
|
24
|
-
source ~/.bashrc # or source ~/.zshrc if using zsh
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
3. Verify the installation:
|
|
28
|
-
```bash
|
|
29
|
-
ph --version
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
4. You will see ph-cli is not yet installed. But it will get installed automatically in the next step.
|
|
33
|
-
If you are a builder that wants to make use of the dev releases use `ph use dev` before going to the next step.
|
|
34
|
-
- `ph use dev`: Development version - Use this for testing new features or development work
|
|
35
|
-
- `ph use staging`: Staging version - Use this for pre-production testing
|
|
36
|
-
|
|
37
|
-
5. Initialize your project with `ph init <project-name>`
|
|
38
|
-
|
|
39
|
-
6. Follow the interactive prompts that are appearing after having installed your first package.
|
|
40
|
-
|
|
41
|
-
### Step 1: Package Installation
|
|
42
|
-
During the package installation phase, you'll be prompted to enter package names that you want to install. For example, you might want to `ph install @powerhousedao/todo-demo-package` or other Powerhouse packages. This step is crucial for adding the specific functionality you need to your Powerhouse installation.
|
|
43
|
-
|
|
44
|
-
You can also press Enter to skip this step if you don't need to install any packages immediately, but you can always install packages later using the `ph install` command.
|
|
45
|
-
|
|
46
|
-
### Step 2: Database Configuration
|
|
47
|
-
The script offers two options for database configuration.
|
|
48
|
-
|
|
49
|
-
**Option 1:** Sets up a local PostgreSQL database, which is ideal for development or small deployments. It automatically creates a database user with a secure random password and configures the database to accept local connections. This option is perfect for getting started quickly or for development environments.
|
|
50
|
-
|
|
51
|
-
**Option 2:** Allows you to connect to a remote PostgreSQL database by providing a connection URL in the format `postgres://user:password@host:port/db`. This is recommended for production environments where you might want to use a managed database service or a dedicated database server.
|
|
52
|
-
|
|
53
|
-
### Step 3: SSL Configuration
|
|
54
|
-
For SSL configuration, you have two choices.
|
|
55
|
-
|
|
56
|
-
**Option 1:** The **Let's Encrypt** option is recommended for production environments. It requires you to provide a base domain (like `powerhouse.xyz`) and optional subdomains for your services. The script will automatically obtain and configure SSL certificates for your domains, ensuring secure communication between your services and clients.
|
|
57
|
-
|
|
58
|
-
**Option 2:** The self-signed certificate option is suitable for development or testing environments. It uses your machine's hostname and generates a self-signed certificate, configuring the services with appropriate base paths. While this option is convenient for development, browsers will show security warnings, which is why it's not recommended for production use.
|
|
13
|
+
Also make sure you have your preferred domain registered and created subdomains for your Connect & Switchboard instances.
|
|
59
14
|
|
|
60
15
|
<details>
|
|
61
|
-
<summary
|
|
16
|
+
<summary>**Setting up a Droplet (Digitial Ocean) instance and connecting your domain**</summary>
|
|
62
17
|
|
|
63
18
|
This tutorial will guide you through the process of creating a new virtual private server (called a "Droplet") on DigitalOcean and then pointing your custom domain name to it. This will allow users to access your server using a memorable URL like `www.yourdomain.com`.
|
|
64
19
|
|
|
65
|
-
**Current Date:** May 15,
|
|
20
|
+
**Current Date:** May 15, 2024
|
|
66
21
|
|
|
67
22
|
## Part 1: Setting Up Your DigitalOcean Droplet
|
|
68
23
|
|
|
@@ -162,6 +117,18 @@ Now your Droplet is running! Now you can continue with the Powerhouse tutorial o
|
|
|
162
117
|
- **WILL DIRECT TO:** Your Droplet's IP
|
|
163
118
|
- **TTL:** 3600
|
|
164
119
|
|
|
120
|
+
- **Connect Subdomain (A Record):**
|
|
121
|
+
- **TYPE:** A
|
|
122
|
+
- **HOSTNAME:** connect
|
|
123
|
+
- **WILL DIRECT TO:** Your Droplet's IP
|
|
124
|
+
- **TTL:** 3600
|
|
125
|
+
|
|
126
|
+
- **Switchboard Subdomain (A Record):**
|
|
127
|
+
- **TYPE:** A
|
|
128
|
+
- **HOSTNAME:** switchboard
|
|
129
|
+
- **WILL DIRECT TO:** Your Droplet's IP
|
|
130
|
+
- **TTL:** 3600
|
|
131
|
+
|
|
165
132
|
#### Option B: Using Your Existing Nameservers (NS locked)
|
|
166
133
|
|
|
167
134
|
1. **Just Create DNS Records at Your Registrar:**
|
|
@@ -177,6 +144,18 @@ Now your Droplet is running! Now you can continue with the Powerhouse tutorial o
|
|
|
177
144
|
- **VALUE:** Your Droplet's IP
|
|
178
145
|
- **TTL:** 3600
|
|
179
146
|
|
|
147
|
+
- **Connect Subdomain (A Record):**
|
|
148
|
+
- **TYPE:** A
|
|
149
|
+
- **HOSTNAME:** connect
|
|
150
|
+
- **VALUE:** Your Droplet's IP
|
|
151
|
+
- **TTL:** 3600
|
|
152
|
+
|
|
153
|
+
- **Switchboard Subdomain (A Record):**
|
|
154
|
+
- **TYPE:** A
|
|
155
|
+
- **HOSTNAME:** switchboard
|
|
156
|
+
- **VALUE:** Your Droplet's IP
|
|
157
|
+
- **TTL:** 3600
|
|
158
|
+
|
|
180
159
|
**Note:** DNS changes may take up to 48 hours to propagate globally.
|
|
181
160
|
|
|
182
161
|
### Verify Configuration
|
|
@@ -185,20 +164,43 @@ Now your Droplet is running! Now you can continue with the Powerhouse tutorial o
|
|
|
185
164
|
```bash
|
|
186
165
|
dig +short yourdomain.com
|
|
187
166
|
dig +short www.yourdomain.com
|
|
167
|
+
dig +short connect.yourdomain.com
|
|
168
|
+
dig +short switchboard.yourdomain.com
|
|
188
169
|
```
|
|
189
170
|
|
|
190
|
-
2.
|
|
171
|
+
2. All should return your Droplet's IP address
|
|
191
172
|
|
|
192
173
|
**Congratulations!** You have successfully set up your DigitalOcean Droplet and configured your domain. Your server is now ready to host your Powerhouse services.
|
|
193
174
|
|
|
194
175
|
</details>
|
|
195
176
|
|
|
196
177
|
<details>
|
|
197
|
-
<summary>Setting up
|
|
178
|
+
<summary> **Setting up an EC2 instance and connecting your domain** </summary>
|
|
198
179
|
|
|
199
180
|
This tutorial will guide you through the process of assigning a static IP (Elastic IP) to your EC2 instance and configuring your domain to point to it.
|
|
200
181
|
|
|
201
|
-
**Current Date:** May 15,
|
|
182
|
+
**Current Date:** May 15, 2024
|
|
183
|
+
|
|
184
|
+
- Make sure your region is set to eu-west-1 (Ireland)
|
|
185
|
+
- Name your instance something like `cloud-server` or your project's name
|
|
186
|
+
- Select Ubuntu 24.04 LTS
|
|
187
|
+
- Architecture 64-bit (x86)
|
|
188
|
+
- Scroll down to Instance type and select t2.medium (recommended)
|
|
189
|
+
- 2 vCPUs and 4 GiB of memory are the recommended minimum specs
|
|
190
|
+
- For larger projects or higher load, consider t2.large or t2.xlarge
|
|
191
|
+
- Create a new key pair and save it in a secure location from which you can connect to your instance with the SSH client later.
|
|
192
|
+
- Configure the security group to allow inbound traffic:
|
|
193
|
+
- SSH (Port 22) from your IP address
|
|
194
|
+
- HTTP (Port 80) from anywhere
|
|
195
|
+
- HTTPS (Port 443) from anywhere
|
|
196
|
+
- Custom TCP (Port 8442) for Connect
|
|
197
|
+
- Custom TCP (Port 8441) for Switchboard
|
|
198
|
+
- **Launch the instance**
|
|
199
|
+
|
|
200
|
+
:::warning
|
|
201
|
+
Make sure to keep your key pair file (.pem) secure and never share it. Without it, you won't be able to access your instance. Also, consider setting up AWS IAM roles and policies for better security management.
|
|
202
|
+
:::
|
|
203
|
+
|
|
202
204
|
|
|
203
205
|
## Part 1: Assigning a Static IP to EC2 Instance
|
|
204
206
|
|
|
@@ -253,6 +255,18 @@ This tutorial will guide you through the process of assigning a static IP (Elast
|
|
|
253
255
|
- **VALUE:** Your Elastic IP
|
|
254
256
|
- **TTL:** 3600
|
|
255
257
|
|
|
258
|
+
- **Connect Subdomain (A Record):**
|
|
259
|
+
- **TYPE:** A
|
|
260
|
+
- **HOSTNAME:** connect
|
|
261
|
+
- **VALUE:** Your Elastic IP
|
|
262
|
+
- **TTL:** 3600
|
|
263
|
+
|
|
264
|
+
- **Switchboard Subdomain (A Record):**
|
|
265
|
+
- **TYPE:** A
|
|
266
|
+
- **HOSTNAME:** switchboard
|
|
267
|
+
- **VALUE:** Your Elastic IP
|
|
268
|
+
- **TTL:** 3600
|
|
269
|
+
|
|
256
270
|
### Option B: Using Your Existing Nameservers
|
|
257
271
|
|
|
258
272
|
1. **Create DNS Records at Your Registrar:**
|
|
@@ -268,6 +282,18 @@ This tutorial will guide you through the process of assigning a static IP (Elast
|
|
|
268
282
|
- **VALUE:** Your Elastic IP
|
|
269
283
|
- **TTL:** 3600
|
|
270
284
|
|
|
285
|
+
- **Connect Subdomain (A Record):**
|
|
286
|
+
- **TYPE:** A
|
|
287
|
+
- **HOSTNAME:** connect
|
|
288
|
+
- **VALUE:** Your Elastic IP
|
|
289
|
+
- **TTL:** 3600
|
|
290
|
+
|
|
291
|
+
- **Switchboard Subdomain (A Record):**
|
|
292
|
+
- **TYPE:** A
|
|
293
|
+
- **HOSTNAME:** switchboard
|
|
294
|
+
- **VALUE:** Your Elastic IP
|
|
295
|
+
- **TTL:** 3600
|
|
296
|
+
|
|
271
297
|
1. **Set Up DNS First:**
|
|
272
298
|
- Create A records for all subdomains before running the setup script
|
|
273
299
|
- Point them to your EC2 instance's public IP address
|
|
@@ -279,27 +305,77 @@ This tutorial will guide you through the process of assigning a static IP (Elast
|
|
|
279
305
|
```bash
|
|
280
306
|
dig +short yourdomain.com
|
|
281
307
|
dig +short www.yourdomain.com
|
|
308
|
+
dig +short connect.yourdomain.com
|
|
309
|
+
dig +short switchboard.yourdomain.com
|
|
282
310
|
```
|
|
283
311
|
|
|
284
|
-
2.
|
|
312
|
+
2. All should return your Elastic IP address
|
|
285
313
|
|
|
286
314
|
**Congratulations!** You have successfully set up your EC2 instance with a static IP and configured your domain. Your server is now ready to host your Powerhouse services.
|
|
287
315
|
|
|
288
316
|
</details>
|
|
289
317
|
|
|
290
|
-
|
|
318
|
+
## 1. Setting up a new cloud environment
|
|
319
|
+
|
|
320
|
+
The `install` script provides a streamlined way to install the Powerhouse CLI tool and all its necessary dependencies. This script handles the installation of Node.js 22, pnpm, and the Powerhouse CLI itself. It's designed to work across different Linux distributions, though it's optimized for Ubuntu and Debian-based systems. It also prepares your machine for running Powerhouse services. It handles everything from package installation to service configuration, making the setup process straightforward and automated. This script is particularly useful for setting up new servers or reconfiguring existing ones.
|
|
321
|
+
|
|
322
|
+
### Installation
|
|
323
|
+
|
|
324
|
+
1. Run the setup script:
|
|
325
|
+
```bash
|
|
326
|
+
curl -fsSL https://apps.powerhouse.io/install | bash # for macOS, Linux, and WSL
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
2. After installation, source your shell configuration:
|
|
330
|
+
```bash
|
|
331
|
+
source ~/.bashrc # or source ~/.zshrc if using zsh
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
3. Verify that the Powerhouse CLI is ready to be installed in the next step:
|
|
335
|
+
```bash
|
|
336
|
+
ph --version
|
|
337
|
+
```
|
|
338
|
+
You will see that `ph-cli` is not yet installed. This is expected, as it will be installed by the service setup command.
|
|
339
|
+
|
|
340
|
+
### Service Configuration
|
|
341
|
+
|
|
342
|
+
Next, run `ph service setup` and follow the interactive prompts. This command installs the Powerhouse services (Connect and Switchboard) and guides you through their configuration.
|
|
343
|
+
|
|
344
|
+
:::info
|
|
345
|
+
**What does `ph service setup` do?**
|
|
346
|
+
The script takes care of all the necessary service configuration automatically.
|
|
347
|
+
It installs and configures **Nginx** as a reverse proxy, sets up SSL certificates, and configures the proxy settings for optimal performance.
|
|
348
|
+
It also installs **PM2** for process management and starts your services with the appropriate configuration based on your SSL choice.
|
|
349
|
+
The Nginx configuration includes optimizations for **WebSocket connections**, static file serving, and security headers.
|
|
350
|
+
PM2 is configured to automatically restart services if they crash and to start them on system boot.
|
|
351
|
+
:::
|
|
352
|
+
|
|
353
|
+
The setup command will prompt you for the following information:
|
|
354
|
+
|
|
355
|
+
#### Package Installation
|
|
356
|
+
During this phase, you can enter package names that you want to install. For example, you might want to `ph install @powerhousedao/todo-demo-package` or other Powerhouse packages. This step is crucial for adding the specific functionality you need. You can also press Enter to skip this step and install packages later using the `ph install` command.
|
|
357
|
+
|
|
358
|
+
#### Database Configuration
|
|
359
|
+
The script offers two options for database configuration:
|
|
360
|
+
* **Option 1: Local Database** Sets up a local PostgreSQL database, which is ideal for development or small deployments. It automatically creates a database user with a secure random password and configures the database to accept local connections. This option is perfect for getting started quickly.
|
|
361
|
+
* **Option 2: Remote Database** Allows you to connect to a remote PostgreSQL database by providing a connection URL in the format `postgres://user:password@host:port/db`. This is recommended for production environments.
|
|
291
362
|
|
|
292
|
-
|
|
363
|
+
#### SSL Configuration
|
|
364
|
+
For SSL configuration, you have two choices:
|
|
365
|
+
* **Option 1: Let's Encrypt (Recommended for Production)** This option requires you to provide a base domain (e.g., `powerhouse.xyz`) and subdomains for your services. The script will automatically obtain and configure SSL certificates for your domains.
|
|
366
|
+
* **Option 2: Self-signed Certificate** This is suitable for development or testing. It uses your machine's hostname and generates a self-signed certificate. Browsers will show security warnings with this option.
|
|
293
367
|
|
|
294
|
-
|
|
295
|
-
|
|
368
|
+
#### Domain Setup
|
|
369
|
+
You will be asked to enter your `connect` and `switchboard` subdomains to complete the setup. If you need more information, revisit the cloud provider setup sections at the beginning of this guide.
|
|
296
370
|
|
|
371
|
+
#### Security Features
|
|
372
|
+
Security is a top priority. The script implements automatic SSL certificate management, generates secure database passwords, and configures security headers in Nginx, and sets up proper proxy settings to support WebSocket connections securely.
|
|
297
373
|
|
|
298
|
-
##
|
|
374
|
+
## 2. Verifying the Setup
|
|
299
375
|
|
|
300
376
|
After the installation is complete, it's important to verify that everything is working correctly. You can check the status of your services using PM2, verify the Nginx configuration, and ensure your SSL certificates are properly installed. This step is crucial for identifying any potential issues before they affect your users.
|
|
301
377
|
|
|
302
|
-
1. Check service status of switchboard
|
|
378
|
+
1. Check service status of switchboard and connect:
|
|
303
379
|
```bash
|
|
304
380
|
ph service status
|
|
305
381
|
```
|
|
@@ -320,9 +396,10 @@ sudo nginx -t
|
|
|
320
396
|
sudo certbot certificates # if using Let's Encrypt
|
|
321
397
|
```
|
|
322
398
|
|
|
323
|
-
##
|
|
399
|
+
## 3. Accessing the Services
|
|
324
400
|
|
|
325
|
-
Once everything is set up, you can access your services through the configured domains.
|
|
401
|
+
Once everything is set up, you can access your services through the configured domains.
|
|
402
|
+
If you chose Let's Encrypt, your services will be available at their respective subdomains. With a self-signed certificate, you'll access the services through your machine's hostname with the appropriate base paths. The services are configured to use HTTPS by default, ensuring secure communication.
|
|
326
403
|
|
|
327
404
|
### With Let's Encrypt:
|
|
328
405
|
- Connect: `https://connect.yourdomain.com`
|
|
@@ -332,18 +409,18 @@ Once everything is set up, you can access your services through the configured d
|
|
|
332
409
|
- Connect: `https://your-hostname/connect`
|
|
333
410
|
- Switchboard: `https://your-hostname/switchboard`
|
|
334
411
|
|
|
335
|
-
##
|
|
412
|
+
## 4. Troubleshooting
|
|
336
413
|
|
|
337
414
|
When issues arise, there are several common problems you might encounter.
|
|
338
|
-
- The "ph
|
|
415
|
+
- The "`ph`: command not found" error usually means you need to source your shell configuration file.
|
|
339
416
|
- Nginx configuration errors can be investigated through the error logs, and service issues can be diagnosed using PM2 logs.
|
|
340
417
|
- SSL certificate problems often relate to DNS settings or certificate paths. Understanding these common issues and their solutions will help you maintain a stable Powerhouse installation.
|
|
341
418
|
|
|
342
419
|
### Common Issues:
|
|
343
|
-
1. **"ph
|
|
420
|
+
1. **"`ph`: command not found"**
|
|
344
421
|
- Run `source ~/.bashrc` or restart your terminal
|
|
345
|
-
- Verify that the PNPM_HOME environment variable is set correctly
|
|
346
|
-
- Check if the ph binary exists in the PNPM_HOME directory
|
|
422
|
+
- Verify that the `PNPM_HOME` environment variable is set correctly
|
|
423
|
+
- Check if the `ph` binary exists in the `PNPM_HOME` directory
|
|
347
424
|
|
|
348
425
|
2. **Nginx configuration errors**
|
|
349
426
|
- Check logs: `sudo tail -f /var/log/nginx/error.log`
|
|
@@ -360,7 +437,7 @@ When issues arise, there are several common problems you might encounter.
|
|
|
360
437
|
- Check certificate paths in Nginx config
|
|
361
438
|
- Ensure that the certificate files are readable by Nginx
|
|
362
439
|
|
|
363
|
-
##
|
|
440
|
+
## 5. Maintenance
|
|
364
441
|
|
|
365
442
|
Regular maintenance is crucial for keeping your Powerhouse installation running smoothly. You can update services using the Powerhouse CLI, restart services through PM2, and monitor logs to ensure everything is functioning correctly. Regular maintenance helps prevent issues and ensures that your services are running with the latest security patches and features.
|
|
366
443
|
|
|
@@ -374,16 +451,16 @@ ph update <package-name>
|
|
|
374
451
|
ph service restart
|
|
375
452
|
```
|
|
376
453
|
|
|
377
|
-
###
|
|
454
|
+
### Checking Service Status and Logs:
|
|
378
455
|
```bash
|
|
379
456
|
ph service status
|
|
380
457
|
```
|
|
381
458
|
|
|
382
|
-
##
|
|
459
|
+
## 6. Security Notes
|
|
383
460
|
|
|
384
461
|
Maintaining security is an ongoing process. It's essential to keep your database credentials secure and regularly update your SSL certificates. Regular monitoring of system logs helps identify potential security issues, and keeping your system and packages updated ensures you have the latest security patches. Consider implementing additional security measures such as firewall rules, intrusion detection systems, and regular security audits.
|
|
385
462
|
|
|
386
|
-
##
|
|
463
|
+
## 7. Backup
|
|
387
464
|
|
|
388
465
|
Regular backups are crucial for data safety. The database can be backed up using pg_dump, and your configuration files can be archived using tar. These backups should be stored securely and tested regularly to ensure they can be restored if needed. Consider implementing an automated backup schedule and storing backups in multiple locations for redundancy.
|
|
389
466
|
|
|
@@ -397,7 +474,7 @@ pg_dump -U powerhouse -d powerhouse > backup.sql
|
|
|
397
474
|
sudo tar -czf powerhouse-config.tar.gz /etc/powerhouse/
|
|
398
475
|
```
|
|
399
476
|
|
|
400
|
-
##
|
|
477
|
+
## 8. Best Practices
|
|
401
478
|
|
|
402
479
|
To get the most out of your Powerhouse installation, follow these best practices:
|
|
403
480
|
|
|
@@ -407,7 +484,7 @@ To get the most out of your Powerhouse installation, follow these best practices
|
|
|
407
484
|
4. **Testing**: Test your backup and restore procedures regularly.
|
|
408
485
|
5. **Security**: Regularly review and update your security measures.
|
|
409
486
|
|
|
410
|
-
##
|
|
487
|
+
## 9. Getting Help
|
|
411
488
|
|
|
412
489
|
If you encounter issues or need assistance, there are several resources available:
|
|
413
490
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
- **Powerhouse Academy** – A training platform for onboarding and upskilling SNO contributors.
|
|
18
18
|
- **Connect** – The contributor's public or private workspace, serving as the entry point for individual contributors to install apps and packages for specific business solutions.
|
|
19
19
|
- **Powergrid** – A decentralized network of reactors that sync with each other.
|
|
20
|
-
- **
|
|
20
|
+
- **Powerhouse CLI (ph)** – The command-line tool for Powerhouse project initialization, code generation, package management, and running local development environments (Connect Studio). It also manages services, ensuring the terminology aligns with the updated setup guide.
|
|
21
21
|
- **Connect App (Connect Studio)** – The primary Powerhouse application for defining document models, building/testing editors (in Studio mode), and collaborating on documents.
|
|
22
22
|
- **Document Tools** – Built-in features within Powerhouse applications (e.g., Connect) that assist with document management, inspection, and interaction, such as Operations History.
|
|
23
23
|
- **Operations History** – A Document Tool in Connect providing a chronological, immutable log of all operations on a document for traceability.
|
package/package.json
CHANGED
/package/docs/academy/02-MasteryTrack/05-Launch/{05-LaunchYourBackend.md → 05-LaunchYourBackend}
RENAMED
|
File without changes
|
/package/docs/academy/02-MasteryTrack/05-Launch/{06-LaunchYourFrontend.md → 06-LaunchYourFrontend}
RENAMED
|
File without changes
|