mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-05-20 14:02:34 +02:00
Format all markdown files with deno fmt
(#109)
* Format all markdown files with `deno fmt` * Format with `deno fmt` again
parent
692198f84f
commit
bb20deea17
28 changed files with 492 additions and 525 deletions
|
@ -10,7 +10,7 @@ Feel free to add your project here by making a pull request in this wiki repo: h
|
||||||
- [uptimekuma-migrator](https://github.com/Peppershade/uptimekuma-migrator) - Simple migrator from UptimeRobot to UptimeKuma
|
- [uptimekuma-migrator](https://github.com/Peppershade/uptimekuma-migrator) - Simple migrator from UptimeRobot to UptimeKuma
|
||||||
- [swatchdog](https://github.com/imsingee/swatchdog) - A simple requester to send periodically requests to Uptime Kuma's "Push" monitor
|
- [swatchdog](https://github.com/imsingee/swatchdog) - A simple requester to send periodically requests to Uptime Kuma's "Push" monitor
|
||||||
- [KumaCompanion](https://github.com/Zerka30/KumaCompanion) - A Command Line Interface (CLI) for Uptime Kuma
|
- [KumaCompanion](https://github.com/Zerka30/KumaCompanion) - A Command Line Interface (CLI) for Uptime Kuma
|
||||||
- [UptimeKumaRemoteProbe ](https://github.com/zimbres/UptimeKumaRemoteProbe) - A Remote Probe to work with Uptime Kuma "Push" monitor type.
|
- [UptimeKumaRemoteProbe](https://github.com/zimbres/UptimeKumaRemoteProbe) - A Remote Probe to work with Uptime Kuma "Push" monitor type.
|
||||||
- [AutoKuma](https://github.com/BigBoot/AutoKuma) - Automates the creation of Monitors based on Docker container labels. Additionally provides a CLI for Uptime Kuma.
|
- [AutoKuma](https://github.com/BigBoot/AutoKuma) - Automates the creation of Monitors based on Docker container labels. Additionally provides a CLI for Uptime Kuma.
|
||||||
- [Uptime Mate](https://github.com/schech1/uptime-buddy) - An Uptime Kuma monitoring tool for Apple Watch.
|
- [Uptime Mate](https://github.com/schech1/uptime-buddy) - An Uptime Kuma monitoring tool for Apple Watch.
|
||||||
- [Uptime Kuma Push Agent](https://github.com/manprinsen/uptime-kuma-agent) - A lightweight monitoring agent with Go, Python, and shell implementations, designed to send network uptime data to Uptime Kuma's Push Monitor.
|
- [Uptime Kuma Push Agent](https://github.com/manprinsen/uptime-kuma-agent) - A lightweight monitoring agent with Go, Python, and shell implementations, designed to send network uptime data to Uptime Kuma's Push Monitor.
|
||||||
|
|
36
API-Keys.md
36
API-Keys.md
|
@ -2,59 +2,41 @@
|
||||||
|
|
||||||
API keys can be enabled to manage access to the Prometheus metrics endpoint.
|
API keys can be enabled to manage access to the Prometheus metrics endpoint.
|
||||||
|
|
||||||
By default, HTTP basic authentication is used to secure access to the Prometheus
|
By default, HTTP basic authentication is used to secure access to the Prometheus metrics endpoint. As soon as you add your first API key, the use of basic authentication for the endpoint will be permanently disabled.
|
||||||
metrics endpoint. As soon as you add your first API key, the use of basic
|
|
||||||
authentication for the endpoint will be permanently disabled.
|
|
||||||
|
|
||||||
## Adding an API key
|
## Adding an API key
|
||||||
|
|
||||||
Management of API keys is done through the API Keys page in settings
|
Management of API keys is done through the API Keys page in settings This page will show you all of your API keys, including expired keys.
|
||||||
This page will show you all of your API keys, including expired keys.
|
|
||||||
|
|
||||||
You can set the name of the key, as well as it's expiry date, or
|
|
||||||
optionally set the key to never expire. When you click generate, you
|
|
||||||
will be shown the API key in a pop up dialog, you should make sure to
|
|
||||||
make a copy of the key as it will not be shown again. The API key cannot
|
|
||||||
be used to access the web interface but you should treat API keys like
|
|
||||||
you treat your passwords as they can still be used to access potentially
|
|
||||||
sensitive data.
|
|
||||||
|
|
||||||
|
You can set the name of the key, as well as it's expiry date, or optionally set the key to never expire. When you click generate, you will be shown the API key in a pop up dialog, you should make sure to make a copy of the key as it will not be shown again. The API key cannot be used to access the web interface but you should treat API keys like you treat your passwords as they can still be used to access potentially sensitive data.
|
||||||
|
|
||||||
## Disabling keys
|
## Disabling keys
|
||||||
|
|
||||||
It is possible to temporarily disable keys. This can be done through the
|
It is possible to temporarily disable keys. This can be done through the settings page. This will prevent the key from being used for authentication until it is enabled again.
|
||||||
settings page. This will prevent the key from being used for
|
|
||||||
authentication until it is enabled again.
|
|
||||||
|
|
||||||
## Expired keys
|
## Expired keys
|
||||||
|
|
||||||
If a key has expired, it will not be automatically deleted. This is to
|
If a key has expired, it will not be automatically deleted. This is to aid in debugging systems that suddenly stop working. You can delete an expired key, or any key for that matter, by simply hitting the red delete button from the settings page.
|
||||||
aid in debugging systems that suddenly stop working. You can delete an
|
|
||||||
expired key, or any key for that matter, by simply hitting the red
|
|
||||||
delete button from the settings page.
|
|
||||||
|
|
||||||
## Authenticating using an API key
|
## Authenticating using an API key
|
||||||
|
|
||||||
Authentication is done by passing the API key in the `Authorization`
|
Authentication is done by passing the API key in the `Authorization` header. For example, here is a request made with curl to the `metrics` endpoint.
|
||||||
header. For example, here is a request made with curl to the `metrics`
|
|
||||||
endpoint.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -u":<key>" uptime.kuma/metrics
|
curl -u":<key>" uptime.kuma/metrics
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> `:` is required before the key, because basic authentication requires a username and password separated by a `:`.
|
> `:` is required before the key, because basic authentication requires a username and password separated by a `:`. We don't make use of the username field.
|
||||||
> We don't make use of the username field.
|
|
||||||
|
|
||||||
Here is an example config for Prometheus:
|
Here is an example config for Prometheus:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
- job_name: 'uptime'
|
- job_name: "uptime"
|
||||||
scrape_interval: 30s
|
scrape_interval: 30s
|
||||||
scheme: http
|
scheme: http
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: ['uptime.url']
|
- targets: ["uptime.url"]
|
||||||
basic_auth:
|
basic_auth:
|
||||||
password: <api key>
|
password: <api key>
|
||||||
```
|
```
|
||||||
|
|
|
@ -3,11 +3,12 @@
|
||||||
By default, Cloudflare is not API friendly including Uptime Kuma. Cloudflare may block requests from Uptime Kuma.
|
By default, Cloudflare is not API friendly including Uptime Kuma. Cloudflare may block requests from Uptime Kuma.
|
||||||
|
|
||||||
You need to disable or bypass "Browser Integrity Check" in Cloudflare Dashboard via one of these methods:
|
You need to disable or bypass "Browser Integrity Check" in Cloudflare Dashboard via one of these methods:
|
||||||
|
|
||||||
- (Easiest) Add your Uptime Kuma host IP address to [IP Access rules](https://developers.cloudflare.com/waf/tools/ip-access-rules/) as an Allowed address, optionally across every domain in your Cloudflare account
|
- (Easiest) Add your Uptime Kuma host IP address to [IP Access rules](https://developers.cloudflare.com/waf/tools/ip-access-rules/) as an Allowed address, optionally across every domain in your Cloudflare account
|
||||||
- Allow Uptime Kuma to [bypass the check via WAF Custom Rules](https://developers.cloudflare.com/waf/custom-rules/skip/), and special header. E.g. lets add to the Kuma request header (please replace `kuma-qwerty123456` with your own random value):
|
- Allow Uptime Kuma to [bypass the check via WAF Custom Rules](https://developers.cloudflare.com/waf/custom-rules/skip/), and special header. E.g. lets add to the Kuma request header (please replace `kuma-qwerty123456` with your own random value):
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"kumaping":"kuma-qwerty123456"
|
"kumaping": "kuma-qwerty123456"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Now create a rule where you will bypass JS challenge if header is presented. You can also add multiple domains after `or` E.g.
|
Now create a rule where you will bypass JS challenge if header is presented. You can also add multiple domains after `or` E.g.
|
||||||
|
@ -19,8 +20,6 @@ You need to disable or bypass "Browser Integrity Check" in Cloudflare Dashboard
|
||||||
|
|
||||||
Related discussion: https://community.cloudflare.com/t/api-403-after-enabling-cloudflare/108078/6
|
Related discussion: https://community.cloudflare.com/t/api-403-after-enabling-cloudflare/108078/6
|
||||||
|
|
||||||
|
|
||||||
## How to proxy Uptime Kuma via Cloudflare
|
## How to proxy Uptime Kuma via Cloudflare
|
||||||
|
|
||||||
Please read:
|
Please read: https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy#cloudflare
|
||||||
https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy#cloudflare
|
|
||||||
|
|
|
@ -6,6 +6,7 @@ UPTIME_KUMA_PORT=8080
|
||||||
```
|
```
|
||||||
|
|
||||||
Server Argument Usage:
|
Server Argument Usage:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
node server/server.js --host=127.0.0.1 --port=8080
|
node server/server.js --host=127.0.0.1 --port=8080
|
||||||
```
|
```
|
||||||
|
@ -13,7 +14,7 @@ node server/server.js --host=127.0.0.1 --port=8080
|
||||||
## Server Environment Variables
|
## Server Environment Variables
|
||||||
|
|
||||||
| Environment Variable | Server Argument | Description | Default |
|
| Environment Variable | Server Argument | Description | Default |
|
||||||
| ------------------------------------------ | -------------------------- | --------------------------------------------------------------------- | ---------: |
|
| -------------------------------------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------: |
|
||||||
| `DATA_DIR` | `--data-dir=` | Set the directory where the data should be stored (could be relative) | `./data/` |
|
| `DATA_DIR` | `--data-dir=` | Set the directory where the data should be stored (could be relative) | `./data/` |
|
||||||
| `UPTIME_KUMA_HOST` or `HOST` | `--host=` | Host to bind to, could be an ip. | `::` |
|
| `UPTIME_KUMA_HOST` or `HOST` | `--host=` | Host to bind to, could be an ip. | `::` |
|
||||||
| `UPTIME_KUMA_PORT` or `PORT` | `--port=` | Port to listen to | `3001` |
|
| `UPTIME_KUMA_PORT` or `PORT` | `--port=` | Port to listen to | `3001` |
|
||||||
|
@ -28,7 +29,6 @@ node server/server.js --host=127.0.0.1 --port=8080
|
||||||
| `NODE_TLS_REJECT_UNAUTHORIZED` | | Ignore all TLS errors | `0` |
|
| `NODE_TLS_REJECT_UNAUTHORIZED` | | Ignore all TLS errors | `0` |
|
||||||
| `NODE_OPTIONS` | | Set it to `--insecure-http-parser`, if you encountered error `Invalid header value char` when your website using WAF | |
|
| `NODE_OPTIONS` | | Set it to `--insecure-http-parser`, if you encountered error `Invalid header value char` when your website using WAF | |
|
||||||
|
|
||||||
|
|
||||||
## Docker Specific Environment Variables
|
## Docker Specific Environment Variables
|
||||||
|
|
||||||
| Environment Variable | Description | Default |
|
| Environment Variable | Description | Default |
|
||||||
|
@ -39,19 +39,18 @@ node server/server.js --host=127.0.0.1 --port=8080
|
||||||
## For Development only
|
## For Development only
|
||||||
|
|
||||||
| Environment variable | Server argument | Description | Default |
|
| Environment variable | Server argument | Description | Default |
|
||||||
| ------------------------------------------ | -------------------------- | --------------------------------------------------------------------- | ---------: |
|
| ------------------------------------------ | --------------- | ------------------------------------------------------------------------------- | ---------: |
|
||||||
| `NODE_ENV` | | Set the NodeJS environment flag. `development`, `production` | production |
|
| `NODE_ENV` | | Set the NodeJS environment flag. `development`, `production` | production |
|
||||||
| `UPTIME_KUMA_LOG_RESPONSE_BODY_MONITOR_ID` | | Monitor ID - If provided, it will output the monitor's response to your console | |
|
| `UPTIME_KUMA_LOG_RESPONSE_BODY_MONITOR_ID` | | Monitor ID - If provided, it will output the monitor's response to your console | |
|
||||||
| `UPTIME_KUMA_HIDE_LOG` | | (1.15.0) Examples: `debug_monitor,info_monitor,debug_cert,warn_monitor` | |
|
| `UPTIME_KUMA_HIDE_LOG` | | (1.15.0) Examples: `debug_monitor,info_monitor,debug_cert,warn_monitor` | |
|
||||||
| `SQL_LOG` | | Set `1` to enable | | |
|
| `SQL_LOG` | | Set `1` to enable | |
|
||||||
| `UPTIME_KUMA_ENABLE_EMBEDDED_MARIADB`| | (2.0.0) Set `1` to enable | | |
|
| `UPTIME_KUMA_ENABLE_EMBEDDED_MARIADB` | | (2.0.0) Set `1` to enable | |
|
||||||
| `UPTIME_KUMA_IN_CONTAINER`| | (1.23.0) Is Uptime Kuma inside a container? | | |
|
| `UPTIME_KUMA_IN_CONTAINER` | | (1.23.0) Is Uptime Kuma inside a container? | |
|
||||||
|
|
||||||
## MariaDB Environment Variables
|
## MariaDB Environment Variables
|
||||||
|
|
||||||
|
|
||||||
| Environment Variable | Description |
|
| Environment Variable | Description |
|
||||||
| ------------------------- | ---------------------------------- |
|
| ------------------------- | ------------------------------------------ |
|
||||||
| `UPTIME_KUMA_DB_TYPE` | (2.0.0) Database Type `sqlite`, `mariadb` |
|
| `UPTIME_KUMA_DB_TYPE` | (2.0.0) Database Type `sqlite`, `mariadb` |
|
||||||
| `UPTIME_KUMA_DB_HOSTNAME` | (2.0.0) Database hostname. for mariadb |
|
| `UPTIME_KUMA_DB_HOSTNAME` | (2.0.0) Database hostname. for mariadb |
|
||||||
| `UPTIME_KUMA_DB_PORT` | (2.0.0) Database port. for mariadb, `3306` |
|
| `UPTIME_KUMA_DB_PORT` | (2.0.0) Database port. for mariadb, `3306` |
|
||||||
|
|
70
Home.md
70
Home.md
|
@ -10,52 +10,50 @@ A little bear is watching your website.🐻🐻🐻
|
||||||
|
|
||||||
https://ipa-reader.com/?text=%CB%88%CA%8Cpta%C9%AAm%20k%C9%AF%CC%9F%E1%B5%9Dma%CC%A0&voice=Joey
|
https://ipa-reader.com/?text=%CB%88%CA%8Cpta%C9%AAm%20k%C9%AF%CC%9F%E1%B5%9Dma%CC%A0&voice=Joey
|
||||||
|
|
||||||
|
|
||||||
## How to contribute to this wiki?
|
## How to contribute to this wiki?
|
||||||
|
|
||||||
You could make a pull request in this wiki repo:
|
You could make a pull request in this wiki repo: https://github.com/louislam/uptime-kuma-wiki
|
||||||
https://github.com/louislam/uptime-kuma-wiki
|
|
||||||
|
|
||||||
## History
|
## History
|
||||||
|
|
||||||
[](https://star-history.com/#louislam/uptime-kuma&Date)
|
[](https://star-history.com/#louislam/uptime-kuma&Date)
|
||||||
|
|
||||||
* (2021-08-21) Reach 1001 Stargazers, thanks everyone!
|
- (2021-08-21) Reach 1001 Stargazers, thanks everyone!
|
||||||
* (2021-08-26) Reach 2066 Stargazers. Grow so fast! That is unexpected!
|
- (2021-08-26) Reach 2066 Stargazers. Grow so fast! That is unexpected!
|
||||||
* (2021-08-31) Reach 2651 Stargazers. Amazing!
|
- (2021-08-31) Reach 2651 Stargazers. Amazing!
|
||||||
* (2021-09-06) Reach 3066 Stargazers. 👀👏
|
- (2021-09-06) Reach 3066 Stargazers. 👀👏
|
||||||
* (2021-09-12) Docker Pull is over 1M!
|
- (2021-09-12) Docker Pull is over 1M!
|
||||||
* (2021-09-17) 🐣
|
- (2021-09-17) 🐣
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/1336778/133796976-1ea682f5-0cfa-4c50-b6fd-7d879744b12f.jpg" width="250" />
|
<img src="https://user-images.githubusercontent.com/1336778/133796976-1ea682f5-0cfa-4c50-b6fd-7d879744b12f.jpg" width="250" />
|
||||||
|
|
||||||
* (2021-09-29) Reach 3645 Stargazers. 👍
|
- (2021-09-29) Reach 3645 Stargazers. 👍
|
||||||
* (2021-09-30) Docker Pull is over 2M! Crazy🤪
|
- (2021-09-30) Docker Pull is over 2M! Crazy🤪
|
||||||
* (2021-10-07) Reach 4212 🔭✨⭐.
|
- (2021-10-07) Reach 4212 🔭✨⭐.
|
||||||
* (2021-10-08) Reach 4764 Stargazers. One of trending projects of the day!
|
- (2021-10-08) Reach 4764 Stargazers. One of trending projects of the day!
|
||||||
* (2021-10-11) Reach 6658 Stargazers. Is it a rocket🚀?
|
- (2021-10-11) Reach 6658 Stargazers. Is it a rocket🚀?
|
||||||
* (2021-10-13) Docker Pull is over 3M!
|
- (2021-10-13) Docker Pull is over 3M!
|
||||||
* (2021-10-21) Docker Pull is over 4M! ⭐ It's over 8000! https://www.youtube.com/watch?v=TSQqUfeyHF8
|
- (2021-10-21) Docker Pull is over 4M! ⭐ It's over 8000! https://www.youtube.com/watch?v=TSQqUfeyHF8
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/1336778/138208120-09a6d4b2-ceca-4380-ba59-5456b72a80aa.jpg" width="250" />
|
<img src="https://user-images.githubusercontent.com/1336778/138208120-09a6d4b2-ceca-4380-ba59-5456b72a80aa.jpg" width="250" />
|
||||||
|
|
||||||
* (2021-10-27) Docker Pull is over 5M!
|
- (2021-10-27) Docker Pull is over 5M!
|
||||||
* (2021-11-08) Docker Pull is over 6.7M! 9242 Stargazers!
|
- (2021-11-08) Docker Pull is over 6.7M! 9242 Stargazers!
|
||||||
* (2021-11-18) Docker Pull is over 8M!
|
- (2021-11-18) Docker Pull is over 8M!
|
||||||
* (2021-12-01) Docker Pull is over 10M!
|
- (2021-12-01) Docker Pull is over 10M!
|
||||||
* (2021-12-02) Reach 10,076 Stargazers!
|
- (2021-12-02) Reach 10,076 Stargazers!
|
||||||
* (2022-01-21) Reach 12,059 Stargazers!
|
- (2022-01-21) Reach 12,059 Stargazers!
|
||||||
* (2022-03-02) Docker Pull is over 25M! 14,050 Stargazers!
|
- (2022-03-02) Docker Pull is over 25M! 14,050 Stargazers!
|
||||||
* (2022-04-10) 15,629 Stargazers!
|
- (2022-04-10) 15,629 Stargazers!
|
||||||
* (2022-10-09) 21,975 Stargazers! Over 20K! Another Milestone!🐻👍
|
- (2022-10-09) 21,975 Stargazers! Over 20K! Another Milestone!🐻👍
|
||||||
* (2023-01-09) {"⭐": 27783, "🐳": 31688853 }
|
- (2023-01-09) {"⭐": 27783, "🐳": 31688853 }
|
||||||
* (2023-02-06) let starCount = 29141; let dockerPullCount = 32185677;
|
- (2023-02-06) let starCount = 29141; let dockerPullCount = 32185677;
|
||||||
* (2023-02-26) `<div class="⭐">30,063</div><div class="🐳">32,606,170</div>`
|
- (2023-02-26) `<div class="⭐">30,063</div><div class="🐳">32,606,170</div>`
|
||||||
* (2023-05-11) ⭐33132,🐳34513470
|
- (2023-05-11) ⭐33132,🐳34513470
|
||||||
* (2023-10-09) ⭐39263,🐳44805032
|
- (2023-10-09) ⭐39263,🐳44805032
|
||||||
* (2023-11-03) ⭐40093,🐳47255050
|
- (2023-11-03) ⭐40093,🐳47255050
|
||||||
* (2023-12-05) ⭐42,297 🐳51,241,294
|
- (2023-12-05) ⭐42,297 🐳51,241,294
|
||||||
* (2024-04-05) ⭐48,341 🐳68,668,482
|
- (2024-04-05) ⭐48,341 🐳68,668,482
|
||||||
* (2024-10-16) ⭐57,263 🐳93,911,095
|
- (2024-10-16) ⭐57,263 🐳93,911,095
|
||||||
* (2024-11-20) ⭐60,027 🐳96,146,195
|
- (2024-11-20) ⭐60,027 🐳96,146,195
|
||||||
* (2024-12-20) ⭐61,495 🐳98,033,822
|
- (2024-12-20) ⭐61,495 🐳98,033,822
|
||||||
|
|
|
@ -7,6 +7,7 @@ By default, a docker container is self-contained, which means Uptime Kuma cannot
|
||||||
### (Method 1) Share docker.sock with Uptime Kuma Container
|
### (Method 1) Share docker.sock with Uptime Kuma Container
|
||||||
|
|
||||||
Command argument:
|
Command argument:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock
|
-v /var/run/docker.sock:/var/run/docker.sock
|
||||||
```
|
```
|
||||||
|
@ -20,10 +21,11 @@ volumes:
|
||||||
|
|
||||||
### (Method 2) TCP - Bridge Mode
|
### (Method 2) TCP - Bridge Mode
|
||||||
|
|
||||||
**Expose TCP port**
|
**Expose TCP port**\
|
||||||
To enable TCP monitoring, you need to first expose the Docker daemon on a TCP port. The primary documentation is available [here](https://docs.docker.com/config/daemon/) but the example below provides some quick options.
|
To enable TCP monitoring, you need to first expose the Docker daemon on a TCP port. The primary documentation is available [here](https://docs.docker.com/config/daemon/) but the example below provides some quick options.
|
||||||
|
|
||||||
Update the daemon configuration located at `/etc/docker/daemon.json`:
|
Update the daemon configuration located at `/etc/docker/daemon.json`:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
#any additional parameters should be kept
|
#any additional parameters should be kept
|
||||||
|
@ -55,7 +57,6 @@ ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock
|
||||||
|
|
||||||
My original ExecStart was: `ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock`, note the -H that would cause a duplicate property error.
|
My original ExecStart was: `ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock`, note the -H that would cause a duplicate property error.
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If you installed docker using snap
|
> If you installed docker using snap
|
||||||
|
|
||||||
|
@ -78,7 +79,7 @@ The service should be running as usual, showing the docker snap service
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Update uptime-kuma**
|
**Update uptime-kuma**\
|
||||||
Add a new Docker host and choose TCP as the option. Specify the IP address of the host and the TCP port you exposed, as seen below.
|
Add a new Docker host and choose TCP as the option. Specify the IP address of the host and the TCP port you exposed, as seen below.
|
||||||
|
|
||||||

|

|
||||||
|
@ -88,13 +89,13 @@ Add a new Docker host and choose TCP as the option. Specify the IP address of th
|
||||||
Assuming you have already properly configured your remote docker instance to listen securely for TLS connections as detailed [here](https://docs.docker.com/engine/security/protect-access/#use-tls-https-to-protect-the-docker-daemon-socket), you must configure Uptime-Kuma to use the certificates you've generated. The base path where certificates are looked for can be set with the `DOCKER_TLS_DIR_PATH` environmental variable or defaults to `data/docker-tls/`.
|
Assuming you have already properly configured your remote docker instance to listen securely for TLS connections as detailed [here](https://docs.docker.com/engine/security/protect-access/#use-tls-https-to-protect-the-docker-daemon-socket), you must configure Uptime-Kuma to use the certificates you've generated. The base path where certificates are looked for can be set with the `DOCKER_TLS_DIR_PATH` environmental variable or defaults to `data/docker-tls/`.
|
||||||
|
|
||||||
For running uptime-kuma inside docker, mount the parent directory to `/app/data/docker-tls`.
|
For running uptime-kuma inside docker, mount the parent directory to `/app/data/docker-tls`.
|
||||||
|
|
||||||
```
|
```
|
||||||
-v /docker-cert:/app/data/docker-tls
|
-v /docker-cert:/app/data/docker-tls
|
||||||
```
|
```
|
||||||
|
|
||||||
If a directory in this path exists with a name matching the FQDN of the docker host (e.g. the FQDN of `https://example.com:2376` is `example.com` so the directory `data/docker-tls/example.com/` would be searched for certificate files), then `ca.pem`, `key.pem` and `cert.pem` files are loaded and included in the agent options. File names can also be overridden via `DOCKER_TLS_FILE_NAME_(CA|KEY|CERT)`.
|
If a directory in this path exists with a name matching the FQDN of the docker host (e.g. the FQDN of `https://example.com:2376` is `example.com` so the directory `data/docker-tls/example.com/` would be searched for certificate files), then `ca.pem`, `key.pem` and `cert.pem` files are loaded and included in the agent options. File names can also be overridden via `DOCKER_TLS_FILE_NAME_(CA|KEY|CERT)`.
|
||||||
|
|
||||||
|
|
||||||
## Related Discussion
|
## Related Discussion
|
||||||
|
|
||||||
- https://github.com/louislam/uptime-kuma/issues/2061
|
- https://github.com/louislam/uptime-kuma/issues/2061
|
||||||
|
|
|
@ -13,8 +13,7 @@ You can access the maintenance management via the menu at the top left.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Within the maintenance management, there is an overview of the currently configured maintenance windows.
|
Within the maintenance management, there is an overview of the currently configured maintenance windows. In the upper area, you can configure another maintenance using the '+ Schedule Maintenance' button.
|
||||||
In the upper area, you can configure another maintenance using the '+ Schedule Maintenance' button.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -26,13 +25,11 @@ Here you can define an title for the new maintenance, which is displayed on top
|
||||||
|
|
||||||
**Description**
|
**Description**
|
||||||
|
|
||||||
Here you can define an description for the new maintenance, which is also displayed on top of selected status pages.
|
Here you can define an description for the new maintenance, which is also displayed on top of selected status pages. The description supports Markdown syntax.
|
||||||
The description supports Markdown syntax.
|
|
||||||
|
|
||||||
**Affected Monitors**
|
**Affected Monitors**
|
||||||
|
|
||||||
Select the monitors that will be affected by the new maintenance.
|
Select the monitors that will be affected by the new maintenance. These monitors will be displayed in blue on the Dashboard and all display status pages during the maintenance.
|
||||||
These monitors will be displayed in blue on the Dashboard and all display status pages during the maintenance.
|
|
||||||
|
|
||||||
Select the affected monitors from the list. You can search by entering part of the title of the required monitor.
|
Select the affected monitors from the list. You can search by entering part of the title of the required monitor.
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
- FYI: My Uptime Kuma had 20 monitors and 90 days of data, and it took around 7 minutes to migrate.
|
- FYI: My Uptime Kuma had 20 monitors and 90 days of data, and it took around 7 minutes to migrate.
|
||||||
- Beta version is not stable and may contain bugs, especially for the first beta release.
|
- Beta version is not stable and may contain bugs, especially for the first beta release.
|
||||||
|
|
||||||
|
|
||||||
## Breaking Changes
|
## Breaking Changes
|
||||||
|
|
||||||
- The `:duration` of these badge endpoints now accept values `24`, `24h`, `30d`, `1y` only
|
- The `:duration` of these badge endpoints now accept values `24`, `24h`, `30d`, `1y` only
|
||||||
|
@ -81,14 +80,14 @@ Not available yet.
|
||||||
#### Beta Tags
|
#### Beta Tags
|
||||||
|
|
||||||
| Tag | Description |
|
| Tag | Description |
|
||||||
|--------------------|-------------------------------------------|
|
| --------- | ------------------------------------------------ |
|
||||||
| beta | The latest of Beta version of Uptime Kuma |
|
| beta | The latest of Beta version of Uptime Kuma |
|
||||||
| beta-slim | (Slim) The latest of Beta version of Uptime Kuma |
|
| beta-slim | (Slim) The latest of Beta version of Uptime Kuma |
|
||||||
|
|
||||||
#### Other Beta Tags
|
#### Other Beta Tags
|
||||||
|
|
||||||
| Tag | Description |
|
| Tag | Description |
|
||||||
|--------------------|-------------------------------------------|
|
| ----------------- | ---------------------------------------- |
|
||||||
| 2.x.x-beta.x | Pinned to a specific beta release |
|
| 2.x.x-beta.x | Pinned to a specific beta release |
|
||||||
| 2.x.x-beta-slim.x | (Slim) Pinned to a specific beta release |
|
| 2.x.x-beta-slim.x | (Slim) Pinned to a specific beta release |
|
||||||
|
|
||||||
|
@ -101,7 +100,7 @@ Not available yet.
|
||||||
> ⚠️ Rootless images are for users who want to run Uptime Kuma without root privileges, but some features may not work as expected.
|
> ⚠️ Rootless images are for users who want to run Uptime Kuma without root privileges, but some features may not work as expected.
|
||||||
|
|
||||||
| Tag | Description |
|
| Tag | Description |
|
||||||
|--------------------|-------------------------------------------|
|
| -------------------------- | ----------------------------------------------------------- |
|
||||||
| beta-rootless | The latest of Beta version of Uptime Kuma (Rootless) |
|
| beta-rootless | The latest of Beta version of Uptime Kuma (Rootless) |
|
||||||
| beta-slim-rootless | (Slim) The latest of Beta version of Uptime Kuma (Rootless) |
|
| beta-slim-rootless | (Slim) The latest of Beta version of Uptime Kuma (Rootless) |
|
||||||
| 2.x.x-beta-rootless.x | Pinned to a specific beta release (Rootless) |
|
| 2.x.x-beta-rootless.x | Pinned to a specific beta release (Rootless) |
|
||||||
|
@ -110,7 +109,7 @@ Not available yet.
|
||||||
#### Nightly Tags
|
#### Nightly Tags
|
||||||
|
|
||||||
| Tag | Description |
|
| Tag | Description |
|
||||||
|--------------------|-------------------------------------------|
|
| ----------------- | -------------------------- |
|
||||||
| nightly2 | Development build |
|
| nightly2 | Development build |
|
||||||
| nightly2-rootless | Rootless development build |
|
| nightly2-rootless | Rootless development build |
|
||||||
|
|
||||||
|
@ -119,7 +118,7 @@ Not available yet.
|
||||||
Slim version has a smaller image size, it is about ~300MB to ~400MB smaller than the full version.
|
Slim version has a smaller image size, it is about ~300MB to ~400MB smaller than the full version.
|
||||||
|
|
||||||
| Full Version | Slim Version |
|
| Full Version | Slim Version |
|
||||||
| ------------ | -------------|
|
| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| ✔️ Embedded MariaDB - Can be used as a low-maintenance, durable and performant storage backend | ❌ No embedded MariaDB - but you can still connect to an external MariaDB/MySQL database as storage backend |
|
| ✔️ Embedded MariaDB - Can be used as a low-maintenance, durable and performant storage backend | ❌ No embedded MariaDB - but you can still connect to an external MariaDB/MySQL database as storage backend |
|
||||||
| ✔️ Embedded Chromium - Can be used for the "Browser Engine" monitor type. Some fonts are also included to improve rendering | ❌ No embedded Chromium - for the "Browser Engine" monitor type, an external chromium instance or further setup is required |
|
| ✔️ Embedded Chromium - Can be used for the "Browser Engine" monitor type. Some fonts are also included to improve rendering | ❌ No embedded Chromium - for the "Browser Engine" monitor type, an external chromium instance or further setup is required |
|
||||||
|
|
||||||
|
@ -132,6 +131,7 @@ If you don't need the above features, you can use the slim version.
|
||||||
Rootless tags are for users who wants to run Uptime Kuma without root privileges, but some features may not work as expected.
|
Rootless tags are for users who wants to run Uptime Kuma without root privileges, but some features may not work as expected.
|
||||||
|
|
||||||
Known issues:
|
Known issues:
|
||||||
|
|
||||||
- ⚠️ Not recommended for upgrading from v1 to v2.
|
- ⚠️ Not recommended for upgrading from v1 to v2.
|
||||||
- ⚠️ If file permission is not set correctly, Uptime Kuma will run into startup issues. You should make sure the ownership of the `data` directory is set to the `node:node (1000:1000)` user.
|
- ⚠️ If file permission is not set correctly, Uptime Kuma will run into startup issues. You should make sure the ownership of the `data` directory is set to the `node:node (1000:1000)` user.
|
||||||
- Docker monitor will not work without proper configuration, as by default it requires root privileges.
|
- Docker monitor will not work without proper configuration, as by default it requires root privileges.
|
||||||
|
@ -174,7 +174,7 @@ docker compose down
|
||||||
services:
|
services:
|
||||||
uptime-kuma:
|
uptime-kuma:
|
||||||
image: louislam/uptime-kuma:beta
|
image: louislam/uptime-kuma:beta
|
||||||
....
|
....
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Start your Uptime Kuma stack.
|
4. Start your Uptime Kuma stack.
|
||||||
|
@ -208,7 +208,6 @@ node --version
|
||||||
```
|
```
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
### Can I migrate my existing SQLite database to MariaDB?
|
### Can I migrate my existing SQLite database to MariaDB?
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
For Alpine/postmarketOS/Gentoo/Artix, you can create an OpenRC service as
|
For Alpine/postmarketOS/Gentoo/Artix, you can create an OpenRC service as `/etc/init.d/uptime-kuma`:
|
||||||
`/etc/init.d/uptime-kuma`:
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
#!/sbin/openrc-run
|
#!/sbin/openrc-run
|
||||||
|
|
|
@ -5,24 +5,24 @@ If you already use [Prometheus.io](https://prometheus.io) or a platform that sup
|
||||||
Labels to filter by include:
|
Labels to filter by include:
|
||||||
|
|
||||||
| Label Name | Description |
|
| Label Name | Description |
|
||||||
|------------|-------------|
|
| ---------------- | ------------------------------------------------- |
|
||||||
|monitor_name| The "Friendly Name" of the monitor |
|
| monitor_name | The "Friendly Name" of the monitor |
|
||||||
|monitor_type| The type (HTTP, keyword, TCP) of monitoring check |
|
| monitor_type | The type (HTTP, keyword, TCP) of monitoring check |
|
||||||
|monitor_url | The URL to be monitored (HTTP, keyword)
|
| monitor_url | The URL to be monitored (HTTP, keyword) |
|
||||||
|monitor_hostname | The Hostname to be monitored (TCP) |
|
| monitor_hostname | The Hostname to be monitored (TCP) |
|
||||||
|monitor_port | The port to be monitored (TCP) |
|
| monitor_port | The port to be monitored (TCP) |
|
||||||
|
|
||||||
# Prometheus Configuration
|
# Prometheus Configuration
|
||||||
|
|
||||||
Put the following into your Prometheus config:
|
Put the following into your Prometheus config:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
- job_name: 'uptime'
|
- job_name: "uptime"
|
||||||
scrape_interval: 30s
|
scrape_interval: 30s
|
||||||
scheme: http
|
scheme: http
|
||||||
metrics_path: '/metrics'
|
metrics_path: "/metrics"
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: ['uptime-kuma.url']
|
- targets: ["uptime-kuma.url"]
|
||||||
basic_auth: # Only needed if authentication is enabled (default)
|
basic_auth: # Only needed if authentication is enabled (default)
|
||||||
username: <your user>
|
username: <your user>
|
||||||
password: <your password>
|
password: <your password>
|
||||||
|
|
|
@ -8,10 +8,10 @@ Recently, I just discovered that Cloudflare has added a web GUI for Cloudflare T
|
||||||
|
|
||||||
For Docker users, you just need to provide a Cloudflare Tunnel token in the Settings, then you can browse Uptime Kuma on the Internet.
|
For Docker users, you just need to provide a Cloudflare Tunnel token in the Settings, then you can browse Uptime Kuma on the Internet.
|
||||||
|
|
||||||
Read more about cloudflared:
|
Read more about cloudflared: https://www.reddit.com/r/selfhosted/comments/tp0nqg/cloudflare_has_added_a_web_gui_for_controlling/
|
||||||
https://www.reddit.com/r/selfhosted/comments/tp0nqg/cloudflare_has_added_a_web_gui_for_controlling/
|
|
||||||
|
|
||||||
Pros:
|
Pros:
|
||||||
|
|
||||||
- Free of charge
|
- Free of charge
|
||||||
- Full GUI, zero-config files
|
- Full GUI, zero-config files
|
||||||
- You can put your Uptime Kuma behind firewall
|
- You can put your Uptime Kuma behind firewall
|
||||||
|
@ -22,6 +22,7 @@ Pros:
|
||||||
- Free SSL
|
- Free SSL
|
||||||
|
|
||||||
Cons:
|
Cons:
|
||||||
|
|
||||||
- (Not a con if you are already using Cloudflare) You domain's nameserver have to move to Cloudflare.
|
- (Not a con if you are already using Cloudflare) You domain's nameserver have to move to Cloudflare.
|
||||||
- Added 30MB to the docker base image
|
- Added 30MB to the docker base image
|
||||||
|
|
||||||
|
@ -37,7 +38,7 @@ Cons:
|
||||||
1. Create a tunnel on [Cloudflare Zero Trust](https://dash.teams.cloudflare.com/).
|
1. Create a tunnel on [Cloudflare Zero Trust](https://dash.teams.cloudflare.com/).
|
||||||
2. Get your tunnel token and set it into your Uptime Kuma instance.
|
2. Get your tunnel token and set it into your Uptime Kuma instance.
|
||||||
3. Map to http://localhost:3001.
|
3. Map to http://localhost:3001.
|
||||||
3. Profit.
|
4. Profit.
|
||||||
|
|
||||||
## Step by step
|
## Step by step
|
||||||
|
|
||||||
|
@ -45,8 +46,6 @@ The steps are actually very simple. However, since the concept is pretty new to
|
||||||
|
|
||||||
But trust me, once you learn, you will remember how to configure a cloudflare tunnel without this guide! (for Nginx or Traefik, I could never remember how to configure them without googling it)
|
But trust me, once you learn, you will remember how to configure a cloudflare tunnel without this guide! (for Nginx or Traefik, I could never remember how to configure them without googling it)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1. Go to [Cloudflare Zero Trust](https://dash.teams.cloudflare.com/).
|
1. Go to [Cloudflare Zero Trust](https://dash.teams.cloudflare.com/).
|
||||||
2. `Network` > `Tunnels` > `Create a Tunnel`
|
2. `Network` > `Tunnels` > `Create a Tunnel`
|
||||||
|
|
||||||
|
@ -64,33 +63,31 @@ But trust me, once you learn, you will remember how to configure a cloudflare tu
|
||||||
```cmd
|
```cmd
|
||||||
cloudflared.exe service install eyJhIjoiZDA4ZGNiMTUXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
cloudflared.exe service install eyJhIjoiZDA4ZGNiMTUXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||||
`` `
|
`` `
|
||||||
|
```
|
||||||
7. Go to your Uptime Kuma instance.
|
7. Go to your Uptime Kuma instance.
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/1336778/160821358-aff29332-6383-447e-a552-dbdeba014a77.png" width="800" />
|
<img src="https://user-images.githubusercontent.com/1336778/160821358-aff29332-6383-447e-a552-dbdeba014a77.png" width="800" />
|
||||||
|
|
||||||
6. `Settings` > `Reverse Proxy`
|
8. `Settings` > `Reverse Proxy`
|
||||||
7. Paste the token into the `Cloudflare Tunnel Token` field.
|
9. Paste the token into the `Cloudflare Tunnel Token` field.
|
||||||
8. Click `Start cloudflared`
|
10. Click `Start cloudflared`
|
||||||
9. Go back to `Cloudflare Zero Trust`, if you see your connector, then click `Next`
|
11. Go back to `Cloudflare Zero Trust`, if you see your connector, then click `Next`
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/1336778/160883516-66c059db-442d-4e2c-845a-c8eaf7a7f992.png" width="800" />
|
<img src="https://user-images.githubusercontent.com/1336778/160883516-66c059db-442d-4e2c-845a-c8eaf7a7f992.png" width="800" />
|
||||||
|
|
||||||
10. Choose your favorite domain name and map to `http://localhost:3001`
|
12. Choose your favorite domain name and map to `http://localhost:3001`
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/1336778/160883898-24217c46-d833-463d-8e0e-e5dc22a35d48.png" width="800" />
|
<img src="https://user-images.githubusercontent.com/1336778/160883898-24217c46-d833-463d-8e0e-e5dc22a35d48.png" width="800" />
|
||||||
|
|
||||||
11. Click `Save` and go to your domain name `https://<your domain name>` and profit!
|
13. Click `Save` and go to your domain name `https://<your domain name>` and profit! Yeah, it also automatically gives you SSL!
|
||||||
Yeah, it also automatically gives you SSL!
|
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/1336778/160884606-a6a9db7f-68a6-4083-ac75-6f06f4930c52.png" width="500" />
|
<img src="https://user-images.githubusercontent.com/1336778/160884606-a6a9db7f-68a6-4083-ac75-6f06f4930c52.png" width="500" />
|
||||||
|
|
||||||
|
|
||||||
## How to Stop
|
## How to Stop
|
||||||
|
|
||||||
- Option 1. You can remove the map on Cloudflare.
|
- Option 1. You can remove the map on Cloudflare.
|
||||||
- Option 2. You can click `Stop cloudflared` and `Remove Token` in your Uptime Kuma.
|
- Option 2. You can click `Stop cloudflared` and `Remove Token` in your Uptime Kuma.
|
||||||
|
|
||||||
|
|
||||||
## Environment Variable
|
## Environment Variable
|
||||||
|
|
||||||
Alternatively, you can set the token via a environment variable. cloudflared will be started automatically.
|
Alternatively, you can set the token via a environment variable. cloudflared will be started automatically.
|
||||||
|
@ -98,4 +95,3 @@ Alternatively, you can set the token via a environment variable. cloudflared wil
|
||||||
With this approach, you don't even need to expose your container port to the host machine.
|
With this approach, you don't even need to expose your container port to the host machine.
|
||||||
|
|
||||||
UPTIME_KUMA_CLOUDFLARED_TOKEN=`<your token>`
|
UPTIME_KUMA_CLOUDFLARED_TOKEN=`<your token>`
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,15 @@
|
||||||
In order to expose Uptime Kuma to the web securely, it is recommended to proxy it behind a traditional webserver such as nginx or Apache.
|
In order to expose Uptime Kuma to the web securely, it is recommended to proxy it behind a traditional webserver such as nginx or Apache. Below are some example configurations that you could use.
|
||||||
Below are some example configurations that you could use.
|
|
||||||
|
|
||||||
Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more headers **"Upgrade"** and **"Connection"** in order to accept WebSocket on a reverse proxy.
|
Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more headers **"Upgrade"** and **"Connection"** in order to accept WebSocket on a reverse proxy.
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Uptime Kuma **does not support a subdirectory** such as `http://example.com/uptimekuma`.
|
> Uptime Kuma **does not support a subdirectory** such as `http://example.com/uptimekuma`. Please prepare a domain or sub-domain to do that. A hacky way to produce subdirectory status pages [is listed here](https://github.com/louislam/uptime-kuma/wiki/Status-Page#custom-subdirectory--custom-html-on-status-pages). This issue is tracked in https://github.com/louislam/uptime-kuma/issues/147
|
||||||
> Please prepare a domain or sub-domain to do that. A hacky way to produce subdirectory status pages [is listed here](https://github.com/louislam/uptime-kuma/wiki/Status-Page#custom-subdirectory--custom-html-on-status-pages).
|
|
||||||
> This issue is tracked in https://github.com/louislam/uptime-kuma/issues/147
|
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> It is recommended to use SSL (HTTPS) with your web-server to avoid MiTM attacks when on a public network. If using caddy these certificates will be auto-generated and updated.
|
> It is recommended to use SSL (HTTPS) with your web-server to avoid MiTM attacks when on a public network. If using caddy these certificates will be auto-generated and updated.
|
||||||
>
|
>
|
||||||
> If using Apache or NGINX, it is recommended to use CertBot to manage SSL for free, it uses Let’s Encrypt to get it’s certificates and keeps them renewed. You can also use your own certificates and place them as shown above. If using CertBot use the "Without SSL" settings and then run certbot on it and it will automatically configure auto-HTTPS redirection.
|
> If using Apache or NGINX, it is recommended to use CertBot to manage SSL for free, it uses Let’s Encrypt to get it’s certificates and keeps them renewed. You can also use your own certificates and place them as shown above. If using CertBot use the "Without SSL" settings and then run certbot on it and it will automatically configure auto-HTTPS redirection.
|
||||||
|
|
||||||
|
|
||||||
- <details><summary>Nginx</summary>
|
- <details><summary>Nginx</summary>
|
||||||
|
|
||||||
With SSL:
|
With SSL:
|
||||||
|
@ -81,13 +77,11 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
# And Certbot will auto-populate this nginx .conf file for you, while also renewing your certificates automatically in the future.
|
# And Certbot will auto-populate this nginx .conf file for you, while also renewing your certificates automatically in the future.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
- <details><summary>Nginx Proxy Manager</summary>
|
- <details><summary>Nginx Proxy Manager</summary>
|
||||||
|
|
||||||
Please enable "WebSockets Supports"
|
Please enable "WebSockets Supports"
|
||||||
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
- <details><summary>Apache</summary>
|
- <details><summary>Apache</summary>
|
||||||
|
|
||||||
|
@ -123,7 +117,6 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
- <details><summary>Caddy</summary>
|
- <details><summary>Caddy</summary>
|
||||||
|
|
||||||
|
@ -140,10 +133,10 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
If you run Uptime Kuma using Docker-Compose and don't already have a reverse proxy, this is a simple way to configure Caddy. You only need to replace 'status.example.org' with your domain.
|
If you run Uptime Kuma using Docker-Compose and don't already have a reverse proxy, this is a simple way to configure Caddy. You only need to replace 'status.example.org' with your domain.
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
version: '3'
|
version: "3"
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
name: 'proxy_network'
|
name: "proxy_network"
|
||||||
services:
|
services:
|
||||||
uptime-kuma:
|
uptime-kuma:
|
||||||
image: louislam/uptime-kuma:1
|
image: louislam/uptime-kuma:1
|
||||||
|
@ -169,28 +162,28 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
</details>
|
</details>
|
||||||
- <details><summary>Https-Portal</summary>
|
- <details><summary>Https-Portal</summary>
|
||||||
|
|
||||||
Enabling `WEBSOCKET=true`, or the equivalent in your docker environment variables will do the trick.
|
Enabling `WEBSOCKET=true`, or the equivalent in your docker environment variables will do the trick.\
|
||||||
Link to https-portal Websocket under [Advanced Usage](https://github.com/SteveLTN/https-portal#configure-nginx-through-environment-variables).
|
Link to https-portal Websocket under [Advanced Usage](https://github.com/SteveLTN/https-portal#configure-nginx-through-environment-variables).
|
||||||
|
|
||||||
Example docker-compose.yml file using Https-Portal:
|
Example docker-compose.yml file using Https-Portal:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
version: '3.3'
|
version: "3.3"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
https-portal:
|
https-portal:
|
||||||
image: steveltn/https-portal:1
|
image: steveltn/https-portal:1
|
||||||
ports:
|
ports:
|
||||||
- '80:80'
|
- "80:80"
|
||||||
- '443:443'
|
- "443:443"
|
||||||
links:
|
links:
|
||||||
- uptime-kuma
|
- uptime-kuma
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
DOMAINS: 'status.domain.com -> http://uptime-kuma:3001'
|
DOMAINS: "status.domain.com -> http://uptime-kuma:3001"
|
||||||
STAGE: 'production' # Don't use production until staging works
|
STAGE: "production" # Don't use production until staging works
|
||||||
# FORCE_RENEW: 'true'
|
# FORCE_RENEW: 'true'
|
||||||
WEBSOCKET: 'true'
|
WEBSOCKET: "true"
|
||||||
volumes:
|
volumes:
|
||||||
- https-portal-data:/var/lib/https-portal
|
- https-portal-data:/var/lib/https-portal
|
||||||
|
|
||||||
|
@ -207,25 +200,23 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
```
|
```
|
||||||
Only change "status.domain.com" to your domain
|
Only change "status.domain.com" to your domain
|
||||||
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
- <details><summary>Synology Builtin Reverse Proxy</summary>
|
- <details><summary>Synology Builtin Reverse Proxy</summary>
|
||||||
|
|
||||||
|
|
||||||
1. Bind IP to localhost when starting Kuma
|
1. Bind IP to localhost when starting Kuma
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -d --restart=always -p 127.0.0.1:3002:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
|
docker run -d --restart=always -p 127.0.0.1:3002:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
|
||||||
```
|
```
|
||||||
|
|
||||||
2. On your NAS, open *Control Panel* and then *Login Portal*
|
2. On your NAS, open _Control Panel_ and then _Login Portal_
|
||||||
3. Click on *Advanced*
|
3. Click on _Advanced_
|
||||||
4. Open *Reverse Proxy*
|
4. Open _Reverse Proxy_
|
||||||
5. Create a new Entry with the following values:
|
5. Create a new Entry with the following values:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
6. Click on the tab *Custom Header*
|
6. Click on the tab _Custom Header_
|
||||||
7. Click `Create` -> `Websockets`, this automatically fills in the required headers for websockets.
|
7. Click `Create` -> `Websockets`, this automatically fills in the required headers for websockets.
|
||||||
|
|
||||||
- <details><summary>Traefik</summary>
|
- <details><summary>Traefik</summary>
|
||||||
|
@ -242,7 +233,6 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
|
|
||||||
Add the above to your `docker-compose.yml` file and replace "YourOwnHostname" with the hostname you want to use. When setup correctly, Traefik can automatically get a Let’s Encrypt certificate for your service.
|
Add the above to your `docker-compose.yml` file and replace "YourOwnHostname" with the hostname you want to use. When setup correctly, Traefik can automatically get a Let’s Encrypt certificate for your service.
|
||||||
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
- <details><summary>Cloudflare</summary>
|
- <details><summary>Cloudflare</summary>
|
||||||
|
|
||||||
|
@ -250,8 +240,7 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
|
|
||||||
Cloudflare Dashboard -> Network -> Enable WebSockets
|
Cloudflare Dashboard -> Network -> Enable WebSockets
|
||||||
|
|
||||||
Read more:
|
Read more: https://github.com/louislam/uptime-kuma/issues/138#issuecomment-890485229
|
||||||
https://github.com/louislam/uptime-kuma/issues/138#issuecomment-890485229
|
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
- <details><summary>Cloudflare Tunnels</summary>
|
- <details><summary>Cloudflare Tunnels</summary>
|
||||||
|
@ -267,30 +256,30 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
|
|
||||||
**Basic tab**
|
**Basic tab**
|
||||||
- Name: `uptime-kuma`
|
- Name: `uptime-kuma`
|
||||||
- Virtual Host Root: `/path/to/uptime-kuma`
|
- Virtual Host Root:`/path/to/uptime-kuma`
|
||||||
- Enable Scripts/ExtApps: `Yes`
|
- Enable Scripts/ExtApps:`Yes`
|
||||||
|
|
||||||
**External app tab**
|
**External app tab**
|
||||||
- Add a `web server` app type
|
- Add a `web server` app type
|
||||||
- Name: `uptime-kuma`
|
- Name: `uptime-kuma`
|
||||||
- Address: `http://localhost:3001`
|
- Address:`http://localhost:3001`
|
||||||
|
|
||||||
**Context tab**
|
**Context tab**
|
||||||
|
|
||||||
- Add a `proxy` context
|
- Add a `proxy` context
|
||||||
- URI: `/`
|
- URI:`/`
|
||||||
- Web Server: `[VHost Level]: uptime-kuma`
|
- Web Server:`[VHost Level]: uptime-kuma`
|
||||||
- Header Operations:
|
- Header Operations:
|
||||||
```
|
```
|
||||||
Upgrade websocket
|
Upgrade websocket
|
||||||
Connection upgrade
|
Connection upgrade
|
||||||
```
|
```
|
||||||
- Access Allowed: `*`
|
- Access Allowed:`*`
|
||||||
|
|
||||||
**Web Socket Proxy tab**
|
**Web Socket Proxy tab**
|
||||||
|
|
||||||
- Add a `Web Socket Proxy Setup`
|
- Add a `Web Socket Proxy Setup`
|
||||||
- URI: `/`
|
- URI:`/`
|
||||||
- Address: `127.0.0.1:3001`
|
- Address: `127.0.0.1:3001`
|
||||||
|
|
||||||
**SSL tab (if needeed)**
|
**SSL tab (if needeed)**
|
||||||
|
@ -304,14 +293,9 @@ Unlike other web apps, Uptime Kuma is based on WebSocket. You need two more head
|
||||||
</details>
|
</details>
|
||||||
- <details><summary>HAProxy</summary>
|
- <details><summary>HAProxy</summary>
|
||||||
|
|
||||||
No special configuration is required when using HAProxy as a reverse
|
No special configuration is required when using HAProxy as a reverse proxy although you may wish to add the `timeout tunnel` option to either the `defaults`, `listen`, or `backend` sections. If using the `timeout
|
||||||
proxy although you may wish to add the `timeout tunnel` option to either
|
tunnel` option, it is also recommended to set `timeout client-fin` to handle instances where the client stops responding.
|
||||||
the `defaults`, `listen`, or `backend` sections. If using the `timeout
|
|
||||||
tunnel` option, it is also recommended to set `timeout client-fin` to
|
|
||||||
handle instances where the client stops responding.
|
|
||||||
|
|
||||||
Read more:
|
|
||||||
http://cbonte.github.io/haproxy-dconv/2.4/configuration.html#4.2-timeout%20tunnel
|
|
||||||
|
|
||||||
|
Read more: http://cbonte.github.io/haproxy-dconv/2.4/configuration.html#4.2-timeout%20tunnel
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
## Things You Should Know
|
## Things You Should Know
|
||||||
|
|
||||||
- Status page is intended for public users to check the status of your services
|
- Status page is intended for public users to check the status of your services
|
||||||
|
@ -9,9 +8,11 @@
|
||||||
- `http://example.com/status` is pointing to `http://example.com/status/default`
|
- `http://example.com/status` is pointing to `http://example.com/status/default`
|
||||||
|
|
||||||
## Multiple Status Pages
|
## Multiple Status Pages
|
||||||
|
|
||||||
(Version >= 1.13.0)
|
(Version >= 1.13.0)
|
||||||
|
|
||||||
## Domain Names for Status Pages
|
## Domain Names for Status Pages
|
||||||
|
|
||||||
(Version >= 1.14.0)
|
(Version >= 1.14.0)
|
||||||
|
|
||||||
Now you can show different status pages based on the domain names.
|
Now you can show different status pages based on the domain names.
|
||||||
|
@ -29,31 +30,37 @@ Now you can show different status pages based on the domain names.
|
||||||
4. Add your domain name in your status page settings sidebar.
|
4. Add your domain name in your status page settings sidebar.
|
||||||
|
|
||||||
This is my example, they both are from the same instance:
|
This is my example, they both are from the same instance:
|
||||||
|
|
||||||
- https://status.louislam.net
|
- https://status.louislam.net
|
||||||
- https://status.kuma.pet
|
- https://status.kuma.pet
|
||||||
|
|
||||||
## Custom Subdirectory / custom html on status pages
|
## Custom Subdirectory / custom html on status pages
|
||||||
|
|
||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
> For the following to work the [environment variable `UPTIME_KUMA_DISABLE_FRAME_SAMEORIGIN=true`](https://github.com/louislam/uptime-kuma/wiki/Environment-Variables) needs to be set.
|
> For the following to work the [environment variable `UPTIME_KUMA_DISABLE_FRAME_SAMEORIGIN=true`](https://github.com/louislam/uptime-kuma/wiki/Environment-Variables) needs to be set. This allows other pages to include Uptime Kuma as an `iframe` and makes you vulnerable to [`clickjacking`](https://en.wikipedia.org/wiki/Clickjacking).
|
||||||
> This allows other pages to include Uptime Kuma as an `iframe` and makes you vulnerable to [`clickjacking`](https://en.wikipedia.org/wiki/Clickjacking).
|
|
||||||
|
|
||||||
Changing the subdirectory of Uptime Kuma is tracked in https://github.com/louislam/uptime-kuma/pull/1092
|
Changing the subdirectory of Uptime Kuma is tracked in https://github.com/louislam/uptime-kuma/pull/1092 Embedding `script`s/`meta`-tags/... into Uptime Kuma is tracked in https://github.com/louislam/uptime-kuma/issues/3115
|
||||||
Embedding `script`s/`meta`-tags/... into Uptime Kuma is tracked in https://github.com/louislam/uptime-kuma/issues/3115
|
|
||||||
|
|
||||||
A solution to get around this limitation is to utilise an `iframe`.
|
A solution to get around this limitation is to utilise an `iframe`. Here is an example of how to configure this (replacing `INSERT_{...}_HERE` with your own values):
|
||||||
Here is an example of how to configure this (replacing `INSERT_{...}_HERE` with your own values):
|
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<html data-lt-installed="true"><head>
|
<html data-lt-installed="true">
|
||||||
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
<meta name="description" content="INSERT_DESCRIPTION_HERE">
|
<meta name="description" content="INSERT_DESCRIPTION_HERE">
|
||||||
<title>INSERT_TITLE_HERE</title>
|
<title>INSERT_TITLE_HERE</title>
|
||||||
</head>
|
</head>
|
||||||
<body style="height: 100vh;margin: 0;padding: 0;overflow: hidden;">
|
<body style="height: 100vh; margin: 0; padding: 0; overflow: hidden">
|
||||||
<iframe src="INSERT_UPTIME_KUMA_URL_HERE" frameborder="0" width="100%" height="100%" allowtransparency="yes" style="overflow:hidden;margin: 0; border: none;"></iframe>
|
<iframe
|
||||||
</body>
|
src="INSERT_UPTIME_KUMA_URL_HERE"
|
||||||
|
frameborder="0"
|
||||||
|
width="100%"
|
||||||
|
height="100%"
|
||||||
|
allowtransparency="yes"
|
||||||
|
style="overflow: hidden; margin: 0; border: none"
|
||||||
|
></iframe>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
```
|
```
|
||||||
|
|
|
@ -18,8 +18,7 @@ WantedBy=multi-user.target
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> This unit file assumes that you are running the software as a separate 'uptime' user.
|
> This unit file assumes that you are running the software as a separate 'uptime' user. If you have node/npm installed in a different path, you will need to alter the ExecStart line to match this.
|
||||||
> If you have node/npm installed in a different path, you will need to alter the ExecStart line to match this.
|
|
||||||
|
|
||||||
This unit file may be installed to /etc/systemd/system/uptime-kuma.service (Or whatever service name you'd prefer)
|
This unit file may be installed to /etc/systemd/system/uptime-kuma.service (Or whatever service name you'd prefer)
|
||||||
|
|
||||||
|
|
|
@ -9,20 +9,17 @@ docker run --rm -it -p 3000:3000 -p 3001:3001 --pull always -e 'UPTIME_KUMA_GH_R
|
||||||
```
|
```
|
||||||
|
|
||||||
v1.23.x
|
v1.23.x
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --rm -it -p 3000:3000 -p 3001:3001 --pull always -e 'UPTIME_KUMA_GH_REPO=<PR REPO, YOU CAN COPY>' louislam/uptime-kuma:pr-test
|
docker run --rm -it -p 3000:3000 -p 3001:3001 --pull always -e 'UPTIME_KUMA_GH_REPO=<PR REPO, YOU CAN COPY>' louislam/uptime-kuma:pr-test
|
||||||
```
|
```
|
||||||
|
|
||||||
Example:
|
Example: UPTIME_KUMA_GH_REPO=`chakflying:fix/beat-schedule-delay`
|
||||||
UPTIME_KUMA_GH_REPO=`chakflying:fix/beat-schedule-delay`
|
|
||||||
|
|
||||||
You can copy the name from here easily:
|
You can copy the name from here easily:
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/1336778/189304667-f0dbce41-95d1-4828-a0e4-e210859a160c.png" width=500 />
|
<img src="https://user-images.githubusercontent.com/1336778/189304667-f0dbce41-95d1-4828-a0e4-e210859a160c.png" width=500 />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Add `-v uptime-kuma-pr-test:/app/data` if you need a persistent storage.
|
Add `-v uptime-kuma-pr-test:/app/data` if you need a persistent storage.
|
||||||
|
|
||||||
|
|
||||||
After started, go to http://localhost:3000
|
After started, go to http://localhost:3000
|
|
@ -1,9 +1,7 @@
|
||||||
|
|
||||||
## Uptime Kuma reports `DOWN`, but the service can be accessed
|
## Uptime Kuma reports `DOWN`, but the service can be accessed
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> In case you did not know:
|
> In case you did not know: docker has [more than one network type](https://youtu.be/bKFMS5C4CG0) with only some of them allowing access to the local network and some not even allowing access to remote networks
|
||||||
> docker has [more than one network type](https://youtu.be/bKFMS5C4CG0) with only some of them allowing access to the local network and some not even allowing access to remote networks
|
|
||||||
|
|
||||||
If your Uptime Kuma reports `DOWN` of your service, knowing if it is a bug of Uptime Kuma / a docker network misconfiguration or a firewall is a good start to fixing the issue.
|
If your Uptime Kuma reports `DOWN` of your service, knowing if it is a bug of Uptime Kuma / a docker network misconfiguration or a firewall is a good start to fixing the issue.
|
||||||
|
|
||||||
|
@ -19,8 +17,7 @@ Install `curl`
|
||||||
apt update && apt --yes install curl
|
apt update && apt --yes install curl
|
||||||
```
|
```
|
||||||
|
|
||||||
Then you can debug this issue with commands like `ping`, `curl`, ...
|
Then you can debug this issue with commands like `ping`, `curl`, ... Examples:
|
||||||
Examples:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl https://google.com
|
curl https://google.com
|
||||||
|
@ -28,5 +25,6 @@ ping google.com
|
||||||
```
|
```
|
||||||
|
|
||||||
### IPv6
|
### IPv6
|
||||||
If you are running Uptime Kuma on top of Docker and the service can only be access via IPv6. Please follow the Docker's [official wiki](https://docs.docker.com/config/daemon/ipv6/) to enable IPv6 support.
|
|
||||||
|
If you are running Uptime Kuma on top of Docker and the service can only be access via IPv6. Please follow the Docker's [official wiki](https://docs.docker.com/config/daemon/ipv6/) to enable IPv6 support.\
|
||||||
IPv6 are not supported out of the box on Docker.
|
IPv6 are not supported out of the box on Docker.
|
2
_Menu.md
2
_Menu.md
|
@ -1,5 +1,4 @@
|
||||||
- **Introduction**
|
- **Introduction**
|
||||||
|
|
||||||
- [Home](README.md)
|
- [Home](README.md)
|
||||||
- [How to Install](🔧-How-to-Install.md)
|
- [How to Install](🔧-How-to-Install.md)
|
||||||
- [How to Update](🆙-How-to-Update.md)
|
- [How to Update](🆙-How-to-Update.md)
|
||||||
|
@ -8,7 +7,6 @@
|
||||||
- [API Documentation](API-Documentation.md)
|
- [API Documentation](API-Documentation.md)
|
||||||
|
|
||||||
- **Advanced**
|
- **Advanced**
|
||||||
|
|
||||||
- [Reverse Proxy](Reverse-Proxy.md)
|
- [Reverse Proxy](Reverse-Proxy.md)
|
||||||
- [Environment Variables](Environment-Variables.md)
|
- [Environment Variables](Environment-Variables.md)
|
||||||
- [Cloudflare Side Note](Cloudflare-Side-Note.md)
|
- [Cloudflare Side Note](Cloudflare-Side-Note.md)
|
||||||
|
|
|
@ -9,6 +9,7 @@ Wow! When I was preparing this changelog, I just couldn't believe that we have a
|
||||||
Migration Guide: https://github.com/louislam/uptime-kuma/wiki/Migration-From-v1-To-v2
|
Migration Guide: https://github.com/louislam/uptime-kuma/wiki/Migration-From-v1-To-v2
|
||||||
|
|
||||||
### 🆕 New Features
|
### 🆕 New Features
|
||||||
|
|
||||||
- #2738 #4728 #5258 #5075 Support MariaDB
|
- #2738 #4728 #5258 #5075 Support MariaDB
|
||||||
- #2086 #4052 #5257 Rootless docker image
|
- #2086 #4052 #5257 Rootless docker image
|
||||||
- #3441 Feat: Toast notification timeout settings (Thanks @chakflying)
|
- #3441 Feat: Toast notification timeout settings (Thanks @chakflying)
|
||||||
|
@ -48,8 +49,8 @@ Migration Guide: https://github.com/louislam/uptime-kuma/wiki/Migration-From-v1-
|
||||||
- #5205 feat: add notification provider `SendGrid` (Thanks @sctnightcore)
|
- #5205 feat: add notification provider `SendGrid` (Thanks @sctnightcore)
|
||||||
- #5199 feat: add `RabbitMQ` monitor (Thanks @Suven-p)
|
- #5199 feat: add `RabbitMQ` monitor (Thanks @Suven-p)
|
||||||
|
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- #3892 Drop backup and restore feature
|
- #3892 Drop backup and restore feature
|
||||||
- #3955 Drop install.sh and related files
|
- #3955 Drop install.sh and related files
|
||||||
- #4178 Drop cacheable-lookup
|
- #4178 Drop cacheable-lookup
|
||||||
|
@ -60,6 +61,7 @@ Migration Guide: https://github.com/louislam/uptime-kuma/wiki/Migration-From-v1-
|
||||||
- <kuma-url>/api/badge/:monitorID/uptime/:duration
|
- <kuma-url>/api/badge/:monitorID/uptime/:duration
|
||||||
|
|
||||||
### 💇♀️ Improvements
|
### 💇♀️ Improvements
|
||||||
|
|
||||||
- #2750 Uptime calculation improvement and 1-year uptime
|
- #2750 Uptime calculation improvement and 1-year uptime
|
||||||
- #3676 UI/UX: Added no tags found message to tags filter when empty (Thanks @BrandonDR)
|
- #3676 UI/UX: Added no tags found message to tags filter when empty (Thanks @BrandonDR)
|
||||||
- #3735 #3739 Push Examples
|
- #3735 #3739 Push Examples
|
||||||
|
@ -100,8 +102,8 @@ Migration Guide: https://github.com/louislam/uptime-kuma/wiki/Migration-From-v1-
|
||||||
- #5223 fix: expand hover trigger area of beat (Thanks @R-HNF)
|
- #5223 fix: expand hover trigger area of beat (Thanks @R-HNF)
|
||||||
- #5227 Update API URL to compatible with the latest version of ServerChan (Thanks @easychen)
|
- #5227 Update API URL to compatible with the latest version of ServerChan (Thanks @easychen)
|
||||||
|
|
||||||
|
|
||||||
### 🐞 Bug Fixes
|
### 🐞 Bug Fixes
|
||||||
|
|
||||||
- #3017 Fix: Add external mariaDB setup (Thanks @chakflying)
|
- #3017 Fix: Add external mariaDB setup (Thanks @chakflying)
|
||||||
- #3706 Fix: Incorrect database type check in sqlHourOffset (Thanks @chakflying)
|
- #3706 Fix: Incorrect database type check in sqlHourOffset (Thanks @chakflying)
|
||||||
- #3757 Fix: SetupDatabase misc. styling fixes (Thanks @chakflying)
|
- #3757 Fix: SetupDatabase misc. styling fixes (Thanks @chakflying)
|
||||||
|
@ -143,18 +145,19 @@ Migration Guide: https://github.com/louislam/uptime-kuma/wiki/Migration-From-v1-
|
||||||
- #5209 fix: slack rich notification not working correctly (Thanks @CommanderStorm)
|
- #5209 fix: slack rich notification not working correctly (Thanks @CommanderStorm)
|
||||||
|
|
||||||
### ⬆️ Security Fixes
|
### ⬆️ Security Fixes
|
||||||
|
|
||||||
- #912 push monitor: increase token security (Thanks @andreasbrett)
|
- #912 push monitor: increase token security (Thanks @andreasbrett)
|
||||||
- #4214 Feat: Refresh login token for the client initiating password change (Thanks @chakflying)
|
- #4214 Feat: Refresh login token for the client initiating password change (Thanks @chakflying)
|
||||||
- #5252 Update dependencies
|
- #5252 Update dependencies
|
||||||
|
|
||||||
### 🦎 Translation Contributions
|
### 🦎 Translation Contributions
|
||||||
|
|
||||||
- #3959 Added Uzbek language
|
- #3959 Added Uzbek language
|
||||||
- #4487 Added Irish language (Thanks @aindriu80)
|
- #4487 Added Irish language (Thanks @aindriu80)
|
||||||
- #4666 Changed Hebrew to be a RTL language (Thanks @msrl2000)
|
- #4666 Changed Hebrew to be a RTL language (Thanks @msrl2000)
|
||||||
- #3263 #3847 #3694 #3684 #4135 #4527 #4565 #4436 #4813 #5103 #4814 #4791 #4816 #4320 #4200 #4363 #5046 (Thanks @mueller-ma @chakflying @CommanderStorm @Vista2003 @LeoThies @bertday @whiteonred @purplespider @cyril59310)
|
- #3263 #3847 #3694 #3684 #4135 #4527 #4565 #4436 #4813 #5103 #4814 #4791 #4816 #4320 #4200 #4363 #5046 (Thanks @mueller-ma @chakflying @CommanderStorm @Vista2003 @LeoThies @bertday @whiteonred @purplespider @cyril59310)
|
||||||
- #3659 #3891 #4386 #4394 #5071 #4794 #5072 #5232 (Unfortunately, there are too many contributors, GitHub is not allow me to tag everyone here)
|
- #3659 #3891 #4386 #4394 #5071 #4794 #5072 #5232 (Unfortunately, there are too many contributors, GitHub is not allow me to tag everyone here)
|
||||||
|
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
|
|
||||||
Other small changes, code refactoring and comment/doc updates in this repo.
|
Other small changes, code refactoring and comment/doc updates in this repo.
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
- If you are using Raspbian (Buster) (Raspberry Pi), due to the bug of `libseccomp2`, it will be running into a startup problem. Click here to
|
- If you are using Raspbian (Buster) (Raspberry Pi), due to the bug of `libseccomp2`, it will be running into a startup problem. Click here to
|
||||||
|
|
||||||
#### Other breaking changes
|
#### Other breaking changes
|
||||||
|
|
||||||
- The `:duration` of these endpoints accepts `24`, `24h`, `30d`, `1y` only
|
- The `:duration` of these endpoints accepts `24`, `24h`, `30d`, `1y` only
|
||||||
- <kuma-url>/api/badge/:monitorID/ping/:duration
|
- <kuma-url>/api/badge/:monitorID/ping/:duration
|
||||||
- <kuma-url>/api/badge/:monitorID/uptime/:duration
|
- <kuma-url>/api/badge/:monitorID/uptime/:duration
|
||||||
|
@ -22,15 +23,18 @@
|
||||||
### [Non-Docker] Migrate from v1 to v2
|
### [Non-Docker] Migrate from v1 to v2
|
||||||
|
|
||||||
### 🆕 New Features
|
### 🆕 New Features
|
||||||
|
|
||||||
- #3017 #2738 #3017 Add support for MariaDB/MySQL
|
- #3017 #2738 #3017 Add support for MariaDB/MySQL
|
||||||
- #2750 1-year uptime
|
- #2750 1-year uptime
|
||||||
- #3441 Added Toast notification timeout settings and clear all toast notifications button (Thanks @chakflying)
|
- #3441 Added Toast notification timeout settings and clear all toast notifications button (Thanks @chakflying)
|
||||||
- #3499 [HTTP(s) monitor] Add support for x-www-form-urlencoded (Thanks @anderskvist @CommanderStorm @Computroniks)
|
- #3499 [HTTP(s) monitor] Add support for x-www-form-urlencoded (Thanks @anderskvist @CommanderStorm @Computroniks)
|
||||||
- #3414 [SMTP notification] Added an ability to custom the email body and switched to a better template engine (Thanks @CommanderStorm)
|
- #3414 [SMTP notification] Added an ability to custom the email body and switched to a better template engine (Thanks @CommanderStorm)
|
||||||
- #2783 Add Grafana Oncall notification provider (Thanks @atmaniak)
|
- #2783 Add Grafana Oncall notification provider (Thanks @atmaniak)
|
||||||
|
|
||||||
<!-- - #3350 [exe] Added `--intranet` argument (Thanks @vanhoutenbos)-->
|
<!-- - #3350 [exe] Added `--intranet` argument (Thanks @vanhoutenbos)-->
|
||||||
|
|
||||||
### 💇♀️ Improvements
|
### 💇♀️ Improvements
|
||||||
|
|
||||||
- #2750 Improve uptime calculation performance
|
- #2750 Improve uptime calculation performance
|
||||||
- #3515 Full server-side pagination for important events (Thanks @chakflying)
|
- #3515 Full server-side pagination for important events (Thanks @chakflying)
|
||||||
- #3676 Show no tags message in the filter (Thanks @BrandonDR)
|
- #3676 Show no tags message in the filter (Thanks @BrandonDR)
|
||||||
|
@ -39,8 +43,8 @@
|
||||||
- #2759 Use API v2 for Bark notification (Thanks @harryzcy @chakflying)
|
- #2759 Use API v2 for Bark notification (Thanks @harryzcy @chakflying)
|
||||||
- #3636 [Webhook notification] Improve the documentation (Thanks @CommanderStorm)
|
- #3636 [Webhook notification] Improve the documentation (Thanks @CommanderStorm)
|
||||||
|
|
||||||
|
|
||||||
### 🐛 Bug Fixes
|
### 🐛 Bug Fixes
|
||||||
|
|
||||||
- #3864 Fix: Use ActionSelect for Docker Host & validate input (Thanks @chakflying)
|
- #3864 Fix: Use ActionSelect for Docker Host & validate input (Thanks @chakflying)
|
||||||
- #3820 Clickable link monitors aren't underlined when editing status page (Thanks @dreygur)
|
- #3820 Clickable link monitors aren't underlined when editing status page (Thanks @dreygur)
|
||||||
|
|
||||||
|
@ -48,16 +52,15 @@
|
||||||
|
|
||||||
- #912 Hardening: Increased the push token length from 10 to 32. Added reset button to reset a push token (Thanks @andreasbrett)
|
- #912 Hardening: Increased the push token length from 10 to 32. Added reset button to reset a push token (Thanks @andreasbrett)
|
||||||
|
|
||||||
|
|
||||||
### 🦎 Translation Contributors
|
### 🦎 Translation Contributors
|
||||||
|
|
||||||
- #3263 #3684 Add ability to translate toast messages (Thanks @chakflying)
|
- #3263 #3684 Add ability to translate toast messages (Thanks @chakflying)
|
||||||
- #3959 Add Uzbek language (Thanks @golibnarzullayev)
|
- #3959 Add Uzbek language (Thanks @golibnarzullayev)
|
||||||
- #3659 (Thanks )
|
- #3659 (Thanks )
|
||||||
|
|
||||||
### Others
|
### Others
|
||||||
- Other small changes, code refactoring and comment/doc updates in this repo:
|
|
||||||
@M1CK431 @Computroniks @CommanderStorm @mueller-ma @chakflying @Zaid-maker @Saibamen @harryzcy
|
- Other small changes, code refactoring and comment/doc updates in this repo: @M1CK431 @Computroniks @CommanderStorm @mueller-ma @chakflying @Zaid-maker @Saibamen @harryzcy
|
||||||
- @chakflying and @CommanderStorm have been added as collaborators and will help with moderation, organizing and managing issues
|
- @chakflying and @CommanderStorm have been added as collaborators and will help with moderation, organizing and managing issues
|
||||||
|
|
||||||
Please let me know if your username is missing, if your pull request has been merged in this version, or your commit has been included in one of the pull requests.
|
Please let me know if your username is missing, if your pull request has been merged in this version, or your commit has been included in one of the pull requests.
|
||||||
|
|
||||||
|
|
12
deno.jsonc
Normal file
12
deno.jsonc
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
// Run `deno fmt` to format
|
||||||
|
"fmt": {
|
||||||
|
"indentWidth": 4,
|
||||||
|
"semiColons": true,
|
||||||
|
"singleQuote": false,
|
||||||
|
"lineWidth": 9999,
|
||||||
|
"exclude": [
|
||||||
|
"Badge.md" // Formatting not stable for this file
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
51
index.html
51
index.html
|
@ -1,13 +1,23 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Uptime Kuma Docs</title>
|
<title>Uptime Kuma Docs</title>
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||||
<meta name="description" content="Description">
|
<meta name="description" content="Description">
|
||||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
<meta
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/docsify/4.12.1/themes/vue.min.css">
|
name="viewport"
|
||||||
<link rel="icon" type="image/svg+xml" href="https://raw.githubusercontent.com/louislam/uptime-kuma/master/public/icon.svg">
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
|
||||||
|
>
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://cdnjs.cloudflare.com/ajax/libs/docsify/4.12.1/themes/vue.min.css"
|
||||||
|
>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/svg+xml"
|
||||||
|
href="https://raw.githubusercontent.com/louislam/uptime-kuma/master/public/icon.svg"
|
||||||
|
>
|
||||||
<style>
|
<style>
|
||||||
.app-name-link img {
|
.app-name-link img {
|
||||||
width: 96px;
|
width: 96px;
|
||||||
|
@ -15,26 +25,25 @@
|
||||||
padding: 18px;
|
padding: 18px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script>
|
<script>
|
||||||
window.$docsify = {
|
window.$docsify = {
|
||||||
name: 'Uptime Kuma Docs',
|
name: "Uptime Kuma Docs",
|
||||||
repo: 'https://github.com/louislam/uptime-kuma',
|
repo: "https://github.com/louislam/uptime-kuma",
|
||||||
loadSidebar: "_Menu.md",
|
loadSidebar: "_Menu.md",
|
||||||
auto2top: true,
|
auto2top: true,
|
||||||
search: 'auto',
|
search: "auto",
|
||||||
routerMode: 'history',
|
routerMode: "history",
|
||||||
executeScript: true,
|
executeScript: true,
|
||||||
logo: 'https://raw.githubusercontent.com/louislam/uptime-kuma/master/public/icon.svg',
|
logo: "https://raw.githubusercontent.com/louislam/uptime-kuma/master/public/icon.svg",
|
||||||
relativePath: true,
|
relativePath: true,
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/docsify/4.12.1/docsify.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/docsify/4.12.1/docsify.min.js"></script>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/docsify/4.12.1/plugins/search.min.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/docsify/4.12.1/plugins/search.min.js"></script>
|
||||||
<script src=" https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/components/prism-typescript.min.js"></script>
|
<script src=" https://cdnjs.cloudflare.com/ajax/libs/prism/1.25.0/components/prism-typescript.min.js"></script>
|
||||||
|
</body>
|
||||||
</body>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -7,9 +7,7 @@ docker run -d --restart=unless-stopped -p 3001:3001 -v uptime-kuma:/app/data --n
|
||||||
Uptime Kuma is now running on http://localhost:3001
|
Uptime Kuma is now running on http://localhost:3001
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Filesystem support for POSIX file locks is required to avoid SQLite database corruption.
|
> Filesystem support for POSIX file locks is required to avoid SQLite database corruption. Be aware of possible [file locking problems](https://www.sqlite.org/howtocorrupt.html#_file_locking_problems) such as those [commonly encountered with NFS](https://www.sqlite.org/faq.html#q5). **Please map the `/app/data`-folder to a local directory or volume.**
|
||||||
> Be aware of possible [file locking problems](https://www.sqlite.org/howtocorrupt.html#_file_locking_problems) such as those [commonly encountered with NFS](https://www.sqlite.org/faq.html#q5).
|
|
||||||
> **Please map the `/app/data`-folder to a local directory or volume.**
|
|
||||||
|
|
||||||
Browse to http://localhost:3001 after started.
|
Browse to http://localhost:3001 after started.
|
||||||
|
|
||||||
|
@ -20,6 +18,7 @@ docker run -d --restart=unless-stopped -p <YOUR_PORT>:3001 -v <YOUR_DIR OR VOLUM
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Docker Tags Description
|
#### Docker Tags Description
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -38,14 +37,12 @@ docker run -d --restart=unless-stopped -p <YOUR_PORT>:3001 -v <YOUR_DIR OR VOLUM
|
||||||
|
|
||||||
### 🐳 Docker Compose
|
### 🐳 Docker Compose
|
||||||
|
|
||||||
Example docker-compose template:
|
Example docker-compose template: [https://github.com/louislam/uptime-kuma/blob/1.23.X/docker/docker-compose.yml](https://github.com/louislam/uptime-kuma/blob/1.23.X/docker/docker-compose.yml)
|
||||||
[https://github.com/louislam/uptime-kuma/blob/1.23.X/docker/docker-compose.yml](https://github.com/louislam/uptime-kuma/blob/1.23.X/docker/docker-compose.yml)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### 💪🏻 Non-Docker
|
### 💪🏻 Non-Docker
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
|
@ -87,25 +84,19 @@ pm2 monit
|
||||||
pm2 save && pm2 startup
|
pm2 save && pm2 startup
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## (Optional) One more step for Reverse Proxy
|
## (Optional) One more step for Reverse Proxy
|
||||||
|
|
||||||
This is optional for someone who want to use a reverse proxy.
|
This is optional for someone who want to use a reverse proxy.
|
||||||
|
|
||||||
Unlikely other web apps, Uptime Kuma is based on WebSocket. You need two more headers **"Upgrade"** and **"Connection"** in order to reverse proxy WebSocket.
|
Unlikely other web apps, Uptime Kuma is based on WebSocket. You need two more headers **"Upgrade"** and **"Connection"** in order to reverse proxy WebSocket.
|
||||||
|
|
||||||
Please read wiki for more info:
|
Please read wiki for more info: https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy
|
||||||
https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy
|
|
||||||
|
|
||||||
## Videos
|
## Videos
|
||||||
|
|
||||||
- [Learn Uptime Kuma in 5 Minutes](https://www.youtube.com/watch?v=muZiPdH2JZ8) by DEVOPS UNLOCKED
|
- [Learn Uptime Kuma in 5 Minutes](https://www.youtube.com/watch?v=muZiPdH2JZ8) by DEVOPS UNLOCKED Install with the docker run command
|
||||||
Install with the docker run command
|
- [Meet Uptime Kuma, a Fancy Open Source Uptime Monitor](https://www.youtube.com/watch?v=r_A5NKkAqZM) by Techno Tim Install with docker-compose
|
||||||
- [Meet Uptime Kuma, a Fancy Open Source Uptime Monitor](https://www.youtube.com/watch?v=r_A5NKkAqZM) by Techno Tim
|
- [Monitor Status with Uptime Kuma - Let's install Uptime Kuma with Docker](https://www.youtube.com/watch?v=rRKvDMGeeBA) by Geeked Install with Portainer
|
||||||
Install with docker-compose
|
|
||||||
- [Monitor Status with Uptime Kuma - Let's install Uptime Kuma with Docker](https://www.youtube.com/watch?v=rRKvDMGeeBA) by Geeked
|
|
||||||
Install with Portainer
|
|
||||||
|
|
||||||
|
|
||||||
## Unofficial & Experimental
|
## Unofficial & Experimental
|
||||||
|
|
||||||
|
@ -115,10 +106,9 @@ https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy
|
||||||
### ☸️ OpenShift 4 and Kubernetes Helm 3 Chart (Unofficial)
|
### ☸️ OpenShift 4 and Kubernetes Helm 3 Chart (Unofficial)
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> This Chart relies on a repackaged OCI Container Image, which lets *uptime-kuma* run as **non-root** user.
|
> This Chart relies on a repackaged OCI Container Image, which lets _uptime-kuma_ run as **non-root** user. The entire repackage process is automated via GitHub Actions and renovate-bot keeps everything up to date. (feel free to audit it yourself)
|
||||||
> The entire repackage process is automated via GitHub Actions and renovate-bot keeps everything up to date. (feel free to audit it yourself)
|
|
||||||
|
|
||||||
The Containerfile used to rebundle *uptime-kuma*: [rootless Containerfile](https://github.com/k3rnelpan1c-dev/uptime-kuma-helm/blob/main/container/Containerfile)
|
The Containerfile used to rebundle _uptime-kuma_: [rootless Containerfile](https://github.com/k3rnelpan1c-dev/uptime-kuma-helm/blob/main/container/Containerfile)
|
||||||
|
|
||||||
https://github.com/k3rnelpan1c-dev/uptime-kuma-helm
|
https://github.com/k3rnelpan1c-dev/uptime-kuma-helm
|
||||||
|
|
||||||
|
@ -142,37 +132,34 @@ https://mariushosting.com/how-to-install-uptime-kuma-on-your-synology-nas/
|
||||||
|
|
||||||
### One-Click Hosting on PikaPods
|
### One-Click Hosting on PikaPods
|
||||||
|
|
||||||
Run with one click on [PikaPods.com](https://www.pikapods.com/). Free for about 3 months with welcome credit.
|
Run with one click on [PikaPods.com](https://www.pikapods.com/). Free for about 3 months with welcome credit. PikaPods have produced a [getting started video](https://www.youtube.com/watch?v=gbbcnNKPi8M) if you like consuming information in this form.
|
||||||
PikaPods have produced a [getting started video](https://www.youtube.com/watch?v=gbbcnNKPi8M) if you like consuming information in this form.
|
|
||||||
|
|
||||||
[](https://www.pikapods.com/pods?run=uptime-kuma)
|
[](https://www.pikapods.com/pods?run=uptime-kuma)
|
||||||
|
|
||||||
### Install on Azure Container Instance with TLS endpoint
|
### Install on Azure Container Instance with TLS endpoint
|
||||||
|
|
||||||
Unofficial tutorial by Stefan:
|
Unofficial tutorial by Stefan: https://haci.io/posts/uptime-kuma-azure-container-instance/
|
||||||
https://haci.io/posts/uptime-kuma-azure-container-instance/
|
|
||||||
|
|
||||||
### Install on Azure AppService Container
|
### Install on Azure AppService Container
|
||||||
|
|
||||||
Unofficial tutorial by Leandro:
|
Unofficial tutorial by Leandro: https://www.leandroscardua.com/blog/deploy-uptime-kuma-on-azure/
|
||||||
https://www.leandroscardua.com/blog/deploy-uptime-kuma-on-azure/
|
|
||||||
|
|
||||||
### Install on Azure AppService with persistent storage
|
### Install on Azure AppService with persistent storage
|
||||||
|
|
||||||
Unofficial bicep deployment script by Yannick Zwijsen:
|
Unofficial bicep deployment script by Yannick Zwijsen: https://github.com/yzwijsen/deploy-uptime-kuma-azure
|
||||||
https://github.com/yzwijsen/deploy-uptime-kuma-azure
|
|
||||||
|
|
||||||
### SQLite S3 persistent storage with Litestream.io
|
### SQLite S3 persistent storage with Litestream.io
|
||||||
|
|
||||||
[](https://railway.app/new/template/UfDasl?referralCode=373)
|
[](https://railway.app/new/template/UfDasl?referralCode=373)
|
||||||
|
|
||||||
Run uptime-kuma with S3 persistent sqlite database:
|
Run uptime-kuma with S3 persistent sqlite database: https://github.com/fluential/litestream-uptime-kuma/
|
||||||
https://github.com/fluential/litestream-uptime-kuma/
|
|
||||||
|
|
||||||
### One-Click Deployment on Alibaba Cloud
|
### One-Click Deployment on Alibaba Cloud
|
||||||
|
|
||||||
[](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceName=Higress社区版)
|
[](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceName=Higress社区版)
|
||||||
|
|
||||||
Follow the deployment guide to deploy Uptime Kuma on Alibaba Cloud. Both domestic site and internationl sites are supported.
|
Follow the deployment guide to deploy Uptime Kuma on Alibaba Cloud. Both domestic site and internationl sites are supported.
|
||||||
|
|
||||||
- [Deployment Guide in English](https://computenest.console.aliyun.com/service/detail/ap-southeast-1/service-6a4ce994c30c49b1ae6b/2?type=user&isRecommend=true)
|
- [Deployment Guide in English](https://computenest.console.aliyun.com/service/detail/ap-southeast-1/service-6a4ce994c30c49b1ae6b/2?type=user&isRecommend=true)
|
||||||
- [中文部署文档](https://computenest.console.aliyun.com/service/detail/cn-hangzhou/service-34d66f31479747cd9957/2?type=user&isRecommend=true)
|
- [中文部署文档](https://computenest.console.aliyun.com/service/detail/cn-hangzhou/service-34d66f31479747cd9957/2?type=user&isRecommend=true)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue