mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-30 18:24:03 +00:00
Merge pull request #3101 from stumpylog/feature/cloudflare-pkgs
Install cloudflared via Cloudflare Package Repository
This commit is contained in:
commit
74dd07c3ca
2 changed files with 10 additions and 58 deletions
|
@ -8,21 +8,21 @@ WORKDIR /app
|
||||||
# Install Curl
|
# Install Curl
|
||||||
# Install Apprise, add sqlite3 cli for debugging in the future, iputils-ping for ping, util-linux for setpriv
|
# Install Apprise, add sqlite3 cli for debugging in the future, iputils-ping for ping, util-linux for setpriv
|
||||||
# Stupid python3 and python3-pip actually install a lot of useless things into Debian, specify --no-install-recommends to skip them, make the base even smaller than alpine!
|
# Stupid python3 and python3-pip actually install a lot of useless things into Debian, specify --no-install-recommends to skip them, make the base even smaller than alpine!
|
||||||
RUN apt update && \
|
RUN apt-get update && \
|
||||||
apt --yes --no-install-recommends install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \
|
apt-get --yes --no-install-recommends install python3 python3-pip python3-cryptography python3-six python3-yaml python3-click python3-markdown python3-requests python3-requests-oauthlib \
|
||||||
sqlite3 iputils-ping util-linux dumb-init git && \
|
sqlite3 iputils-ping util-linux dumb-init git curl ca-certificates && \
|
||||||
pip3 --no-cache-dir install apprise==1.3.0 && \
|
pip3 --no-cache-dir install apprise==1.3.0 && \
|
||||||
rm -rf /var/lib/apt/lists/* && \
|
rm -rf /var/lib/apt/lists/* && \
|
||||||
apt --yes autoremove
|
apt --yes autoremove
|
||||||
|
|
||||||
# Install cloudflared
|
# Install cloudflared
|
||||||
# dpkg --add-architecture arm: cloudflared do not provide armhf, this is workaround. Read more: https://github.com/cloudflare/cloudflared/issues/583
|
RUN set -eux && \
|
||||||
COPY extra/download-cloudflared.js ./extra/download-cloudflared.js
|
mkdir -p --mode=0755 /usr/share/keyrings && \
|
||||||
RUN node ./extra/download-cloudflared.js $TARGETPLATFORM && \
|
curl --fail --show-error --silent --location --insecure https://pkg.cloudflare.com/cloudflare-main.gpg --output /usr/share/keyrings/cloudflare-main.gpg && \
|
||||||
dpkg --add-architecture arm && \
|
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared buster main' | tee /etc/apt/sources.list.d/cloudflared.list && \
|
||||||
apt update && \
|
apt-get update && \
|
||||||
apt --yes --no-install-recommends install ./cloudflared.deb && \
|
apt-get install --yes --no-install-recommends cloudflared && \
|
||||||
|
cloudflared version && \
|
||||||
rm -rf /var/lib/apt/lists/* && \
|
rm -rf /var/lib/apt/lists/* && \
|
||||||
rm -f cloudflared.deb && \
|
|
||||||
apt --yes autoremove
|
apt --yes autoremove
|
||||||
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
//
|
|
||||||
|
|
||||||
const http = require("https"); // or 'https' for https:// URLs
|
|
||||||
const fs = require("fs");
|
|
||||||
|
|
||||||
const platform = process.argv[2];
|
|
||||||
|
|
||||||
if (!platform) {
|
|
||||||
console.error("No platform??");
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
let arch = null;
|
|
||||||
|
|
||||||
if (platform === "linux/amd64") {
|
|
||||||
arch = "amd64";
|
|
||||||
} else if (platform === "linux/arm64") {
|
|
||||||
arch = "arm64";
|
|
||||||
} else if (platform === "linux/arm/v7") {
|
|
||||||
arch = "arm";
|
|
||||||
} else {
|
|
||||||
console.error("Invalid platform?? " + platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
const file = fs.createWriteStream("cloudflared.deb");
|
|
||||||
get("https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-" + arch + ".deb");
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Download specified file
|
|
||||||
* @param {string} url URL to request
|
|
||||||
*/
|
|
||||||
function get(url) {
|
|
||||||
http.get(url, function (res) {
|
|
||||||
if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
|
|
||||||
console.log("Redirect to " + res.headers.location);
|
|
||||||
get(res.headers.location);
|
|
||||||
} else if (res.statusCode >= 200 && res.statusCode < 300) {
|
|
||||||
res.pipe(file);
|
|
||||||
|
|
||||||
res.on("end", function () {
|
|
||||||
console.log("Downloaded");
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.error(res.statusCode);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
Loading…
Reference in a new issue