开源项目教程:Jake Wright的家居自动化系统
1. 项目的目录结构及介绍
home-automation/
├── README.md
├── docker-compose.yml
├── services/
│ ├── api/
│ ├── web/
│ ├── database/
│ ├── mqtt/
│ └── ...
├── config/
│ ├── api.conf
│ ├── web.conf
│ ├── database.conf
│ └── ...
└── scripts/
├── setup.sh
├── start.sh
└── ...
- README.md: 项目说明文件,包含项目的基本信息和使用指南。
- docker-compose.yml: Docker容器编排文件,用于定义和运行多个Docker容器。
- services/: 包含各个服务的代码和配置文件,如API服务、Web服务、数据库服务等。
- config/: 包含各个服务的配置文件,如API配置、Web配置、数据库配置等。
- scripts/: 包含项目的脚本文件,如安装脚本、启动脚本等。
2. 项目的启动文件介绍
docker-compose.yml
version: '3.8'
services:
api:
image: jakewright/home-automation-api:latest
ports:
- "8080:8080"
volumes:
- ./config/api.conf:/etc/api/api.conf
web:
image: jakewright/home-automation-web:latest
ports:
- "80:80"
volumes:
- ./config/web.conf:/etc/web/web.conf
database:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
mqtt:
image: eclipse-mosquitto:latest
ports:
- "1883:1883"
volumes:
- ./config/mqtt.conf:/mosquitto/config/mosquitto.conf
volumes:
db_data:
- api: API服务,监听8080端口,挂载配置文件
api.conf
。 - web: Web服务,监听80端口,挂载配置文件
web.conf
。 - database: 数据库服务,使用MySQL 5.7,设置环境变量
MYSQL_ROOT_PASSWORD
。 - mqtt: MQTT服务,监听1883端口,挂载配置文件
mqtt.conf
。
3. 项目的配置文件介绍
api.conf
[server]
host = 0.0.0.0
port = 8080
[database]
host = database
port = 3306
user = root
password = example
name = home_automation
[mqtt]
host = mqtt
port = 1883
- server: 配置API服务的监听地址和端口。
- database: 配置数据库连接信息,包括主机、端口、用户名、密码和数据库名。
- mqtt: 配置MQTT服务的连接信息,包括主机和端口。
web.conf
[server]
host = 0.0.0.0
port = 80
[api]
url = http://api:8080
- server: 配置Web服务的监听地址和端口。
- api: 配置API服务的URL。
database.conf
[mysqld]
bind-address = 0.0.0.0
port = 3306
[client]
host = database
port = 3306
user = root
password = example
- mysqld: 配置MySQL服务的监听地址和端口。
- client: 配置数据库客户端连接信息,包括主机、端口、用户名和密码。
以上是Jake Wright的家居自动化系统的目录结构、启动文件和配置文件的详细介绍。希望这份文档能帮助你更好地理解和使用该项目。