Skip to content

Commit 9915785

Browse files
docs: improve tutorial quality, fix typos, and add missing sections
- Fix getting-started overview: add time estimates, remove emoji, fix links - Fix monitor tutorial: fix dangling OPTIONS, double colons, generic alt text, wrap callout in Aside, add checkpoint - Fix CLI tutorial: add install verification step, expected output, Windows support, troubleshooting section - Fix Slack agent tutorial: add verification checkpoint, troubleshooting section, time estimate - Rewrite private location tutorial: add proper structure, Docker commands, token setup, verification, troubleshooting - Fix status page tutorial: flesh out Step 2 config, add checkpoint, expand custom domain/password sections - Fix configure status page tutorial: fix numbered list, typos, clean up beta language
1 parent 6fe6531 commit 9915785

File tree

7 files changed

+284
-59
lines changed

7 files changed

+284
-59
lines changed

apps/docs/src/content/docs/tutorial/get-started-with-openstatus-cli.mdx

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@ description: "Step-by-step tutorial to install and use the openstatus CLI for mo
44
---
55

66
import { Image } from 'astro:assets';
7+
import { Aside } from '@astrojs/starlight/components';
78
import CLI from '../../../assets/tutorial/get-started-with-openstatus-cli/CLI.png';
89

910
## What you'll learn
1011

12+
| | |
13+
|---|---|
14+
| **Time** | ~10 minutes |
15+
| **Level** | Intermediate |
16+
| **Prerequisites** | openstatus account, command line experience |
17+
1118
In this tutorial, you'll learn how to use the openstatus CLI to manage your monitors as code. This enables you to version control your monitoring configuration, automate deployments, and implement GitOps workflows.
1219

1320
### Prerequisites
@@ -53,19 +60,39 @@ curl -fsSL https://raw.githubusercontent.com/openstatusHQ/cli/refs/heads/main/in
5360

5461
### Windows
5562

56-
```bash
63+
```powershell
5764
iwr https://raw.githubusercontent.com/openstatusHQ/cli/refs/heads/main/install.ps1 | iex
5865
```
5966

67+
### Verify installation
68+
69+
Run the following command to confirm the CLI is installed:
70+
71+
```bash
72+
openstatus --version
73+
```
74+
75+
You should see output like:
76+
77+
```
78+
openstatus version x.x.x
79+
```
80+
6081
## Configure API authentication
6182

6283
Create an API key in your workspace settings (Settings → API), then set it as an environment variable:
6384

6485
```bash
86+
# macOS / Linux
6587
export OPENSTATUS_API_TOKEN=<your-api-token>
6688
```
6789

68-
**Tip**: Add this to your shell profile (`~/.bashrc`, `~/.zshrc`) to persist across sessions.
90+
```powershell
91+
# Windows PowerShell
92+
$env:OPENSTATUS_API_TOKEN="<your-api-token>"
93+
```
94+
95+
<Aside>Add this to your shell profile (`~/.bashrc`, `~/.zshrc`) to persist across sessions.</Aside>
6996

7097
## Import existing monitors
7198

@@ -75,8 +102,16 @@ Start by importing your existing monitors from your workspace to a YAML file:
75102
openstatus monitors import
76103
```
77104

105+
You should see output confirming the import:
106+
107+
```
108+
Successfully imported X monitors to openstatus.yaml
109+
```
110+
78111
This creates an `openstatus.yaml` file containing all your current monitors. This file becomes your single source of truth for monitoring configuration.
79112

113+
**Checkpoint:** Open the `openstatus.yaml` file and verify it contains your monitors. You should see entries with your monitor names and URLs.
114+
80115
## Manage monitors as code
81116

82117
Now you can add, remove, or update monitors in the YAML file and apply your changes:
@@ -95,6 +130,37 @@ Excellent work! You've successfully:
95130
- ✅ Imported monitors to a YAML file
96131
- ✅ Learned the monitoring as code workflow
97132

133+
## Troubleshooting
134+
135+
### "command not found: openstatus"
136+
137+
**Cause:** The CLI binary is not in your PATH.
138+
139+
**Fix (macOS/Homebrew):**
140+
```bash
141+
brew reinstall openstatusHQ/cli/openstatus --cask
142+
```
143+
144+
**Fix (install script):** Ensure `~/.local/bin` is in your PATH:
145+
```bash
146+
export PATH="$HOME/.local/bin:$PATH"
147+
```
148+
149+
### "unauthorized" or "invalid token" error
150+
151+
**Cause:** Your API token is missing or incorrect.
152+
153+
**Fix:**
154+
1. Verify the token is set: `echo $OPENSTATUS_API_TOKEN`
155+
2. Regenerate the token in your workspace settings (Settings → API)
156+
3. Make sure there are no extra spaces or newlines in the token value
157+
158+
### "no monitors found" on import
159+
160+
**Cause:** Your workspace has no monitors, or the token belongs to a different workspace.
161+
162+
**Fix:** Create at least one monitor in the dashboard first, then retry the import.
163+
98164
## What's next?
99165

