mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-27 12:00:35 +03:00
Merge branch 'master' into master
This commit is contained in:
commit
ae8b5eea5a
12 changed files with 16413 additions and 7018 deletions
78
README.md
78
README.md
|
@ -19,79 +19,51 @@ It is a self-hosted monitoring tool like "Uptime Robot".
|
||||||
|
|
||||||
## 🔧 How to Install
|
## 🔧 How to Install
|
||||||
|
|
||||||
### 🐳 Docker
|
### 🚀 Installer via cli
|
||||||
|
|
||||||
|
Interactive cli installer, supports Docker or without Docker.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Create a volume
|
curl -o kuma_install.sh https://raw.githubusercontent.com/louislam/uptime-kuma/master/install.sh && sudo bash kuma_install.sh
|
||||||
docker volume create uptime-kuma
|
|
||||||
|
|
||||||
# Start the container
|
|
||||||
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Browse to http://localhost:3001 after started.
|
Browse to http://localhost:3001 after started.
|
||||||
|
|
||||||
### ☸️ Kubernetes
|
|
||||||
|
|
||||||
See more [here](kubernetes/README.md)
|
|
||||||
|
|
||||||
|
|
||||||
If you want to change **port** and **volume**, or need to browse via a reserve proxy, please read <a href="https://github.com/louislam/uptime-kuma/wiki/Installation#docker">wiki</a>.
|
If you want to change **port** and **volume**, or need to browse via a reserve proxy, please read <a href="https://github.com/louislam/uptime-kuma/wiki/Installation#docker">wiki</a>.
|
||||||
|
|
||||||
### 💪🏻 Without Docker (Recommended for x86/x64 only)
|
### 💪🏻 Without Docker (Recommended for x86/x64 only)
|
||||||
|
|
||||||
Required Tools: Node.js >= 14, git and pm2.
|
Required Tools: Node.js >= 14, git and pm2.
|
||||||
|
=======
|
||||||
|
### 🐳 Docker
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/louislam/uptime-kuma.git
|
docker volume create uptime-kuma
|
||||||
cd uptime-kuma
|
|
||||||
npm run setup
|
|
||||||
|
|
||||||
# Option 1. Try it
|
|
||||||
npm run start-server
|
|
||||||
|
|
||||||
# (Recommended)
|
|
||||||
# Option 2. Run in background using PM2
|
|
||||||
# Install PM2 if you don't have: npm install pm2 -g
|
|
||||||
pm2 start npm --name uptime-kuma -- run start-server
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
Browse to http://localhost:3001 after started.
|
|
||||||
|
|
||||||
If you want to change **port** and **hostname**, or need to browse via a reserve proxy, please read <a href="https://github.com/louislam/uptime-kuma/wiki/Installation#without-docker-x86x64-only">wiki</a>.
|
|
||||||
|
|
||||||
## 🆙 How to Update
|
|
||||||
|
|
||||||
### 🆙🐳 Docker
|
|
||||||
|
|
||||||
Re-pull the latest docker image and create another container with the same volume.
|
|
||||||
|
|
||||||
For someone who used my "How-to-use" commands to install Uptime Kuma, you can update by this:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker pull louislam/uptime-kuma:1
|
|
||||||
docker stop uptime-kuma
|
|
||||||
docker rm uptime-kuma
|
|
||||||
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
|
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
|
||||||
```
|
```
|
||||||
|
|
||||||
PS: For every new release, it takes some time to build the docker image, please be patient if it is not available yet.
|
### ☸️ Kubernetes
|
||||||
|
|
||||||
### 🆙 💪🏻 Without Docker
|
See more [here](kubernetes/README.md)
|
||||||
|
|
||||||
```bash
|
Browse to http://localhost:3001 after started.
|
||||||
cd <uptime-kuma-directory>
|
|
||||||
git fetch --all
|
### Advanced Installation
|
||||||
git checkout 1.2.0 --force
|
|
||||||
npm install
|
If you need more options or need to browse via a reserve proxy, please read:
|
||||||
npm run build
|
|
||||||
pm2 restart uptime-kuma
|
https://github.com/louislam/uptime-kuma/wiki/%F0%9F%94%A7-How-to-Install
|
||||||
```
|
|
||||||
|
|
||||||
|
## 🆙 How to Update
|
||||||
|
|
||||||
|
Please read:
|
||||||
|
|
||||||
|
https://github.com/louislam/uptime-kuma/wiki/%F0%9F%86%99-How-to-Update
|
||||||
|
|
||||||
## 🆕 What's Next?
|
## 🆕 What's Next?
|
||||||
|
|
||||||
I will mark requests/issues to the next milestone.
|
I will mark requests/issues to the next milestone.
|
||||||
|
|
||||||
https://github.com/louislam/uptime-kuma/milestones
|
https://github.com/louislam/uptime-kuma/milestones
|
||||||
|
|
||||||
## 🖼 More Screenshots
|
## 🖼 More Screenshots
|
||||||
|
@ -126,5 +98,3 @@ If you want to report a bug or request a new feature. Free feel to open a new is
|
||||||
If you want to modify Uptime Kuma, this guideline maybe useful for you: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md
|
If you want to modify Uptime Kuma, this guideline maybe useful for you: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md
|
||||||
|
|
||||||
English proofreading is needed too, because my grammar is not that great sadly. Feel free to correct my grammar in this Readme, source code or wiki.
|
English proofreading is needed too, because my grammar is not that great sadly. Feel free to correct my grammar in this Readme, source code or wiki.
|
||||||
|
|
||||||
🐻
|
|
||||||
|
|
14
SECURITY.md
Normal file
14
SECURITY.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
Use this section to tell people about which versions of your project are
|
||||||
|
currently being supported with security updates.
|
||||||
|
|
||||||
|
| Version | Supported |
|
||||||
|
| ------- | ------------------ |
|
||||||
|
| 1.x.x | :white_check_mark: |
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
https://github.com/louislam/uptime-kuma/issues
|
|
@ -1,13 +1,15 @@
|
||||||
// install.sh is generated by ./extra/install.batsh, do not modify it directly.
|
// install.sh is generated by ./extra/install.batsh, do not modify it directly.
|
||||||
// "npm run compile-install-script" to compile install.sh
|
// "npm run compile-install-script" to compile install.sh
|
||||||
// The command is working on Windows PowerShell and Docker for Windows only.
|
// The command is working on Windows PowerShell and Docker for Windows only.
|
||||||
|
|
||||||
|
|
||||||
|
// curl -o kuma_install.sh https://raw.githubusercontent.com/louislam/uptime-kuma/master/install.sh && sudo bash kuma_install.sh
|
||||||
println("=====================");
|
println("=====================");
|
||||||
println("Uptime Kuma Installer");
|
println("Uptime Kuma Installer");
|
||||||
println("=====================");
|
println("=====================");
|
||||||
println("");
|
println("Supported OS: CentOS 7/8, Ubuntu >= 16.04 and Debian");
|
||||||
println("---------------------------------------");
|
println("---------------------------------------");
|
||||||
println("This script is designed for Linux and basic usage.");
|
println("This script is designed for Linux and basic usage.");
|
||||||
println("Tested with CentOS 7/8");
|
|
||||||
println("For advanced usage, please go to https://github.com/louislam/uptime-kuma/wiki/Installation");
|
println("For advanced usage, please go to https://github.com/louislam/uptime-kuma/wiki/Installation");
|
||||||
println("---------------------------------------");
|
println("---------------------------------------");
|
||||||
println("");
|
println("");
|
||||||
|
@ -21,8 +23,64 @@ if ("$1" != "") {
|
||||||
call("read", "-p", "Which installation method do you prefer? [DOCKER/local]: ", "type");
|
call("read", "-p", "Which installation method do you prefer? [DOCKER/local]: ", "type");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defaultPort = "3001";
|
||||||
|
|
||||||
|
function checkNode() {
|
||||||
|
bash("nodeVersion=$(node -e 'console.log(process.versions.node.split(`.`)[0])')");
|
||||||
|
println("Node Version: " ++ nodeVersion);
|
||||||
|
|
||||||
|
if (nodeVersion < "12") {
|
||||||
|
println("Error: Required Node.js 14");
|
||||||
|
call("exit", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nodeVersion == "12") {
|
||||||
|
println("Warning: NodeJS " ++ nodeVersion ++ " is not tested.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function deb() {
|
||||||
|
bash("nodeCheck=$(node -v)");
|
||||||
|
bash("apt --yes update");
|
||||||
|
|
||||||
|
if (nodeCheck != "") {
|
||||||
|
checkNode();
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Old nodejs binary name is "nodejs"
|
||||||
|
bash("check=$(nodejs --version)");
|
||||||
|
if (check != "") {
|
||||||
|
println("Error: 'node' command is not found, but 'nodejs' command is found. Your NodeJS should be too old.");
|
||||||
|
bash("exit 1");
|
||||||
|
}
|
||||||
|
|
||||||
|
bash("curlCheck=$(curl --version)");
|
||||||
|
if (curlCheck == "") {
|
||||||
|
println("Installing Curl");
|
||||||
|
bash("apt --yes install curl");
|
||||||
|
}
|
||||||
|
|
||||||
|
println("Installing Node.js 14");
|
||||||
|
bash("curl -sL https://deb.nodesource.com/setup_14.x | bash - > log.txt");
|
||||||
|
bash("apt --yes install nodejs");
|
||||||
|
bash("node -v");
|
||||||
|
|
||||||
|
bash("nodeCheckAgain=$(node -v)");
|
||||||
|
|
||||||
|
if (nodeCheckAgain == "") {
|
||||||
|
println("Error during Node.js installation");
|
||||||
|
bash("exit 1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bash("check=$(git --version)");
|
||||||
|
if (check == "") {
|
||||||
|
println("Installing Git");
|
||||||
|
bash("apt --yes install git");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (type == "local") {
|
if (type == "local") {
|
||||||
defaultPort = "3001";
|
|
||||||
defaultInstallPath = "/opt/uptime-kuma";
|
defaultInstallPath = "/opt/uptime-kuma";
|
||||||
|
|
||||||
if (exists("/etc/redhat-release")) {
|
if (exists("/etc/redhat-release")) {
|
||||||
|
@ -34,7 +92,9 @@ if (type == "local") {
|
||||||
if (os == "Ubuntu") {
|
if (os == "Ubuntu") {
|
||||||
distribution = "ubuntu";
|
distribution = "ubuntu";
|
||||||
}
|
}
|
||||||
|
if (os == "Debian") {
|
||||||
|
distribution = "debian";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bash("arch=$(uname -i)");
|
bash("arch=$(uname -i)");
|
||||||
|
@ -46,7 +106,7 @@ if (type == "local") {
|
||||||
if ("$3" != "") {
|
if ("$3" != "") {
|
||||||
port = "$3";
|
port = "$3";
|
||||||
} else {
|
} else {
|
||||||
call("read", "-p", "Listening Port [$port]: ", "port");
|
call("read", "-p", "Listening Port [$defaultPort]: ", "port");
|
||||||
|
|
||||||
if (port == "") {
|
if (port == "") {
|
||||||
port = defaultPort;
|
port = defaultPort;
|
||||||
|
@ -56,28 +116,19 @@ if (type == "local") {
|
||||||
if ("$2" != "") {
|
if ("$2" != "") {
|
||||||
installPath = "$2";
|
installPath = "$2";
|
||||||
} else {
|
} else {
|
||||||
call("read", "-p", "Installation Path [$installPath]: ", "installPath");
|
call("read", "-p", "Installation Path [$defaultInstallPath]: ", "installPath");
|
||||||
|
|
||||||
if (installPath == "") {
|
if (installPath == "") {
|
||||||
installPath = defaultInstallPath;
|
installPath = defaultInstallPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CentOS
|
||||||
if (distribution == "rhel") {
|
if (distribution == "rhel") {
|
||||||
bash("nodeCheck=$(node -v)");
|
bash("nodeCheck=$(node -v)");
|
||||||
|
|
||||||
if (nodeCheck != "") {
|
if (nodeCheck != "") {
|
||||||
bash("nodeVersion=$(node -e 'console.log(process.versions.node.split(`.`)[0])')");
|
checkNode();
|
||||||
println("Node Version: " ++ nodeVersion);
|
|
||||||
|
|
||||||
if (nodeVersion < "12") {
|
|
||||||
println("Error: Required Node.js 14");
|
|
||||||
call("exit", "1");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nodeVersion == "12") {
|
|
||||||
println("Warning: NodeJS " ++ nodeVersion ++ " is not tested.");
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
bash("curlCheck=$(curl --version)");
|
bash("curlCheck=$(curl --version)");
|
||||||
|
@ -105,28 +156,90 @@ if (type == "local") {
|
||||||
bash("yum -y -q install git");
|
bash("yum -y -q install git");
|
||||||
}
|
}
|
||||||
|
|
||||||
bash("check=$(pm2 --version)");
|
// Ubuntu
|
||||||
|
} else if (distribution == "ubuntu") {
|
||||||
|
deb();
|
||||||
|
|
||||||
|
// Debian
|
||||||
|
} else if (distribution == "debian") {
|
||||||
|
deb();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Unknown distribution
|
||||||
|
error = 0;
|
||||||
|
|
||||||
|
bash("check=$(git --version)");
|
||||||
if (check == "") {
|
if (check == "") {
|
||||||
println("Installing PM2");
|
error = 1;
|
||||||
bash("npm install pm2 -g");
|
println("Error: git is missing");
|
||||||
bash("pm2 startup");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bash("mkdir -p $installPath");
|
bash("check=$(node -v)");
|
||||||
bash("cd $installPath");
|
if (check == "") {
|
||||||
bash("git clone https://github.com/louislam/uptime-kuma.git .");
|
error = 1;
|
||||||
bash("npm run setup");
|
println("Error: node is missing");
|
||||||
|
}
|
||||||
|
|
||||||
bash("pm2 start npm --name uptime-kuma -- run start-server -- --port=$port");
|
if (error > 0) {
|
||||||
bash("pm2 list");
|
println("Please install above missing software");
|
||||||
}
|
bash("exit 1");
|
||||||
|
}
|
||||||
if (distribution == "ubuntu") {
|
|
||||||
println("TODO");
|
|
||||||
// TODO
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bash("check=$(pm2 --version)");
|
||||||
|
if (check == "") {
|
||||||
|
println("Installing PM2");
|
||||||
|
bash("npm install pm2 -g");
|
||||||
|
bash("pm2 startup");
|
||||||
|
}
|
||||||
|
|
||||||
|
bash("mkdir -p $installPath");
|
||||||
|
bash("cd $installPath");
|
||||||
|
bash("git clone https://github.com/louislam/uptime-kuma.git .");
|
||||||
|
bash("npm run setup");
|
||||||
|
|
||||||
|
bash("pm2 start npm --name uptime-kuma -- run start-server -- --port=$port");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
call("read", "-p", "Expose Port [3001]: ", "port");
|
defaultVolume = "uptime-kuma";
|
||||||
call("read", "-p", "Volume Name [uptime-kuma]: ", "volume");
|
|
||||||
|
bash("check=$(docker -v)");
|
||||||
|
if (check == "") {
|
||||||
|
println("Error: docker is not found!");
|
||||||
|
bash("exit 1");
|
||||||
|
}
|
||||||
|
|
||||||
|
bash("check=$(docker info)");
|
||||||
|
|
||||||
|
bash("if [[ \"$check\" == *\"Is the docker daemon running\"* ]]; then
|
||||||
|
echo \"Error: docker is not running\"
|
||||||
|
exit 1
|
||||||
|
fi");
|
||||||
|
|
||||||
|
if ("$3" != "") {
|
||||||
|
port = "$3";
|
||||||
|
} else {
|
||||||
|
call("read", "-p", "Expose Port [$defaultPort]: ", "port");
|
||||||
|
|
||||||
|
if (port == "") {
|
||||||
|
port = defaultPort;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("$2" != "") {
|
||||||
|
volume = "$2";
|
||||||
|
} else {
|
||||||
|
call("read", "-p", "Volume Name [$defaultVolume]: ", "volume");
|
||||||
|
|
||||||
|
if (volume == "") {
|
||||||
|
volume = defaultVolume;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println("Port: $port");
|
||||||
|
println("Volume: $volume");
|
||||||
|
bash("docker volume create $volume");
|
||||||
|
bash("docker run -d --restart=always -p $port:3001 -v $volume:/app/data --name uptime-kuma louislam/uptime-kuma:1");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
println("http://localhost:$port");
|
||||||
|
|
155
install.sh
155
install.sh
|
@ -1,13 +1,13 @@
|
||||||
# install.sh is generated by ./extra/install.batsh, do not modify it directly.
|
# install.sh is generated by ./extra/install.batsh, do not modify it directly.
|
||||||
# "npm run compile-install-script" to compile install.sh
|
# "npm run compile-install-script" to compile install.sh
|
||||||
# The command is working on Windows PowerShell and Docker for Windows only.
|
# The command is working on Windows PowerShell and Docker for Windows only.
|
||||||
|
# curl -o kuma_install.sh https://raw.githubusercontent.com/louislam/uptime-kuma/master/install.sh && sudo bash kuma_install.sh
|
||||||
"echo" "-e" "====================="
|
"echo" "-e" "====================="
|
||||||
"echo" "-e" "Uptime Kuma Installer"
|
"echo" "-e" "Uptime Kuma Installer"
|
||||||
"echo" "-e" "====================="
|
"echo" "-e" "====================="
|
||||||
"echo" "-e" ""
|
"echo" "-e" "Supported OS: CentOS 7/8, Ubuntu >= 16.04 and Debian"
|
||||||
"echo" "-e" "---------------------------------------"
|
"echo" "-e" "---------------------------------------"
|
||||||
"echo" "-e" "This script is designed for Linux and basic usage."
|
"echo" "-e" "This script is designed for Linux and basic usage."
|
||||||
"echo" "-e" "Tested with CentOS 7/8"
|
|
||||||
"echo" "-e" "For advanced usage, please go to https://github.com/louislam/uptime-kuma/wiki/Installation"
|
"echo" "-e" "For advanced usage, please go to https://github.com/louislam/uptime-kuma/wiki/Installation"
|
||||||
"echo" "-e" "---------------------------------------"
|
"echo" "-e" "---------------------------------------"
|
||||||
"echo" "-e" ""
|
"echo" "-e" ""
|
||||||
|
@ -19,8 +19,54 @@ if [ "$1" != "" ]; then
|
||||||
else
|
else
|
||||||
"read" "-p" "Which installation method do you prefer? [DOCKER/local]: " "type"
|
"read" "-p" "Which installation method do you prefer? [DOCKER/local]: " "type"
|
||||||
fi
|
fi
|
||||||
|
defaultPort="3001"
|
||||||
|
function checkNode {
|
||||||
|
local _0
|
||||||
|
nodeVersion=$(node -e 'console.log(process.versions.node.split(`.`)[0])')
|
||||||
|
"echo" "-e" "Node Version: ""$nodeVersion"
|
||||||
|
_0="12"
|
||||||
|
if [ $(($nodeVersion < $_0)) == 1 ]; then
|
||||||
|
"echo" "-e" "Error: Required Node.js 14"
|
||||||
|
"exit" "1"
|
||||||
|
fi
|
||||||
|
if [ "$nodeVersion" == "12" ]; then
|
||||||
|
"echo" "-e" "Warning: NodeJS ""$nodeVersion"" is not tested."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function deb {
|
||||||
|
nodeCheck=$(node -v)
|
||||||
|
apt --yes update
|
||||||
|
if [ "$nodeCheck" != "" ]; then
|
||||||
|
"checkNode"
|
||||||
|
else
|
||||||
|
# Old nodejs binary name is "nodejs"
|
||||||
|
check=$(nodejs --version)
|
||||||
|
if [ "$check" != "" ]; then
|
||||||
|
"echo" "-e" "Error: 'node' command is not found, but 'nodejs' command is found. Your NodeJS should be too old."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
curlCheck=$(curl --version)
|
||||||
|
if [ "$curlCheck" == "" ]; then
|
||||||
|
"echo" "-e" "Installing Curl"
|
||||||
|
apt --yes install curl
|
||||||
|
fi
|
||||||
|
"echo" "-e" "Installing Node.js 14"
|
||||||
|
curl -sL https://deb.nodesource.com/setup_14.x | bash - > log.txt
|
||||||
|
apt --yes install nodejs
|
||||||
|
node -v
|
||||||
|
nodeCheckAgain=$(node -v)
|
||||||
|
if [ "$nodeCheckAgain" == "" ]; then
|
||||||
|
"echo" "-e" "Error during Node.js installation"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
check=$(git --version)
|
||||||
|
if [ "$check" == "" ]; then
|
||||||
|
"echo" "-e" "Installing Git"
|
||||||
|
apt --yes install git
|
||||||
|
fi
|
||||||
|
}
|
||||||
if [ "$type" == "local" ]; then
|
if [ "$type" == "local" ]; then
|
||||||
defaultPort="3001"
|
|
||||||
defaultInstallPath="/opt/uptime-kuma"
|
defaultInstallPath="/opt/uptime-kuma"
|
||||||
if [ -e "/etc/redhat-release" ]; then
|
if [ -e "/etc/redhat-release" ]; then
|
||||||
os=$("cat" "/etc/redhat-release")
|
os=$("cat" "/etc/redhat-release")
|
||||||
|
@ -30,6 +76,9 @@ if [ "$type" == "local" ]; then
|
||||||
os=$(head -n1 /etc/issue | cut -f 1 -d ' ')
|
os=$(head -n1 /etc/issue | cut -f 1 -d ' ')
|
||||||
if [ "$os" == "Ubuntu" ]; then
|
if [ "$os" == "Ubuntu" ]; then
|
||||||
distribution="ubuntu"
|
distribution="ubuntu"
|
||||||
|
fi
|
||||||
|
if [ "$os" == "Debian" ]; then
|
||||||
|
distribution="debian"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -40,7 +89,7 @@ fi
|
||||||
if [ "$3" != "" ]; then
|
if [ "$3" != "" ]; then
|
||||||
port="$3"
|
port="$3"
|
||||||
else
|
else
|
||||||
"read" "-p" "Listening Port [$port]: " "port"
|
"read" "-p" "Listening Port [$defaultPort]: " "port"
|
||||||
if [ "$port" == "" ]; then
|
if [ "$port" == "" ]; then
|
||||||
port="$defaultPort"
|
port="$defaultPort"
|
||||||
fi
|
fi
|
||||||
|
@ -48,24 +97,16 @@ fi
|
||||||
if [ "$2" != "" ]; then
|
if [ "$2" != "" ]; then
|
||||||
installPath="$2"
|
installPath="$2"
|
||||||
else
|
else
|
||||||
"read" "-p" "Installation Path [$installPath]: " "installPath"
|
"read" "-p" "Installation Path [$defaultInstallPath]: " "installPath"
|
||||||
if [ "$installPath" == "" ]; then
|
if [ "$installPath" == "" ]; then
|
||||||
installPath="$defaultInstallPath"
|
installPath="$defaultInstallPath"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
# CentOS
|
||||||
if [ "$distribution" == "rhel" ]; then
|
if [ "$distribution" == "rhel" ]; then
|
||||||
nodeCheck=$(node -v)
|
nodeCheck=$(node -v)
|
||||||
if [ "$nodeCheck" != "" ]; then
|
if [ "$nodeCheck" != "" ]; then
|
||||||
nodeVersion=$(node -e 'console.log(process.versions.node.split(`.`)[0])')
|
"checkNode"
|
||||||
"echo" "-e" "Node Version: ""$nodeVersion"
|
|
||||||
_0="12"
|
|
||||||
if [ $(($nodeVersion < $_0)) == 1 ]; then
|
|
||||||
"echo" "-e" "Error: Required Node.js 14"
|
|
||||||
"exit" "1"
|
|
||||||
fi
|
|
||||||
if [ "$nodeVersion" == "12" ]; then
|
|
||||||
"echo" "-e" "Warning: NodeJS ""$nodeVersion"" is not tested."
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
curlCheck=$(curl --version)
|
curlCheck=$(curl --version)
|
||||||
if [ "$curlCheck" == "" ]; then
|
if [ "$curlCheck" == "" ]; then
|
||||||
|
@ -87,24 +128,76 @@ fi
|
||||||
"echo" "-e" "Installing Git"
|
"echo" "-e" "Installing Git"
|
||||||
yum -y -q install git
|
yum -y -q install git
|
||||||
fi
|
fi
|
||||||
check=$(pm2 --version)
|
# Ubuntu
|
||||||
if [ "$check" == "" ]; then
|
else
|
||||||
"echo" "-e" "Installing PM2"
|
if [ "$distribution" == "ubuntu" ]; then
|
||||||
npm install pm2 -g
|
"deb"
|
||||||
pm2 startup
|
# Debian
|
||||||
|
else
|
||||||
|
if [ "$distribution" == "debian" ]; then
|
||||||
|
"deb"
|
||||||
|
else
|
||||||
|
# Unknown distribution
|
||||||
|
error=$((0))
|
||||||
|
check=$(git --version)
|
||||||
|
if [ "$check" == "" ]; then
|
||||||
|
error=$((1))
|
||||||
|
"echo" "-e" "Error: git is missing"
|
||||||
fi
|
fi
|
||||||
mkdir -p $installPath
|
check=$(node -v)
|
||||||
cd $installPath
|
if [ "$check" == "" ]; then
|
||||||
git clone https://github.com/louislam/uptime-kuma.git .
|
error=$((1))
|
||||||
npm run setup
|
"echo" "-e" "Error: node is missing"
|
||||||
pm2 start npm --name uptime-kuma -- run start-server -- --port=$port
|
|
||||||
pm2 list
|
|
||||||
fi
|
fi
|
||||||
if [ "$distribution" == "ubuntu" ]; then
|
if [ $(($error > 0)) == 1 ]; then
|
||||||
"echo" "-e" "TODO"
|
"echo" "-e" "Please install above missing software"
|
||||||
# TODO
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
check=$(pm2 --version)
|
||||||
|
if [ "$check" == "" ]; then
|
||||||
|
"echo" "-e" "Installing PM2"
|
||||||
|
npm install pm2 -g
|
||||||
|
pm2 startup
|
||||||
|
fi
|
||||||
|
mkdir -p $installPath
|
||||||
|
cd $installPath
|
||||||
|
git clone https://github.com/louislam/uptime-kuma.git .
|
||||||
|
npm run setup
|
||||||
|
pm2 start npm --name uptime-kuma -- run start-server -- --port=$port
|
||||||
else
|
else
|
||||||
"read" "-p" "Expose Port [3001]: " "port"
|
defaultVolume="uptime-kuma"
|
||||||
"read" "-p" "Volume Name [uptime-kuma]: " "volume"
|
check=$(docker -v)
|
||||||
|
if [ "$check" == "" ]; then
|
||||||
|
"echo" "-e" "Error: docker is not found!"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
check=$(docker info)
|
||||||
|
if [[ "$check" == *"Is the docker daemon running"* ]]; then
|
||||||
|
echo "Error: docker is not running"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "$3" != "" ]; then
|
||||||
|
port="$3"
|
||||||
|
else
|
||||||
|
"read" "-p" "Expose Port [$defaultPort]: " "port"
|
||||||
|
if [ "$port" == "" ]; then
|
||||||
|
port="$defaultPort"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$2" != "" ]; then
|
||||||
|
volume="$2"
|
||||||
|
else
|
||||||
|
"read" "-p" "Volume Name [$defaultVolume]: " "volume"
|
||||||
|
if [ "$volume" == "" ]; then
|
||||||
|
volume="$defaultVolume"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
"echo" "-e" "Port: $port"
|
||||||
|
"echo" "-e" "Volume: $volume"
|
||||||
|
docker volume create $volume
|
||||||
|
docker run -d --restart=always -p $port:3001 -v $volume:/app/data --name uptime-kuma louislam/uptime-kuma:1
|
||||||
|
fi
|
||||||
|
"echo" "-e" "http://localhost:$port"
|
||||||
|
|
22940
package-lock.json
generated
22940
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -25,7 +25,11 @@
|
||||||
"mark-as-nightly": "node extra/mark-as-nightly.js",
|
"mark-as-nightly": "node extra/mark-as-nightly.js",
|
||||||
"reset-password": "node extra/reset-password.js",
|
"reset-password": "node extra/reset-password.js",
|
||||||
"compile-install-script": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command ./extra/compile-install-script.ps1",
|
"compile-install-script": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command ./extra/compile-install-script.ps1",
|
||||||
"test-install-script": "docker build --no-cache -f test/test_install_script/centos7.dockerfile ."
|
"test-install-script-centos7": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/centos7.dockerfile .",
|
||||||
|
"test-install-script-alpine3": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/alpine3.dockerfile .",
|
||||||
|
"test-install-script-ubuntu": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu.dockerfile .",
|
||||||
|
"test-install-script-ubuntu1604": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/ubuntu1604.dockerfile .",
|
||||||
|
"test-install-script-debian": "npm run compile-install-script && docker build --progress plain -f test/test_install_script/debian.dockerfile ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<LineChart :chart-data="chartData" :height="100" :options="chartOptions" />
|
<LineChart :chart-data="chartData" :options="chartOptions" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -31,6 +31,19 @@ export default {
|
||||||
chartOptions() {
|
chartOptions() {
|
||||||
return {
|
return {
|
||||||
responsive: true,
|
responsive: true,
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
onResize: (chart) => {
|
||||||
|
chart.canvas.parentNode.style.position = "relative";
|
||||||
|
if (screen.width < 576) {
|
||||||
|
chart.canvas.parentNode.style.height = "275px";
|
||||||
|
} else if (screen.width < 768) {
|
||||||
|
chart.canvas.parentNode.style.height = "320px";
|
||||||
|
} else if (screen.width < 992) {
|
||||||
|
chart.canvas.parentNode.style.height = "300px";
|
||||||
|
} else {
|
||||||
|
chart.canvas.parentNode.style.height = "250px";
|
||||||
|
}
|
||||||
|
},
|
||||||
layout: {
|
layout: {
|
||||||
padding: {
|
padding: {
|
||||||
left: 10,
|
left: 10,
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="showPingChartBox" class="shadow-box big-padding text-center">
|
<div v-if="showPingChartBox" class="shadow-box big-padding text-center ping-chart-wrapper">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<PingChart :monitor-id="monitor.id" />
|
<PingChart :monitor-id="monitor.id" />
|
||||||
|
@ -337,6 +337,10 @@ export default {
|
||||||
margin-left: 10px !important;
|
margin-left: 10px !important;
|
||||||
margin-right: 10px !important;
|
margin-right: 10px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ping-chart-wrapper {
|
||||||
|
padding: 10px !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 400px) {
|
@media (max-width: 400px) {
|
||||||
|
|
4
test/test_install_script/alpine3.dockerfile
Normal file
4
test/test_install_script/alpine3.dockerfile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
FROM alpine:3
|
||||||
|
RUN apk add --update nodejs npm git
|
||||||
|
COPY ./install.sh .
|
||||||
|
RUN /bin/sh install.sh local /opt/uptime-kuma 3000 0.0.0.0
|
10
test/test_install_script/debian.dockerfile
Normal file
10
test/test_install_script/debian.dockerfile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
FROM debian
|
||||||
|
|
||||||
|
# Test invalid node version, these commands install nodejs 10
|
||||||
|
# RUN apt-get update
|
||||||
|
# RUN apt --yes install nodejs
|
||||||
|
# RUN ln -s /usr/bin/nodejs /usr/bin/node
|
||||||
|
# RUN node -v
|
||||||
|
|
||||||
|
COPY ./install.sh .
|
||||||
|
RUN bash install.sh local /opt/uptime-kuma 3000 0.0.0.0
|
10
test/test_install_script/ubuntu.dockerfile
Normal file
10
test/test_install_script/ubuntu.dockerfile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
FROM ubuntu
|
||||||
|
|
||||||
|
# Test invalid node version, these commands install nodejs 10
|
||||||
|
# RUN apt-get update
|
||||||
|
# RUN apt --yes install nodejs
|
||||||
|
# RUN ln -s /usr/bin/nodejs /usr/bin/node
|
||||||
|
# RUN node -v
|
||||||
|
|
||||||
|
COPY ./install.sh .
|
||||||
|
RUN bash install.sh local /opt/uptime-kuma 3000 0.0.0.0
|
|
@ -1,4 +1,10 @@
|
||||||
FROM ubuntu:16.04
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
# Test invalid node version, these commands install nodejs 10
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt --yes install nodejs
|
||||||
|
# RUN ln -s /usr/bin/nodejs /usr/bin/node
|
||||||
|
# RUN node -v
|
||||||
|
|
||||||
COPY ./install.sh .
|
COPY ./install.sh .
|
||||||
RUN bash install.sh local /opt/uptime-kuma 3000 0.0.0.0
|
RUN bash install.sh local /opt/uptime-kuma 3000 0.0.0.0
|
||||||
|
|
Loading…
Reference in a new issue