Ubuntu16.04安装QQ机器人
Ubuntu安装QQ机器人
看了看现在QQ机器人似乎只有酷Q机器人有Docker可以在linux上运行了
那就k开始装酷Q机器人,资源占用也不是很大,大概占用180M内存吧
安装酷Q HTTP
首先安装好docker

酷Q官网提供了docker COOLQ Docker 2.0
但是我是打算通过HTTP进行一些功能开发的,于是选择了大佬做的带HTTP插件的 CQHTTP Docker
首先pull镜像,我觉得下载的比较慢,挂了一个screen慢慢下
docker pull richardchien/cqhttp:latest
下载完成后启动容器进行测试
docker run -ti --rm --name coolq \
        -v /home/coolq:/home/user/coolq \  # 将宿主目录挂载到容器内用于持久化 酷Q 的程序文件
        -p 9000:9000 \  # noVNC 端口,用于从浏览器控制 酷Q
        -p 5700:5700 \  # HTTP API 插件开放的端口
        -e COOLQ_ACCOUNT=123456 \ # 要登录的 QQ 账号,可选但建议填
        -e CQHTTP_POST_URL=http://example.com:8080 \  # 事件上报地址
        -e VNC_PASSWD=111111111 \ # noVnc密码
        -e CQHTTP_SERVE_DATA_FILES=yes \  # 允许通过 HTTP 接口访问 酷Q 数据文件
        richardchien/cqhttp:latest
此时可以登录noVNC查看并且登录了

如果测试没有问题的话,就讲启动参数中的--rm改为-d就可以存储运行了
docker start coolq
docker stop coolq
supervisord开机自启
由于我有一个定时任务多久开关机一次,但是coolq不会开机自启动,选择supervisord进行开机自启
注意autorestart=false,由于启动coolq后会exit(0),所以supervisord会不断尝试重启,我们只需要他启动一次就好
[program:coolq]
command=docker start coolq
stderr_logfile=/var/log/supervisor/error_coolq.log
stdout_logfile=/var/log/supervisor/coolq.log
directory=/home
autostart=true
user=docker
autorestart=false
配置信息
账号的配置文件
注意上报地址不能为127.0.0.1,因为容器内有自己的127.0.0.1,一般情况下可使用机器ip作为上报地址
[123456789]
use_ws = false
use_ws_reverse = false
serve_data_files = yes
access_token = 11111111111111111
log_level = error
post_url = http://example.com:8080
secret = 11111111111111111
show_log_console = false
event_filter = filter.json
过滤上报HTTP配置文件
- 私聊消息
 - 非匿名发送的@机器人的群消息
 - 非匿名的‘出来’群消息
 - 加好友消息、加群邀请、加群请求
 
{
    ".or": [
        {
            "message_type": "private"
        },
        {
            "message_type": "group",
            "anonymous": {
                ".eq": null
            },
            "raw_message": {
                ".regex": "CQ:at,qq=2450184313|^出来$"
            }
        },
        {
            "post_type": "request"
        }
    ]
}
防火墙
由于Docker直接更改iptables且优先级比ufw高,不能通过ufw控制其监听端口的开放关闭,需要手动配置Docker信息
# vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
# vim /etc/ufw/before.rules
# *filter前面添加下面内容
# 172.17.0.0/16 为docker网桥地址,可能不同
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE
COMMIT
# vim /etc/default/docker
# 添加此条配置信息
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false"
# vim /etc/docker/daemon.json
# 没有此文件则创建
{
"iptables": false
}
重启daemon、docker、ufw
systemctl daemon-reload && systemctl restart docker && ufw reload
												
											Ubuntu16.04安装QQ机器人的更多相关文章
- [教程]Ubuntu16.04安装QQ,Tim,微信,百度网盘等
		
[教程]Ubuntu16.04安装QQ,Tim,微信,百度网盘等 本文参考这篇blog step 1 先安装 deep-win环境. 戳这里下载压缩包 解压后在文件夹里打开终端,输入 sudo sh ...
 - Ubuntu16.04安装QQ
		