100166
Now that you have the CLI set up, you can:

apps/docs/src/content/docs/tutorial/getting-started.mdx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ sidebar:
66
order: 1
77
---
88

9-
## 📚 Tutorials
9+
## Tutorials
1010

1111
### What you'll learn
1212

@@ -20,20 +20,21 @@ Our tutorials are designed to help you:
2020

2121
Start your journey with openstatus:
2222

23-
- **[Create Your First Monitor](/tutorial/how-to-create-monitor)** - Learn the fundamentals by setting up uptime monitoring for your first endpoint
24-
- **[Create a Status Page](/tutorial/how-to-create-status-page)** - Build a public status page to communicate service health to your users
25-
- **[Configure Your Status Page](/tutorial/how-to-configure-status-page)** - Customize your status page with monitors, domains, and protection
23+
- **[Create Your First Monitor](/tutorial/how-to-create-monitor)** (~5 min) - Learn the fundamentals by setting up uptime monitoring for your first endpoint
24+
- **[Create a Status Page](/tutorial/how-to-create-status-page)** (~5 min) - Build a public status page to communicate service health to your users
25+
- **[Configure Your Status Page](/tutorial/how-to-configure-status-page)** (~10 min) - Customize your status page with monitors, domains, and protection
26+
- **[Set Up the Slack Agent](/tutorial/how-to-setup-slack-agent)** (~5 min) - Manage incidents directly from Slack
2627

2728
### Advanced Tutorials
2829

2930
Once you're comfortable with the basics:
3031

31-
- **[Create a Private Location (Beta)](/tutorial/how-to-create-private-location)** - Set up monitoring from your own infrastructure
32-
- **[Get Started with openstatus CLI](/tutorial/get-started-with-openstatus-cli)** - Automate monitor management with our command-line tool
32+
- **[Create a Private Location (Beta)](/tutorial/how-to-create-private-location)** (~15 min) - Set up monitoring from your own infrastructure
33+
- **[Get Started with openstatus CLI](/tutorial/get-started-with-openstatus-cli)** (~10 min) - Automate monitor management with our command-line tool
3334

3435
### What's next?
3536

3637
After completing these tutorials, you'll be ready to:
37-
- Explore [how-to guides](/guides/getting-started/) for specific tasks and advanced scenarios
38-
- Dive into [explanations](/concept/getting-started/) to understand the concepts behind the features
39-
- Reference our [technical documentation](/reference) for detailed specifications
38+
- Explore [how-to guides](/guides/getting-started) for specific tasks and advanced scenarios
39+
- Dive into [explanations](/concept/getting-started) to understand the concepts behind the features
40+
- Reference our [technical documentation](/reference/cli-reference) for detailed specifications

apps/docs/src/content/docs/tutorial/how-to-configure-status-page.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@ By the end of this tutorial, you'll have:
3232
- Links to important resources
3333
- Preview and live configuration experience
3434

35-
## Status Page Redesign (Beta)
35+
## Status Page Customization
3636

37-
We are releasing a new version of our status pages with enhanced customization options.
37+
OpenStatus offers enhanced status page customization with multiple themes and display options.
3838

