Web daemon for ssmanager, which supports multi methods for different ports.
Instead of checking port lists periodically, you need to trigger web hook manually for port info updating.
You can enable logging traffic to InfluxDB, which can be nicely viewed in Grafana.
pip3 install git+https://github.com/shadowsocks/shadowsocks.git@master
pip3 install git+https://github.com/sorz/ssmanager.git
pip3 install git+https://github.com/fzinfz/ssmanager-nopanel.git
ssmanager-nopanel -h # print usage
ssmanager-nopanel # run demo without traffic logging
Note: Only Python 3.6 tested. Other 3.x versions may work. 2.x not supported.
Log traffic to influxdb & display in grafana
curl -fsSL get.docker.com | bash
export IP_Private=127.0.0.1
# Non-public IP suggested because influxdb auth not enabled by default
docker run --name influxdb \
-p ${IP_Private}:8086:8086 \
-v $PWD/influxdb:/var/lib/influxdb \
-d --restart unless-stopped \
influxdb # Start influxdb
curl -i -XPOST http://${IP_Private}:8086/query \
--data-urlencode "q=CREATE DATABASE tsadmin" # create db
export URL_influxdb=http://${IP_Private}:8086/write?db=tsadmin
docker run --name ss-mgr -d --net host fzinfz/ss:mgr -d $URL_influxdb
docker logs ss-mgr # check logs
curl -G "http://${IP_Private}:8086/query?db=tsadmin&pretty=true" \
--data-urlencode "q=SELECT * FROM ss GROUP BY * ORDER BY time DESC LIMIT 1" # query latest traffic
curl -G "http://${IP_Private}:8086/query?db=tsadmin&pretty=true" \
--data-urlencode "q=SELECT count(\"value\") FROM ss GROUP BY *" # count traffic items
docker run -d --name grafana --net host grafana/grafana
# Traffic dashboard: http://server_ip:3000, user/password:admin/admin
SELECT "value" FROM "ss" GROUP BY port
curl http://localhost:8000/update # replace `localhost` to your own remote address
This module works without a panel. It just read remote json file and write to influxdb. But there is a panel existing for management: https://github.com/fzinfz/tsadmin