mirror of
https://github.com/mgerb/ServerStatus
synced 2026-01-11 11:42:50 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d0cf0eae78 | |||
| 642ccc7bf5 | |||
| bcb57c72a3 | |||
| 1cd9f139c2 | |||
| 8d26fba95d |
2
.dockerignore
Normal file
2
.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
||||
/vendor
|
||||
/dist
|
||||
17
Dockerfile
Normal file
17
Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
||||
FROM golang:1.11.1-alpine
|
||||
|
||||
WORKDIR /go/src/github.com/mgerb/ServerStatus
|
||||
ADD . .
|
||||
RUN apk add --no-cache git alpine-sdk
|
||||
RUN go get -u github.com/golang/dep/cmd/dep
|
||||
RUN dep ensure
|
||||
RUN make linux
|
||||
|
||||
|
||||
FROM alpine:3.8
|
||||
|
||||
RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
|
||||
WORKDIR /server-status
|
||||
COPY --from=0 /go/src/github.com/mgerb/ServerStatus/dist/ServerStatus-linux .
|
||||
ENTRYPOINT ./ServerStatus-linux
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"RoomIDList":["room id list goes here"],
|
||||
"RolesToNotify": ["<@&roleid>", "<@userid>"],
|
||||
"GameStatus": "current playing game",
|
||||
"PollingInterval": 10,
|
||||
"Servers": [
|
||||
{
|
||||
"Name": "Your awesome server",
|
||||
|
||||
@@ -6,17 +6,19 @@ import (
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Variables used for command line parameters
|
||||
var Config configStruct
|
||||
|
||||
type configStruct struct {
|
||||
Token string `json:"Token"`
|
||||
RoomIDList []string `json:"RoomIDList"`
|
||||
RolesToNotify []string `json:"RolesToNotify"`
|
||||
Servers []server `json:"Servers"`
|
||||
GameStatus string `json:"GameStatus"`
|
||||
Token string `json:"Token"`
|
||||
RoomIDList []string `json:"RoomIDList"`
|
||||
RolesToNotify []string `json:"RolesToNotify"`
|
||||
Servers []server `json:"Servers"`
|
||||
GameStatus string `json:"GameStatus"`
|
||||
PollingInterval time.Duration `json:"PollingInterval"`
|
||||
}
|
||||
|
||||
type server struct {
|
||||
@@ -43,4 +45,8 @@ func Configure() {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
if Config.PollingInterval == 0 {
|
||||
log.Fatal("Please set your PollingInterval > 0 in your config file.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
5
docker-build.sh
Executable file
5
docker-build.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
version=$(git describe --tags)
|
||||
|
||||
docker build -t mgerb/server-status:latest .
|
||||
docker tag mgerb/server-status:latest mgerb/server-status:$version
|
||||
|
||||
7
docker-compose.yml
Normal file
7
docker-compose.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
version: "2"
|
||||
|
||||
services:
|
||||
server-status:
|
||||
image: mgerb/server-status:latest
|
||||
volumes:
|
||||
- ./config.json:/server-status/config.json
|
||||
5
docker-push.sh
Executable file
5
docker-push.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
version=$(git describe --tags)
|
||||
|
||||
docker push mgerb/server-status:latest;
|
||||
docker push mgerb/server-status:$version;
|
||||
|
||||
28
readme.md
28
readme.md
@@ -5,7 +5,7 @@ This bot will send a chat notification when the status of a server changes (goes
|
||||
I originally made this bot to check if private World of Warcraft servers were up or not.
|
||||
It's actually much more useful than that and can be used for most servers.
|
||||
|
||||
NOTE: This bot currently does not work for UDP servers.
|
||||
NOTE: This bot currently does not have any UDP support.
|
||||
|
||||
## Configuration
|
||||
- Download the latest release [here](https://github.com/mgerb/ServerStatus/releases)
|
||||
@@ -17,6 +17,32 @@ NOTE: This bot currently does not work for UDP servers.
|
||||
- for user `<@userid>`
|
||||
- for role `<@&roleid>`
|
||||
|
||||
### Polling Interval
|
||||
The polling interval is how often the bot will try to ping the servers.
|
||||
A good interval is 10 seconds, but this may need some adjustment if
|
||||
it happens to be spamming notifications.
|
||||
|
||||
- time in seconds
|
||||
- configurable in `config.json`
|
||||
|
||||
## With Docker
|
||||
|
||||
```
|
||||
docker run -it -v /path/to/your/config.json:/server-status/config.json:ro mgerb/server-status
|
||||
```
|
||||
|
||||
### Docker Compose
|
||||
|
||||
```
|
||||
version: "2"
|
||||
|
||||
services:
|
||||
server-status:
|
||||
image: mgerb/server-status:latest
|
||||
volumes:
|
||||
- /path/to/your/config.json:/server-status/config.json
|
||||
```
|
||||
|
||||
## Usage
|
||||
To get the current status of your servers simply type `!ServerStatus` in chat.
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ func scanServers() {
|
||||
config.Config.Servers[index].Online = serverUp
|
||||
}
|
||||
|
||||
time.Sleep(time.Second * 5)
|
||||
time.Sleep(time.Second * config.Config.PollingInterval)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user