3939
Explore available themes: [https://themes.openstatus.dev](https://themes.openstatus.dev)
4040

4141
## Get started
4242

43-
Go to the **Status Page Redesign (beta)** section in your status page settings. Toggle the `Enable New Version` to support it. Once enabled, you'll see two subsections:
43+
Go to the **Status Page Redesign** section in your status page settings and toggle `Enable New Version`. Once enabled, you'll see three subsections:
4444

4545
1. **Tracker Configuration**
4646
2. **Theme Explorer**
47-
2. **Links**
47+
3. **Links**
4848

4949
<Image
5050
src={ConfigureStatusPage1}
@@ -73,7 +73,7 @@ We have three new status tracker configurations to provide you with a maximum ch
7373

7474
**Card Type**: The card type is only configurable if the bar type is **absolute**. You'll then be able to choose between **duration**, which will show the duration of "success", "error", "degraded" or "maintenance" reports or **requests** where we will share the number of request status itself. If **manual** bar type is chosen, we will only show the most significant status of the day.
7575

76-
**Show Uptime**: The uptime is calculated by ither the **duration** of the different reports _or_ the **request** values depending on what you've chosen for the **absolute** value (incl. incidents). If you've chosen **manual**, it only gets calculated by the duration of your status reports.
76+
**Show Uptime**: The uptime is calculated by either the **duration** of the different reports _or_ the **request** values depending on what you've chosen for the **absolute** value (incl. incidents). If you've chosen **manual**, it only gets calculated by the duration of your status reports.
7777

7878
A few examples to understand it:
7979

@@ -110,7 +110,7 @@ Visit [themes.openstatus.dev](https://themes.openstatus.dev) to see the list of
110110

111111
### 3. Links
112112

113-
Let's have a closer look to your status page header navigation:
113+
Let's have a closer look at your status page header navigation:
114114

115115
<Image
116116
src={StatusPageBeta1}
@@ -123,12 +123,12 @@ Let's have a closer look to your status page header navigation:
123123

124124
---
125125

126-
We are adding some additional features. Feel free to let us know what's missing!
126+
We are continuously adding new features. Feel free to let us know what's missing!
127127

128128
## What you've accomplished
129129

130130
Excellent work! You've successfully:
131-
- ✅ Enabled and configured the new status page design (beta)
131+
- ✅ Enabled and configured the new status page design
132132
- ✅ Customized status tracker display options
133133
- ✅ Explored and applied theme settings
134134
- ✅ Added navigation links to your status page

apps/docs/src/content/docs/tutorial/how-to-create-monitor.mdx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ description: "Set up your first uptime monitor with OpenStatus — track respons
55

66
import { Image } from 'astro:assets';
77
import { Aside, CardGrid, LinkCard } from '@astrojs/starlight/components';
8+
import { Aside } from '@astrojs/starlight/components';
89
import monitorOverview from '../../../assets/tutorial/create-monitor/monitor-overview.png';
910
import createMonitor from '../../../assets/tutorial/create-monitor/create-monitor-1.png';
1011
import createMonitor2 from '../../../assets/tutorial/create-monitor/create-monitor-2.png';
@@ -36,7 +37,7 @@ Let's get your first uptime check up and running.
3637

3738
<Image
3839
src={createMonitor}
39-
alt="Charts with status code and response time"
40+
alt="Monitors page showing the Create Monitor button in the sidebar"
4041
/>
4142

4243
Navigate to the **Monitors** page from the sidebar and click the **Create Monitor** button. This will open a new configuration screen.
@@ -46,7 +47,7 @@ Navigate to the **Monitors** page from the sidebar and click the **Create Monito
4647

4748
<Image
4849
src={createMonitor2}
49-
alt="Charts with status code and response time"
50+
alt="Monitor creation form with name and URL fields"
5051
/>
5152

5253
To get your monitor started, you only need to provide two essential pieces of information:
@@ -62,17 +63,19 @@ As soon as you enter the URL, our monitoring tool will automatically begin track
6263

6364
<Image
6465
src={monitorOverview}
65-
alt="Charts with status code and response time"
66+
alt="Monitor overview dashboard showing response time and status code charts"
6667
/>
6768

69+
**Checkpoint:** After saving, you should see your monitor's overview page with response time and status code charts. If data appears within a few seconds, your monitor is running.
70+
6871

6972
### 3. Customizing the HTTP Request
7073

7174
Your monitor doesn't just have to be a simple `GET` request. You can customize the HTTP request to simulate real-world traffic and test specific scenarios.
7275

7376
#### HTTP Method
7477

75-
Choose the appropriate HTTP method for your check. While `GET` is the default and most common for simple health checks, you can also select `POST`, `HEAD`, `OPTIONS`, `PUT`, `PATCH`, `DELETE`, `TRACE`. `OPTIONS`
78+
Choose the appropriate HTTP method for your check. While `GET` is the default and most common for simple health checks, you can also select `POST`, `HEAD`, `OPTIONS`, `PUT`, `PATCH`, `DELETE`, or `TRACE`.
7679

7780
- `GET`: Retrieve data from an endpoint. The most common choice for health checks.
7881
- `POST`: Send data to an endpoint, for example, to test a form submission or API creation endpoint.
@@ -91,15 +94,15 @@ If you select the `POST` method, you can add a Request Body to your monitor's co
9194

9295
You can add any number of custom HTTP headers to your request. This is particularly useful for:
9396

94-
- **Authentication:**: Sending an Authorization token (e.g., a Bearer token) to test a protected endpoint.
95-
- **Content Type:**: Setting an `content-type` header to specify a content type (e.g., `application/json`).
97+
- **Authentication:** Sending an Authorization token (e.g., a Bearer token) to test a protected endpoint.
98+
- **Content Type:** Setting a `content-type` header to specify a content type (e.g., `application/json`).
9699
- **Content Negotiation:** Setting an Accept header to request a specific content type from the server (e.g., `application/json`).
97100
- **Simulating Clients:** Adding a User-Agent header to simulate traffic from a specific browser or device.
98101

99-
Heads Up: We've got your User-Agent covered!
100-
openstatus automatically includes the `"User-Agent": "openstatus/1.0"` header in every request. This makes it easy to identify and filter out our monitoring traffic from your server logs or analytics.
101-
102102

103+
<Aside title="We've got your User-Agent covered!">
104+
openstatus automatically includes the `"User-Agent": "openstatus/1.0"` header in every request. This makes it easy to identify and filter out our monitoring traffic from your server logs or analytics.
105+
</Aside>
103106

104107

105108
## Important Considerations

0 commit comments

Comments
 (0)