Compare commits
228 Commits
98e1c88293
...
bsc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96c90dee4b | ||
|
|
121c44446c | ||
|
|
6785eec7c6 | ||
|
|
a5aacfd4d9 | ||
|
|
3859c921ac | ||
|
|
7b0dae1272 | ||
|
|
34d27c0bfb | ||
|
|
5f3f9cd471 | ||
|
|
82fee8d3d6 | ||
|
|
f610486fcb | ||
|
|
367fe7e355 | ||
|
|
1f6e128144 | ||
|
|
bfe6db1eda | ||
|
|
ee90c39c29 | ||
|
|
f960e2a87c | ||
|
|
d6264c93bd | ||
|
|
2c8788a373 | ||
|
|
1c81b55c1b | ||
|
|
b202565599 | ||
|
|
68d4f07d67 | ||
|
|
51c432ae78 | ||
|
|
34ad7988b4 | ||
|
|
3eda933c49 | ||
|
|
91f49a9fef | ||
|
|
6bd308e0f9 | ||
|
|
4d129c0e46 | ||
|
|
c1b3cc99ad | ||
|
|
79ab34fc17 | ||
|
|
b3dd63d00a | ||
|
|
d9369f4f9a | ||
|
|
42f9a262c9 | ||
|
|
f83ed0170f | ||
|
|
a27a6be96f | ||
|
|
6296e14282 | ||
|
|
14483ea8a2 | ||
|
|
d8d5c6e436 | ||
|
|
b359aec426 | ||
|
|
05f4e2acb7 | ||
|
|
e21e48b8eb | ||
|
|
a734ac1171 | ||
|
|
4f422e48a1 | ||
|
|
1331b184d5 | ||
|
|
ff3e1b47c8 | ||
|
|
2cf4bac577 | ||
|
|
d29348e5fc | ||
|
|
b9c9379ba1 | ||
|
|
893ec05e73 | ||
|
|
67b0026430 | ||
|
|
4608233b1e | ||
|
|
05f67d7e59 | ||
|
|
c81945a6eb | ||
|
|
127fcd1d6f | ||
|
|
888251469f | ||
|
|
d3b529bc58 | ||
|
|
dac6a5c0eb | ||
|
|
05554dedbf | ||
|
|
b71bbcd45d | ||
|
|
83ef8d47ad | ||
|
|
32e474347f | ||
|
|
47667f1aeb | ||
|
|
297dd6dddb | ||
|
|
126daf767f | ||
|
|
6093e279ea | ||
|
|
7df451b58c | ||
|
|
25cf170ed6 | ||
|
|
7eb466e383 | ||
|
|
59cdc5eba2 | ||
|
|
7f25960c5a | ||
|
|
e6098398c6 | ||
|
|
d27fc8d269 | ||
|
|
7ea656b6c2 | ||
|
|
1d272cdc75 | ||
|
|
1713f8b759 | ||
|
|
3c8c624c10 | ||
|
|
6b18040473 | ||
|
|
4bff8010e6 | ||
|
|
c99af9a7ca | ||
|
|
ed8188db80 | ||
|
|
f311c54be4 | ||
|
|
4cd11a6c79 | ||
|
|
c5a77a8e3a | ||
|
|
2f4178daba | ||
|
|
69770762f3 | ||
|
|
b9ab440ef4 | ||
|
|
5639cf70b3 | ||
|
|
749e9ccc22 | ||
|
|
9718b6645e | ||
|
|
cc926af991 | ||
|
|
db7e7a51b5 | ||
|
|
3f3e19a675 | ||
|
|
a4faf06b74 | ||
|
|
1b14565870 | ||
|
|
2b24b182c8 | ||
|
|
019e9db840 | ||
|
|
91cec100f9 | ||
|
|
06a09c9dfb | ||
|
|
fbf7c7406d | ||
|
|
3bccfa038e | ||
|
|
e07f2359dd | ||
|
|
54558d6e5a | ||
|
|
b1dfc66c5f | ||
|
|
d61180a5cd | ||
|
|
23ee7b3fe4 | ||
|
|
be9a775de5 | ||
|
|
e5fd725e3e | ||
|
|
258e67da0b | ||
|
|
93c4f95ac8 | ||
|
|
099f6347c7 | ||
|
|
478b9bba91 | ||
|
|
4af8f8fb51 | ||
|
|
5cb05a7a2c | ||
|
|
d807c66150 | ||
|
|
b3b08b22b3 | ||
|
|
ccedf8d7e7 | ||
|
|
d56b59e47a | ||
|
|
e896bc69be | ||
|
|
8ec9a3156b | ||
|
|
ded282998c | ||
|
|
86b739b61b | ||
|
|
3c51faa5d4 | ||
|
|
2076f71dd5 | ||
|
|
af666cbdd7 | ||
|
|
340e443f0e | ||
|
|
30b0fa26be | ||
|
|
5073933208 | ||
|
|
7c0b95e47f | ||
|
|
6206373f04 | ||
|
|
da9569ba97 | ||
|
|
d2fd3e8a2e | ||
|
|
6e8be0bee5 | ||
|
|
1ec1148786 | ||
|
|
5e63e8589b | ||
|
|
4904b09f8c | ||
|
|
9202948739 | ||
|
|
c57a8396c9 | ||
|
|
8dcae76a80 | ||
|
|
33c9df931c | ||
|
|
39ed18953e | ||
|
|
43c8ca8872 | ||
|
|
df007ec024 | ||
|
|
70bd91277b | ||
|
|
c5cbde2d42 | ||
|
|
8cb58bc0cf | ||
|
|
591f305077 | ||
|
|
d4dd7c1049 | ||
|
|
324f92294f | ||
|
|
472b208ad3 | ||
|
|
a711631f84 | ||
|
|
f5a7bf912e | ||
|
|
d202032ee1 | ||
|
|
f20640c36e | ||
|
|
496136edeb | ||
|
|
351246021b | ||
|
|
9120c4b029 | ||
|
|
b1e7d3b6b5 | ||
|
|
901694f4a6 | ||
|
|
62edb08bd6 | ||
|
|
eacf6535b2 | ||
|
|
6491889c1b | ||
|
|
aeb6e72139 | ||
|
|
a521e0c258 | ||
|
|
e12f2267f5 | ||
|
|
44f277b77d | ||
|
|
510f7db452 | ||
|
|
012c6b6c9e | ||
|
|
a28bacd70d | ||
|
|
7200666d17 | ||
|
|
2d51371e40 | ||
|
|
baa59c67b9 | ||
|
|
0d0e15ee22 | ||
|
|
79599d9ae6 | ||
|
|
6e41db128a | ||
|
|
59addb79f4 | ||
|
|
bf367928ec | ||
|
|
7638132e52 | ||
|
|
2b6bc0909f | ||
|
|
e632c866b0 | ||
|
|
82093d60e8 | ||
|
|
d05a5e51ed | ||
|
|
5e10b5b69f | ||
|
|
cedc18d11d | ||
|
|
81b375a398 | ||
|
|
e55eb4b439 | ||
|
|
a2a0d2ba8b | ||
|
|
763ce51530 | ||
|
|
47d2863f1e | ||
|
|
c69a6bf08b | ||
|
|
84236b8de7 | ||
|
|
c36e81aaeb | ||
|
|
2b3cb73b48 | ||
|
|
4c05514207 | ||
|
|
1210ec6cf8 | ||
|
|
7050872fc8 | ||
|
|
c0ea42376d | ||
|
|
3788c55941 | ||
|
|
e8d7fe3c0d | ||
|
|
0c6a55b773 | ||
|
|
751f3db3cb | ||
|
|
ba1b091257 | ||
|
|
619b8245cd | ||
|
|
0747c10839 | ||
|
|
cf195e161d | ||
|
|
27392854d4 | ||
|
|
a0f6ed6dc5 | ||
|
|
8865df89e5 | ||
|
|
f43985edb9 | ||
|
|
e901b88030 | ||
|
|
a407f96e11 | ||
|
|
2c03e48d48 | ||
|
|
a932bd8e3b | ||
|
|
3b25d87098 | ||
|
|
a732bac611 | ||
|
|
2607864a10 | ||
|
|
9d5f4298c3 | ||
|
|
d32a161681 | ||
|
|
53753a8c8c | ||
|
|
723979e176 | ||
|
|
565a765c71 | ||
|
|
050d82021c | ||
|
|
605321e12c | ||
|
|
1afae2e6e6 | ||
|
|
59a7c17436 | ||
|
|
32478b158f | ||
|
|
8b00b96450 | ||
|
|
ea10406e71 | ||
|
|
a418d0e1e2 | ||
|
|
b7e2f76e58 | ||
|
|
7c1e67b70d |
@@ -3,7 +3,5 @@ if [ ! -f /home/app/.pocket/setupdone ]
|
||||
then
|
||||
mkdir -p /home/app/.pocket/data
|
||||
echo "wget -q -O - '$POCKET_SNAPSHOT' | tar -xv -C /home/app/.pocket/data/"
|
||||
wget -q -O - $POCKET_SNAPSHOT | tar -xv -C /home/app/.pocket/data/
|
||||
touch /home/app/.pocket/setupdone
|
||||
wget -q -O - $POCKET_SNAPSHOT | tar -xv -C /home/app/.pocket/data/ && touch /home/app/.pocket/setupdone
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,42 +1,50 @@
|
||||
[
|
||||
{
|
||||
"id": "0001",
|
||||
"url": "https://${DOMAIN}/pokt"
|
||||
"url": "http://haproxy/pokt"
|
||||
},
|
||||
{
|
||||
"id": "0004",
|
||||
"url": "http://haproxy/bsc"
|
||||
},
|
||||
{
|
||||
"id": "0005",
|
||||
"url": "https://${DOMAIN}/fuse"
|
||||
"url": "http://haproxy/fuse"
|
||||
},
|
||||
{
|
||||
"id": "0009",
|
||||
"url": "http://haproxy/polygon"
|
||||
},
|
||||
{
|
||||
"id": "0021",
|
||||
"url": "https://${DOMAIN}/erigon"
|
||||
"url": "http://haproxy/mainnet"
|
||||
},
|
||||
{
|
||||
"id": "0022",
|
||||
"url": "https://${DOMAIN}/erigon"
|
||||
"url": "http://haproxy/erigon"
|
||||
},
|
||||
{
|
||||
"id": "0023",
|
||||
"url": "https://${DOMAIN}/ropsten"
|
||||
"url": "http://haproxy/ropsten"
|
||||
},
|
||||
{
|
||||
"id": "0025",
|
||||
"url": "https://${DOMAIN}/rinkeby"
|
||||
"url": "http://haproxy/rinkeby"
|
||||
},
|
||||
{
|
||||
"id": "0026",
|
||||
"url": "https://${DOMAIN}/goerli"
|
||||
"url": "http://haproxy/goerli"
|
||||
},
|
||||
{
|
||||
"id": "0027",
|
||||
"url": "https://${DOMAIN}/xdai"
|
||||
"url": "http://haproxy/xdai"
|
||||
},
|
||||
{
|
||||
"id": "0028",
|
||||
"url": "https://${DOMAIN}/erigon"
|
||||
"url": "http://haproxy/erigon"
|
||||
},
|
||||
{
|
||||
"id": "0040",
|
||||
"url": "https://${DOMAIN}/harmony"
|
||||
"url": "http://haproxy/harmony"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
[
|
||||
{
|
||||
"id": "0020",
|
||||
"url": "https://${DOMAIN}/goerli"
|
||||
"url": "http://haproxy/goerli"
|
||||
},
|
||||
{
|
||||
"id": "0022",
|
||||
"url": "https://${DOMAIN}/rinkeby"
|
||||
"url": "http://haproxy/rinkeby"
|
||||
},
|
||||
{
|
||||
"id": "0023",
|
||||
"url": "https://${DOMAIN}/ropsten"
|
||||
"url": "http://haproxy/ropsten"
|
||||
},
|
||||
{
|
||||
"id": "0002",
|
||||
"url": "https://${DOMAIN}/pokttest"
|
||||
"url": "http://haproxy/pokttest"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
29
docker-compose.bsc.yml
Normal file
29
docker-compose.bsc.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
|
||||
binance-smart-chain:
|
||||
image: dysnix/bsc
|
||||
expose:
|
||||
- "8545"
|
||||
- "8546"
|
||||
- "30303"
|
||||
volumes:
|
||||
- /root/bsc-datadir/server1/data-seed:/datadir
|
||||
- /root/bsc-config/config.toml:/config.toml
|
||||
command: "--cache 18000 --rpc --rpcaddr=\"0.0.0.0\" --rpc.allow-unprotected-txs --txlookuplimit 0 --syncmode snap --config /config.toml --datadir /datadir"
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- chains
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.middlewares.ipwhitelist.ipwhitelist.sourcerange=$WHITELIST"
|
||||
- "traefik.http.middlewares.bsc-stripprefix.stripprefix.prefixes=/bsc"
|
||||
- "traefik.http.services.bsc.loadbalancer.server.port=8545"
|
||||
- "traefik.http.routers.bsc.entrypoints=websecure"
|
||||
- "traefik.http.routers.bsc.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.bsc.rule=Host(`$DOMAIN`) && PathPrefix(`/bsc`)"
|
||||
- "traefik.http.routers.bsc.middlewares=avalanche-stripprefix, ipwhitelist"
|
||||
|
||||
|
||||
|
||||
20
docker-compose.haproxy.yml
Normal file
20
docker-compose.haproxy.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
|
||||
haproxy:
|
||||
build: haproxy
|
||||
volumes:
|
||||
- ./haproxy:/usr/local/etc/haproxy
|
||||
expose:
|
||||
- "8404"
|
||||
- "80"
|
||||
ports:
|
||||
- "127.0.0.1:80:80"
|
||||
restart: always
|
||||
labels:
|
||||
- "prometheus-scrape.enabled=true"
|
||||
- "prometheus-scrape.port=8404"
|
||||
- "prometheus-scrape.job_name=haproxy"
|
||||
- "prometheus-scrape.metrics_path=/metrics"
|
||||
|
||||
104
docker-compose.monitoring.yml
Normal file
104
docker-compose.monitoring.yml
Normal file
@@ -0,0 +1,104 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
|
||||
### WIREGUARD
|
||||
|
||||
wireguard:
|
||||
image: lscr.io/linuxserver/wireguard
|
||||
container_name: wireguard
|
||||
healthcheck:
|
||||
test: [ "CMD", "ping", "-c", "1", "10.13.13.1" ]
|
||||
timeout: 10s
|
||||
interval: 5s
|
||||
retries: 3
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
volumes:
|
||||
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
||||
- /lib/modules:/lib/modules
|
||||
# Expose prometheus port
|
||||
expose:
|
||||
- 9090
|
||||
ports:
|
||||
- 51820:51820/udp
|
||||
sysctls:
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
restart: unless-stopped
|
||||
|
||||
|
||||
### MONITORING
|
||||
|
||||
prometheus:
|
||||
image: prom/prometheus:v2.30.3
|
||||
container_name: prometheus
|
||||
volumes:
|
||||
- ./prometheus/prometheus.autodiscover.yml:/etc/prometheus/prometheus.yml:ro
|
||||
- prometheus_data:/prometheus:rw
|
||||
- prometheus-docker-sd:/prometheus-docker-sd:ro
|
||||
command:
|
||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||
- '--storage.tsdb.path=/prometheus'
|
||||
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||
- '--web.console.templates=/etc/prometheus/consoles'
|
||||
- '--storage.tsdb.retention.time=200h'
|
||||
- '--web.enable-lifecycle'
|
||||
restart: unless-stopped
|
||||
network_mode: "service:wireguard"
|
||||
labels:
|
||||
org.label-schema.group: "monitoring"
|
||||
depends_on:
|
||||
- wireguard
|
||||
|
||||
prometheus-docker-sd:
|
||||
image: "stucky/prometheus-docker-sd:latest"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- prometheus-docker-sd:/prometheus-docker-sd:rw
|
||||
|
||||
nodeexporter:
|
||||
image: prom/node-exporter:v1.2.2
|
||||
container_name: nodeexporter
|
||||
volumes:
|
||||
- /proc:/host/proc:ro
|
||||
- /sys:/host/sys:ro
|
||||
- /:/rootfs:ro
|
||||
command:
|
||||
- '--path.procfs=/host/proc'
|
||||
- '--path.rootfs=/rootfs'
|
||||
- '--path.sysfs=/host/sys'
|
||||
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 9100
|
||||
labels:
|
||||
org.label-schema.group: "monitoring"
|
||||
|
||||
cadvisor:
|
||||
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
||||
container_name: cadvisor
|
||||
privileged: true
|
||||
devices:
|
||||
- /dev/kmsg:/dev/kmsg
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /var/run:/var/run:ro
|
||||
- /sys:/sys:ro
|
||||
- /var/lib/docker:/var/lib/docker:ro
|
||||
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 8080
|
||||
labels:
|
||||
org.label-schema.group: "monitoring"
|
||||
|
||||
### VOLUMES
|
||||
|
||||
volumes:
|
||||
prometheus_data:
|
||||
prometheus-docker-sd:
|
||||
246
docker-compose.pokt-lt-1.yml
Normal file
246
docker-compose.pokt-lt-1.yml
Normal file
@@ -0,0 +1,246 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
restart: always
|
||||
ports:
|
||||
- "443:443"
|
||||
- "127.0.0.1:8080:8080"
|
||||
expose:
|
||||
- "8082"
|
||||
command:
|
||||
- "--api=true"
|
||||
- "--api.insecure=true"
|
||||
- "--api.dashboard=true"
|
||||
- "--log.level=DEBUG"
|
||||
- "--providers.docker=true"
|
||||
- "--providers.docker.exposedbydefault=false"
|
||||
- "--entrypoints.websecure.address=:443"
|
||||
- "--entryPoints.metrics.address=:8082"
|
||||
- "--metrics.prometheus.entryPoint=metrics"
|
||||
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
||||
# TESTING
|
||||
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
- "--certificatesresolvers.myresolver.acme.email=$MAIL"
|
||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||||
volumes:
|
||||
- "./traefik/letsencrypt:/letsencrypt"
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
|
||||
### WIREGUARD
|
||||
wireguard:
|
||||
image: lscr.io/linuxserver/wireguard
|
||||
container_name: wireguard
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
environment:
|
||||
- PUID=$PUID
|
||||
- PGID=$PGID
|
||||
volumes:
|
||||
- ./wireguard/config/wg0.conf:/config/wg0.conf
|
||||
- /lib/modules:/lib/modules
|
||||
# Expose prometheus port
|
||||
expose:
|
||||
- 9090
|
||||
ports:
|
||||
- $SERVERPORT:$SERVERPORT/udp
|
||||
sysctls:
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
restart: unless-stopped
|
||||
|
||||
### MONITORING
|
||||
prometheus:
|
||||
image: prom/prometheus:v2.30.3
|
||||
container_name: prometheus
|
||||
volumes:
|
||||
- ./prometheus/prometheus-lt-1.yml:/etc/prometheus/prometheus.yml
|
||||
- prometheus_data:/prometheus
|
||||
command:
|
||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||
- '--storage.tsdb.path=/prometheus'
|
||||
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||
- '--web.console.templates=/etc/prometheus/consoles'
|
||||
- '--storage.tsdb.retention.time=200h'
|
||||
- '--web.enable-lifecycle'
|
||||
restart: unless-stopped
|
||||
network_mode: "service:wireguard"
|
||||
labels:
|
||||
org.label-schema.group: "monitoring"
|
||||
depends_on:
|
||||
- wireguard
|
||||
|
||||
nodeexporter:
|
||||
image: prom/node-exporter:v1.2.2
|
||||
container_name: nodeexporter
|
||||
volumes:
|
||||
- /proc:/host/proc:ro
|
||||
- /sys:/host/sys:ro
|
||||
- /:/rootfs:ro
|
||||
command:
|
||||
- '--path.procfs=/host/proc'
|
||||
- '--path.rootfs=/rootfs'
|
||||
- '--path.sysfs=/host/sys'
|
||||
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 9100
|
||||
labels:
|
||||
org.label-schema.group: "monitoring"
|
||||
|
||||
cadvisor:
|
||||
image: gcr.io/cadvisor/cadvisor:v0.42.0
|
||||
container_name: cadvisor
|
||||
privileged: true
|
||||
devices:
|
||||
- /dev/kmsg:/dev/kmsg
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /var/run:/var/run:ro
|
||||
- /sys:/sys:ro
|
||||
- /var/lib/docker:/var/lib/docker:ro
|
||||
#- /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 8080
|
||||
labels:
|
||||
org.label-schema.group: "monitoring"
|
||||
|
||||
pushgateway:
|
||||
image: prom/pushgateway:v1.4.2
|
||||
container_name: pushgateway
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 9091
|
||||
labels:
|
||||
org.label-schema.group: "monitoring"
|
||||
|
||||
### POKT
|
||||
pocket-lt-1:
|
||||
image: poktnetwork/pocket-core:stagenet-latest
|
||||
ports:
|
||||
- "127.0.0.1:8081:8081"
|
||||
- "26656:26656"
|
||||
expose:
|
||||
- 26656
|
||||
- 26660
|
||||
- 8081
|
||||
- 8083
|
||||
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||
#command: pocket start --simulateRelay
|
||||
environment:
|
||||
- POCKET_CORE_KEY=$POKT_LT_1_POCKET_CORE_KEY
|
||||
- POCKET_CORE_PASSPHRASE=$POKT_LT_1_POCKET_CORE_PASSPHRASE
|
||||
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||
volumes:
|
||||
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||
- pocket-lt-1:/home/app/.pocket
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.pocket-lt-1.loadbalancer.server.port=8081"
|
||||
- "traefik.http.routers.pocket-lt-1.entrypoints=websecure"
|
||||
- "traefik.http.routers.pocket-lt-1.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.pocket-lt-1.rule=Host(`$POKT_LT_1_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||
|
||||
pocket-lt-2:
|
||||
image: poktnetwork/pocket-core:stagenet-latest
|
||||
ports:
|
||||
- "127.0.0.1:8082:8081"
|
||||
- "26657:26656"
|
||||
expose:
|
||||
- 26656
|
||||
- 26660
|
||||
- 8081
|
||||
- 8083
|
||||
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||
#command: pocket start --simulateRelay
|
||||
environment:
|
||||
- POCKET_CORE_KEY=$POKT_LT_2_POCKET_CORE_KEY
|
||||
- POCKET_CORE_PASSPHRASE=$POKT_LT_2_POCKET_CORE_PASSPHRASE
|
||||
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||
volumes:
|
||||
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||
- pocket-lt-2:/home/app/.pocket
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.pocket-lt-2.loadbalancer.server.port=8081"
|
||||
- "traefik.http.routers.pocket-lt-2.entrypoints=websecure"
|
||||
- "traefik.http.routers.pocket-lt-2.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.pocket-lt-2.rule=Host(`$POKT_LT_2_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||
|
||||
pocket-lt-3:
|
||||
image: poktnetwork/pocket-core:stagenet-latest
|
||||
ports:
|
||||
- "127.0.0.1:8083:8081"
|
||||
- "26658:26656"
|
||||
expose:
|
||||
- 26656
|
||||
- 26660
|
||||
- 8081
|
||||
- 8083
|
||||
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||
#command: pocket start --simulateRelay
|
||||
environment:
|
||||
- POCKET_CORE_KEY=$POKT_LT_3_POCKET_CORE_KEY
|
||||
- POCKET_CORE_PASSPHRASE=$POKT_LT_3_POCKET_CORE_PASSPHRASE
|
||||
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||
volumes:
|
||||
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||
- pocket-lt-3:/home/app/.pocket
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.pocket-lt-3.loadbalancer.server.port=8081"
|
||||
- "traefik.http.routers.pocket-lt-3.entrypoints=websecure"
|
||||
- "traefik.http.routers.pocket-lt-3.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.pocket-lt-3.rule=Host(`$POKT_LT_3_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||
|
||||
pocket-lt-4:
|
||||
image: poktnetwork/pocket-core:stagenet-latest
|
||||
ports:
|
||||
- "127.0.0.1:8084:8081"
|
||||
- "26659:26656"
|
||||
expose:
|
||||
- 26656
|
||||
- 26660
|
||||
- 8081
|
||||
- 8083
|
||||
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||
#command: pocket start --simulateRelay
|
||||
environment:
|
||||
- POCKET_CORE_KEY=$POKT_LT_4_POCKET_CORE_KEY
|
||||
- POCKET_CORE_PASSPHRASE=$POKT_LT_4_POCKET_CORE_PASSPHRASE
|
||||
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||
volumes:
|
||||
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||
- pocket-lt-4:/home/app/.pocket
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.pocket-lt-4.loadbalancer.server.port=8081"
|
||||
- "traefik.http.routers.pocket-lt-4.entrypoints=websecure"
|
||||
- "traefik.http.routers.pocket-lt-4.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.pocket-lt-4.rule=Host(`$POKT_LT_4_DOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||
|
||||
### VOLUMES
|
||||
volumes:
|
||||
pocket-lt-1:
|
||||
pocket-lt-2:
|
||||
pocket-lt-3:
|
||||
pocket-lt-4:
|
||||
prometheus_data:
|
||||
@@ -51,7 +51,35 @@ services:
|
||||
- "traefik.http.services.pocket-testnet.loadbalancer.server.port=8081"
|
||||
- "traefik.http.routers.pocket-testnet.entrypoints=websecure"
|
||||
- "traefik.http.routers.pocket-testnet.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.pocket-testnet.rule=Host(`$RELAYDOMAIN`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||
- "traefik.http.routers.pocket-testnet.rule=Host(`$TEST_DOMAIN_1`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||
|
||||
pocket-mainnet:
|
||||
image: poktnetwork/pocket-core:stagenet-latest
|
||||
ports:
|
||||
- "127.0.0.1:8082:8081"
|
||||
- "26657:26656"
|
||||
expose:
|
||||
- 26656
|
||||
- 8081
|
||||
- 8083
|
||||
command: /home/app/.pocket/pokt_mainnet.sh && pocket start --seeds=$POCKET_MAIN_SEEDS --mainnet
|
||||
#command: pocket start --simulateRelay
|
||||
environment:
|
||||
- POCKET_SNAPSHOT=$POCKET_SNAPSHOT
|
||||
- POCKET_CORE_KEY=$POCKET_CORE_KEY_MAINNET
|
||||
- POCKET_CORE_PASSPHRASE=$POCKET_CORE_PASSPHRASE_MAINNET
|
||||
volumes:
|
||||
- ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh
|
||||
- ./pokt/config.json:/home/app/.pocket/config/config.json
|
||||
- ./chains/chains_mainnet.json:/home/app/.pocket/config/chains.json
|
||||
- pocket-mainnet:/home/app/.pocket
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.pocket-mainnet.loadbalancer.server.port=8081"
|
||||
- "traefik.http.routers.pocket-mainnet.entrypoints=websecure"
|
||||
- "traefik.http.routers.pocket-mainnet.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.pocket-mainnet.rule=Host(`$TEST_DOMAIN_2`) && Path(`/v1`, `/v1/client/{dispatch|relay|challenge|sim}`)"
|
||||
|
||||
### MONITORING
|
||||
### WIREGUARD
|
||||
@@ -135,5 +163,6 @@ services:
|
||||
### VOLUMES
|
||||
volumes:
|
||||
pocket-testnet:
|
||||
pocket-mainnet:
|
||||
prometheus_data:
|
||||
|
||||
46
docker-compose.traefik.yml
Normal file
46
docker-compose.traefik.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
restart: always
|
||||
expose:
|
||||
- "8082"
|
||||
ports:
|
||||
- "443:443"
|
||||
- "127.0.0.1:8080:8080"
|
||||
command:
|
||||
- "--api=true"
|
||||
- "--api.insecure=true"
|
||||
- "--api.dashboard=true"
|
||||
- "--log.level=DEBUG"
|
||||
- "--providers.docker=true"
|
||||
- "--providers.docker.exposedbydefault=false"
|
||||
- "--entrypoints.websecure.address=:443"
|
||||
- "--entryPoints.metrics.address=:8082"
|
||||
- "--metrics.prometheus.entryPoint=metrics"
|
||||
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
||||
# TESTING
|
||||
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
- "--certificatesresolvers.myresolver.acme.email=$MAIL"
|
||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
||||
volumes:
|
||||
- "./traefik/letsencrypt:/letsencrypt"
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
networks:
|
||||
- chains
|
||||
#labels:
|
||||
# - "traefik.enable=true"
|
||||
# - "prometheus-scrape.enabled=true"
|
||||
# - "prometheus-scrape.port=8082"
|
||||
# - "prometheus-scrape.job_name=traefik"
|
||||
|
||||
|
||||
networks:
|
||||
chains:
|
||||
driver: bridge
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 192.168.0.1/27
|
||||
7
haproxy/Dockerfile
Normal file
7
haproxy/Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
||||
FROM haproxy:alpine
|
||||
|
||||
USER root
|
||||
RUN apk add --no-cache curl bash jq
|
||||
USER haproxy
|
||||
|
||||
CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"]
|
||||
25
haproxy/ethereum-healthcheck.sh
Executable file
25
haproxy/ethereum-healthcheck.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# $1 = Virtual Service IP (VIP)
|
||||
# $2 = Virtual Service Port (VPT)
|
||||
# $3 = Real Server IP (RIP)
|
||||
# $4 = Real Server Port (RPT)
|
||||
# $5 = Check Source IP
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
VIP=$1
|
||||
VPT=$2
|
||||
RIP=$3
|
||||
RPT=$4
|
||||
# RPT=8545
|
||||
|
||||
# Run curl with appropriate options
|
||||
curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_syncing","params": [],"id":1}' https://$HAPROXY_SERVER_NAME:$RPT/$HAPROXY_PROXY_NAME 2>/dev/null | jq '.result' -r | grep -q false
|
||||
exit1=$?
|
||||
|
||||
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' https://$HAPROXY_SERVER_NAME:$RPT/$HAPROXY_PROXY_NAME 2>/dev/null | jq '.result' -r)
|
||||
|
||||
# If any of the above tests failed, then exit 1.
|
||||
if [[ "$exit1" -ne 0 ]]; then exit 1; fi
|
||||
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||
exit 0
|
||||
25
haproxy/polygon-healthcheck.sh
Executable file
25
haproxy/polygon-healthcheck.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# $1 = Virtual Service IP (VIP)
|
||||
# $2 = Virtual Service Port (VPT)
|
||||
# $3 = Real Server IP (RIP)
|
||||
# $4 = Real Server Port (RPT)
|
||||
# $5 = Check Source IP
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
VIP=$1
|
||||
VPT=$2
|
||||
RIP=$3
|
||||
RPT=$4
|
||||
# RPT=8545
|
||||
|
||||
# Run curl with appropriate options
|
||||
our_blockheight=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params": [],"id":1}' https://$HAPROXY_SERVER_NAME:$RPT/$HAPROXY_PROXY_NAME 2>/dev/null | printf "%d" $(jq '.result' -r))
|
||||
pokt_blockheight=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params": [],"id":1}' https://poly-rpc.gateway.pokt.network 2>/dev/null | printf "%d" $(jq '.result' -r))
|
||||
|
||||
peers=$(curl -s -X POST -H "Content-Type: application/json" -m 2 -d '{"jsonrpc":"2.0","method":"net_peerCount","params": [],"id":1}' https://$HAPROXY_SERVER_NAME:$RPT/$HAPROXY_PROXY_NAME 2>/dev/null | jq '.result' -r)
|
||||
|
||||
# If any of the above tests failed, then exit 1.
|
||||
if [[ "$our_blockheight" -lt "$pokt_blockheight - 10" ]]; then exit 1; fi
|
||||
if [[ `printf "%d" $peers` == "0" || `printf "%d" $peers` == "1" ]]; then exit 1; fi
|
||||
exit 0
|
||||
@@ -143,7 +143,7 @@
|
||||
"user_agent": "",
|
||||
"validator_cache_size": 10000,
|
||||
"application_cache_size": 10000,
|
||||
"rpc_timeout": 30000,
|
||||
"rpc_timeout": 60000,
|
||||
"pocket_prometheus_port": "8083",
|
||||
"prometheus_max_open_files": 3,
|
||||
"max_claim_age_for_proof_retry": 32,
|
||||
|
||||
@@ -34,6 +34,12 @@ scrape_configs:
|
||||
static_configs:
|
||||
- targets: ['pushgateway:9091']
|
||||
|
||||
- job_name: 'haproxy'
|
||||
scrape_interval: 10s
|
||||
honor_labels: true
|
||||
static_configs:
|
||||
- targets: ['haproxy:8404']
|
||||
|
||||
- job_name: 'pocket-lt-1'
|
||||
scrape_interval: 10s
|
||||
honor_labels: true
|
||||
|
||||
34
prometheus/prometheus.autodiscover.yml
Normal file
34
prometheus/prometheus.autodiscover.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
|
||||
# Attach these labels to any time series or alerts when communicating with
|
||||
# external systems (federation, remote storage, Alertmanager).
|
||||
external_labels:
|
||||
monitor: 'docker-host-alpha'
|
||||
|
||||
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
|
||||
rule_files:
|
||||
- "alert.rules"
|
||||
|
||||
# A scrape configuration containing exactly one endpoint to scrape.
|
||||
scrape_configs:
|
||||
- job_name: 'nodeexporter'
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['nodeexporter:9100']
|
||||
|
||||
- job_name: 'cadvisor'
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['cadvisor:8080']
|
||||
|
||||
- job_name: 'prometheus'
|
||||
scrape_interval: 10s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
|
||||
- job_name: 'service_discovery'
|
||||
file_sd_configs:
|
||||
- files:
|
||||
- '/prometheus-docker-sd/docker-targets.json'
|
||||
Reference in New Issue
Block a user