部署指南

推荐将 Xiaomi EV Mate 部署在私有环境,例如 NAS、家庭服务器或个人云主机。

项目会保存车辆和账号相关配置,不建议直接暴露在公网。

方式一:脚本一键部署

这是推荐方式。脚本会启动服务,并等待 db-init 容器完成数据库初始化或升级。

bash
git clone git@github.com:Ponyix/xiaomiev-mate-public.git
cd xiaomiev-mate-public
cp .env.example .env
chmod +x deploy.sh
./deploy.sh

首次部署前,请修改 .env 中的数据库密码:

bash
DB_PASSWORD=your_password

默认会拉取:

  • ponyix/xiaomiev-mate:backend-latest
  • ponyix/xiaomiev-mate:web-latest

方式二:手动使用 Docker Compose

如果你希望自己控制 Compose 配置,可以直接创建 docker-compose.yml 部署,不需要额外创建 .env

如果你使用的是极空间 NAS,也可以直接阅读 极空间安装教程

创建 docker-compose.yml

yaml
services:
  postgres:
    image: postgres:15-alpine
    container_name: xiaomiev-postgres
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: your_strong_password
      POSTGRES_DB: xiaomi_ev
      TZ: Asia/Shanghai
    ports:
      - "15432:5432"
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U postgres" ]
      interval: 5s
      timeout: 5s
      retries: 5

  xiaomiev-mate:
    container_name: xiaomiev-mate
    image: ponyix/xiaomiev-mate:backend-latest
    pull_policy: always
    volumes:
      - ./logs:/var/log/xiaomiev
    environment:
      - TZ=Asia/Shanghai
      - SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/xiaomi_ev?stringtype=unspecified
      - SPRING_DATASOURCE_USERNAME=postgres
      - SPRING_DATASOURCE_PASSWORD=your_strong_password
    restart: always
    depends_on:
      db-init:
        condition: service_completed_successfully

  xiaomiev-mate-web:
    container_name: xiaomiev-mate-web
    image: ponyix/xiaomiev-mate:web-latest
    pull_policy: always
    ports:
      - "18080:80"
    restart: always
    depends_on:
      - xiaomiev-mate

按需修改:

  • your_strong_password:数据库密码,必须替换成自己的强密码,两处要保持一致。
  • backend-latest:后端镜像版本。如果要固定版本,可以改成 backend-v1.0.x
  • web-latest:前端镜像版本。如果要固定版本,可以改成 web-v1.0.x
  • 获取项目最新版本号更新日志
  • 15432:5432:数据库端口映射。如果宿主机 15432 被占用,可以改成其他端口,例如 25432:5432
  • 18080:80:前端访问端口。如果宿主机 18080 被占用,可以改成其他端口,例如 8080:80

启动服务:

bash
docker compose -f docker-compose.yml up -d

前端默认访问地址:

text
http://localhost:18080

固定版本部署

如果不想使用 latest,可以固定前后端镜像版本:

bash
BACKEND_IMAGE_TAG=v1.0.x WEB_IMAGE_TAG=v1.0.x DB_INIT_IMAGE_TAG=v1.0.x ./deploy.sh

也可以在 .env 中配置:

bash
BACKEND_IMAGE_TAG=v1.0.5
WEB_IMAGE_TAG=v1.0.5
DB_INIT_IMAGE_TAG=v1.0.5

如果只想分别升级后端或前端,也可以指定不同版本 获取项目最新版本号更新日志

部署建议

  • 推荐部署在私有网络中。
  • 首次登录后立即修改默认管理员密码。
  • 不要把 .env、数据库数据和账号参数公开提交。
  • 临时体验后可删除容器和数据,避免敏感信息残留。

问题反馈

部署过程中遇到问题,可以在这里反馈:

https://github.com/Ponyix/xiaomiev-mate-public/issues