Skip to content

Commit 06e6891

Browse files
authored
Merge pull request #210 from Heather-Elizabeth-Dodds/beginnersguide
Transfer Beginner's Guide from Google Docs
2 parents 481c959 + 0c7a94f commit 06e6891

File tree

213 files changed

+2000
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

213 files changed

+2000
-0
lines changed

docs/beginners-guide-to-CE.md

Lines changed: 862 additions & 0 deletions
Large diffs are not rendered by default.

docs/download-and-install-doctl.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
id: download-and-install-doctl
3+
title: Download and install doctl
4+
---
5+
6+
## **Part 1 Download doctl**
7+
8+
1. A. Go to [How to Install and Configure doctl](https://docs.digitalocean.com/reference/doctl/how-to/install/#step-1-install-doctl). Select **GitHub Download (Windows)**.
9+
10+
![Capture of How to Install and Configure doctl page. "Github Download (Windows)" highlighted in purple.](img/doctl/image1.png)
11+
12+
2. For Windows, we’ll go to the [Releases page](https://github.com/digitalocean/doctl/releases) for the `doctl` GitHub project.
13+
14+
3. Select the latest release for your version of Windows. It might be a windows-amd64.zip file *like* doctl-1.110.0-windows.amd64.zip
15+
16+
![Capture of Github project page for doctl. "doctl-1.110.0-windows.amd64.zip" download link highlighted in purple.](img/doctl/image2.png)
17+
18+
4. **Right-click the zip file** and **select Extract All…** It’s OK to extract it right back into the downloads folder.
19+
20+
![Capture of example Downloads folder in Windows. "doctl-1.107.0-windows-amd64" folder icon.](img/doctl/image3.png)
21+
22+
![Capture of extract doctl folder. Icon is a small window with a white background and blue center. Other info includes dates, file type, and file size in KB.](img/doctl/image4.png)
23+
24+
5. Select the **doctl.exe file** and **move it (cut and paste is OK) to a separate folder** just for code that is on your Local Disk (C :) drive.
25+
26+
![Capture of "Code" folder directly on C drive of a Windows computer.](img/doctl/image5.png)
27+
28+
6. Create a new folder called Code. Paste in the `doctl.exe` file.
29+
30+
![Capture of doctl file placed within Code folder.](img/doctl/image6.png)
31+
32+
## **Part 2 Install to paths**
33+
34+
7. In Windows 11, enter **System** in your taskbar. Select **System Information**.
35+
36+
![Capture of Windows search field on term "system information" with result of "System Information" icon highlighted in purple.](img/doctl/image7.png)
37+
38+
8. Select **System,** then select **About.**
39+
40+
![Capture of Settings section, System tab, About section on a Windows computer.](img/doctl/image8.png)
41+
42+
9. Select **Advanced System Settings.**
43+
44+
![Capture of Settings section, System tab, About section, Device specifications section. "Advanced system settings" link highlighted in purple.](img/doctl/image9.png)
45+
46+
10. In System Properties, select **Environment Variables**.
47+
48+
![Capture of System Properties section, Advanced tab. "Environment Variables..." at the bottom right is highlighted in purple.](img/doctl/image10.png)
49+
50+
11. Select **Path**, then select **Edit**.
51+
52+
![Capture of Environment Variables popup. "Path" and "Edit..." are highlighted in purple.](img/doctl/image11.png)
53+
54+
12. Select **New**, then at Browse for folder, select **This PC**.
55+
56+
![Capture of Edit environment variable popup. "New" button is highlighted in purple.](img/doctl/image12.png)
57+
58+
![Capture of Browse For Folder popup. "This PC" is highlighted in purple.](img/doctl/image13.png)
59+
60+
13. Select **Local disk**, then select **Code** (this is the folder you made in Step 5), and select **doctl.**
61+
62+
![Capture of Browse For Folder, This PC, Local Disk (C:), Code popup. "doctl" is highlighted in purple.](img/doctl/image14.png)
63+
64+
Then select **OK** four (4) times to leave these screens.
65+
66+
## **Part 3 Verify doctl is working**
67+
68+
14. To verify that doctl was installed, in Windows 11, enter **command** in your taskbar and for Command Prompt, select the **Command Prompt image** or **Open.**
69+
70+
![Capture of Windows search field with text: command. Result of Command Prompt shown. "Open" is highlighted in purple.](img/doctl/image15.png)
71+
72+
15. There should be a flashing cursor.
73+
74+
![Capture of Command Prompt on a Windows computer. Text is white on a black background. Top border is gray.](img/doctl/image16.png)
75+
76+
Enter **`doctl version`** and **hit enter on your keyboard**. If you see doctl version #.## you did it!
77+
78+
![Capture of Command Prompt. After entering "doctl version" and hitting enter, Text: doctl version 1.107.0-release, Git commit hash: 42fc8b6f.](img/doctl/image17.png)
79+
80+
[Return to the Beginner’s Guide](./beginners-guide-to-CE.html#8-download-and-install-doctl)

docs/faq.md

Lines changed: 276 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,276 @@
1+
---
2+
id: faq
3+
title: Troubleshooting and FAQs
4+
---
5+
6+
## **Email**
7+
8+
### Why is my email address so important?
9+
10+
**Your email address becomes the admin account of your Hubs.** Said another way, the admin account controls all of the Hubs settings, it allows your CE to work with DigitalOcean. It’s very important. The security features of Hubs predict that if you cannot log in as your own admin, you are in trouble.
11+
12+
### I tried setting up an SMTP email service but my gmail account keeps getting rejected to be the admin or controlling account.
13+
14+
Yes, this problem happened to us too. We initially tried [Elastic Email](https://elasticemail.com/), but it only sends out emails *to the single admin* (that is, to one account, which could be a gmail account) and won’t send any other emails to any other users at the free level. If only one person EVER needs to log-in (and that one person must be the admin), Elastic Email could work for that specific use. However, we find it to be a real downer because anyone else joining your Hubs cannot log in.
15+
16+
We tried [Postmark](https://postmarkapp.com/) and [SendGrid](https://sendgrid.com/), but they reject gmail accounts as untrustworthy for the admin account.
17+
18+
We investigated [Brevo](https://www.brevo.com/) (formerly Sendinblue) but it does not offer all of the SMTP settings we need *at the free level*. If you want to pay more, Brevo might work.
19+
20+
[Sendlayer](https://sendlayer.com/) looks good, but their lowest price account is US$5/month. We did not try Sendlayer in our testing.
21+
22+
[Mailtrap](http://mailtrap.io) starts right off the bat with collecting your email to share with Facebook. If that doesn’t bother you, you will still have to disclose your purpose and LinkedIn account to Mailtrap in the step of verifying your domain with them. That verification took us about 2 hours total: to wait and write back our justification by email to a specific customer service person. In the end, we found Mailtrap to be fussy.
23+
24+
[Amazon Web Services (AWS)](https://docs.aws.amazon.com/ses/latest/dg/send-email.html) - This costs money but does appear to be very cheap, well under US$1 per month. The main problems appear to be:
25+
26+
1. Setting up your account and appearing legitimate to AWS.
27+
2. [Getting out of the sandbox environment](https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html) by proving that your intended use is legitimate.
28+
29+
We ended up going with [Scaleway](https://www.scaleway.com/en/transactional-email-tem/) because it aligns with our purpose.
30+
31+
### I need more than 300 emails per month.
32+
33+
[Scaleway does provide higher email quotas](https://www.scaleway.com/en/docs/identity-and-access-management/organizations-and-projects/additional-content/organization-quotas/). These instructions used the Transactional Email tier which is limited to 300 emails per month. Scaleway will send 500 per month maximum in this same Transactional Email tier if you do not complete their identity verification process. They will send 5,000 per month if you complete their identity verification process. For more than 5,000 emails per month, contact Scaleway’s customer support team.
34+
35+
### Why do my magic link emails never arrive?
36+
37+
DigitalOcean may be [blocking your SMTP for spam](https://docs.digitalocean.com/support/why-is-smtp-blocked/). In our testing, we found that DO inconsistently blocked port 587. (This blockage could happen with any Kubernetes provider.) Check what ports your email provider supports for SMTP. The standard ports are 25, 465 and 587, but your Kubernetes provider may block those ports as a spam-fighting measure. If your email provider supports non-standard ports, use one of them. (For Scaleway, use port 2587.) Refer to these instructions for [How to check that your SMTP server is reachable](#checking-that-my-smtp-is-reachable-from-my-kubernetes-cluster).
38+
39+
To fix this, start by updating your `input-values.yaml` file and change your SMTP_PORT to **2587** (for example, for Scaleway).
40+
41+
This is similar to the [Beginner’s Guide, Step 12 Generate your config file](./beginners-guide-to-CE.html#12-generate-your-config-file), section c, iv, ii. However, **you are ONLY changing the SMTP port number.** Don’t forget to save the file in VS Code.
42+
43+
Then, complete the [After updating your Hubs CE deployment scripts](./whats-next.html#after-updating-your-hubs-ce-deployment-scripts) section to redeploy your Hubs CE instance so that it uses the new port number.
44+
45+
## **Web Domain**
46+
47+
### Can I use another web domain service instead of Porkbun?
48+
49+
Yes. Sure. Go ahead.
50+
51+
### I keep getting logged out of Porkbun!
52+
53+
We found that Porkbun kept logging us out in the middle of the purchase step.
54+
55+
Additionally, Porkbun might log you out in the middle of your domain setup.
56+
57+
You might need to either fight with your cookies to get that worked out OR just keep logging back in.
58+
59+
### Generating new SSL Certificates
60+
61+
> 🤔 Note: Your SSL certificates expire **every 90 days**. Don’t worry. We’ve [got instructions for you when that happens](https://docs.google.com/document/d/1Ne4Aqe-YY9shvi8La_5dF2Qq3VOoLIrfbpFgE15RjRQ/edit?tab=t.0#heading=h.lk85fjg8va1s).
62+
63+
## **DigitalOcean**
64+
65+
### Why do the instructions say US$ 36 per month minimum?
66+
67+
DigitalOcean’s single node option is US$24 per month and this is their lowest price offering. They also charge a mandatory extra US$12 per month for load balancing. So $24 plus $12 equals $36.
68+
69+
We are still working on estimating what a 1 hour meetup in Hubs for 5-6 people would cost.
70+
71+
### I don’t see my $200 credit on my account with DigitalOcean.
72+
73+
The $200 credit appeared after a couple of days for one user. Additionally, you can possibly contact DO customer support to ask for the credit if you don’t see it. In our trial, the credit appeared after a couple of days.
74+
75+
### Can I set up DigitalOcean for less than 60 days and pay nothing?
76+
77+
Yes and no.
78+
79+
Yes, DO gives you US$200 in credits to use over your first 60 days. You would only owe DO if your charges totaled up *to more than* US$200. Our testing found that US$200 was more than enough to cover 60 days of beginner use. But we don’t know your use. YMMV.
80+
81+
We’ve heard that DO does find (and charge) accounts that try to string multiple “new” accounts along to get a free ride. You’ve been warned.
82+
83+
### Can I change the cluster capacity setting of Fixed or Autoscale later?
84+
85+
Yes, you can. At DO, **Kubernetes**, **Resource** tab, At **Node Pools**, in the three dots menu, select **Resize (the fixed size) or Autoscale**.
86+
87+
![Capture of DigitalOcean, Kubernetes page, Resources tab. Under Name, three dot menu to the far right drop down includes Resize or Autoscale as an option.](img/faq/image1.png)
88+
89+
However, unless you have configured your Hubs to store data [outside the nodes](https://hominidsoftware.com/tech-personal-growth/Hubs-on-DigitalOcean/), you may lose data if you have more than one node.
90+
91+
### Can I change my token from DO if my token has been compromised?
92+
93+
Yes. According to [DO documentation on APIs](https://docs.digitalocean.com/reference/api/create-personal-access-token/): In the **** menu for a token, you can rename, regenerate, or delete the token.
94+
95+
### I made custom changes to my hcce file but my Hubs is not updating?
96+
97+
The pods need to be rebuilt at DO. You need to delete your deployment at DO and apply again. In the Beginner’s Guide, this is Step 13 c (delete deployment), d (apply deployment), and e (get deployment).
98+
99+
### At Step 13, I have FailedScheduling and/or unbound immediate PersistentVolumeClaims messages.
100+
101+
Note: This is a technical fix. Stop by a live event for assistance if you need help running these commands.
102+
103+
![Capture from VS Code, terminal window. Notification includes language like Warning Failed Scheduling and Normal Not Trigger Scale Up.](img/faq/image2.png)
104+
105+
This image shows the default-scheduler and cluster-autoscaler (which control the pgsql and reticulum pods) have not started up.
106+
107+
To resolve this, restart your pods by entering each of these commands in a Command prompt:
108+
109+
```shell
110+
kubectl delete --all pods -n hcce
111+
112+
kubectl delete pvc pgsql-pvc -n hcce
113+
114+
kubectl delete pv pgsql-pv -n hcce
115+
116+
kubectl delete pvc ret-pvc -n hcce
117+
118+
kubectl delete pv ret-pv -n hcce
119+
120+
kubectl apply -f hcce.yaml
121+
```
122+
123+
### Checking that my SMTP is reachable from my Kubernetes cluster.
124+
125+
#### Quick check
126+
127+
The first thing to check is whether the SMTP port is reachable from your Kubernetes cluster and open on the SMTP server. To do that, you will first need to get the name of your reticulum pod, **copy and paste** this into the terminal and **hit enter**:
128+
129+
```shell
130+
kubectl get pods -n hcce
131+
```
132+
133+
Then **copy and paste** this into the terminal, substitute `<podname>` with the value you got from the previous command, substitute `<SMTP_SERVER>` and `<SMTP_PORT>` with the values from `input-values.yaml`, and **hit enter**:
134+
135+
```shell
136+
kubectl exec <podname> -c reticulum -n hcce -- nc -zv <SMTP_SERVER> <SMTP_PORT>
137+
```
138+
139+
If your email server is reachable from your Kubernetes cluster, the output in the terminal will be something like:<br>
140+
`example.com (xx.xx.xx.xx:2587) open`
141+
142+
If it's not reachable, the command will hang for a long time and the resulting output in the terminal when it finally returns will be something like:<br>
143+
`nc: example.example.example.com (xx.xx.xx.xx:587): Operation timed out`
144+
145+
#### Sending an actual email
146+
147+
If you want to be extra sure, and your email provider does not require TLS or authentication, you can send an actual email.
148+
149+
> 🤔 Advice: Scaleway does require authentication, so even with a successful test of the port, it will be normal to receive output like:
150+
151+
`502 5.7.0. Please authenticate first.`
152+
153+
Your email service provider might return a different response.
154+
155+
To get the name of your reticulum pod, **copy and paste** this into the terminal and **hit enter**:
156+
157+
```shell
158+
kubectl get pods -n hcce
159+
```
160+
161+
Then connect to a shell in your reticulum pod, **copy and paste** this into the terminal, substitute `<podname>` with the value you got from the previous command, and **hit enter**:
162+
163+
```shell
164+
kubectl exec -it <podname> -c reticulum -n hcce -- bash
165+
```
166+
167+
Then copy the following into a text editor (for example, Notepad) and substitute `<SMTP_SERVER>` `<SMTP_PORT>` and `<ADM_EMAIL>` with the values from `input-values.yaml`:
168+
169+
```shell
170+
nc <SMTP_SERVER> <SMTP_PORT> << EOF
171+
HELO <SMTP_SERVER>
172+
173+
RCPT TO: <ADM_EMAIL>
174+
DATA
175+
From: [email protected] (netcat)
176+
To: whomever
177+
Subject: probe email
178+
179+
Sent using netcat.
180+
181+
.
182+
QUIT
183+
EOF
184+
```
185+
186+
Example from KWrite:![Capture from KWrite (alt Notepad). Example test email with formatting.](img/faq/image3.png)
187+
188+
Finally, **copy and paste** the command from the text editor into the terminal and **hit enter**.
189+
190+
If sending an email works from your Kubernetes cluster, the output in the terminal will be something like:
191+
192+
```
193+
220 example.example.example.com ESMTP Service Ready
194+
250 2.0.0 Hello <SMTP_SERVER>
195+
….
196+
```
197+
198+
If it's not sendable, the command will hang for a long time and there will be no output in the terminal.
199+
200+
### General SMTP testing
201+
202+
For general testing of what your SMTP server accepts, **swaks** ([https://jetmore.org/john/code/swaks/](https://jetmore.org/john/code/swaks/)) is a general-purpose tool that can connect using TLS and authenticate with the SMTP server. It requires perl which is not available in Kubernetes nodes of Hubs, but is installed on most *nix machines.
203+
204+
### What about persistent volumes?
205+
206+
Persistent volumes allow for your Hubs to save scenes, avatars, and room object data. This installation uses 10 GB for persistent volumes and there is plenty of space for that within the 80 GB in the one node DO recommendations: 4GB total RAM / 2 vCPUs / 80 GB storage (June 2024 specifications).
207+
208+
### Installing doctl for Mac and Linux
209+
210+
For Mac, watch this video here: [https://youtu.be/x9Ld6Mi64pk?si=NvoTy98O2g_rh0OV&t=866](https://youtu.be/x9Ld6Mi64pk?si=NvoTy98O2g_rh0OV&t=866)
211+
212+
For Linux: [https://docs.digitalocean.com/reference/doctl/how-to/install/#step-1-install-doctl](https://docs.digitalocean.com/reference/doctl/how-to/install/#step-1-install-doctl)
213+
214+
### Help! My Hubs is down with the error: This site can't be reached ERR_CONNECTION_RESET
215+
216+
Note: This is a technical fix. Stop by a live event for assistance if you need help running these commands.
217+
218+
Try turning your Droplet off and on again in DigitalOcean, and then running this command in your terminal:
219+
220+
```shell
221+
kubectl rollout restart deployment -n hcce
222+
```
223+
224+
### I’m interested in automatic backups. How can I do this with DO?
225+
226+
We’ve investigated SnapShooter, which is a service within DO.
227+
228+
## **Kubernetes and kubectl versions**
229+
230+
In Step 8 of the Beginner’s Guide, you should get a version of kubectl that is within one version (within 1 number) of your version of kubernetes on DigitalOcean. For example, if you have 1.30 version of kubernetes, you need version 1.29, 1.30, or 1.31 of kubectl.
231+
232+
How do you know what version of kubernetes you have at DO?
233+
234+
1\. When logged into DO, from the Manage menu, select **Kubernetes**, select **your cluster name.**
235+
236+
![Capture of DigitalOcean, MANAGE, Kubernetes Clusters. Name of cluster blurred and highlighted in purple.](img/faq/image4.png)
237+
238+
2\. Select **Overview**, **VERSION** section, there is a number for Current Version, Kubernetes.
239+
240+
![Capture of DigitalOcean, MANAGE, Kubernetes Clusters. Overview tab highlighted in purple. Text: Scroll down.](img/faq/image5.png)
241+
242+
In this example, I have version 1.30
243+
244+
![Capture of DigitalOcean, MANAGE, Kubernetes Clusters. VERSION section. For Current version: text like Kubernetes 1.30.1-do.0.](img/faq/image6.png)
245+
246+
Therefore, the version I’m being offered of kubectl at kubernetes.io is fine. It is also the 1.30 version, so I’m within 1 number (actually *I’m the same number* as) of 1.30.
247+
248+
In our testing, you will be safe with the default versions you are offered. Still, if you run into errors, it might be good to check that your kubernetes can be controlled by your kubectl.
249+
250+
## **The Linux difference**
251+
252+
Extracting is slightly different if you are Linux, rather than Windows. We’re going to assume that you know how to do this.
253+
254+
Node.js - your Linux distribution might already have this, so you would just need to install this.
255+
256+
If you do need to install Node.js, at the Node.js website, you would click on **copy to clipboard** and then paste it into your terminal.
257+
258+
## **Scene Editor**
259+
260+
### I’ve uploaded a scene in the scene editor but I see an error. All of my pods are up and running.
261+
262+
Note: This is a technical fix. Stop by a live event for assistance if you need help running these commands.
263+
264+
![Capture of Hubs Spoke, Publish Scene From Blender. Scene thumbnail image, Name, Attribution, and other options with Publish blue button.](img/faq/image7.png)
265+
266+
Error code:
267+
268+
Failed to fetch “https://……………/scenes”: Cause: Network Error: 500 Unknown Error. Possibly a CORS error.
269+
270+
Try scaling down and rescaling up your deployment using these commands in a Command Prompt:
271+
272+
```shell
273+
kubectl scale deployments --all --replicas=0 -n hcce
274+
275+
kubectl scale deployments --all --replicas=1 -n hcce
276+
```

0 commit comments

Comments
 (0)