freqtrade 的github地址:https://github.com/freqtrade/freqtrade
主机部署好宝塔
略
宝塔中安装 docker 和 nginx
略
docker中安装freqtrade
https://www.freqtrade.io/en/stable/docker_quickstart/#freqtrade-with-docker
确定服务器上一个目录,以后保存策略、数据、回测等核心文件,cd 切换,然后挨个执行
mkdir ft_userdata
cd ft_userdata/
# Download the docker-compose file from the repository
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
# Pull the freqtrade image
docker compose pull
# Create user directory structure
docker compose run --rm freqtrade create-userdir --userdir user_data
# Create configuration - Requires answering interactive questions
docker compose run --rm freqtrade new-config --config user_data/config.json
最后一步指令会出现选项,有的选错,会导致 config.json 配置失败,不出现config.json文件
启动所有docker 容器
docker compose up -d
查看所有启动的docker 容器,看是否有两个,一个执行,一个 webUI
docker ps
增加容器服务freqtrade-webUI
用两个容器,一个交易,一个 web 服务展示回测,好处是资源相互隔离,避免回测消耗资源导致交易程序终止的情况。
修改ft_userdata/docker-compose.yml,增加另外台容器服务的配置
webserver:
image: freqtradeorg/freqtrade:stable
restart: unless-stopped
container_name: freqtrade-webserver
volumes:
- "./user_data:/freqtrade/user_data"
ports:
- "127.0.0.1:8081:8080" # 可以更改端口,避免与 trade 服务冲突,webUI 的127.0.0.1:8081 映射到docker 宿主的8080 端口
command: >
webserver
--logfile /freqtrade/user_data/logs/freqtrade_webserver.log
--config /freqtrade/user_data/config.json
启动所有docker 容器
docker compose up -d
查看所有启动的docker 容器,看是否有两个,一个执行,一个 webUI
docker ps
验证容器到docker宿主的8080 端口是否通畅
方法1:安装远程桌面直接浏览
阿里云进入vnc 登录,默认没安装桌面,需要手动安装
sudo apt update
sudo apt install lxqt lxqt-core
启动服务器内桌面,打开服务器内的 chrome 浏览器,访问内网地址 127.0.0.1:8081,看是否能打开 webUI 页面。
能打开,则说明正常
方法2:curl 指令
curl http://127.0.0.1:8081
有 html 代码返回,则表示访问正常
内网到外网的地址暴露
-
修改配置ft_userdata/docker-compose.yml
- "127.0.0.1:8081:8080"
改成
- "8081:8080"
意思是将 webUI 容器的 8080 直接转 0.0.0.0:8081,简写"8081:8080"
-
阿里云 ecs 放行8081端口,不然无法访问
-
宝塔中容器里,开启反向代理,增加安全性
验证:打开地址 公网 ip: 8081端口直接访问
其他问题
webUI 不建议多用户登录
没有必要支持多用户登录,且增加复杂度了
docker时间不对:容器内时区相差8小时问题解决
在宿主机内对容器进行修改
直接执行以下命令,不需要进入容器内
docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime
windows的cmd命令行,整理成可执…