Tesla服务器下docker安装teslamate详细教程防踩坑

By | 2024-01-21

Teslamate

teslamate
首先一台服务器

黑群晖思路:docker搭建,然后利用cloudflare的套件隧道链接到3000端口进行公网访问,速度应该还不错

SSH进入系统,软件建议FinaShell
apt update
apt upgrade -y
apt install vim nano -y
以上命令安装常用工具

安装docker命令如下:
curl -fsSL https://get.docker.com | bash -s docker docker run --rm -v /usr/local/bin:/dist gists/docker-compose-bin:latest && docker rmi gists/docker-compose-bin:latest
安装docker-compose
docker run --rm -v /usr/local/bin:/dist gists/docker-compose-bin:latest && docker rmi gists/docker-compose-bin:latest
使用FinaShell可视化处理(如果黑群晖无法查看文件夹可以使用WinSCP新建处理),root文件夹下新建“tesla”文件夹
cd /root/tesla #进入tesla文件夹
新建文件
nano docker-compose.yml
然后复制官网的命令有几处需要修改(中文的下拉)

version: "3"

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=secretkey #这里没懂,建议看官方介绍
      - DATABASE_USER=teslamate
      - DATABASE_PASS=password #可以自定密码
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - 4000:4000  #如果要修改前端访问端口可以设置80:4000,这样就可以直接输入域名或者IP访问,前提是端口没有占用 使用devv.ai查询端口占用命令看一下
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all

  database:
    image: postgres:15
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=password #可以自定密码
      - POSTGRES_DB=teslamate
    volumes:
      - ./teslamate-db:/var/lib/postgresql/data #此处官网前面少一个./命令,这个命令映射docker内程序的文件夹到服务器指定文件夹,冒号前面是指定文件夹,后面是docker内文件夹前面可以只有设置指定到服务器某文件夹,建议先行设置,然后设置访问权限为777

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=password #可以自定密码
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
    ports:
      - 3000:3000
    volumes:
      - ./teslamate-grafana-data:/var/lib/grafana #此处官网前面少一个./命令,这个命令映射docker内程序的文件夹到服务器指定文件夹,冒号前面是指定文件夹,后面是docker内文件夹前面可以只有设置指定到服务器某文件夹,建议先行设置,然后设置访问权限为777

  mosquitto:
    image: eclipse-mosquitto:2
    restart: always
    command: mosquitto -c /mosquitto-no-auth.conf
    # ports:
    #   - 1883:1883
    volumes:
      - ./mosquitto-conf:/mosquitto/config #此处官网前面少一个./命令,这个命令映射docker内程序的文件夹到服务器当前目录下的"mosquitto-conf"文件夹,冒号前面是指定文件夹,后面是docker内文件夹前面可以只有设置指定到服务器某文件夹,建议先行设置,然后设置访问权限为777
      - ./mosquitto-data:/mosquitto/data #此处官网前面少一个./命令,这个命令映射docker内程序的文件夹到服务器指定文件夹,冒号前面是指定文件夹,后面是docker内文件夹前面可以只有设置指定到服务器某文件夹,建议先行设置,然后设置访问权限为777

volumes:
  teslamate-db:  #此处名称是对应上面设置的文件夹,如果是复制命令无需修改
  teslamate-grafana-data:  #此处名称是对应上面设置的文件夹,如果是复制命令无需修改
  mosquitto-conf:  #此处名称是对应上面设置的文件夹,如果是复制命令无需修改
  mosquitto-data:  #此处名称是对应上面设置的文件夹,如果是复制命令无需修改

中文版(侵权联系删除)

version: "3"

services:
  teslamate:
    image: dhuar/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=secretkey #这里没懂,建议看官方介绍
      - DATABASE_USER=teslamate
      - DATABASE_PASS=password #可以自定密码
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - 4000:4000  #如果要修改前端访问端口可以设置80:4000,这样就可以直接输入域名或者IP访问,前提是端口没有占用 使用devv.ai查询端口占用命令看一下
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all

  database:
    image: postgres:15
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=password #可以自定密码
      - POSTGRES_DB=teslamate
    volumes:
      - ./teslamate-db:/var/lib/postgresql/data #此处官网前面少一个./命令,这个命令映射docker内程序的文件夹到服务器指定文件夹,冒号前面是指定文件夹,后面是docker内文件夹前面可以只有设置指定到服务器某文件夹,建议先行设置,然后设置访问权限为777

  grafana:
    image: dhuar/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=password #可以自定密码
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
    ports:
      - 3000:3000  #如果要修改前端访问端口可以设置80:4000,这样就可以直接输入域名或者IP访问,前提是端口没有占用 使用devv.ai查询端口占用命令看一下
    volumes:
      - ./teslamate-grafana-data:/var/lib/grafana #此处官网前面少一个./命令,这个命令映射docker内程序的文件夹到服务器指定文件夹,冒号前面是指定文件夹,后面是docker内文件夹前面可以只有设置指定到服务器某文件夹,建议先行设置,然后设置访问权限为777

  mosquitto:
    image: eclipse-mosquitto:2
    restart: always
    command: mosquitto -c /mosquitto-no-auth.conf
    # ports:
    #   - 1883:1883
    volumes:
      - ./mosquitto-conf:/mosquitto/config #此处官网前面少一个./命令,这个命令映射docker内程序的文件夹到服务器当前目录下的"mosquitto-conf"文件夹,冒号前面是指定文件夹,后面是docker内文件夹前面可以只有设置指定到服务器某文件夹,建议先行设置,然后设置访问权限为777
      - ./mosquitto-data:/mosquitto/data #此处官网前面少一个./命令,这个命令映射docker内程序的文件夹到服务器指定文件夹,冒号前面是指定文件夹,后面是docker内文件夹前面可以只有设置指定到服务器某文件夹,建议先行设置,然后设置访问权限为777

volumes:
  teslamate-db:  #此处名称是对应上面设置的文件夹,如果是复制命令无需修改
  teslamate-grafana-data:  #此处名称是对应上面设置的文件夹,如果是复制命令无需修改
  mosquitto-conf:  #此处名称是对应上面设置的文件夹,如果是复制命令无需修改
  mosquitto-data:  #此处名称是对应上面设置的文件夹,如果是复制命令无需修改

修改好后 Ctrl+X然后保存退出
输入命令docker-compose up -d运行如文件夹权限无问题即可运行
如果3000端口无法打开,可以查看grafana日志
利用docker run -d --restart=always --name=portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer
这个工具可以查看docker日志
或者docker logs <grafana_container_id>命令查看日志
grafana_container_iddocker ps -a
命令进行查看如果提示文件夹错误那就是权限问题
利用finalshell右键teslamate-grafana-data文件夹权限,打钩全部
或者执行命令sudo chmod 777 /root/tesla/teslamate-grafana-data
然后reboot重启服务器即可运行
完结,下次有时间再弄黑群晖的