Initial commit (code only without large binaries)
9
EdgeUser/build/build-all.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
./build.sh linux amd64
|
||||
#./build.sh linux 386
|
||||
#./build.sh linux arm64
|
||||
#./build.sh linux mips64
|
||||
#./build.sh linux mips64le
|
||||
#./build.sh darwin amd64
|
||||
#./build.sh darwin arm64
|
||||
118
EdgeUser/build/build.sh
Normal file
@@ -0,0 +1,118 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function build() {
|
||||
ROOT=$(dirname "$0")
|
||||
NAME="edge-user"
|
||||
DIST=$ROOT/"../dist/${NAME}"
|
||||
OS=${1}
|
||||
ARCH=${2}
|
||||
JS_ROOT=$ROOT/../web/public/js
|
||||
|
||||
if [ -z "$OS" ]; then
|
||||
echo "usage: build.sh OS ARCH"
|
||||
exit
|
||||
fi
|
||||
if [ -z "$ARCH" ]; then
|
||||
echo "usage: build.sh OS ARCH"
|
||||
exit
|
||||
fi
|
||||
|
||||
VERSION=$(lookup-version "$ROOT"/../internal/const/const.go)
|
||||
ZIP="${NAME}-${OS}-${ARCH}-v${VERSION}.zip"
|
||||
|
||||
# generate files
|
||||
echo "generating files ..."
|
||||
go run -tags=plus "$ROOT"/../cmd/edge-user/main.go generate
|
||||
if [ "$(which uglifyjs)" ]; then
|
||||
echo "compress to component.js ..."
|
||||
uglifyjs --compress --mangle -- "${JS_ROOT}"/components.src.js > "${JS_ROOT}"/components.js
|
||||
uglifyjs --compress --mangle -- "${JS_ROOT}"/utils.js > "${JS_ROOT}"/utils.min.js
|
||||
else
|
||||
echo "copy to component.js ..."
|
||||
cp "${JS_ROOT}"/components.src.js "${JS_ROOT}"/components.js
|
||||
cp "${JS_ROOT}"/utils.js "${JS_ROOT}"/utils.min.js
|
||||
fi
|
||||
|
||||
# create dir & copy files
|
||||
echo "copying ..."
|
||||
if [ ! -d "$DIST" ]; then
|
||||
mkdir "$DIST"
|
||||
mkdir "$DIST"/bin
|
||||
mkdir "$DIST"/configs
|
||||
mkdir "$DIST"/logs
|
||||
mkdir "$DIST"/www
|
||||
fi
|
||||
|
||||
cp -R "$ROOT"/../web "$DIST"/
|
||||
rm -f "$DIST"/web/tmp/*
|
||||
rm -rf "$DIST"/web/public/js/components
|
||||
rm -f "$DIST"/web/public/js/components.src.js
|
||||
cp "$ROOT"/configs/server.template.yaml "$DIST"/configs/
|
||||
cp "$ROOT"/configs/api_user.template.yaml "$DIST"/configs/
|
||||
cp -R "$ROOT"/portal "$DIST"/
|
||||
|
||||
# find gcc
|
||||
GCC_DIR=""
|
||||
CC_PATH=""
|
||||
CXX_PATH=""
|
||||
if [ "${ARCH}" == "amd64" ]; then
|
||||
GCC_DIR="/usr/local/gcc/x86_64-unknown-linux-gnu/bin"
|
||||
CC_PATH="x86_64-unknown-linux-gnu-gcc"
|
||||
CXX_PATH="x86_64-unknown-linux-gnu-g++"
|
||||
fi
|
||||
if [ "${ARCH}" == "arm64" ]; then
|
||||
GCC_DIR="/usr/local/gcc/aarch64-unknown-linux-gnu/bin"
|
||||
CC_PATH="aarch64-unknown-linux-gnu-gcc"
|
||||
CXX_PATH="aarch64-unknown-linux-gnu-g++"
|
||||
fi
|
||||
|
||||
# build
|
||||
echo "building v${VERSION}/${OS}/${ARCH} ..."
|
||||
if [ -f "${GCC_DIR}/${CC_PATH}" ]; then
|
||||
echo " building ${NAME} with gcc ..."
|
||||
env CC="${GCC_DIR}/${CC_PATH}" \
|
||||
CXX="${GCC_DIR}/${CXX_PATH}" \
|
||||
CGO_ENABLED=1 \
|
||||
GOOS="$OS" GOARCH="$ARCH" go build -tags="plus gcc" -trimpath -ldflags="-linkmode external -extldflags -static -s -w" -o "$DIST"/bin/${NAME} "$ROOT"/../cmd/edge-user/main.go
|
||||
else
|
||||
env GOOS="$OS" GOARCH="$ARCH" go build -tags="plus" -trimpath -ldflags="-s -w" -o "$DIST"/bin/${NAME} "$ROOT"/../cmd/edge-user/main.go
|
||||
fi
|
||||
if [ ! -f "${DIST}/bin/${NAME}" ]; then
|
||||
echo "build failed!"
|
||||
exit
|
||||
fi
|
||||
|
||||
# delete hidden files
|
||||
find "$DIST" -name ".DS_Store" -delete
|
||||
find "$DIST" -name ".gitignore" -delete
|
||||
find "$DIST" -name "*.less" -delete
|
||||
#find "$DIST" -name "*.css.map" -delete
|
||||
#find "$DIST" -name "*.js.map" -delete
|
||||
|
||||
# zip
|
||||
echo "zip files ..."
|
||||
cd "${DIST}/../" || exit
|
||||
if [ -f "${ZIP}" ]; then
|
||||
rm -f "${ZIP}"
|
||||
fi
|
||||
zip -r -X -q "${ZIP}" ${NAME}/
|
||||
rm -rf ${NAME}
|
||||
cd - || exit
|
||||
|
||||
echo "[done]"
|
||||
}
|
||||
|
||||
function lookup-version() {
|
||||
FILE=$1
|
||||
VERSION_DATA=$(cat "$FILE")
|
||||
re="Version[ ]+=[ ]+\"([0-9.]+)\""
|
||||
if [[ $VERSION_DATA =~ $re ]]; then
|
||||
VERSION=${BASH_REMATCH[1]}
|
||||
echo "$VERSION"
|
||||
else
|
||||
echo "could not match version"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
build "$1" "$2"
|
||||
5
EdgeUser/build/configs/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
server.yaml
|
||||
api.yaml
|
||||
api_user.yaml
|
||||
*.pem
|
||||
*.key
|
||||
3
EdgeUser/build/configs/api_user.template.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
rpc.endpoints: [ "http://127.0.0.1:8003" ]
|
||||
nodeId: ""
|
||||
secret: ""
|
||||
16
EdgeUser/build/configs/server.template.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
# environment code
|
||||
env: prod
|
||||
|
||||
# http
|
||||
http:
|
||||
"on": true
|
||||
listen: [ "0.0.0.0:7799" ]
|
||||
|
||||
# https
|
||||
https:
|
||||
"on": false
|
||||
listen: [ "0.0.0.0:443"]
|
||||
cert: ""
|
||||
key: ""
|
||||
|
||||
|
||||
22
EdgeUser/build/generate.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
JS_ROOT=../web/public/js
|
||||
|
||||
echo "generating component.src.js ..."
|
||||
go run -tags=plus ../cmd/edge-user/main.go generate
|
||||
|
||||
if [ "$(which uglifyjs)" ]; then
|
||||
echo "compress to component.js ..."
|
||||
uglifyjs --compress --mangle -- ${JS_ROOT}/components.src.js > ${JS_ROOT}/components.js
|
||||
|
||||
echo "compress to utils.min.js ..."
|
||||
uglifyjs --compress --mangle -- ${JS_ROOT}/utils.js > ${JS_ROOT}/utils.min.js
|
||||
else
|
||||
echo "copy to component.js ..."
|
||||
cp ${JS_ROOT}/components.src.js ${JS_ROOT}/components.js
|
||||
|
||||
echo "copy to utils.min.js ..."
|
||||
cp ${JS_ROOT}/utils.js ${JS_ROOT}/utils.min.js
|
||||
fi
|
||||
|
||||
echo "ok"
|
||||
1
EdgeUser/build/logs/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.log
|
||||
BIN
EdgeUser/build/portal/assets/app--0Yk_Z2x.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
EdgeUser/build/portal/assets/app-1ZU8pWtb.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
EdgeUser/build/portal/assets/app-2RYXKOwh.woff2
Normal file
BIN
EdgeUser/build/portal/assets/app-5P3lgTyi.eot
Normal file
BIN
EdgeUser/build/portal/assets/app-7GdVu_me.woff2
Normal file
BIN
EdgeUser/build/portal/assets/app-B-9xmgoG.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
BIN
EdgeUser/build/portal/assets/app-DQ1UBV8x.ttf
Normal file
1
EdgeUser/build/portal/assets/app-IZWrvoZF.js
Normal file
@@ -0,0 +1 @@
|
||||
import{c as e,o as a,L as t,S as c}from"./app-xg-RHuhr.js";const o={__name:"index",setup(p){return(r,s)=>(a(),e(t,{"active-top-menu":"products"}))}};c({app:o});
|
||||
BIN
EdgeUser/build/portal/assets/app-KSFRE5IF.woff2
Normal file
1
EdgeUser/build/portal/assets/app-PJ3xFsWk.js
Normal file
@@ -0,0 +1 @@
|
||||
import{D as c,c as i,w as _,L as l,o as a,a as t,u as e,e as o,t as n,S as d}from"./app-xg-RHuhr.js";const r={class:"block"},u={class:"inner-block"},p={key:0},h={class:"text-3xl font-normal mb-2"},f={class:"text-gray-600"},m=["innerHTML"],k={key:1},v={__name:"post",setup(b){const s=c.ref().value.post;return(x,T)=>(a(),i(l,null,{default:_(()=>[t("div",r,[t("div",u,[e(s)!=null?(a(),o("div",p,[t("h1",h,n(e(s).subject),1),t("div",f,n(e(s).publishedTime),1),t("div",{innerHTML:e(s).body},null,8,m)])):(a(),o("div",k,"POST NOT FOUND"))])])]),_:1}))}};d({app:v});
|
||||
1
EdgeUser/build/portal/assets/app-Pf8WSNyw.css
Normal file
@@ -0,0 +1 @@
|
||||
.p-breadcrumb[data-v-3cc2e4a8]{border:none;margin-left:-1rem}h2[data-v-3cc2e4a8]{text-align:center;margin-bottom:2rem}.summary-box[data-v-3cc2e4a8]{position:relative}.summary-box .description-box[data-v-3cc2e4a8]{margin-right:42rem}.summary-box .description-box p.title[data-v-3cc2e4a8]{font-weight:700}.summary-box .description-box i.pi-check[data-v-3cc2e4a8]{color:var(--primary-600);font-size:.9rem}.summary-box .image-box[data-v-3cc2e4a8]{position:absolute;top:0;right:2rem}.summary-box .image-box[data-v-3cc2e4a8] img{width:26rem!important}.summary-box .second-menubar[data-v-3cc2e4a8]{margin-top:4rem}.news-box[data-v-3cc2e4a8]{padding:0}.news-box li[data-v-3cc2e4a8]{width:33%}.news-box li a[data-v-3cc2e4a8]{color:var(--text-color);text-decoration:none}.news-box li a[data-v-3cc2e4a8]:hover{color:var(--primary-color)}.news-box li span.date-span[data-v-3cc2e4a8]{color:var(--gray-600)}.plans-box .plan-box[data-v-3cc2e4a8]{border:1px var(--gray-400) solid;width:16rem;margin-right:1.5rem;margin-top:1.5rem;padding:1rem}.plans-box .plan-box .value[data-v-3cc2e4a8]{font-size:1.4rem}.scenes-box[data-v-3cc2e4a8]{height:21rem}.scenes-box .p-tabview-panel .content-box[data-v-3cc2e4a8]{position:relative}.scenes-box .p-tabview-panel .content-box .description-box[data-v-3cc2e4a8]{margin-right:40rem}.scenes-box .p-tabview-panel .content-box .description-box p.title[data-v-3cc2e4a8]{font-weight:700;font-size:1.1rem}.scenes-box .p-tabview-panel .content-box .description-box i.pi-check[data-v-3cc2e4a8]{color:var(--primary-600);font-size:.9rem}.scenes-box .p-tabview-panel .content-box .image-box[data-v-3cc2e4a8]{position:absolute;top:0;right:2rem}.scenes-box .p-tabview-panel .content-box .image-box[data-v-3cc2e4a8] img{width:26rem!important}.docs-box .card[data-v-3cc2e4a8]{width:14rem;border:1px solid var(--gray-300);position:relative;color:var(--text-color);text-decoration:none;padding-left:1rem;padding-top:1.1rem;cursor:pointer}.docs-box .card p[data-v-3cc2e4a8]{display:block;color:var(--gray-600)}.docs-box .card i[data-v-3cc2e4a8]{position:absolute;top:1rem;right:1rem;color:var(--primary-color);display:none}.docs-box .card[data-v-3cc2e4a8]:hover{background:var(--gray-100)}.docs-box .card:hover i[data-v-3cc2e4a8]{display:inline}
|
||||
BIN
EdgeUser/build/portal/assets/app-QKsxOtMx.woff
Normal file
1
EdgeUser/build/portal/assets/app-Sl5tMoza.css
Normal file
BIN
EdgeUser/build/portal/assets/app-Y2gquDuw.woff
Normal file
160
EdgeUser/build/portal/assets/app-bCBw0IDq.js
Normal file
292
EdgeUser/build/portal/assets/app-bmyWY2nz.svg
Normal file
|
After Width: | Height: | Size: 285 KiB |
1
EdgeUser/build/portal/assets/app-c0y2cgnM.css
Normal file
@@ -0,0 +1 @@
|
||||
.summary-box[data-v-d88b0aa3]{position:relative;height:20rem}.summary-box .description-box[data-v-d88b0aa3]{margin-right:42rem}.summary-box .description-box p.title[data-v-d88b0aa3]{font-weight:700}.summary-box .description-box i.pi-check[data-v-d88b0aa3]{color:var(--primary-600);font-size:.9rem}.summary-box .image-box[data-v-d88b0aa3]{position:absolute;top:0;right:2rem}.summary-box .image-box[data-v-d88b0aa3] img{width:26rem!important}
|
||||
BIN
EdgeUser/build/portal/assets/app-gbz3CIBp.woff2
Normal file
BIN
EdgeUser/build/portal/assets/app-ghXmUeij.woff
Normal file
BIN
EdgeUser/build/portal/assets/app-gtYUEfVK.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
1
EdgeUser/build/portal/assets/app-s2Be9d_l.js
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as c,c as e,w as i,L as _,o as n,a as s,b as a,u as d,p as r,d as p,S as l}from"./app-xg-RHuhr.js";import{_ as h,a as u,c as m}from"./app-y9DE6Loj.js";const o=t=>(r("data-v-d88b0aa3"),t=t(),p(),t),b={class:"block"},v={class:"inner-block"},x={class:"summary-box"},f={class:"description-box"},C=o(()=>s("h1",{class:"text-4xl font-normal"},"CDN",-1)),N=o(()=>s("p",null," CDN是内容分发网络(Content Delivery Network)的简称,可以帮助我们将内容快速地分发到不同的区域和运营商,包括HTML页面、Javascript文件、CSS文件,及音视频文件等。 ",-1)),S=o(()=>s("p",null," 同时,CDN也能保护我们的网站免受攻击,比如常见的CC攻击和SQL注入攻击。 ",-1)),g={class:"button-box"},k={href:"/portal/products/cdn"},w={class:"image-box mt-6"},D={__name:"index",setup(t){return(L,y)=>(n(),e(_,{"active-top-menu":"index"},{default:i(()=>[s("div",b,[s("div",v,[s("div",x,[s("div",f,[C,N,S,s("div",g,[s("a",k,[a(h,{label:"查看CDN产品",icon:"pi pi-arrow-right right","icon-pos":"right"})])])]),s("div",w,[a(u,{src:d(m)},null,8,["src"])])])])])]),_:1}))}},I=c(D,[["__scopeId","data-v-d88b0aa3"]]);l({app:I});
|
||||
BIN
EdgeUser/build/portal/assets/app-ttCcdUck.woff
Normal file
BIN
EdgeUser/build/portal/assets/app-vrv1CRfG.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
741
EdgeUser/build/portal/assets/app-xg-RHuhr.js
Normal file
BIN
EdgeUser/build/portal/assets/app-xggYXtaH.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
110
EdgeUser/build/portal/assets/app-y9DE6Loj.js
Normal file
BIN
EdgeUser/build/portal/assets/app-zXTLRI-K.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
19
EdgeUser/build/portal/index.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>首页</title>
|
||||
<script type="module" crossorigin src="/portal/assets/app-s2Be9d_l.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/portal/assets/app-xg-RHuhr.js">
|
||||
<link rel="modulepreload" crossorigin href="/portal/assets/app-y9DE6Loj.js">
|
||||
<link rel="stylesheet" crossorigin href="/portal/assets/app-Sl5tMoza.css">
|
||||
<link rel="stylesheet" crossorigin href="/portal/assets/app-c0y2cgnM.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="app"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
17
EdgeUser/build/portal/post.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>文章详情</title>
|
||||
<script type="module" crossorigin src="/portal/assets/app-PJ3xFsWk.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/portal/assets/app-xg-RHuhr.js">
|
||||
<link rel="stylesheet" crossorigin href="/portal/assets/app-Sl5tMoza.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="app"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
19
EdgeUser/build/portal/products/cdn/index.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>CDN</title>
|
||||
<script type="module" crossorigin src="/portal/assets/app-bCBw0IDq.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/portal/assets/app-xg-RHuhr.js">
|
||||
<link rel="modulepreload" crossorigin href="/portal/assets/app-y9DE6Loj.js">
|
||||
<link rel="stylesheet" crossorigin href="/portal/assets/app-Sl5tMoza.css">
|
||||
<link rel="stylesheet" crossorigin href="/portal/assets/app-Pf8WSNyw.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="app"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
17
EdgeUser/build/portal/products/index.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>产品</title>
|
||||
<script type="module" crossorigin src="/portal/assets/app-IZWrvoZF.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/portal/assets/app-xg-RHuhr.js">
|
||||
<link rel="stylesheet" crossorigin href="/portal/assets/app-Sl5tMoza.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="app"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||