说明:一开始,我在Ubuntu 16.04下安装的QQ版本是Wineqq2013SP6-20140102-Longene,但后来发现这个版本QQ在linux下问题很多,比如不能用键盘输入密码,QQ表情 ...
 - Ubuntu16.04安装QQ(图文说明)
		
导读 最近,因为工作需要,我安装了Ubuntu16.04,然而有好多不便,工作上的事情大多需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个linux版本的QQ,然而不是 ...
 - Ubuntu16.04安装TensorFlow及Mnist训练
		
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com TensorFlow是Google开发的开源的深度学习框架,也是当前使用最广泛的深度学习框架. 一.安 ...
 - Ubuntu 16.04安装QQ国际版图文详细教程
		
因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...
 - ubuntu16.04安装jdk,tomcat
		
ubuntu16.04安装jdk,tomcat 最近装了一下tomcat,网上的教程很多,我也试了很多次,但是有一些教程关于tomcat配置是错误的,让我走上了歧途.差点重装系统,还好王总及时出手帮助 ...
 - Ubuntu16.04 安装openjdk-7-jdk
		
Ubuntu16.04 安装openjdk-7-jdk sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk ...
 - Ubuntu14.04 安装QQ国际版wine-qqintl
		
Ubuntu14.04安装qq国际版方式: 首先下载,链接为: https://pan.baidu.com/s/1boPitVD 密码:jp1j 也可去Ubuntu中文的Kylin(优麒麟)官网下载 ...
 - Ubuntu16.04安装GTK3主题:OSX-Arc
		
Ubuntu16.04安装GTK3主题:OSX-Arc GTK3主题:OSX-Arc描述: 前几个月,Gnome3.20升3.22的时候,出现了大量主题崩溃的现象,其中包括Arc.Flatabulou ...
 
随机推荐
- 复合文字(Compound Literals)
			
复合文字(Compound Literals) 阅读代码时发现了这行 1 setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&(int){1},sizeof(in ...
 - 你相信吗:新药可以让X战警变成现实
			
不管男人还是女人.大人还是小孩,心目中都有一个超级英雄梦,梦想着有一天能够具有超级英雄的能力.直到今天,你相信吗?现在医学工作者已经发现通过一种新药可以让人拥有X战警里一些超级英雄的能力 ...
 - SpringBoot 处理 POST Json 传参枚举
			
在 Spring 框架中对枚举类型的序列化/反序列化是有限制的. 假设如下面这样在某些情况下就不能正常工作: 123456789 public enum PayChannelEnum implemen ...
 - js的几个库
			
http://www.w3.org/TR/FileAPI/ http://www.w3.org/TR/html-media-capture/ demo:http://jsfiddle.net/pmat ...
 - 从Instagram“宁静、规则”的成功 看国内APP发展之路
			
看国内APP发展之路" title="从Instagram"宁静.规则"的成功 看国内APP发展之路"> Instagram在全球获得的巨大成功 ...
 - first-child和first-of-type
			
我想实现的效果:将第一个article字体颜色设置为红色 123456 <div? <h1>logo</h1> <article>article1</a ...
 - flutter 入门(Mac)
			
背景 近一年时间都在用 React Native 开发公司的 APP,水平基本上可以说是登堂入室了.前一段时间兴起一阵 Flutter 热,后端的同事都有推荐,今年 Google 大会又推出 flut ...
 - Javascript学习笔记-基本概念-函数
			
ECMAScript 中的函数使用function 关键字来声明,后跟一组参数以及函数体.函数的基本语法如下所示: function functionName(arg0, arg1,...,argN) ...
 - 07.深入浅出 Spring Boot - 数据访问之Mybatis(附代码下载)
			
MyBatis 在Spring Boot应用非常广,非常强大的一个半自动的ORM框架. 代码下载:https://github.com/Jackson0714/study-spring-boot.gi ...
 - C与ARM汇编结合实现mini2440串口uart简单程序
			
最近学完了ARM的一些基础知识,开始在mini2440上开发一些简单的程序,串口发送程序是一开始涉及多个寄存器的例子,稍有繁多的步骤应该是开发过程中要慢慢适应的境况 下面的程序的目的是实现mini24 ...