Openstatus
www.openstatus.dev
1import sitemap from "@astrojs/sitemap";
2import starlight from "@astrojs/starlight";
3import tailwindcss from "@tailwindcss/vite";
4import { defineConfig, envField } from "astro/config";
5import starlightImageZoom from "starlight-image-zoom";
6import starlightLinksValidator from "starlight-links-validator";
7import starlightLlmsTxt from "starlight-llms-txt";
8
9import Icons from "unplugin-icons/vite";
10
11// https://astro.build/config
12export default defineConfig({
13 site: "https://docs.openstatus.dev",
14 vite: {
15 plugins: [Icons({ compiler: "astro" }), tailwindcss()],
16 },
17 env: {
18 schema: {
19 NEXT_PUBLIC_OPENPANEL_CLIENT_ID: envField.string({
20 access: "public",
21 context: "client",
22 }),
23 },
24 },
25 integrations: [
26 sitemap(),
27 starlight({
28 title: "openstatus docs",
29 favicon: "/favicon.ico",
30 social: [
31 {
32 icon: "github",
33 label: "GitHub",
34 href: "https://github.com/openstatusHQ/openstatus",
35 },
36 {
37 icon: "discord",
38 label: "Discord",
39 href: "https://www.openstatus.dev/discord",
40 },
41 {
42 icon: "blueSky",
43 label: "BlueSky",
44 href: "https://bsky.app/profile/openstatus.dev",
45 },
46 ],
47 components: {
48 SiteTitle: "./src/components/SiteTitle.astro",
49 Head: "./src/components/Head.astro",
50 Hero: "./src/components/Hero.astro",
51 Footer: "./src/components/Footer.astro",
52 },
53 editLink: {
54 baseUrl: "https://github.com/openstatusHQ/openstatus/app/docs",
55 },
56 customCss: [
57 // Path to your Tailwind base styles:
58 "./src/global.css",
59 "./src/custom.css",
60 "@fontsource-variable/inter",
61 ],
62 sidebar: [
63 {
64 label: "Concepts",
65 items: [
66 {
67 label: "About Uptime monitoring",
68 slug: "concept/uptime-monitoring",
69 },
70 {
71 label: "Best Practices for Status Pages",
72 slug: "concept/best-practices-status-page",
73 },
74 {
75 label: "Uptime Calculation and Values",
76 slug: "concept/uptime-calculation-and-values",
77 },
78 {
79 label: "Uptime Monitoring as Code",
80 slug: "concept/uptime-monitoring-as-code",
81 },
82 {
83 label: "Latency vs Response Time",
84 slug: "concept/latency-vs-response-time",
85 },
86 ],
87 },
88 {
89 label: "Tutorials",
90 items: [
91 {
92 label: "How to create a monitor",
93 slug: "tutorial/how-to-create-monitor",
94 },
95 {
96 label: "How to create a status page",
97 slug: "tutorial/how-to-create-status-page",
98 },
99 {
100 label: "How to configure a status page",
101 slug: "tutorial/how-to-configure-status-page",
102 },
103 {
104 label: "How to create a private location (beta)",
105 slug: "tutorial/how-to-create-private-location",
106 },
107 {
108 label: "Get Started with OpenStatus CLI",
109 slug: "tutorial/get-started-with-openstatus-cli",
110 },
111 ],
112 },
113
114 {
115 label: "Guides",
116 items: [
117 {
118 label: "Monitor your MCP Server",
119 slug: "guides/how-to-monitor-mcp-server",
120 },
121 {
122 label: "Run check in GitHub Actions",
123 slug: "guides/how-to-run-synthetic-test-github-action",
124 },
125 {
126 label: "Export Metrics to your OTLP Endpoint",
127 slug: "guides/how-to-export-metrics-to-otlp-endpoint",
128 },
129 {
130 label: "How to Add an SVG Status Badge to your GitHub README",
131 slug: "guides/how-to-add-svg-status-badge",
132 },
133 {
134 label: "How to use React Status Widget",
135 slug: "guides/how-to-use-react-widget",
136 },
137 {
138 label: "How to deploy probes on Cloudflare Containers ",
139 slug: "guides/how-to-deploy-probes-cloudflare-containers",
140 },
141 {
142 label: "How to self-host openstatus",
143 slug: "guides/self-hosting-openstatus",
144 },
145 ],
146 },
147 {
148 label: "Reference",
149 items: [
150 {
151 label: "CLI Reference",
152 slug: "reference/cli-reference",
153 },
154 {
155 label: "API Reference",
156 link: "https://api.openstatus.dev/v1",
157 // badge: { text: 'External' },
158 attrs: {
159 target: "_blank",
160 },
161 },
162 {
163 label: "DNS Monitor",
164 slug: "reference/dns-monitor",
165 },
166 {
167 label: "HTTP Monitor",
168 slug: "reference/http-monitor",
169 },
170 {
171 label: "Incident",
172 slug: "reference/incident",
173 },
174 {
175 label: "TCP Monitor",
176 slug: "reference/tcp-monitor",
177 },
178 {
179 label: "Notification",
180 slug: "reference/notification",
181 },
182 {
183 label: "Location",
184 slug: "reference/location",
185 },
186 {
187 label: "Private location",
188 slug: "reference/private-location",
189 },
190 {
191 label: "Status Page",
192 slug: "reference/status-page",
193 },
194 {
195 label: "Status Report",
196 slug: "reference/status-report",
197 },
198 {
199 label: "Subscriber",
200 slug: "reference/subscriber",
201 },
202 {
203 label: "Terraform Provider",
204 slug: "reference/terraform",
205 },
206 ],
207 },
208 ],
209 plugins: [
210 starlightLlmsTxt({
211 projectName: "openstatus docs",
212 description:
213 "openstatus is an open-source global uptime monitoring platform that offers a status page and monitoring as code.",
214 }),
215 starlightImageZoom(),
216 starlightLinksValidator({
217 errorOnLocalLinks: false,
218 }),
219 ],
220 }),
221 ],
222});