# linux-flask-dashboard
**Repository Path**: louisyoungx/linux-flask-dashboard
## Basic Information
- **Project Name**: linux-flask-dashboard
- **Description**: Linux系统轻量级高可用的Web监控仪表盘,仅400K
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 5
- **Created**: 2021-04-05
- **Last Updated**: 2024-02-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Python, Flask
## README
v1.0
一个简单 & 轻量的 web 仪表盘 for linux 系统
Demo |
文档
|
English
## 一、亮点
* **轻量** ------ 占用在400KB以下
* **美观** ------ 极简主义,漂亮的仪表盘
* **简单** ------ 上手简洁
* **多样** ------ 选择使用 Python, Docker的版本
## 二、安装
### 第一步
```sh
## 1. clone the repo
git clone https://gitee.com/louisyoung1/linux-flask-dashboard.git
## 2. go to the cloned directory
cd linux-flask-dashboard
## 3. use pip to install requirements
python3 -m pip install -r requirements.txt
```
或者,如果你喜欢手动下载:
```sh
## 1. Download the .zip & unzipped dir
curl -LOk https://gitee.com/louisyoung1/linux-flask-dashboard/repository/archive/master.zip && unzip master.zip
## 2. go to the downloaded directory
cd linux-flask-dashboard
## 3. use pip to install requirements
python3 -m pip install -r requirements.txt
##(若第三步CentOS系统安装psutil报错,可尝试 yum -y install python3-devel)
##(若CentOS启动后打不开页面,请检查firewalld防火墙配置!)
```
### 第二步
详见 Linux Flask Dashboard 支持的版本 :
* [Python](#使用-Python)
* [Docker](#使用-Docker)
#### 使用 Python
```sh
## 1. Start the server (on port 12005 by default; may require sudo).
python index.py
## 2. Open your browser to visit [http://0.0.0.0:12005] (on port 12005 by default; may require sudo)
# 浏览器访问 http://0.0.0.0:12005
```
#### 使用 Docker
确保你已经启用了Docker,你可以用一行命令安装Docker
```sh
## make sure you have install docker in your server
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
```
##### 方法一(使用源代码创建Docker镜像)
```sh
## 1. go to the cloned directory
cd linux-flask-dashboard
## 2. build docker image
sudo docker build -t linux-flask-dashboard .
## 3. start docker container
docker run -itd -p 12005:12005 --restart=always --name flask-dash-test linux-flask-dashboard:latest
## 2. Open your browser to visit [http://0.0.0.0:12005] (on port 12005 by default; may require sudo)
# 浏览器访问 http://0.0.0.0:12005
```
##### 方法二(从Docker Hub拉取镜像)
```sh
## 1. pull from docker hub
docker pull louisyoung1/linux-flask-dashboard
## 2. start docker container
docker run -itd -p 12005:12005 --restart=always --name flask-dash-test linux-flask-dashboard:latest
## 3. Open your browser to visit [http://0.0.0.0:12005] (on port 12005 by default; may require sudo)
# 浏览器访问 http://0.0.0.0:12005
```
## 三、快速上手
开启服务:
`$ python3 main.py`
启用一个代理:
`$ python3 main.py -a --register-to [http|https]://[host]:[port] --register-as my-agent-node`
这将在 *代理模式* 下启动服务,并尝试将节点注册到 `--register-to` 选项所指向的主节点。
代理节点将分别在 `-p/--port` 和 `-b/--bind` 指定的主机和端口上设置RPC服务器,以替代web服务器。
主psdash节点(提供HTTP服务)将提供一个注册节点列表,可以在这些节点之间进行切换。
可用的命令行参数:
```
$ python3 main.py --help
usage: psdash [-h] [-l path] [-b host] [-p port] [-d] [-a]
[--register-to host:port] [--register-as name]
psdash [version] - system information web dashboard
optional arguments:
-h, --help show this help message and exit
-l path, --log path log files to make available for psdash. Patterns (e.g.
/var/log/**/*.log) are supported. This option can be
used multiple times.
-b host, --bind host host to bind to. Defaults to 0.0.0.0 (all interfaces).
-p port, --port port port to listen on. Defaults to 5000.
-d, --debug enables debug mode.
-a, --agent Enables agent mode. This launches a RPC server, using
zerorpc, on given bind host and port.
--register-to host:port
The psdash node running in web mode to register this
agent to on start up. e.g 10.0.1.22:5000
--register-as name The name to register as. (This will default to the
node's hostname)
```
## 四、设置
Linux Flask Dashboard 使用了Flask提供配置。
环境变量' PSDASH_CONFIG '所指向的配置文件将在启动时读取。
e.g: `$ PSDASH_CONFIG=/home/user/config.py psdash`
除了特定的 [Flask内置可选设置](http://flask.pocoo.org/docs/config/#builtin-configuration-values) 之外,Linux Flask Dashboard 也提供了额外的可选设置:
| 名称 | 描述 |
| ---- | ----------- |
| `PSDASH_AUTH_USERNAME` | 登录验证的用户名。当这个值和`PSDASH_AUTH_PASSWORD` 同时设置后,访问将需要使用登录验证 |
| `PSDASH_AUTH_PASSWORD` | 登录验证的密码 |
| `PSDASH_ALLOWED_REMOTE_ADDRESSES` | 如设置,则只允许使用该ip地址访问。地址之间用逗号分隔,例如: `PSDASH_ALLOWED_REMOTE_ADDRESSES = "10.0.0.2, 192.29.20.2"` |
| `PSDASH_URL_PREFIX` | 这可以用来从非根位置提供服务 例如: `PSDASH_URL_PREFIX = "/dash"` 将使服务页从 /dash 启动 |
| `PSDASH_LOG_LEVEL` | 设置日志级别 (传入 `logging.basicConfig`). *默认设置为 `logging.INFO`*. |
| `PSDASH_LOG_LEVEL` | 设置日志格式 (传入 `logging.basicConfig`). *默认设置为 `%(levelname)s | %(name)s | %(message)s`*. |
| `PSDASH_NODES` | 要在启动时注册的代理节点列表(每个节点一个字典)。如: `[{'name': 'mywebnode', 'host': '10.0.0.2', 'port': 5000}]` |
| `PSDASH_NET_IO_COUNTER_INTERVAL` | 更新用于计算网络流量的计数器的时间间隔(s)。 *默认为3秒*. |
| `PSDASH_LOGS_INTERVAL` | 重新应用日志模式以确保应用文件系统更改(创建或删除日志文件)的间隔(以秒为单位)。*默认为60 *。|
| `PSDASH_REGISTER_INTERVAL` | 将代理注册到主机节点的间隔(以秒为单位)。定期进行以便能够确定任何节点是否已经消失以及在什么时候消失。*默认为60 * |
| `PSDASH_LOGS` | 记录在启动时应用的模式。 例如: `['/var/log/*.log']`. 要使用命令行覆盖这个选项,请使用 `-l/--log` 参数选项。 |
| `PSDASH_REGISTER_TO` | 在代理模式下运行时,它用于设置将代理节点注册到哪个psdash节点。如 `http://10.0.20.2:5000` |
| `PSDASH_REGISTER_AS` | 在代理模式下运行时,它用于设置要注册到主机节点的名称,该节点由 `PSDASH_REGISTER_TO`指定. |
| `PSDASH_HTTPS_KEYFILE` | 用于启用以HTTPS方式启动web服务器的SSL密钥文件的路径。如 `/home/user/private.key`
| `PSDASH_HTTPS_CERTFILE` | 用于启用以HTTPS方式启动web服务器的SSL证书文件路径。如 `/home/user/certificate.crt`
| `PSDASH_ENVIRON_WHITELIST` | 如果设置了,则只会显示此列表中的env变量的值。如`['HOME']`
## 五、预览
未完待续······
## 六、技术支持
有技术难题,在 [Louis-House](https://www.louisyoung.work/Contact)有我的联系方式
## 七、安全
**强烈建议 **在安全的环境下安装**[Linux Flask Dashboard](https://gitee.com/louisyoung1/linux-flask-dashboard)**
**[Linux Flask Dashboard](https://gitee.com/louisyoung1/linux-flask-dashboard)** 仅提供简单安全性与身份验证特性。
## 八、许可
The GPL License (**[GPL-3.0](https://gitee.com/louisyoung1/linux-flask-dashboard/blob/master/LICENSE)**)