mirror of https://github.com/statping/statping
moved docker-compose into dev
parent
97c3c08603
commit
f7cc9a3699
|
@ -10,6 +10,7 @@ plugins/*.so
|
||||||
data
|
data
|
||||||
build
|
build
|
||||||
vendor
|
vendor
|
||||||
|
dev/plugin/*.so
|
||||||
html/scss/.sass-cache
|
html/scss/.sass-cache
|
||||||
dart-sass
|
dart-sass
|
||||||
.sass-cache
|
.sass-cache
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
FROM alpine:latest
|
|
||||||
MAINTAINER "Hunter Long (https://github.com/hunterlong)"
|
|
||||||
RUN apk --no-cache add libstdc++ ca-certificates
|
|
||||||
WORKDIR /app
|
|
||||||
ADD sass /usr/local/bin/
|
|
||||||
ADD ./build/alpine-linux-amd64 /usr/local/bin/statping
|
|
|
@ -7,9 +7,11 @@ services:
|
||||||
image: hunterlong/statping:latest
|
image: hunterlong/statping:latest
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 0.0.0.0:80:8080
|
- 80:8080
|
||||||
volumes:
|
volumes:
|
||||||
- ./statping/app:/app
|
- ./statping:/app
|
||||||
|
expose:
|
||||||
|
- 8080
|
||||||
environment:
|
environment:
|
||||||
NAME: Single Docker Image
|
NAME: Statping
|
||||||
DESCRIPTION: You'll need to input your own Database information in Setup process
|
DESCRIPTION: You'll need to input your own Database information in Setup process
|
|
@ -56,8 +56,8 @@ services:
|
||||||
DB_USER: statping
|
DB_USER: statping
|
||||||
DB_PASS: password123
|
DB_PASS: password123
|
||||||
DB_DATABASE: statping
|
DB_DATABASE: statping
|
||||||
NAME: SSL Example
|
NAME: Statping SSL Instance
|
||||||
DESCRIPTION: This Status Status Page should be running ${LETSENCRYPT_HOST} with SSL.
|
DESCRIPTION: This Statping Status Page should be running ${LETSENCRYPT_HOST} with SSL.
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
container_name: postgres
|
container_name: postgres
|
||||||
|
@ -72,6 +72,13 @@ services:
|
||||||
POSTGRES_USER: statping
|
POSTGRES_USER: statping
|
||||||
POSTGRES_DB: statping
|
POSTGRES_DB: statping
|
||||||
|
|
||||||
|
watchtower:
|
||||||
|
image: v2tec/watchtower
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
command: --interval 120 --cleanup
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
internet:
|
internet:
|
||||||
driver: bridge
|
driver: bridge
|
|
@ -12,7 +12,7 @@
|
||||||
cd /home/ubuntu
|
cd /home/ubuntu
|
||||||
source /home/ubuntu/.profile
|
source /home/ubuntu/.profile
|
||||||
sudo rm -rf startup.sh > /dev/null
|
sudo rm -rf startup.sh > /dev/null
|
||||||
sudo curl -o startup.sh -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/hunterlong/statping/master/servers/startup.sh > /dev/null
|
sudo curl -o startup.sh -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/hunterlong/statping/master/dev/startup.sh > /dev/null
|
||||||
sudo chmod +x startup.sh > /dev/null
|
sudo chmod +x startup.sh > /dev/null
|
||||||
sudo rm -f docker-compose.yml > /dev/null
|
sudo rm -f docker-compose.yml > /dev/null
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ EC_IP=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4)
|
||||||
|
|
||||||
if [ "$LETSENCRYPT_HOST" = "" ]
|
if [ "$LETSENCRYPT_HOST" = "" ]
|
||||||
then
|
then
|
||||||
sudo curl -o docker-compose.yml -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/hunterlong/statping/master/servers/docker-compose.yml > /dev/null
|
sudo curl -o docker-compose.yml -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/hunterlong/statping/master/dev/docker-compose-single.yml > /dev/null
|
||||||
else
|
else
|
||||||
printf " \n\n\n\nDomain found for SSL certificate - $LETSENCRYPT_HOST\n"
|
printf " \n\n\n\nDomain found for SSL certificate - $LETSENCRYPT_HOST\n"
|
||||||
printf "================================================================================================================\n"
|
printf "================================================================================================================\n"
|
||||||
|
@ -33,7 +33,7 @@ else
|
||||||
printf " A $LETSENCRYPT_HOST => $EC_IP (or use A record if you are using an Elastic IP)\n"
|
printf " A $LETSENCRYPT_HOST => $EC_IP (or use A record if you are using an Elastic IP)\n"
|
||||||
printf "================================================================================================================\n\n\n"
|
printf "================================================================================================================\n\n\n"
|
||||||
|
|
||||||
sudo curl -o docker-compose.yml -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/hunterlong/statping/master/servers/docker-compose-ssl.yml > /dev/null
|
sudo curl -o docker-compose.yml -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/hunterlong/statping/dev/docker-compose-ssl.yml > /dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo service docker start > /dev/null
|
sudo service docker start > /dev/null
|
||||||
|
@ -49,10 +49,10 @@ fi
|
||||||
|
|
||||||
sudo docker system prune -af > /dev/null
|
sudo docker system prune -af > /dev/null
|
||||||
|
|
||||||
sudo curl https://raw.githubusercontent.com/hunterlong/statping/master/servers/init.sh > /home/ubuntu/init.sh
|
sudo curl https://raw.githubusercontent.com/hunterlong/statping/dev/init.sh > /home/ubuntu/init.sh
|
||||||
sudo chmod +x /home/ubuntu/init.sh > /dev/null
|
sudo chmod +x /home/ubuntu/init.sh > /dev/null
|
||||||
|
|
||||||
printf "\n\n\n\n\n Status Status Page on EC2\n"
|
printf "\n\n\n\n\n Statping Status Page on EC2\n"
|
||||||
printf "================================================================================================================\n"
|
printf "================================================================================================================\n"
|
||||||
if [ "$LETSENCRYPT_HOST" = "" ]
|
if [ "$LETSENCRYPT_HOST" = "" ]
|
||||||
then
|
then
|
|
@ -23,4 +23,4 @@ printf "Downloading latest version URL: $FILE\n"
|
||||||
curl -L -sS $FILE -o statping.tar.gz && tar xzf statping.tar.gz && rm statping.tar.gz
|
curl -L -sS $FILE -o statping.tar.gz && tar xzf statping.tar.gz && rm statping.tar.gz
|
||||||
chmod +x statping
|
chmod +x statping
|
||||||
mv statping /usr/local/bin/
|
mv statping /usr/local/bin/
|
||||||
echo "Statup $VERSION has been successfully installed! Try 'statping version' to check it!"
|
echo "Statping $VERSION has been successfully installed! Try 'statping version' to check it!"
|
|
@ -1,120 +0,0 @@
|
||||||
# Statping Server Setup
|
|
||||||
There are multiple way to startup a Statping server. You want to make sure Statping is on it's own instance that is not on the same server as the applications you wish to monitor.
|
|
||||||
It doesn't look good when your Status Page goes down, I recommend a small EC2 instance so you can set it, and forget it.
|
|
||||||
|
|
||||||
> It's a good idea to have a Status Page not on the same server as your applications.
|
|
||||||
|
|
||||||
# Install on Linux
|
|
||||||
Installing on Linux is a pretty easy task. Simply run the command below to have the `statping` command ready to rock.
|
|
||||||
```bash
|
|
||||||
bash <(curl -s https://statping.com/install.sh)
|
|
||||||
statping version
|
|
||||||
```
|
|
||||||
|
|
||||||
# Install on Mac
|
|
||||||
Installing on Mac/OSX is also very easy,
|
|
||||||
```bash
|
|
||||||
bash <(curl -s https://statping.com/install.sh)
|
|
||||||
statping version
|
|
||||||
```
|
|
||||||
|
|
||||||
# Install on Windows
|
|
||||||
Go to the [Latest Releases](https://github.com/hunterlong/statping/releases/latest) page for Statping and simply download `statping-windows-x64`!
|
|
||||||
Statping only supports Windows 64-bit currently, sorry 32-bit users. Rename the file to `statping` for ease of use!
|
|
||||||
|
|
||||||
# Install on Docker
|
|
||||||
This Docker image uses Alpine Linux to keep it ultra small.
|
|
||||||
```bash
|
|
||||||
docker run -it -p 8080:8080 hunterlong/statping
|
|
||||||
```
|
|
||||||
#### Or use Docker Compose
|
|
||||||
This Docker Compose file inlcudes NGINX, Postgres, and Statping.
|
|
||||||
```bash
|
|
||||||
wget https://raw.githubusercontent.com/hunterlong/statping/master/servers/docker-compose.yml
|
|
||||||
docker-compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Docker Compose with Automatic SSL
|
|
||||||
You can automatically start a Statping server with automatic SSL encryption using this docker-compose file. First point your domain's DNS to the Statping server, and then run this docker-compose command with DOMAIN and EMAIL. Email is for letsencrypt services.
|
|
||||||
```
|
|
||||||
wget https://raw.githubusercontent.com/hunterlong/statping/master/servers/docker-compose-ssl.yml
|
|
||||||
|
|
||||||
LETSENCRYPT_HOST=mydomain.com \
|
|
||||||
LETSENCRYPT_EMAIL=info@mydomain.com \
|
|
||||||
docker-compose -f docker-compose-ssl.yml up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
# Install on EC2
|
|
||||||
Running Statping on the smallest EC2 server is very quick using the AWS AMI Image: `ami-7be8a103`.
|
|
||||||
|
|
||||||
### Create Security Groups
|
|
||||||
```bash
|
|
||||||
aws ec2 create-security-group --group-name StatpingPublicHTTP --description "Statping HTTP Server on port 80 and 443"
|
|
||||||
# will response back a Group ID. Copy ID and use it for --group-id below.
|
|
||||||
aws ec2 authorize-security-group-ingress --group-id sg-7e8b830f --protocol tcp --port 80 --cidr 0.0.0.0/0
|
|
||||||
aws ec2 authorize-security-group-ingress --group-id sg-7e8b830f --protocol tcp --port 443 --cidr 0.0.0.0/0
|
|
||||||
```
|
|
||||||
### Create EC2 without SSL
|
|
||||||
```bash
|
|
||||||
aws ec2 run-instances \
|
|
||||||
--image-id ami-7be8a103 \
|
|
||||||
--count 1 --instance-type t2.nano \
|
|
||||||
--key-name MYKEYHERE \
|
|
||||||
--security-group-ids sg-7e8b830f
|
|
||||||
```
|
|
||||||
### Create EC2 with Automatic SSL Certification
|
|
||||||
```bash
|
|
||||||
wget https://raw.githubusercontent.com/hunterlong/statping/master/servers/ec2-ssl.sh
|
|
||||||
```
|
|
||||||
Edit ec2-ssl.sh and insert your domain you want to use, then run command below. Use the Security Group ID that you used above for --security-group-ids
|
|
||||||
```
|
|
||||||
aws ec2 run-instances \
|
|
||||||
--user-data file://ec2-ssl.sh \
|
|
||||||
--image-id ami-7be8a103 \
|
|
||||||
--count 1 --instance-type t2.nano \
|
|
||||||
--key-name MYKEYHERE \
|
|
||||||
--security-group-ids sg-7e8b830f
|
|
||||||
```
|
|
||||||
|
|
||||||
#### EC2 Server Specs
|
|
||||||
- t2.nano ($4.60 monthly)
|
|
||||||
- 8gb SSD Memory
|
|
||||||
- 0.5gb RAM
|
|
||||||
- Docker with Docker Compose installed
|
|
||||||
- Running Statping, NGINX, and Postgres
|
|
||||||
- boot scripts to automatically clean unused containers.
|
|
||||||
|
|
||||||
|
|
||||||
## AWS EC2 (`ami-1f7c3567`)
|
|
||||||
Running Statping on the smallest EC2 server is very quick using the AWS AMI Image: `ami-1f7c3567`.
|
|
||||||
```
|
|
||||||
aws ec2 run-instances \
|
|
||||||
--image-id ami-1f7c3567 \
|
|
||||||
--count 1 \
|
|
||||||
--instance type t2.micro \
|
|
||||||
--region us-west-2
|
|
||||||
--key-name <key name> \
|
|
||||||
--security-group-ids <your security group id here> \
|
|
||||||
--subnet-id <your subnet id here> \
|
|
||||||
--region <your region here>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Docker Compose
|
|
||||||
In this folder there is a standard docker-compose file that include nginx, postgres, and Statping.
|
|
||||||
```$xslt
|
|
||||||
docker-compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Docker Compose with Automatic SSL
|
|
||||||
You can automatically start a Statping server with automatic SSL encryption using this docker-compose file. First point your domain's DNS to the Statping server, and then run this docker-compose command with DOMAIN and EMAIL. Email is for letsencrypt services.
|
|
||||||
```
|
|
||||||
DOMAIN=mydomain.com EMAIL=info@mydomain.com \
|
|
||||||
docker-compose -f docker-compose-ssl.yml up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Systemd
|
|
||||||
```$xslt
|
|
||||||
/etc/systemd/system/statping.service
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
|
@ -1,51 +0,0 @@
|
||||||
version: '2.3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
statping:
|
|
||||||
container_name: statping
|
|
||||||
image: hunterlong/statping:dev
|
|
||||||
networks:
|
|
||||||
- internet
|
|
||||||
- database
|
|
||||||
depends_on:
|
|
||||||
- postgres_statping
|
|
||||||
- postgres_mysql
|
|
||||||
entrypoint:
|
|
||||||
- "sleep 30 && cd /go/src/github.com/hunterlong/statping && go test -v ./..."
|
|
||||||
environment:
|
|
||||||
GO_ENV: test
|
|
||||||
DB_CONN: postgres
|
|
||||||
DB_HOST: postgres_statping
|
|
||||||
DB_USER: root
|
|
||||||
DB_PASS: root
|
|
||||||
DB_DATABASE: statping
|
|
||||||
NAME: EC2 Example
|
|
||||||
DESCRIPTION: This is a Statping Docker Compose instance
|
|
||||||
|
|
||||||
postgres_statping:
|
|
||||||
container_name: postgres_statping
|
|
||||||
image: postgres
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- database
|
|
||||||
environment:
|
|
||||||
POSTGRES_PASSWORD: password123
|
|
||||||
POSTGRES_USER: statping
|
|
||||||
POSTGRES_DB: statping
|
|
||||||
|
|
||||||
postgres_mysql:
|
|
||||||
container_name: mysql_statping
|
|
||||||
image: mysql
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- database
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: password123
|
|
||||||
MYSQL_DATABASE: statping
|
|
||||||
|
|
||||||
networks:
|
|
||||||
internet:
|
|
||||||
driver: bridge
|
|
||||||
database:
|
|
||||||
driver: bridge
|
|
Loading…
Reference in New Issue