项目简介
本项目是一个基于Raspberry Pi和Docker的家庭监控系统,以Raspberry Pi为硬件载体,采用Docker进行容器化部署。系统能通过HTTP或MQTT接收外部设备的监测数据,并将数据存储于Influxdb中,同时支持使用自定义Python脚本对数据进行处理及发送通知。
项目的主要特性和功能
- 数据接收与存储:可通过HTTP或MQTT接收包含数据点的JSON消息,并将其存储到Influxdb中。
- 自定义脚本执行:允许编写自定义Python脚本,利用Influxdb查询数据、通过Apprise发送警报、经MQTT发送命令等。
- 便捷管理:使用Docker Compose对项目进行管理,可下载最新版本、创建或更新项目、查看服务状态等。
安装使用步骤
安装依赖
- 确保已在SD卡上使用“Raspberry Pi Imager”软件烧录“Raspberry Pi OS Lite (64 - bit)”,并进行相关配置,如设置主机名、启用SSH、设置用户密码、配置网络和时区等。
- 登录到Raspberry Pi:
ssh pi@pis_ip_address
。 - 安装项目的系统依赖和工具:
sh sudo apt-get update sudo apt-get install -y git vim curl -sSL https://get.docker.com/ | sudo bash - sudo gpasswd -a pi docker
- 在
.bashrc
中添加别名:sh echo >> .bashrc echo 'alias d="docker"' >> .bashrc echo 'alias dc="docker compose"' >> .bashrc
- 限制系统日志大小:
sh sudo nano /etc/systemd/journald.conf
在文件中设置SystemMaxUse = 50M
,然后重启日志服务:sh sudo systemctl restart systemd-journald.service
- 重启SSH会话:
Ctrl - D
或exit
,然后再次登录ssh pi@...
。
项目设置
- 复制项目仓库并进入目录:
sh cd home - monitoring git config pull.ff only
- 填充
.env
文件:sh cp.env.example.env nano.env
- 填充
dnsmasq.conf
文件:sh cd docker-compose-resources/dns-server cp dnsmasq.conf.example dnsmasq.conf nano dnsmasq.conf cd -
- 创建
custom_scripts.py
文件:sh cd docker-compose-build/custom_scripts cp custom_scripts.py.example custom_scripts.py cd -
- 可更新路由器的DHCP设置,将Raspberry Pi的IP作为主DNS服务器,并设置
1.1.1.1
等作为辅助DNS服务器,之后重新连接计算机到网络。 - 启动Docker Compose项目:
sh cd home - monitoring dc up -d --build
访问项目
项目启动完成后,可通过http://home - monitoring - pi
(Windows使用http://home - monitoring - pi.local
)访问项目的着陆页。
项目维护
在home - monitoring
文件夹中,可使用以下命令管理项目:
- git pull && dc pull
:下载最新项目版本。
- dc up -d --build
:创建或更新项目并启动所有服务。
- dc down --remove - orphans
:销毁项目(不删除持久存储)。
- dc ps -a
:显示所有服务的状态。
- dc stop [service]
:停止服务。
- dc start [service]
:启动服务。
- dc logs -f [service]
:查看服务日志。
- dc exec [service] [bash/sh/...]
:在服务中打开shell。
- dc rm [service]
:销毁服务(不删除持久存储)。
危险命令:
- dc down --remove - orphans && sudo rm volumes/* -rf
:删除所有持久存储,此操作不可恢复。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】