mirror of https://github.com/statping/statping
parent
3515c6f56b
commit
04881c9c40
|
@ -17,7 +17,7 @@ services:
|
||||||
- mongodb
|
- mongodb
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- VERSION=0.13
|
- VERSION=0.14
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
allow_failures:
|
allow_failures:
|
||||||
|
@ -37,6 +37,7 @@ deploy:
|
||||||
- "build/statup-linux-x64"
|
- "build/statup-linux-x64"
|
||||||
- "build/statup-linux-x32"
|
- "build/statup-linux-x32"
|
||||||
- "build/statup-windows-x64.exe"
|
- "build/statup-windows-x64.exe"
|
||||||
|
- "build/statup-linux-static"
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
|
|
10
Dockerfile
10
Dockerfile
|
@ -1,12 +1,10 @@
|
||||||
FROM alpine
|
FROM alpine
|
||||||
|
|
||||||
RUN apk add --no-cache libc6-compat
|
#RUN apk add --no-cache libc6-compat
|
||||||
|
|
||||||
ENV VERSION="v0.13"
|
ENV VERSION="v0.14"
|
||||||
|
#RUN wget -q https://github.com/hunterlong/statup/releases/download/$VERSION/statup-linux-static
|
||||||
WORKDIR /app
|
#RUN chmod +x statup-linux-static && mv statup-linux-static /usr/local/bin/statup
|
||||||
RUN wget -q https://github.com/hunterlong/statup/releases/download/$VERSION/statup-linux-x64
|
|
||||||
RUN chmod +x statup-linux-x64 && mv statup-linux-x64 /usr/local/bin/statup
|
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
|
|
1
build.sh
1
build.sh
|
@ -14,6 +14,7 @@ xgo --targets=linux/386 --dest=build -ldflags="-X main.VERSION=$VERSION" ./
|
||||||
|
|
||||||
xgo --targets=windows/amd64 --dest=build -ldflags="-X main.VERSION=$VERSION" ./
|
xgo --targets=windows/amd64 --dest=build -ldflags="-X main.VERSION=$VERSION" ./
|
||||||
|
|
||||||
|
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o build/statup-linux-static .
|
||||||
|
|
||||||
cd build
|
cd build
|
||||||
ls
|
ls
|
||||||
|
|
20
services.go
20
services.go
|
@ -15,16 +15,16 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Service struct {
|
type Service struct {
|
||||||
Id int64 `db:"id,omitempty" json:"id"`
|
Id int64 `db:"id,omitempty" json:"id"`
|
||||||
Name string `db:"name" json:"name"`
|
Name string `db:"name" json:"name"`
|
||||||
Domain string `db:"domain" json:"domain"`
|
Domain string `db:"domain" json:"domain"`
|
||||||
Expected string `db:"expected" json:"expected"`
|
Expected string `db:"expected" json:"expected"`
|
||||||
ExpectedStatus int `db:"expected_status" json:"expected_status"`
|
ExpectedStatus int `db:"expected_status" json:"expected_status"`
|
||||||
Interval int `db:"check_interval" json:"check_interval"`
|
Interval int `db:"check_interval" json:"check_interval"`
|
||||||
Type string `db:"check_type" json:"type"`
|
Type string `db:"check_type" json:"type"`
|
||||||
Method string `db:"method" json:"method"`
|
Method string `db:"method" json:"method"`
|
||||||
Port int `db:"port" json:"port"`
|
Port int `db:"port" json:"port"`
|
||||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
||||||
Online bool `json:"online"`
|
Online bool `json:"online"`
|
||||||
Latency float64 `json:"latency"`
|
Latency float64 `json:"latency"`
|
||||||
Online24Hours float32 `json:"24_hours_online"`
|
Online24Hours float32 `json:"24_hours_online"`
|
||||||
|
|
5
web.go
5
web.go
|
@ -308,9 +308,9 @@ func ServicesBadgeHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
var badge []byte
|
var badge []byte
|
||||||
if service.Online {
|
if service.Online {
|
||||||
badge = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="104" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><mask id="a"><rect width="104" height="20" rx="3" fill="#fff"/></mask><g mask="url(#a)"><path fill="#555" d="M0 0h54v20H0z"/><path fill="#4c1" d="M54 0h50v20H54z"/><path fill="url(#b)" d="M0 0h104v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="28" y="15" fill="#010101" fill-opacity=".3">`+service.Name+`</text><text x="28" y="14">`+service.Name+`</text><text x="78" y="15" fill="#010101" fill-opacity=".3">online</text><text x="78" y="14">online</text></g></svg>`)
|
badge = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="104" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><mask id="a"><rect width="104" height="20" rx="3" fill="#fff"/></mask><g mask="url(#a)"><path fill="#555" d="M0 0h54v20H0z"/><path fill="#4c1" d="M54 0h50v20H54z"/><path fill="url(#b)" d="M0 0h104v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="28" y="15" fill="#010101" fill-opacity=".3">` + service.Name + `</text><text x="28" y="14">` + service.Name + `</text><text x="78" y="15" fill="#010101" fill-opacity=".3">online</text><text x="78" y="14">online</text></g></svg>`)
|
||||||
} else {
|
} else {
|
||||||
badge = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="99" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><mask id="a"><rect width="99" height="20" rx="3" fill="#fff"/></mask><g mask="url(#a)"><path fill="#555" d="M0 0h54v20H0z"/><path fill="#e05d44" d="M54 0h45v20H54z"/><path fill="url(#b)" d="M0 0h99v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="28" y="15" fill="#010101" fill-opacity=".3">`+service.Name+`</text><text x="28" y="14">`+service.Name+`</text><text x="75.5" y="15" fill="#010101" fill-opacity=".3">offline</text><text x="75.5" y="14">offline</text></g></svg>`)
|
badge = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="99" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><mask id="a"><rect width="99" height="20" rx="3" fill="#fff"/></mask><g mask="url(#a)"><path fill="#555" d="M0 0h54v20H0z"/><path fill="#e05d44" d="M54 0h45v20H54z"/><path fill="url(#b)" d="M0 0h99v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"><text x="28" y="15" fill="#010101" fill-opacity=".3">` + service.Name + `</text><text x="28" y="14">` + service.Name + `</text><text x="75.5" y="15" fill="#010101" fill-opacity=".3">offline</text><text x="75.5" y="14">offline</text></g></svg>`)
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "image/svg+xml")
|
w.Header().Set("Content-Type", "image/svg+xml")
|
||||||
|
@ -320,7 +320,6 @@ func ServicesBadgeHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func ServicesViewHandler(w http.ResponseWriter, r *http.Request) {
|
func ServicesViewHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
auth := IsAuthenticated(r)
|
auth := IsAuthenticated(r)
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
|
|
Loading…
Reference in New Issue